homebridge-z2m: [Bug] Thermostat not detected yet exposes thermostat values
Is there an existing issue for this?
- I have searched the existing issues
Describe the bug
I have a TV02-Zigbee device I just added to the Zigbee network.
It appears successfully in Zigbee2MQTT and exposes the following (by checking state in Zigbee2MQTT app):
{
"battery_low": false,
"boost_timeset_countdown": 0,
"child_lock": "UNLOCK",
"comfort_temperature": 21,
"current_heating_setpoint": 21.5,
"eco_temperature": 17,
"error_status": 0,
"frost_protection": "OFF",
"heating_stop": "OFF",
"holiday_start_stop": "2021/01/01 01:01 | 2021/01/01 01:01",
"holiday_temperature": 17,
"linkquality": 78,
"local_temperature": 23.5,
"local_temperature_calibration": 0,
"online": "ON",
"open_window": "OFF",
"open_window_temperature": 21,
"preset": "auto",
"schedule_friday": "06:00/17 12:00/21 14:00/17 17:00/21 24:00/17",
"schedule_monday": "06:00/17 12:00/21 14:00/17 17:00/21 24:00/17",
"schedule_saturday": "06:00/17 12:00/21 14:00/17 17:00/21 24:00/17",
"schedule_sunday": "06:00/17 12:00/21 14:00/17 17:00/21 24:00/17",
"schedule_thursday": "06:00/17 12:00/21 14:00/17 17:00/21 24:00/17",
"schedule_tuesday": "06:00/17 12:00/21 14:00/17 17:00/21 24:00/17",
"schedule_wednesday": "06:00/17 12:00/21 14:00/17 17:00/21 24:00/17",
"system_mode": "heat",
"working_day": "mon_sun"
}
According to your Thermostat documentation, if any of the following attributes are exposed, it should be detected as a thermostat:
local_temperature
current_heating_setpoint
system_mode
running_state
As you can see from above, the first three are exposed.
The only device that is exposed into Homebridge however is a battery and no Thermostat.
What is slightly confusing/contradictory is if I look at the docs for your Zigbee TV-02 device support, it states that only the following is exposed:
- Battery
- Battery Level
- Charging State
- Status Low Battery
Related devices
I have a Sonoff Zigbee coordinator connected to a Raspberry Pi. I do not believe the related devices are relevant in this instance.
Related Devices
No response
Steps To Reproduce
- Connect the TV02-Zigbee to the Zigbee network
- Ensure it appears in Zigbee2MQTT
- Go into Homebridge, and see that only the battery accessory has been added, and no thermostat
Expected behavior
Given the thermostat attributes are exposed, I expect a Thermostat to appear in Homebridge with the current_temperature, current_heating_setpoint and system_mode exposed.
In HomeKit I get this instead:
Device entry
[{"definition":null,"disabled":false,"endpoints":{"1":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"10":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"11":{"bindings":[],"clusters":{"input":["ssIasAce","genTime"],"output":["ssIasZone","ssIasWd"]},"configured_reportings":[],"scenes":[]},"110":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"12":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"13":{"bindings":[],"clusters":{"input":["genOta"],"output":[]},"configured_reportings":[],"scenes":[]},"2":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"242":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"3":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"4":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"47":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"5":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"6":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"8":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]}},"friendly_name":"Coordinator","ieee_address":"0x00124b002a2e988d","interview_completed":true,"interviewing":false,"network_address":0,"supported":false,"type":"Coordinator"},{"date_code":"","definition":{"description":"Luminance motion sensor","exposes":[{"access":1,"description":"Indicates whether the device detected occupancy","name":"occupancy","property":"occupancy","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Raw measured illuminance","name":"illuminance","property":"illuminance","type":"numeric","unit":"lx"},{"access":1,"description":"Remaining battery in %","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":7,"description":"PIR sensor sensitivity (refresh and update only while active)","name":"sensitivity","property":"sensitivity","type":"enum","values":["low","medium","high"]},{"access":7,"description":"PIR keep time in seconds (refresh and update only while active)","name":"keep_time","property":"keep_time","type":"enum","values":["10","30","60","120"]},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"ZG-204ZL","options":[],"supports_ota":false,"vendor":"TuYa"},"disabled":false,"endpoints":{"1":{"bindings":[],"clusters":{"input":["genPowerCfg","ssIasZone","genBasic"],"output":["genOta","genTime"]},"configured_reportings":[],"scenes":[]}},"friendly_name":"Human Sensor","ieee_address":"0xa4c1381e1f1427db","interview_completed":true,"interviewing":false,"manufacturer":"_TZE200_3towulqd","model_id":"TS0601","network_address":35616,"power_source":"Battery","supported":true,"type":"EndDevice"},{"date_code":"","definition":{"description":"Smart plug (with power monitoring)","exposes":[{"features":[{"access":7,"description":"On/off state of the switch","name":"state","property":"state","type":"binary","value_off":"OFF","value_on":"ON","value_toggle":"TOGGLE"}],"type":"switch"},{"access":7,"description":"Recover state after power outage","name":"power_outage_memory","property":"power_outage_memory","type":"enum","values":["on","off","restore"]},{"access":7,"description":"LED indicator mode","name":"indicator_mode","property":"indicator_mode","type":"enum","values":["off","off/on","on/off","on"]},{"access":1,"description":"Instantaneous measured power","name":"power","property":"power","type":"numeric","unit":"W"},{"access":1,"description":"Instantaneous measured electrical current","name":"current","property":"current","type":"numeric","unit":"A"},{"access":1,"description":"Measured electrical potential value","name":"voltage","property":"voltage","type":"numeric","unit":"V"},{"access":1,"description":"Sum of consumed energy","name":"energy","property":"energy","type":"numeric","unit":"kWh"},{"features":[{"access":3,"description":"Enables/disables physical input on the device","name":"state","property":"child_lock","type":"binary","value_off":"UNLOCK","value_on":"LOCK"}],"type":"lock"},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"TS011F_plug_1","options":[{"access":2,"description":"Calibrates the power value (percentual offset), takes into effect on next report of device.","name":"power_calibration","property":"power_calibration","type":"numeric"},{"access":2,"description":"Number of digits after decimal point for power, takes into effect on next report of device.","name":"power_precision","property":"power_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Calibrates the current value (percentual offset), takes into effect on next report of device.","name":"current_calibration","property":"current_calibration","type":"numeric"},{"access":2,"description":"Number of digits after decimal point for current, takes into effect on next report of device.","name":"current_precision","property":"current_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Calibrates the voltage value (percentual offset), takes into effect on next report of device.","name":"voltage_calibration","property":"voltage_calibration","type":"numeric"},{"access":2,"description":"Number of digits after decimal point for voltage, takes into effect on next report of device.","name":"voltage_precision","property":"voltage_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Number of digits after decimal point for energy, takes into effect on next report of device.","name":"energy_precision","property":"energy_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Calibrates the energy value (percentual offset), takes into effect on next report of device.","name":"energy_calibration","property":"energy_calibration","type":"numeric"}],"supports_ota":true,"vendor":"TuYa"},"disabled":false,"endpoints":{"1":{"bindings":[{"cluster":"genOnOff","target":{"endpoint":1,"ieee_address":"0x00124b002a2e988d","type":"endpoint"}},{"cluster":"haElectricalMeasurement","target":{"endpoint":1,"ieee_address":"0x00124b002a2e988d","type":"endpoint"}},{"cluster":"seMetering","target":{"endpoint":1,"ieee_address":"0x00124b002a2e988d","type":"endpoint"}}],"clusters":{"input":["genIdentify","genGroups","genScenes","genOnOff","seMetering","haElectricalMeasurement","manuSpecificBosch","manuSpecificTuya_3","genBasic"],"output":["genOta","genTime"]},"configured_reportings":[{"attribute":"rmsVoltage","cluster":"haElectricalMeasurement","maximum_report_interval":3600,"minimum_report_interval":5,"reportable_change":5},{"attribute":"rmsCurrent","cluster":"haElectricalMeasurement","maximum_report_interval":3600,"minimum_report_interval":5,"reportable_change":50},{"attribute":"activePower","cluster":"haElectricalMeasurement","maximum_report_interval":3600,"minimum_report_interval":5,"reportable_change":10},{"attribute":"currentSummDelivered","cluster":"seMetering","maximum_report_interval":3600,"minimum_report_interval":5,"reportable_change":[1,1]}],"scenes":[]},"242":{"bindings":[],"clusters":{"input":[],"output":["greenPower"]},"configured_reportings":[],"scenes":[]}},"friendly_name":"Office: Neon Light","ieee_address":"0xa4c13858680d7a89","interview_completed":true,"interviewing":false,"manufacturer":"_TZ3000_gvn91tmx","model_id":"TS011F","network_address":40994,"power_source":"Mains (single phase)","supported":true,"type":"Router"},{"date_code":"","definition":{"description":"Smart plug (with power monitoring)","exposes":[{"features":[{"access":7,"description":"On/off state of the switch","name":"state","property":"state","type":"binary","value_off":"OFF","value_on":"ON","value_toggle":"TOGGLE"}],"type":"switch"},{"access":7,"description":"Recover state after power outage","name":"power_outage_memory","property":"power_outage_memory","type":"enum","values":["on","off","restore"]},{"access":7,"description":"LED indicator mode","name":"indicator_mode","property":"indicator_mode","type":"enum","values":["off","off/on","on/off","on"]},{"access":1,"description":"Instantaneous measured power","name":"power","property":"power","type":"numeric","unit":"W"},{"access":1,"description":"Instantaneous measured electrical current","name":"current","property":"current","type":"numeric","unit":"A"},{"access":1,"description":"Measured electrical potential value","name":"voltage","property":"voltage","type":"numeric","unit":"V"},{"access":1,"description":"Sum of consumed energy","name":"energy","property":"energy","type":"numeric","unit":"kWh"},{"features":[{"access":3,"description":"Enables/disables physical input on the device","name":"state","property":"child_lock","type":"binary","value_off":"UNLOCK","value_on":"LOCK"}],"type":"lock"},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"TS011F_plug_1","options":[{"access":2,"description":"Calibrates the power value (percentual offset), takes into effect on next report of device.","name":"power_calibration","property":"power_calibration","type":"numeric"},{"access":2,"description":"Number of digits after decimal point for power, takes into effect on next report of device.","name":"power_precision","property":"power_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Calibrates the current value (percentual offset), takes into effect on next report of device.","name":"current_calibration","property":"current_calibration","type":"numeric"},{"access":2,"description":"Number of digits after decimal point for current, takes into effect on next report of device.","name":"current_precision","property":"current_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Calibrates the voltage value (percentual offset), takes into effect on next report of device.","name":"voltage_calibration","property":"voltage_calibration","type":"numeric"},{"access":2,"description":"Number of digits after decimal point for voltage, takes into effect on next report of device.","name":"voltage_precision","property":"voltage_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Number of digits after decimal point for energy, takes into effect on next report of device.","name":"energy_precision","property":"energy_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Calibrates the energy value (percentual offset), takes into effect on next report of device.","name":"energy_calibration","property":"energy_calibration","type":"numeric"}],"supports_ota":true,"vendor":"TuYa"},"disabled":false,"endpoints":{"1":{"bindings":[{"cluster":"genOnOff","target":{"endpoint":1,"ieee_address":"0x00124b002a2e988d","type":"endpoint"}},{"cluster":"haElectricalMeasurement","target":{"endpoint":1,"ieee_address":"0x00124b002a2e988d","type":"endpoint"}},{"cluster":"seMetering","target":{"endpoint":1,"ieee_address":"0x00124b002a2e988d","type":"endpoint"}}],"clusters":{"input":["genIdentify","genGroups","genScenes","genOnOff","seMetering","haElectricalMeasurement","manuSpecificBosch","manuSpecificTuya_3","genBasic"],"output":["genOta","genTime"]},"configured_reportings":[{"attribute":"rmsVoltage","cluster":"haElectricalMeasurement","maximum_report_interval":3600,"minimum_report_interval":5,"reportable_change":5},{"attribute":"rmsCurrent","cluster":"haElectricalMeasurement","maximum_report_interval":3600,"minimum_report_interval":5,"reportable_change":50},{"attribute":"activePower","cluster":"haElectricalMeasurement","maximum_report_interval":3600,"minimum_report_interval":5,"reportable_change":10},{"attribute":"currentSummDelivered","cluster":"seMetering","maximum_report_interval":3600,"minimum_report_interval":5,"reportable_change":[1,1]}],"scenes":[]},"242":{"bindings":[],"clusters":{"input":[],"output":["greenPower"]},"configured_reportings":[],"scenes":[]}},"friendly_name":"Office: Oil Radiator Plug","ieee_address":"0xa4c13856385c6838","interview_completed":true,"interviewing":false,"manufacturer":"_TZ3000_gvn91tmx","model_id":"TS011F","network_address":1393,"power_source":"Mains (single phase)","supported":true,"type":"Router"},{"date_code":"","definition":{"description":"Water leak detector","exposes":[{"access":1,"description":"Indicates whether the device detected a water leak","name":"water_leak","property":"water_leak","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Indicates if the battery of this device is almost empty","name":"battery_low","property":"battery_low","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Remaining battery in %","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"TS0207_water_leak_detector","options":[],"supports_ota":false,"vendor":"TuYa"},"disabled":false,"endpoints":{"1":{"bindings":[{"cluster":"genPowerCfg","target":{"endpoint":1,"ieee_address":"0x00124b002a2e988d","type":"endpoint"}}],"clusters":{"input":["genPowerCfg","genIdentify","ssIasZone","genBasic"],"output":["genOta","genTime"]},"configured_reportings":[{"attribute":"batteryPercentageRemaining","cluster":"genPowerCfg","maximum_report_interval":62000,"minimum_report_interval":3600,"reportable_change":0}],"scenes":[]}},"friendly_name":"Kitchen: Water Leak Detector","ieee_address":"0xa4c13810fe0eae2d","interview_completed":true,"interviewing":false,"manufacturer":"_TZ3000_kyb656no","model_id":"TS0207","network_address":16139,"power_source":"Battery","supported":true,"type":"EndDevice"},{"date_code":"","definition":{"description":"Smart plug (with power monitoring)","exposes":[{"features":[{"access":7,"description":"On/off state of the switch","name":"state","property":"state","type":"binary","value_off":"OFF","value_on":"ON","value_toggle":"TOGGLE"}],"type":"switch"},{"access":7,"description":"Recover state after power outage","name":"power_outage_memory","property":"power_outage_memory","type":"enum","values":["on","off","restore"]},{"access":7,"description":"LED indicator mode","name":"indicator_mode","property":"indicator_mode","type":"enum","values":["off","off/on","on/off","on"]},{"access":1,"description":"Instantaneous measured power","name":"power","property":"power","type":"numeric","unit":"W"},{"access":1,"description":"Instantaneous measured electrical current","name":"current","property":"current","type":"numeric","unit":"A"},{"access":1,"description":"Measured electrical potential value","name":"voltage","property":"voltage","type":"numeric","unit":"V"},{"access":1,"description":"Sum of consumed energy","name":"energy","property":"energy","type":"numeric","unit":"kWh"},{"features":[{"access":3,"description":"Enables/disables physical input on the device","name":"state","property":"child_lock","type":"binary","value_off":"UNLOCK","value_on":"LOCK"}],"type":"lock"},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"TS011F_plug_1","options":[{"access":2,"description":"Calibrates the power value (percentual offset), takes into effect on next report of device.","name":"power_calibration","property":"power_calibration","type":"numeric"},{"access":2,"description":"Number of digits after decimal point for power, takes into effect on next report of device.","name":"power_precision","property":"power_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Calibrates the current value (percentual offset), takes into effect on next report of device.","name":"current_calibration","property":"current_calibration","type":"numeric"},{"access":2,"description":"Number of digits after decimal point for current, takes into effect on next report of device.","name":"current_precision","property":"current_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Calibrates the voltage value (percentual offset), takes into effect on next report of device.","name":"voltage_calibration","property":"voltage_calibration","type":"numeric"},{"access":2,"description":"Number of digits after decimal point for voltage, takes into effect on next report of device.","name":"voltage_precision","property":"voltage_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Number of digits after decimal point for energy, takes into effect on next report of device.","name":"energy_precision","property":"energy_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Calibrates the energy value (percentual offset), takes into effect on next report of device.","name":"energy_calibration","property":"energy_calibration","type":"numeric"}],"supports_ota":true,"vendor":"TuYa"},"disabled":false,"endpoints":{"1":{"bindings":[{"cluster":"genOnOff","target":{"endpoint":1,"ieee_address":"0x00124b002a2e988d","type":"endpoint"}},{"cluster":"haElectricalMeasurement","target":{"endpoint":1,"ieee_address":"0x00124b002a2e988d","type":"endpoint"}},{"cluster":"seMetering","target":{"endpoint":1,"ieee_address":"0x00124b002a2e988d","type":"endpoint"}}],"clusters":{"input":["genIdentify","genGroups","genScenes","genOnOff","seMetering","haElectricalMeasurement","manuSpecificBosch","manuSpecificTuya_3","genBasic"],"output":["genOta","genTime"]},"configured_reportings":[{"attribute":"rmsVoltage","cluster":"haElectricalMeasurement","maximum_report_interval":3600,"minimum_report_interval":5,"reportable_change":5},{"attribute":"rmsCurrent","cluster":"haElectricalMeasurement","maximum_report_interval":3600,"minimum_report_interval":5,"reportable_change":50},{"attribute":"activePower","cluster":"haElectricalMeasurement","maximum_report_interval":3600,"minimum_report_interval":5,"reportable_change":10},{"attribute":"currentSummDelivered","cluster":"seMetering","maximum_report_interval":3600,"minimum_report_interval":5,"reportable_change":[1,1]}],"scenes":[]},"242":{"bindings":[],"clusters":{"input":[],"output":["greenPower"]},"configured_reportings":[],"scenes":[]}},"friendly_name":"Front terrace: Winter lights","ieee_address":"0xa4c138a8f54fffee","interview_completed":true,"interviewing":false,"manufacturer":"_TZ3000_gvn91tmx","model_id":"TS011F","network_address":13359,"power_source":"Mains (single phase)","supported":true,"type":"Router"},{"definition":{"description":"Aqara temperature, humidity and pressure sensor","exposes":[{"access":1,"description":"Remaining battery in %","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":1,"description":"Measured temperature value","name":"temperature","property":"temperature","type":"numeric","unit":"°C"},{"access":1,"description":"Measured relative humidity","name":"humidity","property":"humidity","type":"numeric","unit":"%"},{"access":1,"description":"The measured atmospheric pressure","name":"pressure","property":"pressure","type":"numeric","unit":"hPa"},{"access":1,"description":"Voltage of the battery in millivolts","name":"voltage","property":"voltage","type":"numeric","unit":"mV"},{"access":1,"description":"Link quality (signal strength)","nam
Status update
{"state":"online"}
Messages from this plugin
No response
This plugin
1.9.2
Homebridge
1.6.0
Zigbee2MQTT
1.30.0
Homebridge Config UI X (if applicable)
4.50.2
About this issue
- Original URL
- State: closed
- Created a year ago
- Comments: 23 (10 by maintainers)
Commits related to this issue
- Ensure current_heating_setpoint can be set and read Incorrect access prevents this device from appearing in Hombridge Fixes https://github.com/itavero/homebridge-z2m/issues/635 — committed to mattheworiordan/zigbee-herdsman-converters by mattheworiordan a year ago
- Fix TuYa TV02-Zigbee `current_heating_setpoint` access (#5473) Incorrect access prevents this device from appearing in Hombridge Fixes https://github.com/itavero/homebridge-z2m/issues/635 — committed to Koenkk/zigbee-herdsman-converters by mattheworiordan a year ago
@itavero I thank you very much for your support. I manually updated the package.json on the zigbee2mqtt repo to point to the latest converters and restarted it and everything works. I have radiator thermostats in Apple Home now. Huge thanks !!!