Thanks to @toggledbits for adding a custom CSS. I've started doing a darker Reactor style.
Here's the file: https://gist.github.com/dbochicchio/825098ac13b7f8cac22012eae37ff7ce
A couple of things are still too bright and I'll eventually catch-up. Just place it under your /config directory, naming the file as customstyles.css. Hard refresh your browser.
Hi
I have just connected a bunch of EzloPi controllers to MSR to import some ESP based devices etc.
They all seemed to have worked and imported in to MSR apart from I have one missing device. It is a Digital Gas Sensor device.
This is how that device looks in the Ezlo API.
Devices Info:
_id: "10696001" deviceTypeId: "ezlopi" parentDeviceId: "10696000" category: "level_sensor" subcategory: "" gatewayId: "457a5069" batteryPowered: false name: "Gas Sensor Digital" type: "sensor" reachable: true persistent: true serviceNotification: false armed: false roomId: "" security: "no" ready: true status: "idle" parentRoom: true protectConfig: "default"Items Info:
_id: "20696001" deviceId: "10696001" hasGetter: true hasSetter: false name: "smoke_density" show: true valueType: "substance_amount" scale: "parts_per_million" value: 2.7472610473632812 valueFormatted: "2.75" status: "idle"There is also an Analog Gas sensor that one did import in to MSR OK.
68d63dab-b871-4f44-912b-cf6e0b9eb4c6-image.png
Devices Info:
_id: "10696000" deviceTypeId: "ezlopi" parentDeviceId: "10696000" category: "security_sensor" subcategory: "gas" gatewayId: "457a5069" batteryPowered: false name: "Gas Sensor Analog" type: "sensor" reachable: true persistent: true serviceNotification: false armed: false roomId: "" security: "no" ready: true status: "idle" parentRoom: true protectConfig: "default"Items Info:
_id: "20696000" deviceId: "10696000" hasGetter: true hasSetter: false name: "gas_alarm" show: true valueType: "token" enum: 0: "no_gas" 1: "combustible_gas_detected" 2: "toxic_gas_detected" 3: "unknown" valueFormatted: "no_gas" value: "no_gas" status: "idle"And this is how this MQ2 Gas Sensor looks like on their dashboard:
Digital
cb77dfa3-4af5-4d06-9635-89207a716a89-image.png
Analog
4fb4da1b-e946-4b89-876c-bcd9f5699b6c-image.png
They have an EzloPi website here you can create your own sensor projects using ESP boards, which is very interesting stuff!
And I just wrote on the Ezlo forum here, how to connect an EzloPi controller to MSR.
THANKS.
Build 21228 has been released. Docker images available from DockerHub as usual, and bare-metal packages here.
Home Assistant up to version 2021.8.6 supported; the online version of the manual will now state the current supported versions; Fix an error in OWMWeatherController that could cause it to stop updating; Unify the approach to entity filtering on all hub interface classes (controllers); this works for device entities only; it may be extended to other entities later; Improve error detail in messages for EzloController during auth phase; Add isRuleSet() and isRuleEnabled() functions to expressions extensions; Implement set action for lock and passage capabilities (makes them more easily scriptable in some cases); Fix a place in the UI where 24-hour time was not being displayed.Hi @toggledbits,
I have lots of logs with this:
<Engine:ERR> Assignment to alarm ignored -- expression-driven global cannot be set by assignmentAny hints to where look at to avoid this? Thanks.
A couple of things for you @toggledbits, since you mentioned that this release has new features and some tweaks are expected.
Local expressions cannot be deleted. Pushing the X button has no effect for me.
When cloning an entity action, the result is strange (first is cloned one, second is the original action):
a92ea094-9e2c-4aaa-bf47-2d07a6ffdbd0-image.png
When changing the action on the cloned element, the params are added to the original one. See screenshot:
92ac3011-83c8-466b-bd23-47d483ad7a52-image.png
Dark theme has a couple of strange contrasts. One is visible in the previous screenshots (white text on yellow background). Another one is in groups (blue text on blue background):
9b3c4988-53ef-44e6-9672-30e744cacb75-image.png
Overall, I found blue, yellow, red and green (in buttons and forms) to be too bright.
On the bright side:
I love the new script action: thank you! The dark theme is a great start to avoid getting blinded at night I promise I'll try very soon the new features around actions. Thanks!@toggledbits
I just upgraded to version MSR 24293, bare metal running on Fedora. Upon restart, I am getting a error banner:
I followed the new directions about npm
npm i --no-save --no-package-lock --omit dev
Any idea what the issue is?
Seems like switching the UI to the newly added dark mode (thank you for this) does nothing. The UI stays in light mode and only a few buttons turn into dark mode (see screenshot)
Things I have tried:
Hard refresh
Different browser
Different computer
Restarting Reactor
Failed troubleshooting attempts:
No errors in Chrome console
No relevant errors in Reactor log (can still PM the full log file)
Reactor version: latest-24293-ea42a81d
Hardware: Odroid N2+
Linux version: Ubuntu 24.04.1 LTS
3df2806f-9146-485b-9ec1-d056e91cefe5-image.png Dark mode enabled
ff823023-c079-4684-b01f-d6ac6527d31a-image.png Light mode enabled
Good morning,
I have a service MQTT service that needs a restart occasionally. The add-on (Smartbed MQTT) is for the smart bed base for my bed. It has a "safety light" that I can control from HAAS & MSR as a light entity, and also moves the head of the bed to a preset at bedtime, and then lies it back flat in the morning The problem is, from time to time, the light becomes "unavailable" Restarting from the Add-ons tab in HAAS always fixes it, but I should be able to detect when it happens when "light.tempur_pedic_safety_lights" is not true or false, i.e., unavailable.
What I don't know how to do is how to restart that service. Does anybody have experience in restarting add-ons from MSR?
Running:
Reactor (Multi-hub) latest-24212-3ce15e25 ZWaveJSController [0.1.24232]HAAS:
RPi5-64 (8GB) Core 2024.7.3 Supervisor 2024.08.0 Operating System 13.0 Frontend 20240710.0Hi!
Is it possible to generate two additional log files, the first being the replica of what is displayed on screen by the Rule History widgets and the other with Recently Changed Entities?
And could I configure the generation of one file per day, and delete the older ones? For example, store the last 5 days?
And being more ambitious, does Windget have an icon to open these TXT files in the navigated?
Well, we're approaching Christmas, so here's my request to Santa Claus @toggledbits 🙂
Hi @toggledbits
I'm working on a controller to generate llm response from a prompt in reactor. I have http response coming thru an http request action at the moment, capturing the response inside a local variable. So, it's practically sync.
I want to create a controller, so I don't have to rely on a proxy (and have a simpler architecture), and duplicate absurd http actions, but AFAIK in the current implementation, actions are async only. But if I have multiple requests going on, I cannot be sure what it's really inside an attribute. I also thought that something like a correlation id when sending the request could be used to identity multiple responses, but I wanted to double check with you before starting with something too complicated. I also noticed that some actions in home assistant (ie forecast) are sync and I'm wondering if you have any plan or hint to address this situation. Thanks.
Thanks.
@togglebits I am curious as to why the tilt_sensor.state (primary) = NULL. I believe it should show true or false. I have to use binary_sensor.state instead in my rules.
Again, not sure if this is related to Reactor/ZwaveJSController implementation or the actual Z-Wave JS UI docker version. I have copied, below, the attributes of the tilt sensor in hopes it can help.
Thanks in advance.
Reactor version 23302
ZWaveJSController version 23254
Z-Wave JS UI version 9.3.0.724519f
zwave-js version 12.2.3
@toggledbits I have noticed after upgrading both Reactor and ZWaveJSController to version 24257 that two of my devices/entities, TILT-ZWAVE2.5-ECO and Zooz ZSE18, had their entity re-named in an unusual way and also appears to be duplicated.
Reactor version 24257
ZWaveJSController version 24257
Z-Wave JS UI version 9.18.1
zwave-js version 13.2.0
Vestibule Motion Sensor State attributes/partial screenshot of entities it created. All entities have the same attributes.
motion_sensor.state=true x_zwave_values.Notification_Home_Security_Motion_sensor_status=8 zwave_device.capabilities=[113] zwave_device.endpoint=0 zwave_device.failed=null zwave_device.manufacturer_info=null zwave_device.node_id=23 zwave_device.valueId=[113,"Notification","Home Security","Home Security","Motion sensor status","Motion sensor status"] zwave_device.version_info=nullTilt Sensor Door State and Tilt Sensor Door State Simple attributes/partial screenshot of entities it created. All entities have similar attributes with exception of x_zwave_values.Notification_Access_Control_Door_State = 22 or 23.
tilt_sensor.state=true x_zwave_values.Notification_Access_Control_Door_state=22 zwave_device.capabilities=[113] zwave_device.endpoint=0 zwave_device.failed=null zwave_device.manufacturer_info=null zwave_device.node_id=24 zwave_device.valueId=[113,"Notification","Access Control","Access Control","Door state","Door state"] zwave_device.version_info=null tilt_sensor.state=true x_zwave_values.Notification_Access_Control_Door_state_simple=22 zwave_device.capabilities=[113] zwave_device.endpoint=0 zwave_device.failed=null zwave_device.manufacturer_info=null zwave_device.node_id=24 zwave_device.valueId=[113,"Notification","Access Control","Access Control","Door state (simple)","Door state (simple)"] zwave_device.version_info=null tilt_sensor.state=false x_zwave_values.Notification_Access_Control_Door_state=23 zwave_device.capabilities=[113] zwave_device.endpoint=0 zwave_device.failed=null zwave_device.manufacturer_info=null zwave_device.node_id=24 zwave_device.valueId=[113,"Notification","Access Control","Access Control","Door state","Door state"] zwave_device.version_info=null tilt_sensor.state=false x_zwave_values.Notification_Access_Control_Door_state_simple=23 zwave_device.capabilities=[113] zwave_device.endpoint=0 zwave_device.failed=null zwave_device.manufacturer_info=null zwave_device.node_id=24 zwave_device.valueId=[113,"Notification","Access Control","Access Control","Door state (simple)","Door state (simple)"] zwave_device.version_info=nullI'm slowly migrating all my stuff to MQTT under MSR, so I have a central place to integrate everything (and, in a not-so-distant future, to remove virtual devices from my Vera and leave it running zwave only).
Anyway, here's my reactor-mqtt-contrib package:
Contrib MQTT templates for Reactor. Contribute to dbochicchio/reactor-mqtt-contrib development by creating an account on GitHub.
Simply download yaml files (everything or just the ones you need) and you're good to go.
I have mapped my most useful devices, but I'll add others soon. Feel free to ask for specific templates, since I've worked a lot in the last weeks to understand and operate them.
The templates are supporting both init and query, so you have always up-to-date devices at startup, and the ability to poll them. Online status is supported as well, so you can get disconnected devices with a simple expression.
Many-many thanks to @toggledbits for its dedication, support, and patience with me and my requests 🙂
Hi @toggledbits.
After a couple of weeks, I noticed that my Remotec zrc90 isn't working as expected.
Scenes are working in ZWaveJS, but this device has a strange behavior: the scene change, but then it's set again to null. In Reactor, this remains null:
battery_power.level=0.7 battery_power.since=1725817957361 x_debug.dt={"description":"Scene master 8 button remote","model":"BW8510/ZRC-90US","default_name":"Scene master 8 button remote","manufacturerId":21076,"productType":0,"productId":34064} x_zwave_values.Battery_isLow=false x_zwave_values.Battery_level=70 x_zwave_values.Central_Scene_scene_001=null x_zwave_values.Central_Scene_scene_002=null x_zwave_values.Central_Scene_scene_003=null x_zwave_values.Central_Scene_scene_004=null x_zwave_values.Central_Scene_scene_005=null x_zwave_values.Central_Scene_scene_006=null x_zwave_values.Central_Scene_scene_007=null x_zwave_values.Central_Scene_scene_008=null x_zwave_values.Central_Scene_slowRefresh=null x_zwave_values.Manufacturer_Specific_manufacturerId=21076 x_zwave_values.Manufacturer_Specific_productId=34064 x_zwave_values.Manufacturer_Specific_productType=1 x_zwave_values.Version_firmwareVersions=["1.1","1.1"] x_zwave_values.Version_hardwareVersion=3 x_zwave_values.Version_libraryType=2 x_zwave_values.Version_protocolVersion="4.5" x_zwave_values.Wake_Up_controllerNodeId=1 x_zwave_values.Wake_Up_wakeUpInterval=0 zwave_device.capabilities=[91,114,128,132,134] zwave_device.endpoint=0 zwave_device.failed=false zwave_device.generic_class="Remote Controller" zwave_device.impl_sig="24242:1:22315:1" zwave_device.is_beaming=false zwave_device.is_listening=false zwave_device.is_routing=false zwave_device.is_secure=false zwave_device.manufacturer_info=[21076,1,34064] zwave_device.max_data_rate=null zwave_device.node_id=154 zwave_device.specific_class="Simple Remote Control" zwave_device.status=2 zwave_device.status_text="awake" zwave_device.version_info=[null,"1.1"] zwave_device.wakeup_interval=0Anything I could look at? Thanks.
Hi, @toggledbits!
I have a question about the execution behavior. See the code below, and I'll explain the situation.
12957c3e-ff06-46c9-929d-b53f936665df-image.png
This is a routine that, at a certain point, determines that the desktop on which the VM hosting the Reactor is located receives an instruction to perform a shutdown (Shell Command).
When this happens, the desktop is turned off, and then Hubitat detects by a "ping" that the VM has been down, waits 15 seconds, turns off the power to this desktop, and then 15 seconds later turns on the desktop with the Reactor VM again.
After restarting the desktop, the VM is loaded, and the Reactor is triggered. Still, the following problem occurs: I expected that when the rule was continued to be executed again, the next step would be executed, that of the 900-second delay after shutdown, but the Shell command is executed again, and then it goes into a loop, the rule does not advance.
To break the loop, I first have to make the VM not load, change the desktop password, and then start the VM. In this case, Reactor generates an error when trying to execute the Shell Command because of the invalid password and then finishes the routine following the 900 delay step.
b58b0d4a-d6c1-4fe3-bab7-4222acea9607-image.png
Is my interpretation that when it returns, the routine should continue to the next step that has not yet been executed incorrectly? Or does Reactor, through the shutdown command, interpret that it hasn't finished this step and keep trying, which is the correct reaction?
Thanks for clarifying.
Hi @toggledbits ,
I'm slowly moving my ZWave network from Vera to ZWaveJS. I successfully cloned my ZWave network using a spare Vera Edge (a new post for the community later when I'll be fully back from vacation) and I'm testing a couple of things before moving everything to ZWaveJS.
In the meanwhile, I have a couple of venetian blinds connected to Fibaro Roller Shutters 2 (FGR222) and I'm using some proprietary ZWave commands to control the tilt position, that right now I'm sending via Vera (with some code from the old place, messing with this):
af7f883c-f49e-419c-a2fe-8669572e3792-image.png
The ZWaveJS values are reported via this:
x_zwave_values.Manufacturer_Proprietary_fibaro_venetianBlindsPosition=0 x_zwave_values.Manufacturer_Proprietary_fibaro_venetianBlindsTilt=0I hope there's a way to expose a separate device to control the tilt position directly, without doing the mess I'm doing now. Let me know if you need some files. Thanks.
As per @toggledbits request, new topic.
Position and cover commands not working and position/cover attributes are incorrect. Dimming is OK.
cover.state=null dimming.level=1 dimming.step=0.1 energy_sensor.units="kWh" energy_sensor.value=0.41 position.value=null power_sensor.units="W" power_sensor.value=0 power_switch.state=true x_debug.dt={"entity_class":"Cover","match":"deviceClass.generic.key=17;deviceClass.specific.key=6","capabilities":["cover","toggle","position"],"primary_attribute":"cover.state"} x_zwave_values.Meter_reset=null x_zwave_values.Meter_value_65537=0.41 x_zwave_values.Meter_value_66049=0 x_zwave_values.Multilevel_Switch_Down=null x_zwave_values.Multilevel_Switch_Up=null x_zwave_values.Multilevel_Switch_currentValue=99 x_zwave_values.Multilevel_Switch_duration="unknown" x_zwave_values.Multilevel_Switch_restorePrevious=null x_zwave_values.Multilevel_Switch_targetValue=99 x_zwave_values.Notification_Power_Management_Over_current_status=0 x_zwave_values.Notification_System_Hardware_status=0 x_zwave_values.Notification_alarmLevel=null x_zwave_values.Notification_alarmType=null zwave_device.capabilities=[38,50,113] zwave_device.endpoint=1 zwave_device.failed=null zwave_device.impl_sig="24225:1:22315:1" zwave_device.manufacturer_info=null zwave_device.node_id=148 zwave_device.version_info=nullThanks!
Change in Plans (Don't Panic)
-
I have an Ezlo Plus and an Ezlo Atom. On the Elzo Plus I have lots of devices on there, however most of them are emulated virtual devices mirrored from the "real" devices on my production Vera Plus, this was done using Rene's 3rd party Vera to Ezlo bridge plugin.
I do also have some real Z-Wave devices paired directly to the Ezlo Plus hub.
I would be happy to help test this new MSR interface and I am very happy to see you have decided to make it. This is a massive boost for Ezlo themselves in my opinion as they currently have no native logic rules engine of their own.
The "rule sets" in the beta Ezlo web GUI are basic and pretty much Vera scenes you would find in the Vera mobile app and only have a little improvement thus far, for example we now have basic AND / OR however in these scenes, which we never had on the Vera firmware hubs.
PM me if you want direct access to my Ezlo Plus controller happy for you to poke around and have a look at it.
-
@toggledbits I bought 2 test controllers a while back, and I would be more than happy to help any way I can.
Do you have any idea what use case/device interaction scope would look like to give you the data you need?
I am pretty flexible over here...
-
@toggledbits I’m so thankful for the time and effort you put into MSR so the least I can do is give something back. I’d love to participate with my Ezlo Plus running about 20 zigbee devices in production, the logic is already in MSR so switching to a new interface would be easy for testing.
-
Thanks to all who have replied/volunteered. Variety of devices is key, so anything and everything is helpful. As you may have seen in these forums, even several months into fairly stable integrations for the other hubs, devices keep popping up with little exceptions or gaps in completion. More data is better is less. All of the interfaces drop files in the
logs
folder at the moment that I can use for fairly good diagnostics and forensics, so that theme will continue and get some embellishments for eZLO.I expect the first wave of testing will just be "look and see"... do the devices come in as correct MSR entities, do they have their correct attributes, and are they correctly identified and, where appropriate, assigned sensible system capabilities (in addition to extension capabilities of the
x_ezlo_etc
variety). Startup configuration is also always a first-level challenge, and in this case, we'll have two different options: secured access (login through eZLO's cloud to get a local access token), and unsecured access (secured access can be disabled on the hub, eliminating the need for cloud login/token requests to get local access to the hub). Login + attributes will enable all of the rule/condition capabilities automatically. The second wave will follow immediately (as in with the next breath) to see that actions work and to what extent they need extension or repair, and that completes reactions. Things converged pretty quickly with the other three interfaces, so I'm hopeful this can be highly functional in short order. -
I have a VeraPlus (daily driver), another VeraPlus (used/spare), an eZLO Atom 2.0 (unused), Vera Edge running the LInux f/w (unused), an eZLO Plus (beta testing / unused) and an old Vera 1 (connected / idle) divided among two different residences.
@toggledbits , surely others have made a similar offer by now, so I presume you are "set" for want of controllers -- but IF you require any of these for use in-house, just ask and I'll happily ship/donate.
Likewise, IF you need me to test some particular thing out from my side (Synology NAS > Docker > MSR > hub(s)), also just ask. Who knows, it might be the first/last thing I ever do with eZLO hardware, which otherwise is going in the trash at some point.
Glad you made this decision; I was concerned that you might inadvertently wind up with spare time on your hands. Oh, and THANK YOU for so thoughtfully grandfathering those who've toiled in the trenches alongside you lo these many weeks and months. For that you will not be sorry.
- Libra
-
@librasun I actually have a pretty big fist full of controllers myself. It's not really controllers I'm wanting for, it's devices and environments. The more hands this touches that aren't mine, the more things break, and the better things get for it. Hold on to them!
@librasun said in Change in Plans (Don't Panic):
Who knows, it might be the first/last thing I ever do with eZLO hardware, which otherwise is going in the trash at some point.
I absolutely doubt most users of the Atom or PlugHub would be a user of MSR (except in some fringe cases, like for an out-building). But those eZLO Plus's (in full or prototype/skeletal form) could be useful. They seem to have a similar architecture to the Raspberry Pi 4. Maybe once I get the ZWaveJS interface fleshed out (that's also been in the works), I can just publish an MSR replacement firmware for the Plus hardware. You know, for science.
-
@toggledbits said in Change in Plans (Don't Panic):
can just publish an MSR replacement firmware for the Plus hardware. You know, for science
So would it also act as a Z-Wave radio?
Or would you still need another second hub like Vera or the Ezlo or Hubitat etc, to act as the Z-Wave controller?
-
ZWaveJS would just talk to the on-board ZWave chip (via a serial/USB interface). Vera works the same way. So, yes, it would function as the ZWave radio in addition to being the rules engine.
-
So an all in one controller then!
Might have to get my hands on another Ezlo Plus hub, so I can test both setups, native Ezlo or MSR with Z-Wave JS.
-
@toggledbits said in Change in Plans (Don't Panic):
So, yes, it would function as the ZWave radio in addition to being the rules engine.
Looking forward to this, so I could add openluup to the mix and call it a day
-
I have as many before me, a Ezlo Plus laying around, and collecting dust. I've been waiting for a good reason to use it. When I got the Ezlo Plus, and I heard of the new Z-wave standard with better range I went really hopeful. Combined with MSR it looked like a winning concept. But the lack of stabilty, a working UI, and non-beta made me loose interest. If I can contribute in any way, I'd be honoured.
-
While I think a complete replacement firmware would be a fun exercise (and very possibly useful), we already have shown with openLuup and MSR that a Vera on its own is pretty stable in a reduced role as a ZWave radio and little else. So far my testing with the eZLO hub is yielding similar results, with the added benefit that it's demonstrably more stable when ZWave devices become unreachable (the Achilles Heel of current Vera firmware). I suspect we'll find that MSR running on a Pi, NAS, or other host against an eZLO hub still on its native firmware gives almost all of the benefits, without the need to replace the firmware on the hub itself. It will be fun to try it both ways, but I suspect that the simplest solution is going to be the best. And it will be here in a few days, where figuring out the firmware replacement will likely take a good bit more effort (and so is not really a goal, currently, just more of an experiment for a future weekend).
-
Hi,
I have already commented on the other forum that my VeraPlus was saved from an incinerator or the tires of my car a few times, thanks to Reactor, and gained new life with MSR, so Patrick you know that you have in my person a collaborator (with limitations of technical knowledge), but a person who likes to explore and especially give suggestions that help users.
But, in my humble opinion, I will not make the mistake of buying an eZLO, I am seriously considering investing now in a Hubitat because I am tired of my VeraPlus being incompatible with any ZegBee or other devices with S2. The eZLO developers should follow the same line of not listening to the 3PP, the independent developers, and go back to repeating Vera's mistakes in my opinion.
This way I recognize your huge effort for the HA community, I am sure you have done a lot but in this new eZLO endeavor I will not be able to help, count me full on MSR for VeraPlus and Hubitat.
-
My unwillingness to base my own HA on eZLO is what delayed this eventuality, so I completely understand. There's a community that needs this, though, and they are my community from the Vera days. While we may be of the same mind with respect to the future, it's clear that a great many people are still clinging to hope. If they want to stay and wait it out (now nearly three years in the making and not near completion, IMO), at least I can throw them a lifeline to make straddling the Vera-eZLO divide less painful.
-
I have to say my Ezlo Plus is extremely fast as far a Z-Wave communications are concerned. I don't have many Z-Wave devices directly paired to the Ezlo hub yet, but the ones that are, are very quick !
I setup a Z-wave door contact sensor on a walk in cupboard door and a Z-Wave light bulb and two scenes created on the Ezlo Plus, one for open and one for close.
The bulb turns on instantly and I mean instantly as soon as I open the door even just a little bit when it breaks the door contacts connection.
Yes the Ezlo software is still very lacking and buggy and all still being developed.
But we have MSR support coming for Ezlo hubs soon and Bill the Home Remote dashboard app developer told me only yesterday he is still planning to support Ezlo hubs and it will hopefully happen this summer. So with MSR and Home Remote what other interfaces do you need?
The Ezlo hub can act just as a Z-Wave radio as my Vera Plus does now today.
I am in no rush to replace my production Vera Plus but I will likely one day migrate all the devices to the Ezlo hub, especially if it works also well with Zigbee 3.0 devices, which Vera hubs do not.