emily30
@emily-campbell · Membre depuis août 2025
Backend developer · energy
- Sujets
- 6
- Réponses
- 36
- Points
- 0
Toutes mes réponses sur les forums
I asked the same thing when we did our first site, so here’s what I learned.
It comes down to the concentrator chip (SX1302/SX1303 family in current gateways, SX1301/1308 in older ones). It isn’t one radio, it’s a baseband that demodulates 8 channels in parallel and on each channel every spreading factor at once. A sensor doesn’t have to « connect » either: it transmits, every gateway in range hears it, done. No association like Wi-Fi. So listening to hundreds of sensors is mostly listening to short bursts that rarely overlap.
The cheap indoor ones use the same chip family. What you give up is the outdoor stuff: enclosure, a good antenna up high, cellular backhaul, GPS.
For Hermetry, check three things before buying:
- A model for your band. Hermetry’s network server follows the gateway’s frequency plan, so the gateway and your sensors just need to be on the same one.
- Basics Station support (LNS). The old UDP packet forwarder isn’t supported.
- It lets you set tc.uri, upload tc.trust and set the token (tc.key). Hermetry doesn’t use CUPS, you configure it once by hand.
On the channels: Hermetry sends the gateway its radio configuration when it connects (on EU868 the 8 channels plus a 250 kHz LoRa channel and an FSK channel), so you don’t set channels yourself.
Keisha, for a warehouse: indoor gateway in the middle, mounted high, and check RSSI/SNR of the furthest sensors in the frames log before you trust coverage. Racking full of metal eats a lot.
On purpose. A board is something many people click, so it only gets the safe commands you listed.
Traduit de English par IA ·
Nous avons un flux qui envoie des données à une API fournisseur, avec la clé dans une ligne d’en-tête personnalisée (X-Api-Key). Faut-il la déplacer vers le nouveau secret nommé, ou ailleurs ?
We have a flow that posts to a supplier API with the key in a custom header row (X-Api-Key). Should that move to the new named secret, or somewhere else?
That makes sense, thanks Maria. Energy per wake-up was the idea I didn’t have. We’re going with an STM32L0 and we’ll measure a full wake cycle with a power profiler rather than reading datasheets. And yes, the transmit interval is now the main discussion.
Traduit de English par IA ·
Mise à jour pour ceux qui tomberaient sur ce sujet plus tard. Notre unité dispose de la borne de marche/arrêt à distance ; l’installateur y a raccordé un câble deux fils jeudi. La prise ne fait maintenant que fermer un contact sec ; j’ai sorti la sortie du relais du boîtier de la prise pour la placer dans un petit boîtier DIN. L’état de marche remonte sur une GPIO libre sous le nom ac.running.La règle s’est déclenchée pour de bon hier, quand la pièce a atteint 27.4 ; la climatisation a démarré et j’ai reçu la notification. Une erreur de ma part au départ : j’avais désactivé Ask avant de passer par l’interrupteur, je l’ai réactivé après le commentaire de Rachel sur les clics accidentels.
Update for anyone finding this later. Our unit has the remote on/off terminal, the installer fitted a two wire cable to it on Thursday. The plug now just closes a dry contact, I took the relay output out of the plug housing into a small DIN box. The run status comes back on a spare GPIO as ac.running.
The rule fired for real yesterday when the room hit 27.4, the AC started and I got the notification. One thing I had wrong at first: I had turned off Ask before running on the switch, put it back on after Rachel’s comment about clicking things by accident.
Traduit de English par IA ·
Brian, c’est fait, il a maintenant son propre profil et la plage du bureau est épinglée.emily23, tu as raison et cela ruine mon plan. Je l’ai testé à midi : j’ai débranché la prise pendant 30 secondes, rebranché, l’unité intérieure a bipé deux fois et est restée éteinte. La prise ne peut donc que l’éteindre, et couper un compresseur inverter en plein cycle n’est probablement pas bon non plus.
Brian, done, it has its own profile now and the office range is pinned.
emily23 you are right and that kills my plan. I tested it at lunch: pulled the plug for 30 seconds, plugged back, the indoor unit beeped twice and stayed off. So the plug can only kill it, and killing an inverter compressor mid-cycle is probably not great either.
Your colleague is half right. Buffering on licensed gateways covers the link going down: they keep readings locally and send them later with their original timestamps, so the history fills in. How much they keep depends on the model, worth asking about the specific one before relying on it. Licensed gateways and Hermetry Edge
But a buffer doesn’t help when the power is off. The gateway is off, and so are your meters’ RS-485 interfaces if they’re on the same supply. There’s nothing to read. So in your hut the UPS is what keeps data flowing, and the buffering is what covers LTE dropouts.
For the charger, I’d not build one. A DIN-rail DC UPS module (24 V or 12 V, takes the battery directly, does float charge and switchover, has a « mains fail » relay output) is about the price of the parts and the time you’d spend. If you do build, Rahul’s numbers are right: about 13.6-13.8 V float at 20 °C, current limited to around 0.1C (0.7 A for 7 Ah), and temperature compensation if the hut gets hot.
Wire the « mains fail » contact to a gateway input and send it as mains_ok. Then an alarm on mains_ok == 0 tells you about the outage itself, and you can make the offline alarm of the meters wait longer than the UPS runtime minus a margin. If you use the Remote sites ready solution, its UPS profile already has keys like ups_a_status and ups_a_charge you could fill.
Did this at home last winter. Bulbs: pick ones with a documented local LAN API. WiZ bulbs take JSON over UDP port 38899, LIFX has its LAN protocol, both work from Python without any cloud account once they’re on your Wi-Fi. Around 10-15 GBP each.
The list is empty because the Switch can only send commands from the device profile’s Commands catalog. So:
1. On the Pi’s profile, Commands tab, add light.set, tier Basic, parameters room (Choice: hallway, living) and on (Yes / no). Boards send only Basic tier catalog commands, a Privileged one gets refused on a board.
2. On the Pi, handle v1/rpc/req/+, switch the bulb, answer on v1/rpc/res/{id}, and publish the real state as telemetry, as numbers: {"hallway_on": 1}.
3. Switch card settings: When this control is used, Run a command, device = the Pi, command light.set, room as a fixed value, on from the control’s value. Then bind Current state to hallway_on.
That last step answers David: the Switch shows what the Pi reports, so poll the bulb every 30 s or so and publish it, then a wall switch change shows up too. With a wall switch cutting power the bulb is just gone, so leave the wall switches on. Details on Control cards.
Traduit de English par IA ·
Lorsque je clique sur Révoquer sur une ligne, cette session est-elle immédiatement terminée, ou reste-t-elle active jusqu’à l’expiration de son jeton d’accès ?
When I hit Revoke on a row, is that session dead immediately, or does it live until its access token runs out?
…it was on 115200. Changed the sketch to 9600 and the lines are clean. The heat pump shows up as its own child device now, flow 41.3, return 36.8. Thanks all, Lewis especially for the divider warning, I was about to wire it straight.
Kevin A and Maria have both bits. I did nearly the same light controller for our office last year. Parse the JSON with ArduinoJson (it takes the buffer and length, so no null needed), pull the request id off the end of the topic, and answer on v1/rpc/res/ with that id. The « waiting for the device » stays because the board never gets an answer.
#include <ArduinoJson.h>
void callback(char* topic, byte* payload, unsigned int length) {
String t(topic);
String id = t.substring(t.lastIndexOf('/') + 1); // "17"
StaticJsonDocument<256> doc;
if (deserializeJson(doc, payload, length)) return;
if (doc["method"] == "light.set") {
int level = doc["params"]["level"] | -1; // -1 if missing
if (level >= 0 && level <= 100) {
analogWrite(D5, map(level, 0, 100, 0, 1023));
client.publish(("v1/rpc/res/" + id).c_str(), "{"ok":true}");
return;
}
}
client.publish(("v1/rpc/res/" + id).c_str(), "{"ok":false}");
}
ESP8266 analogWrite is 0-1023 by default, hence the map. And subscribe to v1/rpc/req/+ after every reconnect, not only in setup, or commands stop after the first Wi-Fi drop.
The topic list is on MQTT topics and payload reference.
Went HC-06. rfcomm0 works but I get garbage like « fx9cw_c=xe2… » instead of the line.
Hi Buğra. Can a flow send readings to our own HTTP endpoint? And the other way round, can one of our services push data into a flow?
Traduit de English par IA ·
Encore une chose pour le cas du vendredi soir : ajoutez une alarme hors ligne sur la passerelle. Lorsque la passerelle passe hors ligne, ses équipements enfants passent eux aussi hors ligne, donc une seule alarme vous indique que toute la ligne s’est tue.
One more thing for the Friday night case: add an offline alarm on the gateway. When the gateway goes offline its children go offline too, so one alarm tells you the whole line went quiet.
An N-channel on the high side needs its gate several volts above its source to turn on fully. From the same 24 V rail you can’t get the gate above 24 V, so the source can only rise to whatever the gate gets minus the threshold.

