Re: [mh] mqtt_discovery
Brian M <[email protected]> Thu, 19 Feb 2026 07:57:36 -0800
| Newsgroups | gmane.comp.misc.misterhouse.user |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --===============8772937703321769792== Content-Type: multipart/alternative; boundary="------------nvrLZXvhlS0p3e0mZefKGcBm" Content-Language: en-US This is a multi-part message in MIME format. --------------nvrLZXvhlS0p3e0mZefKGcBm Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Dave, I expect to be getting back into this today. In particular, I will probably have an alternative for you to consider regarding the implementation of MQTT_RAWITEM by EOD. After that I'll see if I can get some more sample discovery messages from my sensor, as I've just ordered another one. More generally, clearly we're going to get devices that have multiple components, multiple sensors in this specific case. If they come in as separate discovery messages and get created as separate MH devices that's fine. If they come in as a single discovery message, we still need a way to access any or all of them, so maybe generate multiple MH devices. I'm guessing that you're already on top of that, though. As an aside for anyone looking into ZWave devices, I've been using the Zooz line and I'm really pleased with them (ref: www.getzooz.com). Most of the in-wall units use terminal connections instead of pigtails, so no extra wire-nuts in the box. The indicator LEDs are color programmable, which I use to provide feedback to the user. Most of them are pretty configurable according to your needs, whereas a lot of other products more of the "This is how it works, take it or leave it" philosophy. A tip though, they're a lot cheaper at what is apparently Zooz's retail operation, thesmartesthouse.com than elsewhere. For example, a basic ZWave on/off switch is $42 on Amazon, but only $29 at thesmartesthouse.com. -B. On 2/19/26 06:09, Dave Neudoerffer wrote: > In fact, the new HA device discovery that I am working on, does allow > publishing all state objects in a single discovery message. However, > MH doesn't support an object with multiple state items -- it is a > single item at a time. Which is also the way HA was until a couple > years ago. Most discovery info I have seen is one mqtt discovery > message per state object. The objects can be tied together with > device information that is in the discovery message. HA will group > the objects together into a "device". Each object can have an > "entity_category". You can see in your closet sensor discovery above, > that the entity_category for the led_indicator is config. In HA, it > would show up in a config section of the device. > > Actually, this discussion has helped me significantly. I am going to > take a slightly different tact with how I publish the device info from > MH -- more like ZWave JS is doing. > > If there are objects that ZWave JS is putting out, that aren't being > handled right by MH, let me know. Often it is a simple enhancement to > handle them. > > Dave > > On Tue, Feb 17, 2026 at 10:34 PM Brian M > <[email protected]> wrote: > > Great, Dave. I've got a project in flight right now, but I should > be able to check those out later this week or this weekend. I'm > anxious to see how those do. > > You're right that the ZSE11 is a multi-sensor device, specifically > motion, light, temperature, and humidity. And yes, there's an LED > that can be configured. Not having studied MQTT Discovery, I'm > surprised to learn that a device doesn't publish all it's > discovery info at once. I'll try to capture some samples of the > other discovery data items for the device for you. > > As for the HA interface ... I've gone through a curious about-face > on my home automation plans. My plan had been to migrate from MH > and Insteon to OpenHab and Z-wave. I'd probably never complete > that migration however, give the size of my MH code base. So like > a lot of others on this mailing list, I figured I'd get to OH > handling the devices and MH handling the logic side, in my case > with MQTT as the middleman. With the advent of Zwave-JS-UI, > however, I'm far less interested in OpenHab, as it's ZWave support > was my primary interest. So no I'm looking at MH running the > Insteon devices that are still around and talking to Zwave-JS-UI > via MQTT. OH will remain, but only for a few stray kinds of > devices that it understands, like my Tapo strip lights, and > perhaps Matter in the future. I'm in favor of having as few > components as possible to limit maintenance and brainpower > demands, so I'm going to try to hold off on HA for now. I'm not > opposed to it, I just need a demand I can't solve with what I > already have. > > Some of the rest of the of your e-mail is going to take more study > before I can respond, but is always appreciated and always solid > information. You're a great asset for the community. > > Best, > -B. > > On 2/17/26 18:39, Dave Neudoerffer wrote: >> And you will need read_table_A.pl for the new MQTT_RAWITEM... >> >> Dave >> >> On Tue, Feb 17, 2026 at 6:55 PM Dave Neudoerffer >> <[email protected]> wrote: >> >> Hey Brian and Howard, et all, >> >> So, Brian, I got your first 2 problems fixed. The set('3%') >> was a bug when the state and brightness topics are the same >> -- fixed. The other problem was that the simple template >> processing I put in didn't handle a template of the form {{ >> <value_true> IF <condition> ELSE <value_false>}}. I added >> some support for that specific template form. >> >> Your sensor problem above is weird. The discovery message >> bills the door sensor as a switch. That sort of makes sense >> -- would send ON and OFF when the door is opened and closed. >> But the messages that get sent don't match the discovery info >> at all. A quick search (thanx gemini) would indicate that >> zwave JS is likely defining multiple mqtt devices for the >> sensor. I think that the specific discovery message you sent >> is actually a configuration object that you can use to >> control the behaviour of the LED on device. There must be >> other discovery objects as well for the sensor. It looks >> like -- door_state=22 means open and door_state=23 means >> closed -- and a web search confirms that. The *discovered >> device for door_state* should be able to handle the messages. >> >> If not, you could use the new MQTT_RAWITEM that I just added >> to define a binary_sensor to handle the messages using hand >> coded discovery info: >> MQTT_RAWITEM, Downstairs_Hall_Closet_Sensor, mqtt_discovery2, >> app/zwave-js-ui/config/binary_sensor/Downstairs_Hall-Closet_Sensor/closet_door_sensor/config, >> >> {"value_template":"{{ "ON" if value_json.value==22 else "OFF" >> }}","state_topic":"app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state"} >> (I have tried this definition with the messages above and >> they are processed correctly into on/off for the >> binary_sensor, but again, if you can find the discovery >> message for the actual door_state, it should work too.) >> >> >> *<IMPORTANT POINT>* >> This conversation does raise an important point. Almost all >> mqtt discovery stuff published by devices and other software, >> is specifically setup to be consumed by Home Assistant. I >> HAVE NOT implemented the entire Home Assistant discovery >> language in Misterhouse, nor do I intend to. I am sure that >> Home Assistant would process these zwave JS discovery >> messages very well. As per Howards comments earlier, if you >> were to setup Home Assistant, the devices would show up >> there. You could then use the HA_Item.pm module in >> Misterhouse to pull in the Home Assistant entities that you >> want and run your misterhouse logic against those items. >> This is actually easier to setup than it sounds. >> >> I have attached the latest mqtt files. There are a lot of >> changes here, because this is my working version for >> optionally supporting the new HA device discovery variation >> of mqtt discovery. I am running this code on 4 MH instances, >> and all seems good so far. I will submit a pull request >> soon. You need to replace all 3 in your installation (take >> backup copies first :-). If you have any problems, give me a >> shout. >> >> *<ASIDE>* >> The reason I have implemented the HA device discovery >> variation of mqtt discovery is that I have been trying out >> using the matter_bridge to expose devices from HA to matter >> and thus to google (or alexa or apple). The matter bridge >> works easiest if you can put a label on the HA devices that >> you want exposed. However, you can't put labels on raw HA >> entities -- hence putting in the HA device support. Also, I >> still use Misterhouse for hosting my Insteon devices because >> I find the MH support better than HA, and I define all kinds >> of utility switches, scenes, and variables in Misterhouse >> that I expose to HA using mqtt. Exposing those things as >> devices allows me to then expose the HA devices to matter via >> the matter_bridge and control them easily with Google >> home/assistant. It is an alternative to the Google/Alexa >> support in Misterhouse or Home Assistant, which is cloud >> based and a pain to setup. >> >> Dave >> >> On Sun, Feb 15, 2026 at 6:16 PM Brian M >> <[email protected]> wrote: >> >> Here's another one that might make more sense to you than >> to me. I'm using a Zooz ZSE41 door sensor. >> mqtt_discovery.pm <http://mqtt_discovery.pm> produced the >> following code to define it: >> >> MQTT_DISCOVEREDITEM, Downstairs_Hall_Closet_Sensor, >> mqtt_discovery2, >> app/zwave-js-ui/config/switch/Downstairs_Hall-Closet_Sensor/config_switch_1/config, >> {"payload_off":"0","payload_on":"1","value_template":"{{ >> value_json.value >> }}","command_topic":"app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/configuration/endpoint_0/LED_Indicator/set","enabled_by_default":false,"entity_category":"config","state_topic":"app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/configuration/endpoint_0/LED_Indicator","availability":[{"payload_available":"true","payload_not_available":"false","topic":"app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/status","value_template":"{{'true' >> if value_json.value else >> 'false'}}"},{"topic":"app/zwave-js-ui/_CLIENTS/ZWAVE_GATEWAY-zwave-js-ui/status","value_template":"{{'online' >> if value_json.value else >> 'offline'}}"},{"payload_available":"true","payload_not_available":"false","topic":"app/zwave-js-ui/driver/status"}],"availability_mode":"all","device":{"identifiers":["zwavejs2mqtt_0xc92945ec_node19"],"manufacturer":"Zooz","model":"Open/Close >> XS Sensor >> (ZSE41)","name":"Downstairs_Hall-Closet_Sensor","sw_version":"2.30.0"},"name":"Downstairs_Hall_Closet_Sensor","unique_id":"zwavejs2mqtt_0xc92945ec_19-112-0-1"} >> >> >> Here's a door open/door close sequence. >> >> # Initial state: door closed >> >> # Opening door. >> 2026-02-15 15:02:48 [MQTT D1]: mqttserver Rcv'd: R:0 >> T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive' >> M:'{"time":1771196567992,"value":1771196567992}' >> 2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE >> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive >> -- {"time":1771196567992,"value":1771196567992} >> 2026-02-15 15:02:48 [MQTT D1]: mqttserver Rcv'd: R:0 >> T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmType' >> M:'{"time":1771196567993,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}' >> 2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE >> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmType >> -- >> {"time":1771196567993,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"} >> 2026-02-15 15:02:48 [MQTT D1]: mqttserver Rcv'd: R:0 >> T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmLevel' >> M:'{"time":1771196567994,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}' >> 2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE >> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmLevel >> -- >> {"time":1771196567994,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"} >> 2026-02-15 15:02:48 [MQTT D1]: mqttserver Rcv'd: R:0 >> T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state_simple' >> M:'{"time":1771196567995,"value":22,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}' >> 2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE >> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state_simple >> -- >> {"time":1771196567995,"value":22,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"} >> 2026-02-15 15:02:48 [MQTT D1]: mqttserver Rcv'd: R:0 >> T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state' >> M:'{"time":1771196567996,"value":22,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}' >> 2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE >> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state >> -- >> {"time":1771196567996,"value":22,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"} >> 2026-02-15 15:02:48 [MQTT D1]: mqttserver Rcv'd: R:0 >> T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive' >> M:'{"time":1771196568241,"value":1771196568016}' >> 2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE >> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive >> -- {"time":1771196568241,"value":1771196568016} >> >> # Closing door. >> 2026-02-15 15:03:10 [MQTT D1]: mqttserver Rcv'd: R:0 >> T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive' >> M:'{"time":1771196590395,"value":1771196590395}' >> 2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE >> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive >> -- {"time":1771196590395,"value":1771196590395} >> 2026-02-15 15:03:10 [MQTT D1]: mqttserver Rcv'd: R:0 >> T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmType' >> M:'{"time":1771196590396,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}' >> 2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE >> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmType >> -- >> {"time":1771196590396,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"} >> 2026-02-15 15:03:10 [MQTT D1]: mqttserver Rcv'd: R:0 >> T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmLevel' >> M:'{"time":1771196590397,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}' >> 2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE >> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmLevel >> -- >> {"time":1771196590397,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"} >> 2026-02-15 15:03:10 [MQTT D1]: mqttserver Rcv'd: R:0 >> T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state_simple' >> M:'{"time":1771196590398,"value":23,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}' >> 2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE >> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state_simple >> -- >> {"time":1771196590398,"value":23,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"} >> 2026-02-15 15:03:10 [MQTT D1]: mqttserver Rcv'd: R:0 >> T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state' >> M:'{"time":1771196590398,"value":23,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}' >> 2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE >> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state >> -- >> {"time":1771196590398,"value":23,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"} >> 2026-02-15 15:03:10 [MQTT D1]: mqttserver Rcv'd: R:0 >> T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive' >> M:'{"time":1771196590646,"value":1771196590419}' >> 2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE >> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive >> -- {"time":1771196590646,"value":1771196590419} >> >> The fields that indicate the door status don't appear in >> the discovery data that I can see at all. The MH object >> always shows the state to be "on", regardless of the >> actual door open/closed status. >> >> -B. >> >> >> >> >> >> On 2/14/26 11:17, Brian M wrote: >>> Thanks, Dave. That would be great. >>> >>> -B. >>> >>> On 2/14/26 10:42, Dave Neudoerffer wrote: >>>> Thanx for the trace Brian. The discovery topics and >>>> templates being used are slightly different from >>>> anything I have seen before. It shouldn't be too hard >>>> to enhance the MH discovery to handle this. The Jinja >>>> templates are a bit of a nuisance, but I will fudge >>>> something... It will take me a few days to get to this... >>>> >>>> Dave >>>> >>>> On Fri, Feb 13, 2026 at 7:01 PM Brian M >>>> <[email protected]> wrote: >>>> >>>> Thanks, Dave. Mostly I'm in good shape, but I've >>>> got some edge cases. >>>> >>>> My primary problem at the moment seems to be that I >>>> can't set the brightness for my ZWave dimmer >>>> switches via ZWave-JS-UI. The correct MQTT string >>>> in one instance is: >>>> >>>> app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/targetValue/set >>>> >>>> Writing "3" to that MQTT topic (via MQTT-Explorer) >>>> causes the light to come on at 3%, as expected. >>>> However, in MH setting it to 3, '3', or '3%' >>>> results in the light being turned on 100%. >>>> >>>> I can't tell if this is a problem in with the >>>> discovery itself, or the implementation of of >>>> setting the MQTT_DISCOVEREDITEM. Here are some >>>> details: >>>> >>>> The MQTT discovered_item entry: >>>> >>>> MQTT_DISCOVEREDITEM, Upstairs_Landing_Stairs, >>>> mqtt_discovery2, >>>> app/zwave-js-ui/config/light/Upstairs_Landing-Stairs/dimmer/config, >>>> {"command_topic":"app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/targetValue/set","state_topic":"app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/currentValue","state_value_template":"{{ >>>> \"OFF\" if value_json.value == 0 else \"ON\" >>>> }}","brightness_command_topic":"app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/targetValue/set","brightness_scale":99,"brightness_state_topic":"app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/currentValue","brightness_value_template":"{{ >>>> value_json.value >>>> }}","on_command_type":"brightness","supported_color_modes":["brightness"],"availability":[{"payload_available":"true","payload_not_available":"false","topic":"app/zwave-js-ui/Upstairs_Landing/Stairs/status","value_template":"{{'true' >>>> if value_json.value else >>>> 'false'}}"},{"topic":"app/zwave-js-ui/_CLIENTS/ZWAVE_GATEWAY-zwave-js-ui/status","value_template":"{{'online' >>>> if value_json.value else >>>> 'offline'}}"},{"payload_available":"true","payload_not_available":"false","topic":"app/zwave-js-ui/driver/status"}],"availability_mode":"all","device":{"identifiers":["zwavejs2mqtt_0xc92945ec_node259"],"manufacturer":"Zooz","model":"Dimmer >>>> (ZEN72)","name":"Upstairs_Landing-Stairs","sw_version":"4.0.1"},"name":"Upstairs_Landing_Stairs","unique_id":"zwavejs2mqtt_0xc92945ec_259-38-0-currentValue"} >>>> >>>> Relevant log messages (MQTT debug level 2): >>>> >>>> 2026-02-13 15:54:59 [MQTT D2]: Pending >>>> $Upstairs_Landing_Stairs-->set( 3%, , ) cleared >>>> 2026-02-13 15:54:59 [MQTT D1]: unable to >>>> process template >>>> {{"OFF"ifvalue_json.value==0else"ON"}} >>>> 2026-02-13 15:54:59 [MQTT D2]: fishing template >>>> value out of json with '$value = >>>> $value_json->{value}' >>>> 2026-02-13 15:54:59 [MQTT D1]: remote item MQTT >>>> to MH Upstairs_Landing_Stairs set(95%, '') >>>> 2026-02-13 15:54:59 [MQTT D2]: remote item >>>> $Upstairs_Landing_Stairs received message R:0 >>>> T:app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/currentValue >>>> M:{"time":1771026899727,"value":95,"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"} >>>> 2026-02-13 15:54:59 [MQTT D1]: unable to >>>> process template >>>> {{"OFF"ifvalue_json.value==0else"ON"}} >>>> 2026-02-13 15:54:59 [MQTT D2]: fishing template >>>> value out of json with '$value = >>>> $value_json->{value}' >>>> 2026-02-13 15:54:59 [MQTT D1]: remote item MQTT >>>> to MH Upstairs_Landing_Stairs set(95%, 'mqtt') >>>> 2026-02-13 15:54:59 [MQTT D1]: mqttserver >>>> Rcv'd: R:0 >>>> T:'app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/duration' >>>> M:'{"time":1771026899728,"value":{"value":0,"unit":"seconds"},"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"}' >>>> 2026-02-13 15:54:59 [MQTT D2]: UNHANDLED >>>> MESSAGE >>>> app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/duration >>>> -- >>>> {"time":1771026899728,"value":{"value":0,"unit":"seconds"},"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"} >>>> 2026-02-13 15:54:59 [MQTT D1]: mqttserver >>>> Rcv'd: R:0 >>>> T:'app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/targetValue' >>>> M:'{"time":1771026899728,"value":95,"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"}' >>>> 2026-02-13 15:54:59 [MQTT D2]: UNHANDLED >>>> MESSAGE >>>> app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/targetValue >>>> -- >>>> {"time":1771026899728,"value":95,"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"} >>>> 2026-02-13 15:54:59 [MQTT D1]: mqttserver >>>> Rcv'd: R:0 >>>> T:'app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/currentValue' >>>> M:'{"time":1771026899858,"value":95,"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"}' >>>> 2026-02-13 15:54:59 [MQTT D2]: remote item >>>> $Upstairs_Landing_Stairs received message R:0 >>>> T:app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/currentValue >>>> M:{"time":1771026899858,"value":95,"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"} >>>> 2026-02-13 15:54:59 [MQTT D1]: unable to >>>> process template >>>> {{"OFF"ifvalue_json.value==0else"ON"}} >>>> 2026-02-13 15:54:59 [MQTT D2]: fishing template >>>> value out of json with '$value = >>>> $value_json->{value}' >>>> 2026-02-13 15:54:59 [MQTT D1]: remote item MQTT >>>> to MH Upstairs_Landing_Stairs set(95%, 'mqtt') >>>> 2026-02-13 15:54:59 [MQTT D2]: remote item >>>> $Upstairs_Landing_Stairs received message R:0 >>>> T:app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/currentValue >>>> M:{"time":1771026899858,"value":95,"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"} >>>> 2026-02-13 15:54:59 [MQTT D1]: unable to >>>> process template >>>> {{"OFF"ifvalue_json.value==0else"ON"}} >>>> 2026-02-13 15:54:59 [MQTT D2]: fishing template >>>> value out of json with '$value = >>>> $value_json->{value}' >>>> 2026-02-13 15:54:59 [MQTT D1]: remote item MQTT >>>> to MH Upstairs_Landing_Stairs set(95%, 'mqtt') >>>> >>>> >>>> Clearly it's not happy, but I haven't been able to >>>> chase down the root cause. BTW, the "95%" mentioned >>>> in the logs was the switch's existing brightness >>>> level before I tried to change it. >>>> >>>> Hopefully, this is clearer to you than to me. >>>> >>>> -B. >>>> >>>> >>>> >>>> >>>> On 2/13/26 15:08, Dave Neudoerffer wrote: >>>>> You are correct Brian. HA_Item is about mirroring >>>>> home assistant entities. Howard uses HA to host >>>>> most of his devices and MH for automations using >>>>> HA_Items. Without a HA service, HA_Item makes no >>>>> sense. >>>>> >>>>> In implementing mqtt_items, I had a few different >>>>> sources of mqtt devices, but not a huge variety. >>>>> No did not have any zwave2mqtt stuff. I have used >>>>> the zigbee2mqtt stuff. I am actually in the >>>>> process of enhancing the MH discovery stuff to >>>>> handle the new HA device discovery methodology. >>>>> If there is something I can help with, let me know. >>>>> >>>>> Dave >>>> >>> >> > --------------nvrLZXvhlS0p3e0mZefKGcBm Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <div class="moz-cite-prefix">Dave,</div> <div class="moz-cite-prefix"><br> </div> <div class="moz-cite-prefix">I expect to be getting back into this today. In particular, I will probably have an alternative for you to consider regarding the implementation of MQTT_RAWITEM by EOD. After that I'll see if I can get some more sample discovery messages from my sensor, as I've just ordered another one. </div> <div class="moz-cite-prefix"><br> </div> <div class="moz-cite-prefix">More generally, clearly we're going to get devices that have multiple components, multiple sensors in this specific case. If they come in as separate discovery messages and get created as separate MH devices that's fine. If they come in as a single discovery message, we still need a way to access any or all of them, so maybe generate multiple MH devices. I'm guessing that you're already on top of that, though.</div> <div class="moz-cite-prefix"><br> </div> <div class="moz-cite-prefix">As an aside for anyone looking into ZWave devices, I've been using the Zooz line and I'm really pleased with them (ref: <a class="moz-txt-link-abbreviated" href="http://www.getzooz.com">www.getzooz.com</a>). Most of the in-wall units use terminal connections instead of pigtails, so no extra wire-nuts in the box. The indicator LEDs are color programmable, which I use to provide feedback to the user. Most of them are pretty configurable according to your needs, whereas a lot of other products more of the "This is how it works, take it or leave it" philosophy. A tip though, they're a lot cheaper at what is apparently Zooz's retail operation, thesmartesthouse.com than elsewhere. For example, a basic ZWave on/off switch is $42 on Amazon, but only $29 at thesmartesthouse.com. </div> <div class="moz-cite-prefix"><br> </div> <div class="moz-cite-prefix"> -B.</div> <div class="moz-cite-prefix"><br> </div> <div class="moz-cite-prefix"><br> </div> <div class="moz-cite-prefix">On 2/19/26 06:09, Dave Neudoerffer wrote:<br> </div> <blockquote type="cite" cite="mid:CAOFx8LMXMJ9PfGqPNB8mpJzzGKOFeqNNo6-sCwBDXGOcqZ0n8A@mail.gmail.com"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <div dir="ltr">In fact, the new HA device discovery that I am working on, does allow publishing all state objects in a single discovery message. However, MH doesn't support an object with multiple state items -- it is a single item at a time. Which is also the way HA was until a couple years ago. Most discovery info I have seen is one mqtt discovery message per state object. The objects can be tied together with device information that is in the discovery message. HA will group the objects together into a "device". Each object can have an "entity_category". You can see in your closet sensor discovery above, that the entity_category for the led_indicator is config. In HA, it would show up in a config section of the device. <div><br> </div> <div>Actually, this discussion has helped me significantly. I am going to take a slightly different tact with how I publish the device info from MH -- more like ZWave JS is doing. <br> <div><br> </div> <div>If there are objects that ZWave JS is putting out, that aren't being handled right by MH, let me know. Often it is a simple enhancement to handle them. </div> </div> <div><br> </div> <div>Dave</div> </div> <br> <div class="gmail_quote gmail_quote_container"> <div dir="ltr" class="gmail_attr">On Tue, Feb 17, 2026 at 10:34 PM Brian M <<a href="mailto:[email protected]" moz-do-not-send="true" class="moz-txt-link-freetext">[email protected]</a>> wrote:<br> </div> <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div> <div>Great, Dave. I've got a project in flight right now, but I should be able to check those out later this week or this weekend. I'm anxious to see how those do.</div> <div><br> </div> <div>You're right that the ZSE11 is a multi-sensor device, specifically motion, light, temperature, and humidity. And yes, there's an LED that can be configured. Not having studied MQTT Discovery, I'm surprised to learn that a device doesn't publish all it's discovery info at once. I'll try to capture some samples of the other discovery data items for the device for you.</div> <div><br> </div> <div>As for the HA interface ... I've gone through a curious about-face on my home automation plans. My plan had been to migrate from MH and Insteon to OpenHab and Z-wave. I'd probably never complete that migration however, give the size of my MH code base. So like a lot of others on this mailing list, I figured I'd get to OH handling the devices and MH handling the logic side, in my case with MQTT as the middleman. With the advent of Zwave-JS-UI, however, I'm far less interested in OpenHab, as it's ZWave support was my primary interest. So no I'm looking at MH running the Insteon devices that are still around and talking to Zwave-JS-UI via MQTT. OH will remain, but only for a few stray kinds of devices that it understands, like my Tapo strip lights, and perhaps Matter in the future. I'm in favor of having as few components as possible to limit maintenance and brainpower demands, so I'm going to try to hold off on HA for now. I'm not opposed to it, I just need a demand I can't solve with what I already have.</div> <div><br> </div> <div>Some of the rest of the of your e-mail is going to take more study before I can respond, but is always appreciated and always solid information. You're a great asset for the community.</div> <div><br> </div> <div>Best,</div> <div> -B.</div> <div><br> </div> <div>On 2/17/26 18:39, Dave Neudoerffer wrote:<br> </div> <blockquote type="cite"> <div dir="ltr">And you will need read_table_A.pl for the new MQTT_RAWITEM... <div><br> </div> <div>Dave</div> </div> <br> <div class="gmail_quote"> <div dir="ltr" class="gmail_attr">On Tue, Feb 17, 2026 at 6:55 PM Dave Neudoerffer <<a href="mailto:[email protected]" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">[email protected]</a>> wrote:<br> </div> <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div dir="ltr">Hey Brian and Howard, et all, <div><br> </div> <div>So, Brian, I got your first 2 problems fixed. The set('3%') was a bug when the state and brightness topics are the same -- fixed. The other problem was that the simple template processing I put in didn't handle a template of the form {{ <value_true> IF <condition> ELSE <value_false>}}. I added some support for that specific template form. </div> <div><br> </div> <div>Your sensor problem above is weird. The discovery message bills the door sensor as a switch. That sort of makes sense -- would send ON and OFF when the door is opened and closed. But the messages that get sent don't match the discovery info at all. A quick search (thanx gemini) would indicate that zwave JS is likely defining multiple mqtt devices for the sensor. I think that the specific discovery message you sent is actually a configuration object that you can use to control the behaviour of the LED on device. There must be other discovery objects as well for the sensor. It looks like -- door_state=22 means open and door_state=23 means closed -- and a web search confirms that. The <b>discovered device for door_state</b> should be able to handle the messages. </div> <div><br> </div> <div>If not, you could use the new MQTT_RAWITEM that I just added to define a binary_sensor to handle the messages using hand coded discovery info:</div> <div><span style="font-family:monospace">MQTT_RAWITEM, Downstairs_Hall_Closet_Sensor, mqtt_discovery2, app/zwave-js-ui/config/binary_sensor/</span><span style="font-family:monospace">Downstairs_Hall-Closet_Sensor/closet_door_sensor</span><span style="font-family:monospace">/config, </span></div> <div><span style="font-family:monospace">{</span><span style="font-family:monospace">"value_template":"{{ "ON" if value_json.value==22 else "OFF" }}",</span><span style="font-family:monospace">"</span><span style="font-family:monospace">state_topic":"app/zwave-js-ui/</span><span style="font-family:monospace">Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state"}</span></div> <div>(I have tried this definition with the messages above and they are processed correctly into on/off for the binary_sensor, but again, if you can find the discovery message for the actual door_state, it should work too.)</div> <div><br> </div> <div><br> </div> <div><b><IMPORTANT POINT></b></div> <div>This conversation does raise an important point. Almost all mqtt discovery stuff published by devices and other software, is specifically setup to be consumed by Home Assistant. I HAVE NOT implemented the entire Home Assistant discovery language in Misterhouse, nor do I intend to. I am sure that Home Assistant would process these zwave JS discovery messages very well. As per Howards comments earlier, if you were to setup Home Assistant, the devices would show up there. You could then use the HA_Item.pm module in Misterhouse to pull in the Home Assistant entities that you want and run your misterhouse logic against those items. This is actually easier to setup than it sounds.</div> <div><br> </div> <div>I have attached the latest mqtt files. There are a lot of changes here, because this is my working version for optionally supporting the new HA device discovery variation of mqtt discovery. I am running this code on 4 MH instances, and all seems good so far. I will submit a pull request soon. You need to replace all 3 in your installation (take backup copies first :-). If you have any problems, give me a shout.</div> <div><br> </div> <div><b><ASIDE></b></div> <div>The reason I have implemented the HA device discovery variation of mqtt discovery is that I have been trying out using the matter_bridge to expose devices from HA to matter and thus to google (or alexa or apple). The matter bridge works easiest if you can put a label on the HA devices that you want exposed. However, you can't put labels on raw HA entities -- hence putting in the HA device support. Also, I still use Misterhouse for hosting my Insteon devices because I find the MH support better than HA, and I define all kinds of utility switches, scenes, and variables in Misterhouse that I expose to HA using mqtt. Exposing those things as devices allows me to then expose the HA devices to matter via the matter_bridge and control them easily with Google home/assistant. It is an alternative to the Google/Alexa support in Misterhouse or Home Assistant, which is cloud based and a pain to setup. </div> <div><br> </div> <div>Dave</div> </div> <br> <div class="gmail_quote"> <div dir="ltr" class="gmail_attr">On Sun, Feb 15, 2026 at 6:16 PM Brian M <<a href="mailto:[email protected]" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">[email protected]</a>> wrote:<br> </div> <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div> <div>Here's another one that might make more sense to you than to me. I'm using a Zooz ZSE41 door sensor. <a href="http://mqtt_discovery.pm" target="_blank" moz-do-not-send="true">mqtt_discovery.pm</a> produced the following code to define it:</div> <blockquote> <div><font face="monospace">MQTT_DISCOVEREDITEM, Downstairs_Hall_Closet_Sensor, mqtt_discovery2, app/zwave-js-ui/config/switch/Downstairs_Hall-Closet_Sensor/config_switch_1/config, {"payload_off":"0","payload_on":"1","value_template":"{{ value_json.value }}","command_topic":"app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/configuration/endpoint_0/LED_Indicator/set","enabled_by_default":false,"entity_category":"config","state_topic":"app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/configuration/endpoint_0/LED_Indicator","availability":[{"payload_available":"true","payload_not_available":"false","topic":"app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/status","value_template":"{{'true' if value_json.value else 'false'}}"},{"topic":"app/zwave-js-ui/_CLIENTS/ZWAVE_GATEWAY-zwave-js-ui/status","value_template":"{{'online' if value_json.value else 'offline'}}"},{"payload_available":"true","payload_not_available":"false","topic":"app/zwave-js-ui/driver/status"}],"availability_mode":"all","device":{"identifiers":["zwavejs2mqtt_0xc92945ec_node19"],"manufacturer":"Zooz","model":"Open/Close XS Sensor (ZSE41)","name":"Downstairs_Hall-Closet_Sensor","sw_version":"2.30.0"},"name":"Downstairs_Hall_Closet_Sensor","unique_id":"zwavejs2mqtt_0xc92945ec_19-112-0-1"}<br> </font></div> </blockquote> <div><br> </div> <div>Here's a door open/door close sequence. </div> <div><br> </div> <div> <blockquote><font face="monospace"># Initial state: door closed</font><br> <br> <font face="monospace"># Opening door.</font><br> <font face="monospace">2026-02-15 15:02:48 [MQTT D1]: mqttserver Rcv'd: <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive</a>' M:'{"time":1771196567992,"value":1771196567992}'</font><br> <font face="monospace">2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive -- {"time":1771196567992,"value":1771196567992}</font><br> <font face="monospace">2026-02-15 15:02:48 [MQTT D1]: mqttserver Rcv'd: <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmType</a>' M:'{"time":1771196567993,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}'</font><br> <font face="monospace">2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmType -- {"time":1771196567993,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}</font><br> <font face="monospace">2026-02-15 15:02:48 [MQTT D1]: mqttserver Rcv'd: <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmLevel</a>' M:'{"time":1771196567994,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}'</font><br> <font face="monospace">2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmLevel -- {"time":1771196567994,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}</font><br> <font face="monospace">2026-02-15 15:02:48 [MQTT D1]: mqttserver Rcv'd: <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state_simple</a>' M:'{"time":1771196567995,"value":22,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}'</font><br> <font face="monospace">2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state_simple -- {"time":1771196567995,"value":22,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}</font><br> <font face="monospace">2026-02-15 15:02:48 [MQTT D1]: mqttserver Rcv'd: <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state</a>' M:'{"time":1771196567996,"value":22,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}'</font><br> <font face="monospace">2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state -- {"time":1771196567996,"value":22,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}</font><br> <font face="monospace">2026-02-15 15:02:48 [MQTT D1]: mqttserver Rcv'd: <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive</a>' M:'{"time":1771196568241,"value":1771196568016}'</font><br> <font face="monospace">2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive -- {"time":1771196568241,"value":1771196568016}</font><br> <br> <font face="monospace"># Closing door.</font><br> <font face="monospace">2026-02-15 15:03:10 [MQTT D1]: mqttserver Rcv'd: <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive</a>' M:'{"time":1771196590395,"value":1771196590395}'</font><br> <font face="monospace">2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive -- {"time":1771196590395,"value":1771196590395}</font><br> <font face="monospace">2026-02-15 15:03:10 [MQTT D1]: mqttserver Rcv'd: <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmType</a>' M:'{"time":1771196590396,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}'</font><br> <font face="monospace">2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmType -- {"time":1771196590396,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}</font><br> <font face="monospace">2026-02-15 15:03:10 [MQTT D1]: mqttserver Rcv'd: <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmLevel</a>' M:'{"time":1771196590397,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}'</font><br> <font face="monospace">2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarmLevel -- {"time":1771196590397,"value":0,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}</font><br> <font face="monospace">2026-02-15 15:03:10 [MQTT D1]: mqttserver Rcv'd: <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state_simple</a>' M:'{"time":1771196590398,"value":23,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}'</font><br> <font face="monospace">2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state_simple -- {"time":1771196590398,"value":23,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}</font><br> <font face="monospace">2026-02-15 15:03:10 [MQTT D1]: mqttserver Rcv'd: <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state</a>' M:'{"time":1771196590398,"value":23,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}'</font><br> <font face="monospace">2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Door_state -- {"time":1771196590398,"value":23,"nodeName":"Closet_Sensor","nodeLocation":"Downstairs_Hall"}</font><br> <font face="monospace">2026-02-15 15:03:10 [MQTT D1]: mqttserver Rcv'd: <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive</a>' M:'{"time":1771196590646,"value":1771196590419}'</font><br> <font face="monospace">2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastActive -- {"time":1771196590646,"value":1771196590419}</font><br> </blockquote> The fields that indicate the door status don't appear in the discovery data that I can see at all. The MH object always shows the state to be "on", regardless of the actual door open/closed status. </div> <div><br> </div> <div> -B.</div> <div><br> </div> <div><br> </div> <div><br> </div> <div><br> </div> <div><br> </div> <div>On 2/14/26 11:17, Brian M wrote:<br> </div> <blockquote type="cite"> <div>Thanks, Dave. That would be great.</div> <div><br> </div> <div> -B.</div> <div><br> </div> <div>On 2/14/26 10:42, Dave Neudoerffer wrote:<br> </div> <blockquote type="cite"> <div dir="ltr">Thanx for the trace Brian. The discovery topics and templates being used are slightly different from anything I have seen before. It shouldn't be too hard to enhance the MH discovery to handle this. The Jinja templates are a bit of a nuisance, but I will fudge something... It will take me a few days to get to this... <div><br> </div> <div>Dave</div> </div> <br> <div class="gmail_quote"> <div dir="ltr" class="gmail_attr">On Fri, Feb 13, 2026 at 7:01 PM Brian M <<a href="mailto:[email protected]" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">[email protected]</a>> wrote:<br> </div> <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div> <p>Thanks, Dave. Mostly I'm in good shape, but I've got some edge cases. </p> <p>My primary problem at the moment seems to be that I can't set the brightness for my ZWave dimmer switches via ZWave-JS-UI. The correct MQTT string in one instance is:</p> <p> app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/targetValue/set</p> <p>Writing "3" to that MQTT topic (via MQTT-Explorer) causes the light to come on at 3%, as expected. However, in MH setting it to 3, '3', or '3%' results in the light being turned on 100%.</p> <p>I can't tell if this is a problem in with the discovery itself, or the implementation of of setting the MQTT_DISCOVEREDITEM. Here are some details:</p> <p>The MQTT discovered_item entry:</p> <blockquote> <p><font face="monospace">MQTT_DISCOVEREDITEM, Upstairs_Landing_Stairs, mqtt_discovery2, app/zwave-js-ui/config/light/Upstairs_Landing-Stairs/dimmer/config, {"command_topic":"app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/targetValue/set","state_topic":"app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/currentValue","state_value_template":"{{ \"OFF\" if value_json.value == 0 else \"ON\" }}","brightness_command_topic":"app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/targetValue/set","brightness_scale":99,"brightness_state_topic":"app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/currentValue","brightness_value_template":"{{ value_json.value }}","on_command_type":"brightness","supported_color_modes":["brightness"],"availability":[{"payload_available":"true","payload_not_available":"false","topic":"app/zwave-js-ui/Upstairs_Landing/Stairs/status","value_template":"{{'true' if value_json.value else 'false'}}"},{"topic":"app/zwave-js-ui/_CLIENTS/ZWAVE_GATEWAY-zwave-js-ui/status","value_template":"{{'online' if value_json.value else 'offline'}}"},{"payload_available":"true","payload_not_available":"false","topic":"app/zwave-js-ui/driver/status"}],"availability_mode":"all","device":{"identifiers":["zwavejs2mqtt_0xc92945ec_node259"],"manufacturer":"Zooz","model":"Dimmer (ZEN72)","name":"Upstairs_Landing-Stairs","sw_version":"4.0.1"},"name":"Upstairs_Landing_Stairs","unique_id":"zwavejs2mqtt_0xc92945ec_259-38-0-currentValue"}</font></p> </blockquote> <p>Relevant log messages (MQTT debug level 2):</p> <blockquote> <p><font face="monospace">2026-02-13 15:54:59 [MQTT D2]: Pending $Upstairs_Landing_Stairs-->set( 3%, , ) cleared</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D1]: unable to process template {{"OFF"ifvalue_json.value==0else"ON"}}</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D2]: fishing template value out of json with '$value = $value_json->{value}'</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D1]: remote item MQTT to MH Upstairs_Landing_Stairs set(95%, '')</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D2]: remote item $Upstairs_Landing_Stairs received message <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/currentValue</a> M:{"time":1771026899727,"value":95,"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"}</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D1]: unable to process template {{"OFF"ifvalue_json.value==0else"ON"}}</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D2]: fishing template value out of json with '$value = $value_json->{value}'</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D1]: remote item MQTT to MH Upstairs_Landing_Stairs set(95%, 'mqtt')</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D1]: mqttserver Rcv'd: <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:'app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/duration</a>' M:'{"time":1771026899728,"value":{"value":0,"unit":"seconds"},"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"}'</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D2]: UNHANDLED MESSAGE app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/duration -- {"time":1771026899728,"value":{"value":0,"unit":"seconds"},"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"}</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D1]: mqttserver Rcv'd: <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:'app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/targetValue</a>' M:'{"time":1771026899728,"value":95,"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"}'</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D2]: UNHANDLED MESSAGE app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/targetValue -- {"time":1771026899728,"value":95,"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"}</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D1]: mqttserver Rcv'd: <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:'app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/currentValue</a>' M:'{"time":1771026899858,"value":95,"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"}'</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D2]: remote item $Upstairs_Landing_Stairs received message <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/currentValue</a> M:{"time":1771026899858,"value":95,"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"}</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D1]: unable to process template {{"OFF"ifvalue_json.value==0else"ON"}}</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D2]: fishing template value out of json with '$value = $value_json->{value}'</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D1]: remote item MQTT to MH Upstairs_Landing_Stairs set(95%, 'mqtt')</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D2]: remote item $Upstairs_Landing_Stairs received message <a moz-do-not-send="true">R:0</a> <a moz-do-not-send="true">T:app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/currentValue</a> M:{"time":1771026899858,"value":95,"nodeName":"Stairs","nodeLocation":"Upstairs_Landing"}</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D1]: unable to process template {{"OFF"ifvalue_json.value==0else"ON"}}</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D2]: fishing template value out of json with '$value = $value_json->{value}'</font><br> <font face="monospace">2026-02-13 15:54:59 [MQTT D1]: remote item MQTT to MH Upstairs_Landing_Stairs set(95%, 'mqtt')</font></p> </blockquote> <p><br> Clearly it's not happy, but I haven't been able to chase down the root cause. BTW, the "95%" mentioned in the logs was the switch's existing brightness level before I tried to change it.</p> <p>Hopefully, this is clearer to you than to me.</p> <p> -B.</p> <p><br> </p> <p><br> </p> <div><br> </div> <div>On 2/13/26 15:08, Dave Neudoerffer wrote:<br> </div> <blockquote type="cite"> <div dir="auto"> <div>You are correct Brian. HA_Item is about mirroring home assistant entities. Howard uses HA to host most of his devices and MH for automations using HA_Items. Without a HA service, HA_Item makes no sense. </div> <div dir="auto"><br> </div> <div dir="auto">In implementing mqtt_items, I had a few different sources of mqtt devices, but not a huge variety. No did not have any zwave2mqtt stuff. I have used the zigbee2mqtt stuff. I am actually in the process of enhancing the MH discovery stuff to handle the new HA device discovery methodology. If there is something I can help with, let me know. </div> <div dir="auto"><br> </div> <div dir="auto">Dave</div> </div> </blockquote> <br> </div> </blockquote> </div> </blockquote> <p><br> </p> </blockquote> <p><br> </p> </div> </blockquote> </div> </blockquote> </div> </blockquote> <p><br> </p> </div> </blockquote> </div> </blockquote> <p><br> </p> </body> </html> --------------nvrLZXvhlS0p3e0mZefKGcBm-- --===============8772937703321769792== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --===============8772937703321769792== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ________________________________________________________ To unsubscribe from this list, go to: https://lists.sourceforge.net/lists/listinfo/misterhouse-users --===============8772937703321769792==--