@gwp1 I think you could just rename it
therealdb
Posts
-
Home Assistant Connect ZWA-2 & ZBT-2 -
Home Assistant Connect ZWA-2 & ZBT-2I started with Vera Edge, then Plus, and eventually moved my Z-Wave network to Z-Wave.me UZB. Recently, I wanted to experiment with Z-Wave Long Range, so I needed a new controller. I had Home Assistant Connect ZWA-2 on my radar for a while, and I pulled the trigger thanks to Black Friday offers. It was the least complicated migration ever: back up the old, unplug it, stop ZWaveJS, plug in the new controller, and restore the backup—done in a breeze.
I let the mesh adapt for a couple of days, and the result is impressive: 80% of my devices are now reporting directly to the controller. The Z-Wave network feels crazy fast. My setup includes about 70 devices, and I struggled a lot with Vera. I had missing reports on UZB as well, even if sporadic. In the first days of use, this new setup seems definitely better, and its range is phenomenal. More on that later.
Since I was at it, I moved my ZigBee network from Hue Bridge (only lights) to Home Assistant Connect ZBT-2 and ZigBee2MQTT, because I wanted to add more ZigBee devices to my network. It seems that all the little weird devices are ZigBee now—I bought a couple of temp/humidity sensors and a ThirdReality Night Light. I'm using it to turn red if the alarm is armed, and as a white night light in the hallway when not armed: very nice to automate with Reactor via Home Assistant.
The ZigBee mesh is still small at 10 devices, but it will eventually improve.
Here's a pic of the two antennas: ZWA-2 on the right, ZBT-2 in the center, and a 33cl bottle of water on the left for comparison.
The ZWA-2 is huge. No wonder it's able to span across three floors and reach the garden with no hops. Mind you, my house is concrete and glass, so not the best in terms of signal. Highly recommended if you want a very powerful Z-Wave antenna, with support for Long Range as well.
-
Script action and custom timersso:
alarm(10), trueshould fire every 10 secs? It's not working for me, maybe I have something wrong in the expression.
EDIT: ok, setting it as pulsing every X secs indefinitely did the trick. amazing!
-
Script action and custom timersSorry to write here without trying, but I’m flying today.
Am I correct if i say that script action with alarm() makes it possible to execute a reaction in a given interval, lets say 15 seconds or 3.5 minutes?
That sounds amazing, since I’ve used weird tricks, including a custom controller, just to do this.
-
Shelly Wall Display XL -
Strange behavior in MSR latest-25304 with disabled groups in ReactionI have a scene controller where I basically "commented" (aka disabled) actions because I was testing new things.
When pressing the button, every group is executed. The first is correct, the others two not. Removing them is obviously working.
newsceneis a simple variable gettinggetEntity( "mqtt>shelly_masterbedroom_scenecontroller_2" ).attributes.button.state.I'm not sure if this is new, but I think it's not expected.
-
[Reactor] Variables not updating correctly in latest-25201-2aa18550@toggledbits is alarm() a new thing? What's the best example to understand its use? IE: A global variable named christmas_time, that will be updated every hour/day with dateparts()? Thanks.
-
Shelly Wall Display XLThanks! I managed to get the 4 buttons, a nice feature for the wife.
Unfortunately, it's not POE, but it was easy for me to pull a cable. It has a relay, but I'm not using it ATM.
In the coming weeks I'll mount the second one on the second floor. The custom firmware has both MQTT and HTTP APIs, so it's easy to synchronize them.
-
Shelly Wall Display XL -
Shelly Wall Display XLI don't know if you guys are into dashboards, but I am.
For a second home I tried the Shelly Wall Display 2, and while not so big, it worked well over the summer.
Since we're remodeling our house, I just swapped my old Fire Tablet (with its own problems) with two new Shelly Wall Display XL. I just removed the standard firmware, and I added mine (https://github.com/dbochicchio/ShellyElevate), forked from https://github.com/RapierXbox/ShellyElevate
I just managed to support buttons (this thing has 4 of them) and it's all auto-discovered by Home Assistant and accessible via Reactor.
I also have a new build in the works with support for buttons inside HA.
I added a bonus Javascript interface sending events (screen/screensaver status, buttons, motion) to automatically drive the dashboard (all doing in HTML+Javascript and monitoring Reactor's variable).This specifical thing excluded, go get one of them, the device has a decent CPU for HA dashboards and blends wonderfully in the decor.
-
Handling Dead Entities and Renamed EntitiesI don't know if there's a UI option, but when I migrated things, I just stopped reactor, opened the files and removed everything from reactor/storage/entities/zwavejs (after a backup). And start again, of course. It's brutal for sure, but it worked.
-
Strange behavior for MQTT templates using payload and attributes@toggledbits said in Strange behavior for MQTT templates using payload and attributes:
See the problem now?
You have control over the order in which the attributes are processed for the topic/event.
I see it! Thanks! (Never code in a hurry while doing 100 other things).
-
[MSR] reactor-mqtt-contrib package for additional MQTT templates25272: Fixes for shelly_scenecontroller to better handle multiple pushes of the same button.
-
Strange behavior for MQTT templates using payload and attributesNo joy from the logs. I added parens but no joy. The only thing that worked was a delete of the entity/restart of Reactor.
[latest-25272]2025-09-30T14:49:47.414Z <MQTTController:5:MQTTController.js:599> MQTTController#mqtt topic shellies/shelly-gatebutton/input_event/0 associated with Array(1)[ "shelly_gatebutton" ] [latest-25272]2025-09-30T14:49:47.414Z <MQTTController:5:MQTTController.js:601> MQTTController#mqtt dispatching shellies/shelly-gatebutton/input_event/0 to shelly_gatebutton [latest-25272]2025-09-30T14:49:47.414Z <MQTTController:5:MQTTController.js:1152> MQTTController#mqtt handling shellies/shelly-gatebutton/input_event/0 (event shellies/shelly-gatebutton/input_event/0) for shelly_gatebutton: {"event":"","event_cnt":2} [latest-25272]2025-09-30T14:49:47.415Z <MQTTController:5:MQTTController.js:1168> MQTTController#mqtt topic shellies/shelly-gatebutton/input_event/0 affects entity shelly_gatebutton attributes value_sensor.value, button.since, scene_activation.since, button.state, scene_activation.scene_id, x_mqtt_device.online [latest-25272]2025-09-30T14:49:47.415Z <MQTTController:5:MQTTController.js:1274> MQTTController#mqtt topic shellies/shelly-gatebutton/input_event/0 setting shelly_gatebutton value_sensor.value=2 [latest-25272]2025-09-30T14:49:47.415Z <MQTTController:5:MQTTController.js:1274> MQTTController#mqtt topic shellies/shelly-gatebutton/input_event/0 setting shelly_gatebutton button.since={"event":"","event_cnt":0} [latest-25272]2025-09-30T14:49:47.416Z <MQTTController:5:MQTTController.js:1274> MQTTController#mqtt topic shellies/shelly-gatebutton/input_event/0 setting shelly_gatebutton scene_activation.since={"event":"","event_cnt":0} [latest-25272]2025-09-30T14:49:47.416Z <MQTTController:5:MQTTController.js:1274> MQTTController#mqtt topic shellies/shelly-gatebutton/input_event/0 setting shelly_gatebutton button.state=unknown [latest-25272]2025-09-30T14:49:47.416Z <MQTTController:5:MQTTController.js:1274> MQTTController#mqtt topic shellies/shelly-gatebutton/input_event/0 setting shelly_gatebutton scene_activation.scene_id= [latest-25272]2025-09-30T14:49:47.417Z <MQTTController:5:MQTTController.js:1274> MQTTController#mqtt topic shellies/shelly-gatebutton/input_event/0 setting shelly_gatebutton x_mqtt_device.online=true [latest-25272]2025-09-30T14:49:47.417Z <MQTTController:5:MQTTController.js:1905> MQTTController#mqtt _handle_ext_event() shellies/shelly-gatebutton/input_event/0 matches 0 subscriptionsMaybe it's something that when it's corrupted with json, doesn't work as expected. I'm reporting as an edge case, but it's very hard to reproduce. Thanks anyway. New build for my MQTT-contrib incoming.
-
Strange behavior for MQTT templates using payload and attributesI'm re-writing my shelly_scenecontroller mqtt template because I added a new pushbutton and I had strange results. Basically, in the last couple of days, it fired itself, because of the way the logic works. Everytime I'm pushing a button, an "S" is sent as the event, so the
button.statenever changes. I'm looking forbutton.sinceto determine if the button is pressed again.
That's good, but everytime a poll is done, thebutton.sinceattribute is updated, because it is tied totime().
So, I introduced the use of
event_cntfrom the payload, comparing the value to the stored one, in order to understand if it has been pushed again, or, in general, the number of times the button is pushed.
Updated template:events: "shellies/%topic%/input_event/%channel%": - attribute: "value_sensor.value" json_payload: true expr: "float(payload?.event_cnt)" - attribute: "button.since" json_payload: true expr: > entity.attributes?.button?.since == null || float(payload?.event_cnt) != entity.attributes?.value_sensor?.value ? time() : entity.attributes.button.since - attribute: "scene_activation.since" # just copy button.since expr: "entity?.attributes?.button?.since" - attribute: "button.state" json_payload: true expr: > payload?.event == "S" ? "single" : payload?.event == "SS" ? "double" : payload?.event == "SSS" ? "triple" : payload?.event == "L" ? "long" : "unknown" - attribute: "scene_activation.scene_id" json_payload: true expr: "payload?.event" - attribute: "x_mqtt_device.online" expr: trueThis should work, but instead I have this value:
and that's beyond strange and I can't honestly figure it out. @toggledbits any hint is appreciated. Thanks.
-
[Reactor] Variables not updating correctly in latest-25201-2aa18550@toggledbits I have a couple of routines (previously working OK) that are checking for various things based on the hour we're in.
The variable code is like this one:
d = dateparts(), (d.hour >= 20 && d.hour <= 23)I remember we've been told that this would not work in previous builds (but it did), but it's not really working now. It was false at 20 (the rule is triggered every 30 minutes when dark), and after I pressed play it went to true. I changed it with a script action and it's working now. But I'm reporting as an edge case, because I'm not sure it is supposed to work with the new behavior. Nothing else to report ATM. Thanks for the effort!
-
[Reactor] Variables not updating correctly in latest-25201-2aa18550So far, so good. Everything seems to be OK atm. I'll report in case of problems.
-
[Reactor] Variables not updating correctly in latest-25201-2aa18550@toggledbits said in [Reactor] Variables not updating correctly in latest-25201-2aa18550:
Just a tip, a more efficient way to write this:
OMG, very old rules, isn't it? Thanks, I fixed it.
-
[Reactor] Variables not updating correctly in latest-25201-2aa18550yep, it seems to be related (in general) to variables not being evaluated at startup. Here's a screenshot from a daily rule that it's setting a couple of things, including a virtual binary sensor for Christmas from a local variable:
After re-setting the rule, the expression got re-evaluated and the error went away. @toggledbitsEDIT. a similar one + logs
This one, instead, every time is evaluated gives the error.
[latest-25248]2025-09-11T07:19:37.602Z <Rule:ERR> Lights-Christmas-Off (rule-kwv6wdpw in Lights-Outdoor): error evaluating expression specialdays: [Error] Object does not exist [-] [latest-25248]2025-09-11T07:19:37.603Z <Rule:ERR> Full expression: t = time(), m = dateparts(t).month, d = dateparts(t).day, (m == 12 && d == 24) || (m == 12 && d == 25) || (m == 12 && d == 31) || (m == 1 && d == 1) || (m == 1 && d == 5) || (m == 1 && d == 6) [latest-25248]2025-09-11T07:19:37.604Z <Rule:CRIT> Error: Object does not exist [-] Error: Object does not exist at GlobalExpression.getInstance (/opt/reactor/server/lib/GlobalExpression.js:160:27) at _0x1ec9e7._func.<computed> [as _ref] (/opt/reactor/server/lib/Rule.js:848:69) at _resolve (/opt/reactor/common/lexp.js:1385:27) at _run (/opt/reactor/common/lexp.js:1429:31) at /opt/reactor/common/lexp.js:1697:33 at Array.forEach (<anonymous>) at _run (/opt/reactor/common/lexp.js:1696:28) at _run (/opt/reactor/common/lexp.js:1604:33) at _run (/opt/reactor/common/lexp.js:1438:34) at /opt/reactor/common/lexp.js:1425:29 [latest-25248]2025-09-11T07:19:37.627Z <Rule:INFO> Lights-Christmas-Off (rule-kwv6wdpw in Lights-Outdoor) evaluated; rule state transition from NULL to RESET! [latest-25248]2025-09-11T07:19:37.638Z <Rule:INFO> Lights-Christmas-Off (rule-kwv6wdpw in Lights-Outdoor) started -
[Reactor] Variables not updating correctly in latest-25201-2aa18550Ok, I got a bunch of errors at restart because of failed references in almost all variables - now it seems to be OK and variables are updated. I'm observing a couple of rules I haven't migrate yet - and, at this point, I'll not migrate - where I used to old trick that @gwp1 surfaced (and that I used without making it a rule). always seems to be OK.















