Traducido del English por IA ·
Tenemos algo casi igual en unas cuantas estaciones de bombeo pequeñas, así que le comento un par de cosas.El Pi en medio es buena idea por sus cortes. Haga que actúe como pasarela: un dispositivo en Hermetry marcado como «This device is a gateway», y cada habitación se convierte en un dispositivo hijo la primera vez que el Pi la reporta. Node-RED recoge los mensajes de las habitaciones desde Mosquitto, los guarda en un archivo o en una pequeña tabla SQLite mientras no hay internet, y luego los envía con sus propias marcas de tiempo:
topic v1/gw/telemetry
{"Room 4": [{"ts": 1793000000000, "values": {"temperature": 22.1, "humidity": 51, "door_open": 0}},
{"ts": 1793000300000, "values": {"temperature": 22.0, "humidity": 51, "door_open": 1}}]}
Asegúrese de que el Pi tenga la hora correcta (NTP tras el arranque) antes de poner un ts en cualquier dato. Una cola grande se vacía un poco más despacio porque las reproducciones tienen su propio límite de velocidad en el perfil; es normal.El control del calentador de agua puede pasar por el mismo Pi. Un comando enviado a un dispositivo hijo llega a su pasarela por v1/gw/rpc, así que Node-RED se suscribe a ese topic y lo reenvía a la habitación correcta. O bien haga del controlador del calentador un dispositivo propio que se conecte directamente a Hermetry. Para un calentador, yo iría directo, con menos piezas móviles.Los topics de pasarela están descritos en Devices behind a gateway.
We run nearly this at a few small pump stations, so a couple of things from that.
The Pi in the middle is a good call because of your outages. Have it act as a gateway: one device in Hermetry marked «This device is a gateway», and each room becomes a child device the first time the Pi reports it. Node-RED collects the room messages from Mosquitto, keeps them in a file or a small SQLite table while the internet is down, and then sends them on with their own timestamps:
topic v1/gw/telemetry
{"Room 4": [{"ts": 1793000000000, "values": {"temperature": 22.1, "humidity": 51, "door_open": 0}},
{"ts": 1793000300000, "values": {"temperature": 22.0, "humidity": 51, "door_open": 1}}]}
Make sure the Pi has the right time (NTP after boot) before you put a ts on anything. A big backlog drains a bit slower because replays have their own rate limit on the profile, that’s normal.
Geyser switching can go through the same Pi. A command sent to a child device comes down to its gateway on v1/gw/rpc, so Node-RED subscribes to that and passes it on to the right room. Or make the geyser controller its own device that connects to Hermetry directly. For a geyser I’d go direct, fewer moving parts.
Gateway topics are described in Devices behind a gateway.

