New: the AI firewall watches the whole platform and explains each incident in plain words. See how it works

emily23

emily23

@smith-e · Joined January 2026

Newcomer

Facility manager · hospitality

Topics
4
Replies
24
Points
0
Newcomer10 points to Member

Forum Replies Created

Viewing 15 posts – 1 through 15 (of 24 total)

We have the same windows in our hotel lobby. Before we knew better our electrician put relays across the buttons of a spare keypad and drove those. It works but you get zero feedback, you never know if the window really closed.

QoS 1 and a lot of patience.
♥ 0

Not USB. I had flaky Modbus on a Pi 3 once and part of the fix was taking console=serial0,115200 out of cmdline.txt, the login console was sharing the port. Not sure that’s your whole problem though.

QoS 1 and a lot of patience.
♥ 2

We have fan coil valves in 140 hotel rooms doing this, so here is our setup.

Hermetry sends commands to the device on its own downlink topic. The fan board subscribes to v1/rpc/req/+, a command arrives as v1/rpc/req/<id> with a method and params, and the board answers on v1/rpc/res/<id>. The id in the topic is how the answer is matched.

On the fan profile, open the Commands tab and add a command, for example method fan.set, one parameter on of type Yes/no, tier Basic. Basic matters because a dashboard Switch only sends Basic tier commands. Then the supervisor’s board gets a Switch card, its action is Run a command fan.set with the control’s value, and the Current state is bound to a telemetry key the board reports after it switched, we use fan.on.

Rough Arduino side with PubSubClient:

void onMsg(char* topic, byte* payload, unsigned int len) {
  String t(topic);
  if (!t.startsWith("v1/rpc/req/")) return;
  String id = t.substring(11);
  StaticJsonDocument<256> doc;
  deserializeJson(doc, payload, len);
  if (doc["method"] == "fan.set") {
    bool on = doc["params"]["on"];
    digitalWrite(RELAY, on ? HIGH : LOW);
    client.publish(("v1/rpc/res/" + id).c_str(), "{"ok":true}");
    client.publish("v1/telemetry", on ? "{"fan.on":1}" : "{"fan.on":0}");
  }
}
// after every connect:
client.subscribe("v1/rpc/req/+", 1);

The docs say a command can arrive twice, so keep the last few ids and skip repeats. Page: Sending commands to devices. For setpoints that should survive a reboot (heater target temperature) we use shared attributes on v1/attributes/set instead, the board asks for them right after connecting.

QoS 1 and a lot of patience.
Accepted solution♥ 5

We did it last week with my own waves, 3 rooms on floor 2 first, then 20, then the rest at 1 a.m. One room showed Not for this device in wave 2, its controller was on a version older than the package’s lowest allowed one, so it got skipped. Vendor is flashing that one by hand. Fan bug gone everywhere else. Much less scary than I expected.

QoS 1 and a lot of patience.
♥ 0

It’s the power bank switching itself off. Had exactly this at our property with a door counter last year.

Most power banks shut their output down when the load drops below somewhere around 50-100 mA for a few seconds, because they think the phone is full. Your Nano draws far more than that while the radio is sending, and a few mA (or less) when LowPower puts it to sleep. So: join, first uplink, sleep, power bank sees almost no current, output off. Nothing for the code to do about it. Replugging restarts the bank.

Ways out, from what we tried:

  • Use a power source without that feature: 3 x AA alkaline straight to the 5 V pin is ok for a Nano (4.5 V) for a while, or better a LiPo with a decent low-quiescent regulator. A bare Pro Mini at 3.3 V with the power LED removed runs for months on AAs.
  • Some power banks have an “always on” or low-current mode, usually a double press of the button. Check the manual.
  • Dummy loads that pull pulses to keep the bank awake work, but they waste most of the battery.

Also adjust Hermetry so it matches the sensor. On the built-in LoRaWAN profile the device counts as online while the last uplink is younger than three expected intervals, with 3,600 s as the default interval. At one uplink per 10 minutes you’re fine, but if you stretch it to hourly or longer to save battery, raise the expected interval on the profile’s Online status tab, otherwise it flips to offline between reports. That bit is in Troubleshooting uplinks and downlinks.

QoS 1 and a lot of patience.
Accepted solution♥ 3
Viewing 15 posts – 1 through 15 (of 24 total)