RBgrid v1.1.7

RBgrid v1.1.7 is out. Two things stand out: the energy and settings you have stored now survive faults that used to lose them, and the hub can collect measurements from remote nodes over ESP-NOW — a second box, in another part of the building, with no wires back to the hub.

Get it

  • Firmware: the v1.1.7 release has the image set for a fresh USB flash, each file with its SHA-256, and main_release.bin for an over-the-air update.
  • Web app: install rbgrid-ui_v1.1.7.zip from the same page as described in Build & flash, or use the hosted app at webapp.rbgrid.io.
  • Node firmware, if you want one: rbgrid-node_v1.1.7.bin (flash at 0x10000), or rbgrid-node_v1.1.7_full.zip with the boot loader and partition table.
  • Already on v1.1.x? Update over the air from the app with main_release.bin; your Wi-Fi, settings, points and history are kept. Step by step, with what to do if it stops halfway: What happens if the firmware update stops halfway.

Fixed: your stored data survives faults

This is the part worth a minute even if nothing in your setup looks wrong. An independent code review went looking for ways a fault could lose energy, double it, or reset the hub's settings. Each fix was reproduced on the bench with injected faults, before and after.

  • A failed flash write no longer loses the hour. The hour's record is kept and written again at the next 15-minute period.
  • A storage read error at boot no longer erases your settings. This is the one to know about. The settings store used to be reformatted on any mount error — which also removed the API tokens and left the hub open. It is now formatted only when it is genuinely damaged or blank; on any other error the hub keeps your data and stays locked until the next restart.
  • Saving settings reports a failed write instead of reporting OK, and the old value stays in place.
  • A restore point is all or nothing. An incomplete one is refused and nothing changes; a restore that fails part-way puts the previous settings back.
  • Energy measured while the hub was off for more than a day is kept. It used to be dropped. It now goes into the totals and into the current hour, which is marked outage so you can tell it apart.
  • A 15-minute period is priced by its own time, including when it is processed late, and a new tariff plan is applied in one step.

New: remote nodes over ESP-NOW

Until now everything had to reach the hub over I²C — one bus, one box, one place in the building. A node is a second ESP32 that measures where it stands and sends its readings to the hub by radio.

Pairing takes no restart. Open a pairing window in the app (10–600 seconds) and power up the node. The two exchange keys, and the node's points appear straight away, with history from the first hour.

Each hub makes its own key the first time it needs one. No key is built into the firmware — the published tree ships only an example header with placeholders.

Energy lands in the right hour, not the hour it arrived. The node closes each 15-minute period by its own clock and holds it while the hub is out of reach — up to 8 of them, about two hours. Each one is then filed and priced by the time it closed. That is what makes a node usable on a link that drops.

From the app you can turn each node input on or off and choose its clamp, and the card tells you when the node has applied the change. For health there is signal strength, packets lost over the last minute and when the node was last heard; over MQTT, a status topic and events per node, and in Home Assistant a signal sensor per node.

The limits: up to 6 nodes per hub and 4 inputs per node. History is the hub's existing 12 points — node points share that one pool with the hub's own rather than adding to it, so a node you add takes slots from the points you already keep history for.

The node firmware is published — source in node/, with build, flash and pairing steps in its own README. A node needs an ESP32 with 4 MB of flash (no PSRAM) and rbAmp modules on I²C.

⚠️ A node does not update over the air. The hub does; the node doesn't. To put new firmware on a node you flash it over USB, the same way you flashed it the first time — so put nodes somewhere you can still reach.

Changed: tariffs and net metering

  • The clock isn't set yet — a power-up with no internet — and 15-minute periods are priced at the plan's default zone instead of waiting.
  • Net metering switched off no longer collects the month's import and export in the background.
  • A zone condition that is switched off no longer stops its whole zone from applying.

Security

  • MQTT reads need the read token when the hub has read and admin tokens set, exactly as HTTP reads do.
  • MQTT over TLS now works with a broker whose certificate comes from a public certificate authority. What that covers, and what it doesn't, is on the MQTT page.
  • Live data without a token in the address: the app now takes a one-time ticket, valid 30 seconds, for the live stream.

Platform

The firmware moves to ESP-IDF 5.5.1 (from 5.4.1). The over-the-air update from v1.1.x works with the boot loader already on your hub, and both rollback and going back to v1.1.6 were tested. The metering core is now separate from the web server and MQTT code; the API does not change.

Web app 1.1.7

  • A Nodes section on the Points page: radio on and off, pairing with a countdown, node cards and node settings.
  • The live stream uses the one-time ticket above, and the restore-point panel now says what actually happened.

Full list: the changelog. User guide: rbgrid.io/webapp/docs.