Re: [mh] mqtt_discovery
Dave Neudoerffer <[email protected]> Thu, 19 Feb 2026 09:09:18 -0500
| Newsgroups | gmane.comp.misc.misterhouse.user |
|---|---|
| Message-ID | <CAOFx8LMXMJ9PfGqPNB8mpJzzGKOFeqNNo6-sCwBDXGOcqZ0n8A@mail.gmail.com> |
--===============5713500536765767721==
Content-Type: multipart/alternative; boundary="000000000000524e04064b2dda29"
--000000000000524e04064b2dda29
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
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=E2=80=AFPM Brian M <misterhouse-ng1@silverfla=
sh.net>
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 ho=
w
> 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 tha=
t
> 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=E2=80=AFPM Dave Neudoerffer <dave@neudoerffe=
r.com>
> 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 doo=
r
>> sensor as a switch. That sort of makes sense -- would send ON and OFF w=
hen
>> the door is opened and closed. But the messages that get sent don't mat=
ch
>> 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 LE=
D
>> on device. There must be other discovery objects as well for the sensor=
.
>> It looks like -- door_state=3D22 means open and door_state=3D23 means cl=
osed --
>> 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=3D=3D22 else "OFF" }}","
>> state_topic":"app/zwave-js-ui/
>> Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Access_Control/Doo=
r_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 enti=
re
>> 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 copi=
es
>> 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 expo=
se
>> 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 tha=
t
>> 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 f=
or
>> 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=E2=80=AFPM Brian M <misterhouse-ng1@silverf=
lash.net>
>> 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 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_swit=
ch_1/config,
>>> {"payload_off":"0","payload_on":"1","value_template":"{{ value_json.val=
ue
>>> }}","command_topic":"app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/conf=
iguration/endpoint_0/LED_Indicator/set","enabled_by_default":false,"entity_=
category":"config","state_topic":"app/zwave-js-ui/Downstairs_Hall/Closet_Se=
nsor/configuration/endpoint_0/LED_Indicator","availability":[{"payload_avai=
lable":"true","payload_not_available":"false","topic":"app/zwave-js-ui/Down=
stairs_Hall/Closet_Sensor/status","value_template":"{{'true'
>>> if value_json.value else
>>> 'false'}}"},{"topic":"app/zwave-js-ui/_CLIENTS/ZWAVE_GATEWAY-zwave-js-u=
i/status","value_template":"{{'online'
>>> if value_json.value else
>>> 'offline'}}"},{"payload_available":"true","payload_not_available":"fals=
e","topic":"app/zwave-js-ui/driver/status"}],"availability_mode":"all","dev=
ice":{"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","nodeLoca=
tion":"Downstairs_Hall"}'
>>> 2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE
>>> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/a=
larmType
>>> --
>>> {"time":1771196567993,"value":0,"nodeName":"Closet_Sensor","nodeLocatio=
n":"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","nodeLoca=
tion":"Downstairs_Hall"}'
>>> 2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE
>>> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/a=
larmLevel
>>> --
>>> {"time":1771196567994,"value":0,"nodeName":"Closet_Sensor","nodeLocatio=
n":"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","nodeLoc=
ation":"Downstairs_Hall"}'
>>> 2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE
>>> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/A=
ccess_Control/Door_state_simple
>>> --
>>> {"time":1771196567995,"value":22,"nodeName":"Closet_Sensor","nodeLocati=
on":"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","nodeLoc=
ation":"Downstairs_Hall"}'
>>> 2026-02-15 15:02:48 [MQTT D2]: UNHANDLED MESSAGE
>>> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/A=
ccess_Control/Door_state
>>> --
>>> {"time":1771196567996,"value":22,"nodeName":"Closet_Sensor","nodeLocati=
on":"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","nodeLoca=
tion":"Downstairs_Hall"}'
>>> 2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE
>>> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/a=
larmType
>>> --
>>> {"time":1771196590396,"value":0,"nodeName":"Closet_Sensor","nodeLocatio=
n":"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","nodeLoca=
tion":"Downstairs_Hall"}'
>>> 2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE
>>> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/a=
larmLevel
>>> --
>>> {"time":1771196590397,"value":0,"nodeName":"Closet_Sensor","nodeLocatio=
n":"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","nodeLoc=
ation":"Downstairs_Hall"}'
>>> 2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE
>>> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/A=
ccess_Control/Door_state_simple
>>> --
>>> {"time":1771196590398,"value":23,"nodeName":"Closet_Sensor","nodeLocati=
on":"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","nodeLoc=
ation":"Downstairs_Hall"}'
>>> 2026-02-15 15:03:10 [MQTT D2]: UNHANDLED MESSAGE
>>> app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/A=
ccess_Control/Door_state
>>> --
>>> {"time":1771196590398,"value":23,"nodeName":"Closet_Sensor","nodeLocati=
on":"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 shoul=
dn'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 wi=
ll
>>> take me a few days to get to this...
>>>
>>> Dave
>>>
>>> On Fri, Feb 13, 2026 at 7:01=E2=80=AFPM Brian M <misterhouse-ng1@silver=
flash.net>
>>> 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 M=
QTT
>>>> string in one instance is:
>>>>
>>>>
>>>> app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/t=
argetValue/set
>>>>
>>>> Writing "3" to that MQTT topic (via MQTT-Explorer) causes the light t=
o
>>>> 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_multi=
level/endpoint_0/targetValue/set","state_topic":"app/zwave-js-ui/Upstairs_L=
anding/Stairs/switch_multilevel/endpoint_0/currentValue","state_value_templ=
ate":"{{
>>>> \"OFF\" if value_json.value =3D=3D 0 else \"ON\"
>>>> }}","brightness_command_topic":"app/zwave-js-ui/Upstairs_Landing/Stair=
s/switch_multilevel/endpoint_0/targetValue/set","brightness_scale":99,"brig=
htness_state_topic":"app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multile=
vel/endpoint_0/currentValue","brightness_value_template":"{{
>>>> value_json.value
>>>> }}","on_command_type":"brightness","supported_color_modes":["brightnes=
s"],"availability":[{"payload_available":"true","payload_not_available":"fa=
lse","topic":"app/zwave-js-ui/Upstairs_Landing/Stairs/status","value_templa=
te":"{{'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":"fal=
se","topic":"app/zwave-js-ui/driver/status"}],"availability_mode":"all","de=
vice":{"identifiers":["zwavejs2mqtt_0xc92945ec_node259"],"manufacturer":"Zo=
oz","model":"Dimmer
>>>> (ZEN72)","name":"Upstairs_Landing-Stairs","sw_version":"4.0.1"},"name"=
:"Upstairs_Landing_Stairs","unique_id":"zwavejs2mqtt_0xc92945ec_259-38-0-cu=
rrentValue"}
>>>>
>>>> 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=3D=3D0else"ON"}}
>>>> 2026-02-13 15:54:59 [MQTT D2]: fishing template value out of json with
>>>> '$value =3D $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=3D=3D0else"ON"}}
>>>> 2026-02-13 15:54:59 [MQTT D2]: fishing template value out of json with
>>>> '$value =3D $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"},"nodeNam=
e":"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/d=
uration
>>>> --
>>>> {"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/t=
argetValue
>>>> --
>>>> {"time":1771026899728,"value":95,"nodeName":"Stairs","nodeLocation":"U=
pstairs_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=3D=3D0else"ON"}}
>>>> 2026-02-13 15:54:59 [MQTT D2]: fishing template value out of json with
>>>> '$value =3D $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=3D=3D0else"ON"}}
>>>> 2026-02-13 15:54:59 [MQTT D2]: fishing template value out of json with
>>>> '$value =3D $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 sen=
se.
>>>>
>>>> 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 enha=
ncing
>>>> the MH discovery stuff to handle the new HA device discovery methodolo=
gy.
>>>> If there is something I can help with, let me know.
>>>>
>>>> Dave
>>>>
>>>>
>>>>
>>>
>>>
>
--000000000000524e04064b2dda29
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">In fact, the new HA device discovery that I am working on,=
does allow publishing all state objects in a single discovery message.=C2=
=A0 However, MH doesn't support an object with multiple state items -- =
it is a single item at a time.=C2=A0 Which is also the way HA was until a c=
ouple years ago.=C2=A0 Most discovery info I have seen is one mqtt discover=
y message per state object.=C2=A0 The objects can be tied together with dev=
ice information that is in the discovery message.=C2=A0 HA will group the o=
bjects together into a "device".=C2=A0 =C2=A0Each object can have=
an "entity_category".=C2=A0 You can see in your closet sensor di=
scovery above, that the entity_category for the led_indicator is config.=C2=
=A0 In HA, it would show up in a config section of the device.=C2=A0=C2=A0<=
div><br></div><div>Actually, this discussion has helped me significantly.=
=C2=A0 I am going to take a slightly different tact=C2=A0with how I publish=
the device info from MH -- more like ZWave JS is doing.=C2=A0=C2=A0<br><di=
v><br></div><div>If there are objects that ZWave JS is putting out, that ar=
en't being handled right by MH, let me know.=C2=A0 Often it is a simple=
enhancement to handle them.=C2=A0=C2=A0</div></div><div><br></div><div>Dav=
e</div></div><br><div class=3D"gmail_quote gmail_quote_container"><div dir=
=3D"ltr" class=3D"gmail_attr">On Tue, Feb 17, 2026 at 10:34=E2=80=AFPM Bria=
n M <<a href=3D"mailto:[email protected]">misterhouse-ng1@=
silverflash.net</a>> wrote:<br></div><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pad=
ding-left:1ex"><u></u>
=20
=20
=20
<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 n=
ot
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 fo=
r
the community.</div>
<div><br>
</div>
<div>Best,</div>
<div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 -B.</div>
<div><br>
</div>
<div>On 2/17/26 18:39, Dave Neudoerffer
wrote:<br>
</div>
<blockquote type=3D"cite">
=20
<div dir=3D"ltr">And you will need read_table_A.pl for the new
MQTT_RAWITEM...
<div><br>
</div>
<div>Dave</div>
</div>
<br>
<div class=3D"gmail_quote">
<div dir=3D"ltr" class=3D"gmail_attr">On Tue, Feb 17, 2026 at
6:55=E2=80=AFPM Dave Neudoerffer <<a href=3D"mailto:dave@neudo=
erffer.com" target=3D"_blank">[email protected]</a>>
wrote:<br>
</div>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex=
;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir=3D"ltr">Hey Brian and Howard, et all,
<div><br>
</div>
<div>So, Brian, I got your first 2 problems fixed.=C2=A0 The
set('3%') was a bug when the state and brightness top=
ics
are the same -- fixed.=C2=A0 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>}}.=C2=A0 I added
some support for that specific template form.=C2=A0=C2=A0</di=
v>
<div><br>
</div>
<div>Your sensor problem above is weird.=C2=A0 The discovery
message bills the door sensor as a switch.=C2=A0 That sort of
makes sense -- would send ON and OFF when the door is
opened and closed.=C2=A0 But the messages that get sent don&#=
39;t
match the discovery info at all.=C2=A0 A quick search (thanx
gemini) would indicate that zwave JS is likely defining
multiple mqtt devices for the sensor.=C2=A0 I think that the
specific discovery message you=C2=A0sent is actually a
configuration object that you can use to control the
behaviour of the LED on device.=C2=A0 There must be other
discovery objects as well for the sensor.=C2=A0 It looks like
-- door_state=3D22 means open and door_state=3D23 means close=
d
-- and a web search confirms that.=C2=A0 The <b>discovered
device for door_state</b>=C2=A0should be able to handle the
messages.=C2=A0=C2=A0</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=3D"font-family:monospace">MQTT_RAWITEM,
Downstairs_Hall_Closet_Sensor, mqtt_discovery2,
app/zwave-js-ui/config/binary_sensor/</span><span style=3D"=
font-family:monospace">Downstairs_Hall-Closet_Sensor/closet_door_sensor</sp=
an><span style=3D"font-family:monospace">/config,=C2=A0</span></div>
<div><span style=3D"font-family:monospace">{</span><span style=
=3D"font-family:monospace">"value_template":"{{ "ON&quo=
t;
if value_json.value=3D=3D22 else "OFF" }}",<=
/span><span style=3D"font-family:monospace">"</span><span style=3D"fon=
t-family:monospace">state_topic":"app/zwave-js-ui/</span><span st=
yle=3D"font-family:monospace">Downstairs_Hall/Closet_Sensor/notification/en=
dpoint_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=C2=A0discovery
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.=C2=A0
Almost all mqtt discovery stuff published by devices and
other software, is specifically setup to be consumed by
Home Assistant.=C2=A0 I HAVE NOT implemented the entire Home
Assistant discovery language in Misterhouse, nor do I
intend to.=C2=A0 I am sure that Home Assistant would process
these zwave JS discovery messages very well.=C2=A0 As per
Howards comments earlier, if you were to setup Home
Assistant, the devices would show up there.=C2=A0 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.=C2=A0 =C2=A0This is ac=
tually
easier to setup than it sounds.</div>
<div><br>
</div>
<div>I have attached the latest mqtt files.=C2=A0 There are a l=
ot
of changes here, because this is my working version for
optionally supporting the new HA device discovery
variation of mqtt discovery.=C2=A0 I am running this code on =
4
MH instances, and all seems good so far.=C2=A0 I will submit =
a
pull request soon.=C2=A0 =C2=A0You need to replace all 3 in y=
our
installation (take backup copies first :-).=C2=A0 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).=C2=A0 The matt=
er
bridge works easiest if you can put a label on the HA
devices that you want exposed.=C2=A0 However, you can't p=
ut
labels on raw HA entities -- hence putting in the HA
device support.=C2=A0 Also, I still use Misterhouse for hosti=
ng
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.=C2=A0 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.=C2=A0 It =
is
an alternative to the Google/Alexa support in Misterhouse
or Home Assistant, which is cloud based and a pain to
setup.=C2=A0=C2=A0</div>
<div><br>
</div>
<div>Dave</div>
</div>
<br>
<div class=3D"gmail_quote">
<div dir=3D"ltr" class=3D"gmail_attr">On Sun, Feb 15, 2026 at
6:16=E2=80=AFPM Brian M <<a href=3D"mailto:misterhouse-ng1=
@silverflash.net" target=3D"_blank">[email protected]</a>>
wrote:<br>
</div>
<blockquote class=3D"gmail_quote" style=3D"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=3D"http://mqtt_discovery.pm" target=3D"_blank">mqtt_discovery.pm</a>
produced the following code to define it:</div>
<blockquote>
<div><font face=3D"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/Cl=
oset_Sensor/configuration/endpoint_0/LED_Indicator/set","enabled_=
by_default":false,"entity_category":"config","=
;state_topic":"app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/conf=
iguration/endpoint_0/LED_Indicator","availability":[{"p=
ayload_available":"true","payload_not_available":&=
quot;false","topic":"app/zwave-js-ui/Downstairs_Hall/Cl=
oset_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":"{{&=
#39;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_0=
xc92945ec_node19"],"manufacturer":"Zooz","mod=
el":"Open/Close
XS Sensor
(ZSE41)","name":"Downstairs_Hall-Closet_Sensor",&q=
uot;sw_version":"2.30.0"},"name":"Downstairs_=
Hall_Closet_Sensor","unique_id":"zwavejs2mqtt_0xc92945e=
c_19-112-0-1"}<br>
</font></div>
</blockquote>
<div><br>
</div>
<div>Here's a door open/door close sequence.=C2=A0</div=
>
<div><br>
</div>
<div>
<blockquote><font face=3D"monospace"># Initial state:
door closed</font><br>
<br>
<font face=3D"monospace"># Opening door.</font><br>
<font face=3D"monospace">2026-02-15 15:02:48 [MQTT
D1]: mqttserver Rcv'd: <a>R:0</a>
<a>T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sens=
or/lastActive</a>'
M:'{"time":1771196567992,"value&qu=
ot;:1771196567992}'</font><br>
<font face=3D"monospace">2026-02-15 15:02:48 [MQTT
D2]: UNHANDLED MESSAGE
app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastAct=
ive
-- {"time":1771196567992,"value":=
1771196567992}</font><br>
<font face=3D"monospace">2026-02-15 15:02:48 [MQTT
D1]: mqttserver Rcv'd: <a>R:0</a>
<a>T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sens=
or/notification/endpoint_0/alarmType</a>'
M:'{"time":1771196567993,"value":0,"nodeName&q=
uot;:"Closet_Sensor","nodeLocation":"Downstairs_Ha=
ll"}'</font><br>
<font face=3D"monospace">2026-02-15 15:02:48 [MQTT
D2]: UNHANDLED MESSAGE
app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarm=
Type
--
{"time":1771196567993,"value":0,"nodeName":&q=
uot;Closet_Sensor","nodeLocation":"Downstairs_Hall"=
;}</font><br>
<font face=3D"monospace">2026-02-15 15:02:48 [MQTT
D1]: mqttserver Rcv'd: <a>R:0</a>
<a>T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sens=
or/notification/endpoint_0/alarmLevel</a>'
M:'{"time":1771196567994,"value":0,"nodeName&q=
uot;:"Closet_Sensor","nodeLocation":"Downstairs_Ha=
ll"}'</font><br>
<font face=3D"monospace">2026-02-15 15:02:48 [MQTT
D2]: UNHANDLED MESSAGE
app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarm=
Level
--
{"time":1771196567994,"value":0,"nodeName":&q=
uot;Closet_Sensor","nodeLocation":"Downstairs_Hall"=
;}</font><br>
<font face=3D"monospace">2026-02-15 15:02:48 [MQTT
D1]: mqttserver Rcv'd: <a>R:0</a>
<a>T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sens=
or/notification/endpoint_0/Access_Control/Door_state_simple</a>'
M:'{"time":1771196567995,"value":22,"nodeName&=
quot;:"Closet_Sensor","nodeLocation":"Downstairs_H=
all"}'</font><br>
<font face=3D"monospace">2026-02-15 15:02:48 [MQTT
D2]: UNHANDLED MESSAGE
app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Acces=
s_Control/Door_state_simple
--
{"time":1771196567995,"value":22,"nodeName":&=
quot;Closet_Sensor","nodeLocation":"Downstairs_Hall&quo=
t;}</font><br>
<font face=3D"monospace">2026-02-15 15:02:48 [MQTT
D1]: mqttserver Rcv'd: <a>R:0</a>
<a>T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sens=
or/notification/endpoint_0/Access_Control/Door_state</a>'
M:'{"time":1771196567996,"value":22,"nodeName&=
quot;:"Closet_Sensor","nodeLocation":"Downstairs_H=
all"}'</font><br>
<font face=3D"monospace">2026-02-15 15:02:48 [MQTT
D2]: UNHANDLED MESSAGE
app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Acces=
s_Control/Door_state
--
{"time":1771196567996,"value":22,"nodeName":&=
quot;Closet_Sensor","nodeLocation":"Downstairs_Hall&quo=
t;}</font><br>
<font face=3D"monospace">2026-02-15 15:02:48 [MQTT
D1]: mqttserver Rcv'd: <a>R:0</a>
<a>T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sens=
or/lastActive</a>'
M:'{"time":1771196568241,"value&qu=
ot;:1771196568016}'</font><br>
<font face=3D"monospace">2026-02-15 15:02:48 [MQTT
D2]: UNHANDLED MESSAGE
app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastAct=
ive
-- {"time":1771196568241,"value":=
1771196568016}</font><br>
<br>
<font face=3D"monospace"># Closing door.</font><br>
<font face=3D"monospace">2026-02-15 15:03:10 [MQTT
D1]: mqttserver Rcv'd: <a>R:0</a>
<a>T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sens=
or/lastActive</a>'
M:'{"time":1771196590395,"value&qu=
ot;:1771196590395}'</font><br>
<font face=3D"monospace">2026-02-15 15:03:10 [MQTT
D2]: UNHANDLED MESSAGE
app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastAct=
ive
-- {"time":1771196590395,"value":=
1771196590395}</font><br>
<font face=3D"monospace">2026-02-15 15:03:10 [MQTT
D1]: mqttserver Rcv'd: <a>R:0</a>
<a>T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sens=
or/notification/endpoint_0/alarmType</a>'
M:'{"time":1771196590396,"value":0,"nodeName&q=
uot;:"Closet_Sensor","nodeLocation":"Downstairs_Ha=
ll"}'</font><br>
<font face=3D"monospace">2026-02-15 15:03:10 [MQTT
D2]: UNHANDLED MESSAGE
app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarm=
Type
--
{"time":1771196590396,"value":0,"nodeName":&q=
uot;Closet_Sensor","nodeLocation":"Downstairs_Hall"=
;}</font><br>
<font face=3D"monospace">2026-02-15 15:03:10 [MQTT
D1]: mqttserver Rcv'd: <a>R:0</a>
<a>T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sens=
or/notification/endpoint_0/alarmLevel</a>'
M:'{"time":1771196590397,"value":0,"nodeName&q=
uot;:"Closet_Sensor","nodeLocation":"Downstairs_Ha=
ll"}'</font><br>
<font face=3D"monospace">2026-02-15 15:03:10 [MQTT
D2]: UNHANDLED MESSAGE
app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/alarm=
Level
--
{"time":1771196590397,"value":0,"nodeName":&q=
uot;Closet_Sensor","nodeLocation":"Downstairs_Hall"=
;}</font><br>
<font face=3D"monospace">2026-02-15 15:03:10 [MQTT
D1]: mqttserver Rcv'd: <a>R:0</a>
<a>T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sens=
or/notification/endpoint_0/Access_Control/Door_state_simple</a>'
M:'{"time":1771196590398,"value":23,"nodeName&=
quot;:"Closet_Sensor","nodeLocation":"Downstairs_H=
all"}'</font><br>
<font face=3D"monospace">2026-02-15 15:03:10 [MQTT
D2]: UNHANDLED MESSAGE
app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Acces=
s_Control/Door_state_simple
--
{"time":1771196590398,"value":23,"nodeName":&=
quot;Closet_Sensor","nodeLocation":"Downstairs_Hall&quo=
t;}</font><br>
<font face=3D"monospace">2026-02-15 15:03:10 [MQTT
D1]: mqttserver Rcv'd: <a>R:0</a>
<a>T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sens=
or/notification/endpoint_0/Access_Control/Door_state</a>'
M:'{"time":1771196590398,"value":23,"nodeName&=
quot;:"Closet_Sensor","nodeLocation":"Downstairs_H=
all"}'</font><br>
<font face=3D"monospace">2026-02-15 15:03:10 [MQTT
D2]: UNHANDLED MESSAGE
app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/notification/endpoint_0/Acces=
s_Control/Door_state
--
{"time":1771196590398,"value":23,"nodeName":&=
quot;Closet_Sensor","nodeLocation":"Downstairs_Hall&quo=
t;}</font><br>
<font face=3D"monospace">2026-02-15 15:03:10 [MQTT
D1]: mqttserver Rcv'd: <a>R:0</a>
<a>T:'app/zwave-js-ui/Downstairs_Hall/Closet_Sens=
or/lastActive</a>'
M:'{"time":1771196590646,"value&qu=
ot;:1771196590419}'</font><br>
<font face=3D"monospace">2026-02-15 15:03:10 [MQTT
D2]: UNHANDLED MESSAGE
app/zwave-js-ui/Downstairs_Hall/Closet_Sensor/lastAct=
ive
-- {"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", regar=
dless
of the actual door open/closed status.=C2=A0</div>
<div><br>
</div>
<div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-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=3D"cite">
<div>Thanks, Dave. That would be great.</div>
<div><br>
</div>
<div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-B.<=
/div>
<div><br>
</div>
<div>On 2/14/26 10:42, Dave Neudoerffer wrote:<br>
</div>
<blockquote type=3D"cite">
<div dir=3D"ltr">Thanx for the trace Brian.=C2=A0 The
discovery topics and templates being used are
slightly different from anything I have seen
before.=C2=A0 It shouldn't be too hard to enhance=
the
MH discovery to handle this.=C2=A0 The Jinja template=
s
are a bit of a nuisance, but I will fudge
something...=C2=A0 It will take me a few days to get =
to
this...
<div><br>
</div>
<div>Dave</div>
</div>
<br>
<div class=3D"gmail_quote">
<div dir=3D"ltr" class=3D"gmail_attr">On Fri, Feb 13,
2026 at 7:01=E2=80=AFPM Brian M <<a href=3D"mail=
to:[email protected]" target=3D"_blank">misterhouse-ng1@silve=
rflash.net</a>>
wrote:<br>
</div>
<blockquote class=3D"gmail_quote" style=3D"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, bu=
t
I've got some edge cases.=C2=A0</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>=C2=A0 =C2=A0
app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/target=
Value/set</p>
<p>Writing "3" to that MQTT topic (via
MQTT-Explorer)=C2=A0 causes the light to come o=
n
at 3%, as expected. However, in MH setting
it to 3, '3', or '3%' results i=
n 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.=C2=A0 He=
re
are some details:</p>
<p>The MQTT discovered_item entry:</p>
<blockquote>
<p><font face=3D"monospace">MQTT_DISCOVEREDITEM=
,
Upstairs_Landing_Stairs,
mqtt_discovery2,
app/zwave-js-ui/config/light/Upstairs_Landi=
ng-Stairs/dimmer/config,
{"command_topic":"app/zwave-js-ui/Upstairs_Landing/Stairs/sw=
itch_multilevel/endpoint_0/targetValue/set","state_topic":&q=
uot;app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/cu=
rrentValue","state_value_template":"{{
\"OFF\" if value_json.value =3D=
=3D 0 else
\"ON\"
}}","brightness_command_topic":"app/zwave-js-ui/Upstair=
s_Landing/Stairs/switch_multilevel/endpoint_0/targetValue/set","b=
rightness_scale":99,"brightness_state_topic":"app/zwave=
-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/currentValue&qu=
ot;,"brightness_value_template":"{{
value_json.value
}}","on_command_type":"brightness","supported=
_color_modes":["brightness"],"availability":[{&quo=
t;payload_available":"true","payload_not_available"=
;:"false","topic":"app/zwave-js-ui/Upstairs_Landin=
g/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":"{{&=
#39;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_0=
xc92945ec_node259"],"manufacturer":"Zooz","mo=
del":"Dimmer
(ZEN72)","name":"Upstairs_Landing-Stairs","sw=
_version":"4.0.1"},"name":"Upstairs_Landing_S=
tairs","unique_id":"zwavejs2mqtt_0xc92945ec_259-38-0-cu=
rrentValue"}</font></p>
</blockquote>
<p>Relevant log messages (MQTT debug level 2):</p=
>
<blockquote>
<p><font face=3D"monospace">2026-02-13
15:54:59 [MQTT D2]: Pending
$Upstairs_Landing_Stairs-->set( 3%,
,=C2=A0 ) cleared</font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D1]: unable to process template
{{"OFF"ifvalue_json.value=3D=3D0e=
lse"ON"}}</font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D2]: fishing template value out of
json with '$value =3D
$value_json->{value}'</font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D1]: remote item MQTT to MH
Upstairs_Landing_Stairs set(95%, ''=
)</font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D2]: remote item
$Upstairs_Landing_Stairs received
message <a>R:0</a>
<a>T:app/zwave-js-ui/Upstairs_Landing/Stair=
s/switch_multilevel/endpoint_0/currentValue</a>=C2=A0
M:{"time":1771026899727,"value":95,"nodeName"=
:"Stairs","nodeLocation":"Upstairs_Landing"}<=
/font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D1]: unable to process template
{{"OFF"ifvalue_json.value=3D=3D0e=
lse"ON"}}</font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D2]: fishing template value out of
json with '$value =3D
$value_json->{value}'</font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D1]: remote item MQTT to MH
Upstairs_Landing_Stairs set(95%, 'mqtt&=
#39;)</font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D1]: mqttserver Rcv'd: <a>R:0</a>=
<a>T:'app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoi=
nt_0/duration</a>'
M:'{"time":1771026899728,"value":{"value"=
:0,"unit":"seconds"},"nodeName":"Stairs&=
quot;,"nodeLocation":"Upstairs_Landing"}'</font><br=
>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D2]: UNHANDLED MESSAGE
app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/durati=
on
--
{"time":1771026899728,"value":{"value":0,&quo=
t;unit":"seconds"},"nodeName":"Stairs",&=
quot;nodeLocation":"Upstairs_Landing"}</font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D1]: mqttserver Rcv'd: <a>R:0</a>=
<a>T:'app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoi=
nt_0/targetValue</a>'
M:'{"time":1771026899728,"value":95,"nodeName&=
quot;:"Stairs","nodeLocation":"Upstairs_Landing&qu=
ot;}'</font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D2]: UNHANDLED MESSAGE
app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoint_0/target=
Value
--
{"time":1771026899728,"value":95,"nodeName":&=
quot;Stairs","nodeLocation":"Upstairs_Landing"}</f=
ont><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D1]: mqttserver Rcv'd: <a>R:0</a>=
<a>T:'app/zwave-js-ui/Upstairs_Landing/Stairs/switch_multilevel/endpoi=
nt_0/currentValue</a>'
M:'{"time":1771026899858,"value":95,"nodeName&=
quot;:"Stairs","nodeLocation":"Upstairs_Landing&qu=
ot;}'</font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D2]: remote item
$Upstairs_Landing_Stairs received
message <a>R:0</a>
<a>T:app/zwave-js-ui/Upstairs_Landing/Stair=
s/switch_multilevel/endpoint_0/currentValue</a>=C2=A0
M:{"time":1771026899858,"value":95,"nodeName"=
:"Stairs","nodeLocation":"Upstairs_Landing"}<=
/font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D1]: unable to process template
{{"OFF"ifvalue_json.value=3D=3D0e=
lse"ON"}}</font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D2]: fishing template value out of
json with '$value =3D
$value_json->{value}'</font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D1]: remote item MQTT to MH
Upstairs_Landing_Stairs set(95%, 'mqtt&=
#39;)</font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D2]: remote item
$Upstairs_Landing_Stairs received
message <a>R:0</a>
<a>T:app/zwave-js-ui/Upstairs_Landing/Stair=
s/switch_multilevel/endpoint_0/currentValue</a>=C2=A0
M:{"time":1771026899858,"value":95,"nodeName"=
:"Stairs","nodeLocation":"Upstairs_Landing"}<=
/font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D1]: unable to process template
{{"OFF"ifvalue_json.value=3D=3D0e=
lse"ON"}}</font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D2]: fishing template value out of
json with '$value =3D
$value_json->{value}'</font><br>
<font face=3D"monospace">2026-02-13 15:54:59
[MQTT D1]: remote item MQTT to MH
Upstairs_Landing_Stairs set(95%, 'mqtt&=
#39;)</font></p>
</blockquote>
<p><br>
Clearly it's not happy, but I haven't b=
een
able to chase down the root cause. BTW, the
"95%" mentioned in the logs was the s=
witch's
existing brightness level before I tried to
change it.</p>
<p>Hopefully, this is clearer to you than to
me.</p>
<p>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -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=3D"cite">
<div dir=3D"auto">
<div>You are correct Brian. HA_Item is
about mirroring home assistant
entities.=C2=A0 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.=C2=A0</div>
<div dir=3D"auto"><br>
</div>
<div dir=3D"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.=C2=A0 I am actually in the process o=
f
enhancing the MH discovery stuff to
handle the new HA device discovery
methodology.=C2=A0 If there is something I
can help with, let me know.=C2=A0</div>
<div dir=3D"auto"><br>
</div>
<div dir=3D"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>
--000000000000524e04064b2dda29--
--===============5713500536765767721==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
--===============5713500536765767721==
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
--===============5713500536765767721==--