Hello everyone.
I’ve tried searching for a quirk similar for this devices, tried to integrate the device with the most similar, but no result,
I tried vibecoding, knowing almost none about Zigbee integration, and come up with a solution that sounds good, but that doesn’t change the issue with TZE284_zp8xakad / TS0601.
Amazon link to the device: Alexa Programmable Wireless Programmable Wireless Programmable Timer Thermostat Boiler Wall or Box 503 Display in Italian with Gateway Zigbee : Amazon.it: DIY & Tools
The AI come up with this quirk:
"""
DP Map (found in ZHA log):
DP 50 (0x32) uint32 local_temperature value / 10 = temp C
DP 125 (0x7d) bool system_mode 0=off, 1=heat
DP 128 (0x80) enum running_state 0=idle, 1=heating
"""
import zigpy.profiles.zha as zha
from zigpy.quirks import CustomDevice
from zigpy.zcl.clusters.general import Basic, Groups, Ota, Scenes, Time
from zigpy.zcl.clusters.hvac import Thermostat
from zhaquirks.const import (
DEVICE_TYPE,
ENDPOINTS,
INPUT_CLUSTERS,
MODELS_INFO,
OUTPUT_CLUSTERS,
PROFILE_ID,
)
from zhaquirks.tuya.mcu import DPToAttributeMapping, TuyaMCUCluster
class TuyaED00Cluster(TuyaMCUCluster):
"""Cluster 0xED00 Tuya not documented - included for correct sign."""
cluster_id = 0xED00
class TuyaThermostatCluster_ZP8xakad(TuyaMCUCluster, Thermostat):
"""Cluster thermostat 0xEF00 per _TZE284_zp8xakad."""
dp_to_attribute: dict[int, DPToAttributeMapping] = {
50: DPToAttributeMapping(
ep_attribute="thermostat",
attribute_name="local_temperature",
converter=lambda x: x * 10,
),
125: DPToAttributeMapping(
ep_attribute="thermostat",
attribute_name="system_mode",
converter=lambda x: 0x00 if x == 0 else 0x04,
),
128: DPToAttributeMapping(
ep_attribute="thermostat",
attribute_name="running_mode",
converter=lambda x: x,
),
}
data_point_handlers = {
50: "_dp_handler",
125: "_dp_handler",
128: "_dp_handler",
}
class TuyaZP8xakadThermostat(CustomDevice):
"""Thermostat Tuya TS0601 _TZE284_zp8xakad.
Sign get from ZHA:
profile_id : 0x0104
device_type : 0x0051
input_clusters : [0x0000, 0x0004, 0x0005, 0xed00, 0xef00]
output_clusters: [0x000a, 0x0019]
"""
signature = {
MODELS_INFO: [("_TZE284_zp8xakad", "TS0601")],
ENDPOINTS: {
1: {
PROFILE_ID: 0x0104,
DEVICE_TYPE: 0x0051,
INPUT_CLUSTERS: [
0x0000,
0x0004,
0x0005,
0xED00,
0xEF00,
],
OUTPUT_CLUSTERS: [
0x000A,
0x0019,
],
}
},
}
replacement = {
ENDPOINTS: {
1: {
PROFILE_ID: 0x0104,
DEVICE_TYPE: zha.DeviceType.THERMOSTAT,
INPUT_CLUSTERS: [
Basic.cluster_id,
Groups.cluster_id,
Scenes.cluster_id,
TuyaED00Cluster,
TuyaThermostatCluster_ZP8xakad,
],
OUTPUT_CLUSTERS: [
Time.cluster_id,
Ota.cluster_id,
],
}
}
}
i import the PY file in /config/custom_zha_quirks/ and adding the lines in configuration.yaml:
zha:
custom_quirks_path: /config/custom_zha_quirks/
But nothing changed. Removed the device, rebooted home assistant (also all the machine), but still can’t shows up other entities.
While connecting with TUYA integration and with the given zigbee2WiFi converter, the thermostat shows up as “Clima” entity with this view:
No HVAC option, but I can change the desired temperature witch is perfect to me.
Any idea to try before posting a new device integrartion request in GitHub?
Thank everyone!
