Skip to content

RBgrid v1.1.3

Choose a tag to compare

@robotdyn-dimmer robotdyn-dimmer released this 03 Nov 23:09
· 24 commits to master since this release

RBgrid v1.1.3

A small release on top of v1.1.2: browser access to the hub is now limited to an allow-list, and the RBgrid web app at webapp.rbgrid.io works with your hub out of the box.

Highlights

  • The hosted web app works with your hub.
    • Open https://webapp.rbgrid.io and connect to the hub by its address on your network, for example 192.168.1.50.
    • The browser asks once to allow access to devices on your local network; allow it.
    • Checked in Chrome and Edge. Your computer must be on the same network as the hub.
  • Only the hub's own pages and the listed websites can use the hub from a browser. Before, any website could.
    • The RBgrid app (https://webapp.rbgrid.io, https://demo.rbgrid.io) is always allowed.
    • Add your own websites (up to 8) in the app: Settings → Browser access (CORS).
    • "Allow any website" brings back the old behaviour. If you chose it before, the hub keeps it.
  • Web app 1.1.3:
    • the CORS panel shows the always-allowed sites and your own list;
    • Economics and setup-wizard fixes.
    • Its source is in webapp/, and the built app is attached as rbgrid-ui_v1.1.3.zip.

Full list: CHANGELOG.md.

Files

File What it is
main_release.bin Application image. Use it for an over-the-air update from the app (Settings → Hub firmware) or at 0x20000 for a USB flash.
bootloader.bin, partition-table.bin, ota_data_initial.bin The other three files for a USB flash of a blank hub.
rbgrid-ui_v1.1.3.zip The web app for the hub: kit/ + ui-manifest.json (built from webapp/ in this tag).
THIRD_PARTY_LICENSES.md Open-source packages bundled in the web app.

SHA256:

338e45be51b81291f0dffe4cc7b785fd6b968f712cca7cc0cf2a630be6af35be  main_release.bin
3ebebcf91394ab20bdcf0813c440b357c4799c864233477dfdf88895b6e43f57  bootloader.bin
8fbeacb18a26ac27c6500c00c4dfcd5ee5aac4c237312174d0cce5b4781e38ce  partition-table.bin
7d2c7ac4888bfd75cd5f56e8d61f69595121183afc81556c876732fd3782c62f  ota_data_initial.bin
ea70c9e4dde216cab1e79ff9c28e385f52bb32e89d25f76395da62ab71c6d43f  rbgrid-ui_v1.1.3.zip

Update

  • Hubs on v1.1.x: update over the air from the app (Settings → Hub firmware) with main_release.bin. Wi-Fi, settings and history are kept. Then install the new web app (below).
  • USB flash (ESP32, 16 MB):
python -m esptool --chip esp32 -p <PORT> -b 460800 write_flash --flash_mode dio --flash_size 16MB --flash_freq 40m \
  0x1000 bootloader.bin 0x10000 partition-table.bin 0x17000 ota_data_initial.bin 0x20000 main_release.bin
  • Flashing the four files as above keeps the hub's settings, Wi-Fi and history.
  • To start clean, run python -m esptool --chip esp32 -p <PORT> erase_flash first.
  • A clean (or new) hub starts its own Wi-Fi rbgrid-xxxx (setup password RBGRID123). Open http://192.168.4.1/, choose your home Wi-Fi and enter its password.

Install the web app on the hub

Unzip rbgrid-ui_v1.1.3.zip, then:

HUB=http://<hub-address>
cd kit
for f in $(find . -type f | sed 's|^\./||'); do
  curl -sf -X POST "$HUB/api/system/ui-upload?path=$f" -H 'Content-Type: application/octet-stream' --data-binary "@$f" || { echo "upload failed: $f"; exit 1; }
done
curl -sf -X POST "$HUB/api/system/ui-commit" -H 'Content-Type: application/json' --data-binary @../ui-manifest.json

If you have set an API token, add -H "Authorization: Bearer <token>" to both calls. Then open http://<hub-address>/.

For developers

If you run the web app from your own computer (for example http://localhost:5173), add that address in Settings → Browser access (CORS). Or allow any website on a test hub.

Validation

The images in this release were validated on hardware (ESP32-WROVER, 16 MB):

  • over-the-air update from v1.1.2;
  • USB flash of all four files;
  • API contract 96/96;
  • https://webapp.rbgrid.io and https://demo.rbgrid.io reading from and saving to a hub in Chrome 156 and Edge 156;
  • the browser-access panel (add and remove a site).

A build from source produces a different SHA256 than these images: the build embeds its date and time. That's expected.