Not all devices are discovered in Domoticz for Heatit thermostat

For devices supporting the Auto Discovery feature. Like ZWaveJS2MQTT, Zigbee2MQTT.

Moderator: leecollings

Post Reply
riko
Posts: 90
Joined: Saturday 22 August 2020 13:36
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Not all devices are discovered in Domoticz for Heatit thermostat

Post by riko »

After some work I've successfully migrated from OpenZwave to zwavejs. Most devices are working properly, though there is one problem with my Heatit floor heating thermostat (Z-TRM2fx / https://devices.zwave-js.io/?jumpTo=0x0 ... 0x0202:3.0# ).

Using OpenZwave in my old configuration there were 14 devices created for the thermostat.
Schermafbeelding 2023-01-05 191734.png
Schermafbeelding 2023-01-05 191734.png (201.09 KiB) Viewed 2207 times
With Zwavejs there are only 8 created, and I miss some of the important ones, like Thermostat mode and Heat and Ecoheat setpoint, which I need for my scripts.
Schermafbeelding 2023-01-05 191629.png
Schermafbeelding 2023-01-05 191629.png (138.78 KiB) Viewed 2207 times
Checking zwavejs I see the device correctly represented (all settings are available), but when I go to the 'Home Assistant' tab I see a limited list of devices (only 6 at the moment)
Schermafbeelding 2023-01-05 191528.png
Schermafbeelding 2023-01-05 191528.png (54.02 KiB) Viewed 2207 times
I have changed some settings on the thermostat and in Zwavejs to help it sending something do Domoticz, but this doesn't have the desired effect. Can somebody help me to find a way how to share the other settings with domoticz so it will auto create the new devices?
stelling
Posts: 3
Joined: Sunday 16 December 2018 18:22
Target OS: Raspberry Pi / ODroid
Domoticz version: stable
Location: Netherlands
Contact:

Re: Not all devices are discovered in Domoticz for Heatit thermostat

Post by stelling »

I have the same issue, with the same thermostat. Do you have an update?
User avatar
gizmocuz
Posts: 2350
Joined: Thursday 11 July 2013 18:59
Target OS: Raspberry Pi / ODroid
Domoticz version: beta
Location: Top of the world
Contact:

Re: Not all devices are discovered in Domoticz for Heatit thermostat

Post by gizmocuz »

Please create a issue on github.
Specify all config topics + payloads of these thermostats, you can find them when using MQTT Explorer
something like homeassistant/climate/xx/../config (i would like the complete topic name), and when you click on it, you will see the JSON config, this is also needed
Also make sure you are on the latest beta version
Quality outlives Quantity!
blueberryPie
Posts: 18
Joined: Sunday 19 November 2017 20:30
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Not all devices are discovered in Domoticz for Heatit thermostat

Post by blueberryPie »

Has anyone found and solution to ZwaveJSUI not creating all the thermostat devices in Domoticz?
I migrated to ZwaveJSUI from OZW and with OZW everything worked correctly but with ZwaveJSUI most of the critical thermostat devices are missing.

With ZTS-110 Thermostats only the Heating Setpoint, Mode, and Temperature devices are created in Domoticz.
(Plus the mode is created as a selector switch instead of a thermostat mode and device.)
There are no devices for the FAN control, Cooling setpoint, along with no Operating status or Fan status.

All these controls show up in the ZwaveJSUI and can be controlled via the ZwaveJSUI interface but the Hass Device JSON does not appear to be exporting everything. For sure the JSON is missing the Fan Mode. I tried to add it manually from other examples I found but that did nothing (this part might be a Domoticz issue but the completely missing JSON for the fan mode is definitely a ZwaveJSUI issue as well).

With a CT100 Thermostat only 2 devices are created in Domoticz - The temperature reading from the thermostat and a device that is a switch and is labeled 128-0-isLow. No setpoints, no mode selection, nothing else. This makes the CT100 completely worthless. For the CT100 it is definitely an issue with ZwaveJSUI not even creating a HomeAssistant climate entry.

Does anyone know of a solution or of any Zwave Thermostats that actually do work with ZwaveJSUI and Domoticz. Need a solution before summer comes along. Thanks.

Update:
Domoticz: 2024.4
Z-Wave JS UI 9.6.2 *
Z-Wave JS 12.4.1
* I thought this was the most recent version but looks like this version is old already so I will try the newer version when I get a chance. Last update killed the entire z-wave system so will need to wait until I have time to work through any new issues with the new version.

Update:
Updated to zwave-js-ui: 9.9.1 - Basic functions still work (didn't seems to break too much this time). Tons of extra devices. Some duplicates of existing devices (not sure what that is about) and a bunch of config_switch devices (not sure what all these are).
Didn't fix any of the Thermostat issues. So this all still applies.
Last edited by blueberryPie on Saturday 25 May 2024 14:41, edited 6 times in total.
User avatar
waltervl
Posts: 5148
Joined: Monday 28 January 2019 18:48
Target OS: Linux
Domoticz version: 2024.7
Location: NL
Contact:

Re: Not all devices are discovered in Domoticz for Heatit thermostat

Post by waltervl »

If you have problems with non discovering devices please report them according the instructions on the Domoticz wiki https://www.domoticz.com/wiki/MQTT_AD_Report_Problems.

Also be sure you are on the latest stable Domoticz version and the latest stable Zwave-JS-UI version.
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
blueberryPie
Posts: 18
Joined: Sunday 19 November 2017 20:30
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Not all devices are discovered in Domoticz for Heatit thermostat

Post by blueberryPie »

Thanks I will, but I was hoping to find a more immediate solution. Which is probably just buying a Z-Wave Thermostat that actually works.
I just need to know of one that does (if there are any). So if anyone has a working Z-Wave Thermostat that works with Z-waveJSUI and Domotocz 2024.4 Please let me know what make and model it is.
Thanks.
User avatar
waltervl
Posts: 5148
Joined: Monday 28 January 2019 18:48
Target OS: Linux
Domoticz version: 2024.7
Location: NL
Contact:

Re: Not all devices are discovered in Domoticz for Heatit thermostat

Post by waltervl »

There are 2 things to check:
1. Are all thermostat Auto discovery functions supported in Domoticz? ( I am not sure about this....)
2. Is the Zwave device supported by Zwave-JS-UI? See the Zwave-JS devices database.

See for example
https://github.com/domoticz/domoticz/issues/5416
or
https://github.com/zwave-js/zwave-js-ui ... sions/2834
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
blueberryPie
Posts: 18
Joined: Sunday 19 November 2017 20:30
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Not all devices are discovered in Domoticz for Heatit thermostat

Post by blueberryPie »

Yeah I had found those already looking for solutions. That is one of the places I got the JSON examples to add the fan mode but as I said before Domoitcz still doesn't create a device for the fan mode. Even if it did there is no Cooling setpoint and no current operating state. So not usable.

At this point I would just like to find a thermostat that I know works (i.e. someone is using it with ZwaveJSUI and Domoticz) and it has all the functions available in Domoticz. Temperature Sensor, Mode (Heat, Cool, Auto, Off), Fan Mode (Auto low, low), Heating Setpoint, Cooling Setpiont, Current operating state (Heating, Cooling, Idle). Thanks.

Update. zwave-js-ui: 9.9.1 didn't fix anything still need a thermostat that work with Z-WaveJSUI and Domoticz.

The old system used to work fine but now... and this seems to be what is called progress. Does anyone know if Zibee is any better now that Z-wave is on the down slope?
blueberryPie
Posts: 18
Joined: Sunday 19 November 2017 20:30
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Not all devices are discovered in Domoticz for Heatit thermostat

Post by blueberryPie »

Well looks like thermostats in general are just broke in Domoticz now (ver 2024.4). I tried going back to OpenZWave and adding thermostats back to OpenZWave and it does not create any (heating or cooling) setpoints. This used to work just fine in older versions of Domoitcz for years. Now I can't even just go back to OpenZWave to use a thermostat. I was planning worst case to run a system that was OpenZWave for just the devices that don't work yet in Zwave-JS-UI and link the other Domoticz as a remote system. But as of 2024 you can't link to an older Version of Domoticz as a remote so now there is no path to having a working Z-wave Thermostat in Domoticz. This seems like a critical thing to have working. I think I have been using Domoticz for something like 10 years now but looks like I will have to dump it for something that works.
blueberryPie
Posts: 18
Joined: Sunday 19 November 2017 20:30
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Not all devices are discovered in Domoticz for Heatit thermostat

Post by blueberryPie »

Summer is finally here and I needed to get this working so after a lot of messing around, this is what I have come up with as a work around until the Domoticz MQTT-AD is fixed. (I wouldn't hold my breath on that as I opened an issue on this but the response was "Domoticz has no issues". Even though it clearly does.)

With the Current HASS Device JSON from z-wave-js-ui Domoticz will only create a Temperature device, a Heating Setpoint, and a Selector switch that controls the thermostat mode (this is also not correct as this should be a mode device not a selector switch). The HASS Device JSON from z-wave-js-ui is missing the second setpoint and Fan mode but Domoticz is still not creating the Operating status device (a Domoticz issue). Even if the HASS Device JSON is updated with the Fan Mode Domoticz still will not add the Fan Mode device (clearly another issue with Domoticz). I did verify that the config topics in MQTT were updated and Domoticz still was not creating the devices. Domoticz log shows that it is getting the updated MQTT config topics but just isn't creating any device or giving any errors.

Work around.

The HA autodiscover specification doesn't seems to support multiple setpoints so we need to create a new config for the cooling setpoint.
Since Domotizc currently won't create a fan mode device given "fan_mode_state_topic" and "fan_mode_command_topic" and since we are creating a new config for the cooling setpoint anyway we can trick Domoticz into creating a second mode device that is for the Fan mode using the "mode_state_topic" and "mode_command_topic". The second config needs to have a "unique_id" so Domoticz will create new devices instead of just applying the new setting to the current setpoint and mode devices. Thus the 2 at the end of the unique_id (and that matches the config topic name I used as well).

Code: Select all

"unique_id": "zwavejs2mqtt_0xe23caefc_Node35_climate2"

The work around to get Cooling setpoint and Fan Mode devices (I added the following config topic using MQTT Explorer with the retain checked):

Code: Select all

domoticz/climate/Test-ThermostatTest2/climate2/config

Code: Select all

{
  "modes": [
    "Off",
    "Low"
  ],
  "mode_state_template": "{{ {0: \"Off\", 1: \"Low\"}[value_json.value] | default('Off') }}",
  "temperature_state_topic": "zwave/Test/ThermostatTest2/67/0/setpoint/2",
  "temperature_state_template": "{{ value_json.value }}",
  "temperature_command_topic": "zwave/Test/ThermostatTest2/67/0/setpoint/2/set",
  "mode_state_topic": "zwave/Test/ThermostatTest2/68/0/mode",
  "mode_command_topic": "zwave/Test/ThermostatTest2/68/0/mode/set",
  "temperature_unit": "F",
  "device": {
    "identifiers": [
      "zwavejs2mqtt_0xe23caefc_node35"
    ],
    "manufacturer": "Remotec",
    "model": "ZTS-110 Z Wave Thermostat (ZTS-110)",
    "name": "Test-ThermostatTest2",
    "sw_version": "3.14"
  },
  "name": "Test-ThermostatTest2_climate2",
  "unique_id": "zwavejs2mqtt_0xe23caefc_Node35_climate2"
}
I was able to add a binary_sensor to get the Fan state.
Fan Mode state device using binary_sensor:

Code: Select all

domoticz/binary_sensor/Test-ThermostatTest2/fan_status/config

Code: Select all

{
  "payload_on": 1,
  "payload_off": 0,
  "value_template": "{{ value_json.value }}",
  "state_topic": "zwave/Test/ThermostatTest2/69/0/state",
  "device": {
    "identifiers": [
      "zwavejs2mqtt_0xe23caefc_node35"
    ],
    "manufacturer": "Remotec",
    "model": "ZTS-110 Z Wave Thermostat (ZTS-110)",
    "name": "Test-ThermostatTest2",
    "sw_version": "3.14"
  },
  "name": "Test-ThermostatTest2_Fan_State",
  "unique_id": "zwavejs2mqtt_0xe23caefc_Node35_climate3"
}
Operating State as selector. The selector config below works as a device for Operating State. Even though this is just a read only value Domoticz requires a command_topic otherwise you get:

Code: Select all

Error: MQTT Broker: Missing command_topic!
So we can add a command_topic and just not use it. Turn On protection for the device in Domoitcz so it is read only. Looks like it doesn't cause any issues if you do try to set the command_topic value. Z-wave-js-ui just logs value not writable or something like that.

Code: Select all

domoticz/select/Test-ThermostatTest3/operating_state/config

Code: Select all

{
  "command_topic": "zwave/Test/ThermostatTest3/66/0/state/set",
  "value_template": "{{ {0: \"Idle\", 1: \"Heating\", 2: \"Cooling\", 3: \"Fan\"}[value_json.value] | default('Idle') }}",
  "state_topic": "zwave/Test/ThermostatTest3/66/0/state",
  "options": [
    "Idle",
    "Heating",
    "Cooling",
    "Fan"
  ],
  "device": {
    "identifiers": [
      "zwavejs2mqtt_0xe23caefc_node37"
    ],
    "manufacturer": "Remotec",
    "model": "ZTS-110 Z Wave Thermostat (ZTS-110)",
    "name": "Test-ThermostatTest3",
    "sw_version": "3.14"
  },
  "name": "Test-ThermostatTest3_Operating_State",
  "unique_id": "zwavejs2mqtt_0xe23caefc_Node37_operating_state"
}
Part of the problem is not knowing what Domoticz is actually doing under the hood. It would be nice if you could see all the MQTT-AD configurations inside Domoticz.

****Update: So apparently there is more going on here than initially meets the eye. Looks like z-wave-js-ui is changing the config topic for the thermostat any time the mode of the thermostat is changed. This is causing the setpoint to be mapped between the cooling and heating setpoints.

This implementation would allow you to control the heating setpoint when the mode is heating and the cooling setpoint when the mode is cooling but in Auto it only controls the heating setpoint (since there is only one setpoint device).
Last edited by blueberryPie on Saturday 25 May 2024 14:45, edited 4 times in total.
blueberryPie
Posts: 18
Joined: Sunday 19 November 2017 20:30
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: Not all devices are discovered in Domoticz for Heatit thermostat

Post by blueberryPie »

In case someone else is looking to get their Auto mode thermostat working as described in this post. Follow the instructions above to add the cooling setpoint config topic and then use the following climate HASS Device JSON in z-wave-js-ui so the heating setpoint does not change when the thermostat mode is changed:

Code: Select all

{
  "type": "climate",
  "object_id": "climate",
  "discovery_payload": {
    "min_temp": 41,
    "max_temp": 99,
    "temp_step": 1,
    "modes": [
      "off",
      "heat",
      "cool",
      "auto"
    ],
    "mode_state_template": "{{ {0: \"off\", 1: \"heat\", 2: \"cool\", 3: \"auto\"}[value_json.value] | default('off') }}",
    "current_temperature_topic": "zwave/Test/ThermostatTest3/49/0/Air_temperature",
    "current_temperature_template": "{{ value_json.value }}",
    "temperature_state_topic": "zwave/Test/ThermostatTest3/67/0/setpoint/1",
    "temperature_state_template": "{{ value_json.value }}",
    "temperature_command_topic": "zwave/Test/ThermostatTest3/67/0/setpoint/1/set",
    "mode_state_topic": "zwave/Test/ThermostatTest3/64/0/mode",
    "mode_command_topic": "zwave/Test/ThermostatTest3/64/0/mode/set",
    "action_topic": "zwave/Test/ThermostatTest3/66/0/state",
    "action_template": "{{ {0: \"idle\", 1: \"heating\", 2: \"cooling\", 3: \"fan\", 4: \"idle\", 5: \"idle\", 6: \"fan\", 7: \"heating\", 8: \"heating\", 9: \"cooling\", 10: \"heating\", 11: \"heating\"}[value_json.value] | default('idle') }}",
    "temperature_unit": "F",
    "precision": 0.1,
    "device": {
      "identifiers": [
        "zwavejs2mqtt_0xe23caefc_node37"
      ],
      "manufacturer": "Remotec",
      "model": "ZTS-110 Z Wave Thermostat (ZTS-110)",
      "name": "Test-ThermostatTest3",
      "sw_version": "3.14"
    },
    "availability": [
      {
        "payload_available": "true",
        "payload_not_available": "false",
        "topic": "zwave/Test/ThermostatTest3/status",
        "value_template": "{{'true' if value_json.value else 'false'}}"
      },
      {
        "topic": "zwave/_CLIENTS/ZWAVE_GATEWAY-zwave-js-ui/status",
        "value_template": "{{'online' if value_json.value else 'offline'}}"
      },
      {
        "payload_available": "true",
        "payload_not_available": "false",
        "topic": "zwave/driver/status"
      }
    ],
    "availability_mode": "all",
    "name": "Test-ThermostatTest3_climate",
    "unique_id": "zwavejs2mqtt_0xe23caefc_Node37_climate"
  },
  "values": [
    "49-0-Air temperature",
    "64-0-mode",
    "67-0-setpoint-1",
    "66-0-state"
  ],
  "mode_map": {
    "off": 0,
    "heat": 1,
    "cool": 2,
    "auto": 3
  },
  "setpoint_topic": {
    "1": "67-0-setpoint-1"
  },
  "default_setpoint": "67-0-setpoint-1",
  "action_map": {
    "0": "idle",
    "1": "heating",
    "2": "cooling",
    "3": "fan",
    "4": "idle",
    "5": "idle",
    "6": "fan",
    "7": "heating",
    "8": "heating",
    "9": "cooling",
    "10": "heating",
    "11": "heating"
  },
  "discoveryTopic": "climate/Test-ThermostatTest3/climate/config",
  "persistent": true,
  "ignoreDiscovery": false,
  "id": "climate_climate"
}
Basically just remove all but the heating setpoint entry in the values and setpoint_topic sections :

Code: Select all

67-0-setpoint-1
Post Reply

Who is online

Users browsing this forum: Google [Bot] and 0 guests