I've tried a lot to get customDevices to work (https://github.com/OpenZWave/Zwave2Mqtt/issues/146#issuecomment-567947829). Using 2.1.0-dev, this is my attempt (JSON) that loaded but does not seem to take any effect:
{
"881-3-175": [
{
"type": "switch",
"object_id": "switch",
"discovery_payload": {
"payload_off": false,
"payload_on": true,
"value_template": "{{ value_json.value }}",
"command_topic": true
}
}
]
}
Device is 0371:0003:00af in Open-Zwave logs - which should match 881-3-175 numerically - and I'm trying to override the RGBW stuff with a simple switch (context: https://github.com/OpenZWave/Zwave2Mqtt/issues/185).
How is it supposed to work and how do I debug this further? Thanks.
After I have fixed this, my next step would be a contribution to hass/devices.js in the repo via a PR to make it more general and helpful for others with this device.
@gertvdijk All steps should be ok the only thing I can tell you is to check the deviceid, it should show up in settings in gateway section when you try to add a value to the gateway values table first dropdown shows all devices with their id. Also after this go to the control panel and check in hass devices table of your node to see if the discovery payload is correct
@gertvdijk I think the correct id is 881-175-3, at least if i have chosen the right device in the OpenZWave config.
Similar issue here, device is 2-4-5 (Danfoss LC13)
customDevices.json is:
{
"2-4-5":
{
"type": "climate",
"object_id": "thermostat",
"values": ["67-1-1"],
"setpoint_topic": { "Heat": "67-1-1" },
"default_setpoint": "67-1-1",
"discovery_payload": {
"min_temp": 4,
"max_temp": 28,
"temperature_state_template": "{{ value_json.value }}",
"temperature_command_topic": true
}
}
}
nothing seen, my MQTT broker has no thermostat topic, and like it is not discovering it
@aretakisv I don't think your thermostat has only "67-1-1" as values, where is the temperature? The setpoint the modes...
The Danfoss living connect has:

But my question is, why the 2-4-5 is not linking to the thermostat istelf, i see no topics for thermostat registered in mqtt.
startup is:
zwave2mqtt-7f6db75dff-b4g4b zwave2mqtt 2020-01-31T11:38:25.473Z z2m:Gateway Loaded 1 custom hass devices configurations
zwave2mqtt-7f6db75dff-b4g4b zwave2mqtt 2020-01-31T11:38:25.490Z z2m:App Application path:/usr/src/app
finding thermostat
zwave2mqtt-7f6db75dff-b4g4b zwave2mqtt 2020-01-31T11:39:35.828Z z2m:Zwave zwave node 12: changed: 129-1-2:Minute:9 -> 24
zwave2mqtt-7f6db75dff-b4g4b zwave2mqtt 2020-01-31T11:39:35.881Z z2m:Zwave node 12 ready: Danfoss - Z Thermostat 014G0013 (Setpoint Thermostat)
zwave2mqtt-7f6db75dff-b4g4b zwave2mqtt 2020-01-31T11:39:35.933Z z2m:Zwave Notification from node 12: Notification - Node Asleep (4)
zwave2mqtt-7f6db75dff-b4g4b zwave2mqtt 2020-01-31T11:39:35.939Z z2m:Zwave zwave node 73: changed: 49-1-4:Power:6.1 -> 5
screenshot from zwave2mqtt

@robertsLando the device id is 2-4-5, is tihs correct? how can i confirm that?
the line in manufacturer xml is:
<Manufacturer id="0002" name="Danfoss">
<Product config="danfoss/z.xml" id="0003" name="Z Thermostat" type="0005"/>
<Product config="danfoss/z.xml" id="0004" name="Z Thermostat 014G0013" type="0005"/>
the second one. tried also with 2-3-5 nothing.
i have also a popp thermostat which supports temp feedback and is the:
<Product config="danfoss/z.xml" id="a010" name="Popp Radiator Thermostat" type="0115"/>
i suspect this translates to:
2-40976-277
adding from the ozwcache:
<Node id="12" name="" location="" basic="4" generic="8" specific="4" type="Setpoint Thermostat" listening="false" frequentListening="false" beaming="true" routing="true" max_baud_rate="40000" version="4" configrevision="10" query_stage="Complete">
<Neighbors>1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0</Neighbors>
<Manufacturer id="2" name="Danfoss">
<Product type="5" id="4" name="Z Thermostat 014G0013">
<MetaData>
<MetaDataItem name="OzwInfoPage">http://www.openzwave.com/device-database/0002:0003:0005</MetaDataItem>
<MetaDataItem name="ZWProductPage" type="5" id="4">https://products.z-wavealliance.org/products/1507/</MetaDataItem>
<MetaDataItem name="ProductPic">images/danfoss/z.png</MetaDataItem>
<MetaDataItem name="Description">Electronic radiator thermostat</MetaDataItem>
<MetaDataItem name="ProductPage">http://heating.consumers.danfoss.com/xxTypex/585379.html</MetaDataItem>
<MetaDataItem name="FrequencyName" type="5" id="4">CEPT (Europe)</MetaDataItem>
<MetaDataItem name="Name">Danfoss Living Connect Z v1.06 014G0013</MetaDataItem>
found my error, it was missing the wrapping around list on the whole thermostat.
now with the following config:
{
"2-4-5": [
{
"type": "climate",
"object_id": "thermostat",
"values": ["67-1-1"],
"default_setpoint": "67-1-1",
"discovery_payload": {
"min_temp": 4,
"max_temp": 28,
"temperature_state_template": "{{ value_json.value }}",
"temperature_command_topic": true
}
}
]
}
i get this error:
zwave2mqtt-7f6db75dff-zh42w zwave2mqtt 2020-01-31T12:11:49.975Z z2m:Gateway Error while discovering device climate_thermostat of node 12: Cannot read property 'value_id' of undefined
That error occurs because it looks for a temperature, I will submit a commit for that
@aretakisv done
I use docker, if nightlies exist I could test it.
@robertsLando
I also have some payload issue on the same climate device.
the thermostat on home assistant doesn't allow me to change value other than 1.0C. Devices support 0.5.
I found on manual for MQTT HVAC https://www.home-assistant.io/integrations/climate.mqtt/#precision
Based on that My device discovery is:
{
"type": "climate",
"object_id": "thermostat",
"values": [
"64-1-0",
"49-1-1",
"67-1-1"
],
"mode_map": {
"heat": "Heat"
},
"setpoint_topic": {
"Heat": "67-1-1"
},
"default_setpoint": "67-1-1",
"discovery_payload": {
"min_temp": 15,
"max_temp": 30,
"modes": [
"heat"
],
"mode_state_topic": "64-1-0",
"mode_command_topic": true,
"current_temperature_topic": "zwave2mqtt/MasterBedroom/Radiator1/49/1/1",
"current_temperature_template": "{{ value_json.value }}",
"temperature_state_template": "{{ value_json.value }}",
"temperature_command_topic": "zwave2mqtt/MasterBedroom/Radiator1/67/1/1/set",
"temperature_state_topic": "zwave2mqtt/MasterBedroom/Radiator1/67/1/1",
"precision": "0.5",
"device": {
"identifiers": [
"zwave2mqtt_MasterBedroom-Radiator1"
],
"manufacturer": "Danfoss",
"model": "0xa010",
"name": "Popp Radiator Thermostat",
"sw_version": "1.00"
},
"name": "MasterBedroom-Radiator1_thermostat",
"unique_id": "zwave2mqtt_MasterBedroom-Radiator1_thermostat"
},
"discoveryTopic": "climate/MasterBedroom-Radiator1/thermostat/config",
"persistent": true,
"id": "climate_thermostat"
}
tried the precision value as 0.5 and "0.5" same result
home assistant log:
homeassistant-5844cd6f6-9h2jx raspberrypi3-homeassistant 2020-01-31 17:15:16 INFO (MainThread) [homeassistant.components.mqtt.discovery] Found new component: climate MasterBedroom-Radiator1 thermostat
homeassistant-5844cd6f6-9h2jx raspberrypi3-homeassistant 2020-01-31 17:15:16 INFO (MainThread) [homeassistant.components.mqtt] Got update for entity with hash: ('sensor', 'MasterBedroom-Radiator1 battery') '{'unit_of_measurement': '%', 'device_class': 'battery', 'value_template': '{{ value_json.value }}', 'state_topic': 'zwave2mqtt/MasterBedroom/Radiator1/128/1/0', 'json_attributes_topic': 'zwave2mqtt/MasterBedroom/Radiator1/128/1/0', 'device': {'identifiers': ['zwave2mqtt_MasterBedroom-Radiator1'], 'manufacturer': 'Danfoss', 'model': '0xa010', 'name': 'Popp Radiator Thermostat', 'sw_version': '1.00'}, 'name': 'MasterBedroom-Radiator1_battery', 'unique_id': 'zwave2mqtt_MasterBedroom-Radiator1_7-128-1-0', 'platform': 'mqtt', 'discovery_hash': ('sensor', 'MasterBedroom-Radiator1 battery')}'
homeassistant-5844cd6f6-9h2jx raspberrypi3-homeassistant 2020-01-31 17:15:16 INFO (MainThread) [homeassistant.components.mqtt] Updating component: sensor.masterbedroom_radiator1_battery
homeassistant-5844cd6f6-9h2jx raspberrypi3-homeassistant 2020-01-31 17:15:16 ERROR (MainThread) [homeassistant.util.logging] Exception in async_discover when dispatching 'mqtt_discovery_new_climate_mqtt': ({'min_temp': 15, 'max_temp': 30, 'modes': ['heat'], 'mode_state_topic': '64-1-0', 'mode_command_topic': True, 'precision': '0.5', 'current_temperature_topic': 'zwave2mqtt/MasterBedroom/Radiator1/49/1/1', 'current_temperature_template': '{{ value_json.value }}', 'temperature_state_template': '{{ value_json.value }}', 'temperature_command_topic': 'zwave2mqtt/MasterBedroom/Radiator1/67/1/1/set', 'temperature_state_topic': 'zwave2mqtt/MasterBedroom/Radiator1/67/1/1', 'device': {'identifiers': ['zwave2mqtt_MasterBedroom-Radiator1'], 'manufacturer': 'Danfoss', 'model': '0xa010', 'name': 'Popp Radiator Thermostat', 'sw_version': '1.00'}, 'name': 'MasterBedroom-Radiator1_thermostat', 'unique_id': 'zwave2mqtt_MasterBedroom-Radiator1_thermostat', 'platform': 'mqtt'},)
homeassistant-5844cd6f6-9h2jx raspberrypi3-homeassistant Traceback (most recent call last):
homeassistant-5844cd6f6-9h2jx raspberrypi3-homeassistant File "/usr/src/homeassistant/homeassistant/components/mqtt/climate.py", line 248, in async_discover
homeassistant-5844cd6f6-9h2jx raspberrypi3-homeassistant config = PLATFORM_SCHEMA(discovery_payload)
homeassistant-5844cd6f6-9h2jx raspberrypi3-homeassistant File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 272, in __call__
homeassistant-5844cd6f6-9h2jx raspberrypi3-homeassistant return self._compiled([], data)
homeassistant-5844cd6f6-9h2jx raspberrypi3-homeassistant File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 594, in validate_dict
homeassistant-5844cd6f6-9h2jx raspberrypi3-homeassistant return base_validate(path, iteritems(data), out)
homeassistant-5844cd6f6-9h2jx raspberrypi3-homeassistant File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 432, in validate_mapping
homeassistant-5844cd6f6-9h2jx raspberrypi3-homeassistant raise er.MultipleInvalid(errors)
homeassistant-5844cd6f6-9h2jx raspberrypi3-homeassistant voluptuous.error.MultipleInvalid: value is not allowed for dictionary value @ data['precision']
I think the property you are looking for is not precision but step