zigpy / zha-device-handlers

ZHA device handlers bridge the functionality gap created when manufacturers deviate from the ZCL specification, handling deviations and exceptions by parsing custom messages to and from Zigbee devices.
Apache License 2.0
749 stars 687 forks source link

[Device Support Request] for TRV Moes ZTRV-ZX-TV01-MS _TZE200_7yoranx2 #1758

Closed schu42 closed 2 years ago

schu42 commented 2 years ago

Is your feature request related to a problem? Please describe. I bought the following TRV: Moes ZTRV-ZX-TV01-MS from here https://de.aliexpress.com/i/1005003136136233.html It's the same like this one https://zigbee.blakadder.com/Moes_ZTRV-ZX-TV01-MS.html but with another ID

Describe the solution you'd like Add ID _TZE200_7yoranx2 next to ID _TZE200_e9ba97vf in zhaquirks/tuya/ts0601_trv.py homeassistant/components/zha/climate.py

Device signature ```yaml { "node_descriptor": "NodeDescriptor(logical_type=, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=, mac_capability_flags=, manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)", "endpoints": { "1": { "profile_id": 260, "device_type": "0x0301", "in_clusters": [ "0x0000", "0x0001", "0x0004", "0x0005", "0x0006", "0x000d", "0x000f", "0x0201", "0x0204", "0xef00" ], "out_clusters": [ "0x000a", "0x0019" ] }, "2": { "profile_id": 260, "device_type": "0x0007", "in_clusters": [ "0x0006", "0x000d" ], "out_clusters": [] }, "3": { "profile_id": 260, "device_type": "0x0007", "in_clusters": [ "0x0006" ], "out_clusters": [] } }, "manufacturer": "_TZE200_7yoranx2", "model": "TS0601", "class": "zhaquirks.tuya.ts0601_trv.ZonnsmartTV01_ZG" } ```
Diagnostic information ```yaml { "home_assistant": { "installation_type": "Home Assistant Core", "version": "2022.8.6", "dev": false, "hassio": false, "virtualenv": true, "python_version": "3.9.2", "docker": false, "arch": "armv7l", "timezone": "Europe/Berlin", "os_name": "Linux", "os_version": "5.15.61-v7+", "run_as_root": false }, "custom_components": { "omnik_inverter": { "version": "2.4.0", "requirements": [ "omnikinverter==0.8.1" ] }, "hacs": { "version": "1.27.2", "requirements": [ "aiogithubapi>=22.2.4" ] } }, "integration_manifest": { "domain": "zha", "name": "Zigbee Home Automation", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/zha", "requirements": [ "bellows==0.32.0", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.78", "zigpy-deconz==0.18.0", "zigpy==0.49.1", "zigpy-xbee==0.15.0", "zigpy-zigate==0.9.1", "zigpy-znp==0.8.1" ], "usb": [ { "vid": "10C4", "pid": "EA60", "description": "*2652*", "known_devices": [ "slae.sh cc2652rb stick" ] }, { "vid": "10C4", "pid": "EA60", "description": "*sonoff*plus*", "known_devices": [ "sonoff zigbee dongle plus" ] }, { "vid": "10C4", "pid": "EA60", "description": "*tubeszb*", "known_devices": [ "TubesZB Coordinator" ] }, { "vid": "1A86", "pid": "7523", "description": "*tubeszb*", "known_devices": [ "TubesZB Coordinator" ] }, { "vid": "1A86", "pid": "7523", "description": "*zigstar*", "known_devices": [ "ZigStar Coordinators" ] }, { "vid": "1CF1", "pid": "0030", "description": "*conbee*", "known_devices": [ "Conbee II" ] }, { "vid": "10C4", "pid": "8A2A", "description": "*zigbee*", "known_devices": [ "Nortek HUSBZB-1" ] }, { "vid": "0403", "pid": "6015", "description": "*zigate*", "known_devices": [ "ZiGate+" ] }, { "vid": "10C4", "pid": "EA60", "description": "*zigate*", "known_devices": [ "ZiGate" ] }, { "vid": "10C4", "pid": "8B34", "description": "*bv 2010/10*", "known_devices": [ "Bitron Video AV2010/10" ] } ], "codeowners": [ "@dmulcahey", "@adminiuga", "@puddly" ], "zeroconf": [ { "type": "_esphomelib._tcp.local.", "name": "tube*" }, { "type": "_zigate-zigbee-gateway._tcp.local.", "name": "*zigate*" } ], "after_dependencies": [ "onboarding", "usb", "zeroconf" ], "iot_class": "local_polling", "loggers": [ "aiosqlite", "bellows", "crccheck", "pure_pcapy3", "zhaquirks", "zigpy", "zigpy_deconz", "zigpy_xbee", "zigpy_zigate", "zigpy_znp" ], "is_built_in": true }, "data": { "ieee": "**REDACTED**", "nwk": 54051, "manufacturer": "_TZE200_7yoranx2", "model": "TS0601", "name": "_TZE200_7yoranx2 TS0601", "quirk_applied": true, "quirk_class": "zhaquirks.tuya.ts0601_trv.ZonnsmartTV01_ZG", "manufacturer_code": 4098, "power_source": "Battery or Unknown", "lqi": null, "rssi": null, "last_seen": "2022-09-15T18:15:04", "available": true, "device_type": "EndDevice", "signature": { "node_descriptor": "NodeDescriptor(logical_type=, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=, mac_capability_flags=, manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)", "endpoints": { "1": { "profile_id": 260, "device_type": "0x0301", "in_clusters": [ "0x0000", "0x0001", "0x0004", "0x0005", "0x0006", "0x000d", "0x000f", "0x0201", "0x0204", "0xef00" ], "out_clusters": [ "0x000a", "0x0019" ] }, "2": { "profile_id": 260, "device_type": "0x0007", "in_clusters": [ "0x0006", "0x000d" ], "out_clusters": [] }, "3": { "profile_id": 260, "device_type": "0x0007", "in_clusters": [ "0x0006" ], "out_clusters": [] } } }, "active_coordinator": false, "entities": [ { "entity_id": "binary_sensor.vtr_ki_binaryinput", "name": "_TZE200_7yoranx2 TS0601" }, { "entity_id": "sensor.vtr_ki_battery", "name": "_TZE200_7yoranx2 TS0601" }, { "entity_id": "switch.vtr_ki_switch", "name": "_TZE200_7yoranx2 TS0601" }, { "entity_id": "switch.vtr_ki_switch_2", "name": "_TZE200_7yoranx2 TS0601" }, { "entity_id": "switch.vtr_ki_switch_3", "name": "_TZE200_7yoranx2 TS0601" }, { "entity_id": "climate.vtr_ki_zonnsmartthermostat", "name": "_TZE200_7yoranx2 TS0601" }, { "entity_id": "number.vtr_ki_number_temperature_offset", "name": "_TZE200_7yoranx2 TS0601" }, { "entity_id": "number.vtr_ki_number_opened_window_temperature", "name": "_TZE200_7yoranx2 TS0601" } ], "neighbors": [], "endpoint_names": [ { "name": "THERMOSTAT" }, { "name": "COMBINED_INTERFACE" }, { "name": "COMBINED_INTERFACE" } ], "user_given_name": "VTR-KI", "device_reg_id": "9449b9368d9528f201651105c4c50b38", "area_id": "kinderzimmer", "cluster_details": { "1": { "device_type": { "name": "THERMOSTAT", "id": 769 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0004": { "attribute_name": "manufacturer", "value": "_TZE200_7yoranx2" }, "0x0005": { "attribute_name": "model", "value": "TS0601" } }, "unsupported_attributes": {} }, "0x0004": { "endpoint_attribute": "groups", "attributes": {}, "unsupported_attributes": {} }, "0x0005": { "endpoint_attribute": "scenes", "attributes": {}, "unsupported_attributes": {} }, "0x0006": { "endpoint_attribute": "on_off", "attributes": { "0x0000": { "attribute_name": "on_off", "value": 0 } }, "unsupported_attributes": {} }, "0xef00": { "endpoint_attribute": "tuya_manufacturer", "attributes": { "0x0402": { "attribute_name": "mode", "value": 1 }, "0x0108": { "attribute_name": "window_detection", "value": 0 }, "0x010a": { "attribute_name": "frost_protection", "value": 0 }, "0x0210": { "attribute_name": "target_temperature", "value": 170 }, "0x0218": { "attribute_name": "temperature", "value": 218 }, "0x021b": { "attribute_name": "temperature_calibration", "value": 0 }, "0x041f": { "attribute_name": "week_format", "value": 0 }, "0x0220": { "attribute_name": "holiday_temperature", "value": 170 }, "0x0223": { "attribute_name": "battery", "value": 100 }, "0x0128": { "attribute_name": "child_lock", "value": 1 }, "0x052d": { "attribute_name": "fault_detected", "value": 0 }, "0x0265": { "attribute_name": "boost_duration_seconds", "value": 0 }, "0x0266": { "attribute_name": "opened_window_temperature", "value": 100 }, "0x0268": { "attribute_name": "comfort_mode_temperature", "value": 210 }, "0x0269": { "attribute_name": "eco_mode_temperature", "value": 170 }, "0x016b": { "attribute_name": "heating_stop", "value": 1 }, "0x0173": { "attribute_name": "online_set", "value": 1 }, "0x0473": { "attribute_name": "online", "value": 1 } }, "unsupported_attributes": {} }, "0x000d": { "endpoint_attribute": "analog_output", "attributes": { "0x001c": { "attribute_name": "description", "value": "Temperature Offset" }, "0x0041": { "attribute_name": "max_present_value", "value": 5 }, "0x0045": { "attribute_name": "min_present_value", "value": -5 }, "0x0055": { "attribute_name": "present_value", "value": 0.7 }, "0x006a": { "attribute_name": "resolution", "value": 0.1 }, "0x0075": { "attribute_name": "engineering_units", "value": 62 }, "0x0100": { "attribute_name": "application_type", "value": 9 } }, "unsupported_attributes": {} }, "0x0201": { "endpoint_attribute": "thermostat", "attributes": { "0x0000": { "attribute_name": "local_temperature", "value": 2180 }, "0x0010": { "attribute_name": "local_temperature_calibration", "value": 0 }, "0x0012": { "attribute_name": "occupied_heating_setpoint", "value": 1700 }, "0x0014": { "attribute_name": "unoccupied_heating_setpoint", "value": 1700 }, "0x0015": { "attribute_name": "min_heat_setpoint_limit", "value": 500 }, "0x0016": { "attribute_name": "max_heat_setpoint_limit", "value": 3000 }, "0x001b": { "attribute_name": "ctrl_sequence_of_oper", "value": 2 }, "0x001c": { "attribute_name": "system_mode", "value": 0 }, "0x001d": { "attribute_name": "alarm_mask", "value": 0 }, "0x001e": { "attribute_name": "running_mode", "value": 0 }, "0x0025": { "attribute_name": "programing_oper_mode", "value": 0 }, "0x0029": { "attribute_name": "running_state", "value": 0 }, "0x4002": { "attribute_name": "operation_preset", "value": 1 } }, "unsupported_attributes": {} }, "0x0204": { "endpoint_attribute": "thermostat_ui", "attributes": { "0x0001": { "attribute_name": "keypad_lockout", "value": 1 } }, "unsupported_attributes": {} }, "0x000f": { "endpoint_attribute": "binary_input", "attributes": { "0x001c": { "attribute_name": "description", "value": "Open Window Detected" }, "0x0055": { "attribute_name": "present_value", "value": 0 } }, "unsupported_attributes": {} }, "0x0001": { "endpoint_attribute": "power", "attributes": { "0x0021": { "attribute_name": "battery_percentage_remaining", "value": 200 }, "0x0031": { "attribute_name": "battery_size", "value": 3 }, "0x0033": { "attribute_name": "battery_quantity", "value": 2 } }, "unsupported_attributes": {} } }, "out_clusters": { "0x000a": { "endpoint_attribute": "time", "attributes": {}, "unsupported_attributes": {} }, "0x0019": { "endpoint_attribute": "ota", "attributes": {}, "unsupported_attributes": {} } } }, "2": { "device_type": { "name": "COMBINED_INTERFACE", "id": 7 }, "profile_id": 260, "in_clusters": { "0x0006": { "endpoint_attribute": "on_off", "attributes": { "0x0000": { "attribute_name": "on_off", "value": 1 } }, "unsupported_attributes": {} }, "0x000d": { "endpoint_attribute": "analog_output", "attributes": { "0x001c": { "attribute_name": "description", "value": "Opened Window Temperature" }, "0x0041": { "attribute_name": "max_present_value", "value": 30.0 }, "0x0045": { "attribute_name": "min_present_value", "value": 5.0 }, "0x0055": { "attribute_name": "present_value", "value": 10.0 }, "0x006a": { "attribute_name": "resolution", "value": 0.5 }, "0x0075": { "attribute_name": "engineering_units", "value": 62 }, "0x0100": { "attribute_name": "application_type", "value": 0 } }, "unsupported_attributes": {} } }, "out_clusters": {} }, "3": { "device_type": { "name": "COMBINED_INTERFACE", "id": 7 }, "profile_id": 260, "in_clusters": { "0x0006": { "endpoint_attribute": "on_off", "attributes": { "0x0000": { "attribute_name": "on_off", "value": 1 } }, "unsupported_attributes": {} } }, "out_clusters": {} } } } } ```
Additional logs ``` Paste any additional debug logs here. Don't remove the extra line breaks outside the ``` marks. ```

Additional context Add any other context or screenshots about the feature request here.

schu42 commented 2 years ago

Device support Request done with closed Pull Request #1770