Skip to content

RBgrid v1.1.6

Latest

Choose a tag to compare

@robotdyn-dimmer robotdyn-dimmer released this 06 Nov 14:00
· 2 commits to master since this release

RBgrid v1.1.6

A release on top of v1.1.5. The time settings no longer get lost after a restart. A three-phase input metered per phase now has one history and one set of money figures for all three phases.

Fixed

  • Time settings lost after a restart. On v1.1.2–v1.1.5, changing the time zone in the app left the hub without a time zone and without an NTP server at its next restart. The clock then never synchronized again: tq: 0, no new history, tariff zones on an unsynchronized clock.
    • The hub now merges the settings it receives into the saved ones.
    • A hub already in that state recovers at its first boot on v1.1.6. The saved time zone is kept, and the NTP servers go back to pool.ntp.org / time.nist.gov.
    • After updating, open Settings → Time and check the time zone. If it was lost before the update, set it again.
  • Clock set from the browser on a hub without NTP. After Use this device's time, Settings → Time showed "not synchronized", and the setup wizard waited for a synchronized clock. A hand-set clock now stays synchronized (source MANUAL) until NTP takes over. The live data reports it as time_src: "manual", tq: 1.
  • Settings → Time failed to load now and then on a hub without NTP: about one request in three. It now always loads.
  • NTP settings out of range (resync interval outside 60–86400 s, timeout outside 1000–60000 ms, retries outside 1–10, an empty or malformed server name) are refused with a message. Before, they were saved, and the hub came up after the next restart with no clock sync. A value already saved out of range is brought into range at boot.
  • An update sent right after an update. For about a minute after an over-the-air update the hub is still confirming the new firmware. During that minute it refuses the next update with a plain "try again in about a minute" (HTTP 409) instead of "500 ota_begin failed".
  • A point created with the id of a deleted point no longer inherits that point's net-metering figures.
  • enable_dst in the time settings did nothing (summer time comes from the time-zone rule). It is now read-only: it shows whether the hub's time-zone rule has summer time.

New: the input's history and money as one series

  • With the input metered per phase, Overview (today by hour, vs yesterday, month, forecast) and Economics now cover all three phase points, not L1 only. This lifts the v1.1.5 limitation.
  • API: GET /api/v1/history?unit=input… and GET /api/v1/economics?unit=input return the input as one series, summed over its points. The schema has capabilities.inputAggregate: true.

Web app 1.1.6

  • The input history and money above.
  • Settings → Time checks the NTP servers and the resync interval before Save. To a hub on firmware 1.1.5 or earlier, Save sends the whole time configuration, so those hubs don't lose their NTP servers either.
  • Settings → Hub firmware explains the one-minute wait after an update.
  • Three-phase input switch: the result and Restart now show on the module card, and the buttons hide until the restart.
  • Its source is in webapp/, and the built app is attached as rbgrid-ui_v1.1.6.zip. Full list: webapp/CHANGELOG.md.

Install the firmware and the app together: the input history and the new messages are in the app.

Full list: CHANGELOG.md. User guide: webapp/docs/user/.

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.6.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:

ccab593cab49ed1b6b53079580efb637bfdf73d5094c0ca13b8d9c14984d229a  main_release.bin
6b776b566fb4fc2d8ad04060d13c6e3662295eb501e7a2305a7a7592d60e5fb4  bootloader.bin
8fbeacb18a26ac27c6500c00c4dfcd5ee5aac4c237312174d0cce5b4781e38ce  partition-table.bin
7d2c7ac4888bfd75cd5f56e8d61f69595121183afc81556c876732fd3782c62f  ota_data_initial.bin
03dceeef97e511dcea128020f75fb4d5351fc258e9ed38664af97a8fb6a76710  rbgrid-ui_v1.1.6.zip

Update

  • Hubs on v1.1.x:
    • Update over the air from the app (Settings → Hub firmware) with main_release.bin. Wi-Fi, settings, points and history are kept.
    • Let the hub run for a minute after the update before restarting it: it confirms the new firmware after about a minute on the network. A restart before that rolls it back to the previous firmware.
    • Then install the new web app (below), and check Settings → Time.
  • 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.
  • Before installing an older firmware on a hub whose input is metered per phase, switch it back to one point (as for v1.1.5).

Install the web app on the hub

Unzip rbgrid-ui_v1.1.6.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>/. You can also use the hosted app at https://webapp.rbgrid.io.

Validation

The images in this release were validated on hardware (ESP32-WROVER, 16 MB, chip revision v1.1):

  • over-the-air update from v1.1.5, including a hub whose time settings v1.1.5 had lost (time zone kept, NTP servers restored, clock synchronized);
  • USB flash of all four files, keeping settings, totals, the tariff plan and the time settings;
  • API contract 96/96;
  • time settings: saving only the time zone, or only the resync interval, then a restart, keeps the rest; out-of-range values refused;
  • a hub with no NTP: clock set from the browser stays synchronized (source MANUAL), Settings → Time loads on every request;
  • an update within the confirm minute answered 409;
  • the web app on the hub: the three-phase input switched through the app both ways, Settings → Time save and restart, the input history as one series.

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