Repository navigation
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 astime_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_dstin 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…andGET /api/v1/economics?unit=inputreturn the input as one series, summed over its points. The schema hascapabilities.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 asrbgrid-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.
- Update over the air from the app (Settings → Hub firmware) with
- 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_flashfirst. - A clean (or new) hub starts its own Wi-Fi
rbgrid-xxxx(setup passwordRBGRID123). Openhttp://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.jsonIf 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.