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
737 stars 676 forks source link

[Device Support Request] Mercator Ikuu 1 button Dimmer (SSWD01) #1463

Closed ToastySefac closed 1 year ago

ToastySefac commented 2 years ago

Is your feature request related to a problem? Please describe. I have a Mercator Ikuu Light Dimmer (SSWD01) which identifies as a Tuya TS0601 Dimmer (_TZE200_swaamsoy). It interviews ok in ZHA, but once done, HA only gives a on/off option which doesn’t do anything.

Describe the solution you'd like I'd like to have it identify correctly and have standard options, such an on/off, dimmer brightness up/down, etc

Device signature - this can be acquired by removing the device from ZHA and pairing it again from the add devices screen. Be sure to add the entire content of the log panel after pairing the device to a code block below this line. { "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, allocate_address=True, is_alternate_pan_coordinator=False, is_coordinator=False, is_end_device=False, is_full_function_device=True, is_mains_powered=True, is_receiver_on_when_idle=True, is_router=True, *is_security_capable=False)", "endpoints": { "1": { "profile_id": 260, "device_type": "0x0104", "in_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x0300", "0xef00" ], "out_clusters": [ "0x000a", "0x0019" ] } }, "manufacturer": "_TZE200_swaamsoy", "model": "TS0601", "class": "zigpy.device.Device" }

Additional context

The model is in the Tuya "ts0601_dimmer.py" quirk file already. I've added the quirk to my custom folder and linked in configuration.yaml, but it doesn't seem to be helping.

Appreciate any help you could give. Thanks

MattWestb commented 2 years ago

Your device need being added in one quirk for working in ZHA and we have getting its working with most tuya dimmers but its little more work getting all in the right place. Look in this issue https://github.com/zigpy/zha-device-handlers/issues/1302 for the progress and if you can helping testing the quirk for getting it working OK and being added in zha as soon is possible then its many user like having it so there devices is working in ZHA.

javicalle commented 2 years ago

I believe that you can simple change the DEVICE_TYPE to make it work:


class TuyaSingleSwitchDimmerPlus(TuyaDimmerSwitch):
    """Tuya touch switch device."""

    signature = {
        # "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, 
        # reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, 
        # manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, 
        # descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, 
        # *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
        MODELS_INFO: [
            ("_TZE200_swaamsoy", "TS0601"),
        ],
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.DIMMER_SWITCH,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    LevelControl.cluster_id,
                    Color.cluster_id,
                    TuyaManufCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            }
        },
    }

    replacement = {
        ENDPOINTS: {
            1: {
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaOnOffMCU,
                    TuyaInWallLevelControl,
                    # LevelControl.cluster_id,
                    TuyaLevelControlManufCluster,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            }
        }
    }

The device also exposes 'normal' OnOff and LevelControl clusters. This quirk will ignore the 'normal' clusters and make use of MCU commands.

ToastySefac commented 2 years ago

I've updated the file with your code above and get this error:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 335, in async_setup
    result = await component.async_setup_entry(hass, self)
  File "/usr/src/homeassistant/homeassistant/components/zha/__init__.py", line 99, in async_setup_entry
    setup_quirks(config)
  File "/usr/local/lib/python3.9/site-packages/zhaquirks/__init__.py", line 409, in setup
    importer.find_module(modname).load_module(modname)
  File "<frozen importlib._bootstrap_external>", line 529, in _check_name_wrapper
  File "<frozen importlib._bootstrap_external>", line 1029, in load_module
  File "<frozen importlib._bootstrap_external>", line 854, in load_module
  File "<frozen importlib._bootstrap>", line 274, in _load_module_shim
  File "<frozen importlib._bootstrap>", line 711, in _load
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/config/custom_zha_quirks/ts0601_dimmer.py", line 27, in <module>
    class TuyaSingleSwitchDimmerPlus(TuyaDimmerSwitch):
  File "/config/custom_zha_quirks/ts0601_dimmer.py", line 45, in TuyaSingleSwitchDimmerPlus
    Identify.cluster_id,
NameError: name 'Identify' is not defined
javicalle commented 2 years ago

Get all the import from the previous version:

from typing import Optional, Union

from zigpy.profiles import zha
from zigpy.quirks import CustomCluster
import zigpy.types as t
from zigpy.zcl import foundation
from zigpy.zcl.clusters.general import Basic, GreenPowerProxy, Groups, Identify, LevelControl, OnOff, Ota, Scenes, Time
from zigpy.zcl.clusters.lighting import Color

from zhaquirks.const import (
    DEVICE_TYPE,
    .../....
ToastySefac commented 2 years ago

Thanks. That's getting closer. I have the light turning on and off, but the dimming functionality is missing. It's also introduced color and temperature controls, which this physical device doesn't control (but that doesn't matter much).

2022-04-11 20:20:53 WARNING (MainThread) [zigpy.zcl] Unknown cluster 0xEF00
2022-04-11 20:20:53 WARNING (MainThread) [zigpy.zcl] Unknown cluster 0xEF00
2022-04-11 20:20:55 WARNING (MainThread) [zigpy.zcl] [0x6BCF:1:0xef00] No 'handle_set_data_response' tuya handler found for set_data_response(data=TuyaCommand(status=89, tsn=233, dp=6, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'\x00\x00\x00\x00', *payload=0)))
2022-04-11 20:20:59 WARNING (MainThread) [homeassistant.components.google_assistant.trait] Entity light.tze200_swaamsoy_ts0601_e365f4fe_level_light_color_on_off has incorrect color temperature 0
2022-04-11 20:21:01 WARNING (MainThread) [zigpy.zcl] [0x6BCF:1:0xef00] No 'handle_set_data_response' tuya handler found for set_data_response(data=TuyaCommand(status=89, tsn=234, dp=6, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'\x00\x00\x00\x00', *payload=0)))
2022-04-11 20:22:01 WARNING (MainThread) [zigpy.zcl] [0x6BCF:1:0xef00] No 'handle_set_data_response' tuya handler found for set_data_response(data=TuyaCommand(status=89, tsn=235, dp=6, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'\x00\x00\x00\x00', *payload=0)))
2022-04-11 20:23:01 WARNING (MainThread) [zigpy.zcl] [0x6BCF:1:0xef00] No 'handle_set_data_response' tuya handler found for set_data_response(data=TuyaCommand(status=89, tsn=236, dp=6, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'\x00\x00\x00\x00', *payload=0)))
2022-04-11 20:23:42 WARNING (MainThread) [homeassistant.components.google_assistant.trait] Entity light.tze200_swaamsoy_ts0601_e365f4fe_level_light_color_on_off has incorrect color temperature 0
2022-04-11 20:23:47 WARNING (MainThread) [homeassistant.components.google_assistant.trait] Entity light.tze200_swaamsoy_ts0601_e365f4fe_level_light_color_on_off has incorrect color temperature 0
2022-04-11 20:23:47 WARNING (MainThread) [homeassistant.components.google_assistant.trait] Entity light.tze200_swaamsoy_ts0601_e365f4fe_level_light_color_on_off has incorrect color temperature 0
2022-04-11 20:23:48 WARNING (MainThread) [homeassistant.components.google_assistant.trait] Entity light.tze200_swaamsoy_ts0601_e365f4fe_level_light_color_on_off has incorrect color temperature 0
2022-04-11 20:23:48 WARNING (MainThread) [homeassistant.components.google_assistant.trait] Entity light.tze200_swaamsoy_ts0601_e365f4fe_level_light_color_on_off has incorrect color temperature 0
2022-04-11 20:24:01 WARNING (MainThread) [zigpy.zcl] [0x6BCF:1:0xef00] No 'handle_set_data_response' tuya handler found for set_data_response(data=TuyaCommand(status=89, tsn=242, dp=6, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'\x00\x00\x00\x00', *payload=0)))
2022-04-11 20:24:24 WARNING (MainThread) [homeassistant.components.google_assistant.trait] Entity light.tze200_swaamsoy_ts0601_e365f4fe_level_light_color_on_off has incorrect color temperature 0
2022-04-11 20:24:28 WARNING (MainThread) [homeassistant.components.google_assistant.trait] Entity light.tze200_swaamsoy_ts0601_e365f4fe_level_light_color_on_off has incorrect color temperature 0
2022-04-11 20:24:31 WARNING (MainThread) [homeassistant.components.google_assistant.trait] Entity light.tze200_swaamsoy_ts0601_e365f4fe_level_light_color_on_off has incorrect color temperature 0
2022-04-11 20:24:33 WARNING (MainThread) [homeassistant.components.google_assistant.trait] Entity light.tze200_swaamsoy_ts0601_e365f4fe_level_light_color_on_off has incorrect color temperature 0
2022-04-11 20:24:33 WARNING (MainThread) [homeassistant.components.google_assistant.trait] Entity light.tze200_swaamsoy_ts0601_e365f4fe_level_light_color_on_off has incorrect color temperature 0
2022-04-11 20:24:38 WARNING (MainThread) [homeassistant.components.google_assistant.trait] Entity light.tze200_swaamsoy_ts0601_e365f4fe_level_light_color_on_off has incorrect color temperature 0
2022-04-11 20:24:40 WARNING (MainThread) [homeassistant.components.google_assistant.trait] Entity light.tze200_swaamsoy_ts0601_e365f4fe_level_light_color_on_off has incorrect color temperature 0
javicalle commented 2 years ago

It seems that the quirk does not fit the device. Please, without turning HA off, reboot the switch and attach any traces it generates.

javicalle commented 2 years ago

It's also introduced color and temperature controls, which this physical device doesn't control (but that doesn't matter much).

If not useful, the Color cluster can be removed from the replacement part.

According to https://github.com/Koenkk/zigbee-herdsman-converters/pull/3004 most of the DPs match with our definition, so is not clear why didn't work.

In addition to the traces of the device restart (for example unplugging it and turning it back on), traces of when the physical device is operated would be very useful. Look at the logger config to get all the relevant traces:

ToastySefac commented 2 years ago

It seems that the quirk does not fit the device. Please, without turning HA off, reboot the switch and attach any traces it generates.

I restarted the device by cutting the power at the mains power / fuse box. It has now restarted and is working perfectly. I will keep testing it over the next few days, but thank you for your help @javicalle . I really appreciate it!

If not useful, the Color cluster can be removed from the replacement part.

This worked as well.

For anyone else with this device, here is the final ts0601_dimmer.py contents:

"""Tuya based touch switch."""
from typing import Optional, Union

from zigpy.profiles import zha
from zigpy.quirks import CustomCluster
import zigpy.types as t
from zigpy.zcl import foundation
from zigpy.zcl.clusters.general import Basic, GreenPowerProxy, Groups, Identify, LevelControl, OnOff, Ota, Scenes, Time
from zigpy.zcl.clusters.lighting import Color

from zhaquirks.const import (
    DEVICE_TYPE,
    ENDPOINTS,
    INPUT_CLUSTERS,
    MODELS_INFO,
    OUTPUT_CLUSTERS,
    PROFILE_ID,
)
from zhaquirks.tuya import (
    TuyaDimmerSwitch,
    TuyaLevelControl,
    TuyaManufacturerClusterOnOff,
    TuyaManufacturerLevelControl,
    TuyaManufCluster,
    TuyaOnOff,
)
from zhaquirks.tuya.mcu import (
    TuyaInWallLevelControl,
    TuyaLevelControlManufCluster,
    TuyaOnOff as TuyaOnOffMCU,
)

class TuyaSingleSwitchDimmerPlus(TuyaDimmerSwitch):
    """Tuya touch switch device."""

    signature = {
        # "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, 
        # reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, 
        # manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, 
        # descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, 
        # *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
        MODELS_INFO: [
            ("_TZE200_swaamsoy", "TS0601"),
        ],
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.DIMMER_SWITCH,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    LevelControl.cluster_id,
                    Color.cluster_id,
                    TuyaManufCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            }
        },
    }

    replacement = {
        ENDPOINTS: {
            1: {
                DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaOnOffMCU,
                    TuyaInWallLevelControl,
                    TuyaLevelControlManufCluster,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            }
        }
    }
ToastySefac commented 2 years ago

I've tested this for a couple of days. Other than a warning in the logs, it is working perfectly, both through HA and physically. Are the warnings anything to worry about?

Logger: zigpy.zcl
Source: /usr/local/lib/python3.9/site-packages/zhaquirks/tuya/__init__.py:1388
First occurred: 4:18:15 PM (251 occurrences)
Last logged: 8:27:50 PM

[0x6BCF:1:0xef00] No 'handle_set_data_response' tuya handler found for set_data_response(data=TuyaCommand(status=9, tsn=54, dp=6, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'\x00\x00\x00\x00', *payload=0)))
[0x6BCF:1:0xef00] No 'handle_set_data_response' tuya handler found for set_data_response(data=TuyaCommand(status=9, tsn=55, dp=6, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'\x00\x00\x00\x00', *payload=0)))
[0x6BCF:1:0xef00] No 'handle_set_data_response' tuya handler found for set_data_response(data=TuyaCommand(status=9, tsn=56, dp=6, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'\x00\x00\x00\x00', *payload=0)))
[0x6BCF:1:0xef00] No 'handle_set_data_response' tuya handler found for set_data_response(data=TuyaCommand(status=9, tsn=57, dp=6, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'\x00\x00\x00\x00', *payload=0)))
[0x6BCF:1:0xef00] No 'handle_set_data_response' tuya handler found for set_data_response(data=TuyaCommand(status=9, tsn=80, dp=6, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'\x00\x00\x00\x00', *payload=0)))
javicalle commented 2 years ago

The warnings are only informative that there is a config of the device (datapoint 6) that the implementation is not considering. It seems that device reports from datapoints 1, 2, 3 and 6.

DP 1 and 2 are the on_off and current_level and seems to be working OK. DP 3 is configured by default to the dimming minimum_level value. Not sure if is correct. DP 6 is not configured (and ZHA complains about it). For the value it has, this could be the minimum_level but I have not found conclusive information.

But it is also, according to the vendor device have a 'backlight status' function, other tuya devices have it at datapoint 15 but yours don't report at this DP, so no sure how can be configured (maybe one of the already known DP?).

Regards.

ToastySefac commented 2 years ago

Any ideas as to what might be happening with this device? When I select a brightness, it jumps around wildly. I can't see any pattern to it.

https://user-images.githubusercontent.com/40307878/173210357-7f34e80e-6bc9-45a1-8431-e8b7f851f30f.mp4

I don't think it's a faulty device. I believe it's something happening within my Home Assitant/ConbeeII/ZHA setup because:

javicalle commented 2 years ago

I can't say that would be the same behaviour, but some devices have a 'transition time' when you change the brightness. My guess would be that the behaviour is:

Debug logs would give more information of what is happening here. Also, is it just an UI issue or is the device behavior also erratic?

ToastySefac commented 2 years ago

I think your guess might be right.

In instances where I make a large change (example: from 20% to 80%) and when it reverts back to the original value in the UI, the device's physical brightness does not change. So, it appears the UI updates itself to show the true current state reported by the device.

I can force it to get to the desired brightness if I tap/click the brightness level twice, it jumps a bit, but seems to retain the second one.

The device's behaviour is not erratic, just the UI.

Debug log ``` 2022-06-13 10:19:42 DEBUG (MainThread) [homeassistant.core] Bus:Handling 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0x0008] Sending Tuya Cluster Command. Cluster Command is 4, Arguments are (140, 1) 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] tuya_mcu_command: cluster_data=TuyaClusterData(endpoint_id=1, cluster_attr='on_off', attr_value=1, expect_reply=True) 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] get_dp_mapping --> found DP: 1 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] from_cluster_data: 1, DPToAttributeMapping(ep_attribute='on_off', attribute_name='on_off', dp_type=, converter=None, dp_converter=None, endpoint_id=None) 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] ztype: Bool.true 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] from_value: [1, 1] 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] raw: b'\x01' 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] tuya_command: TuyaCommand(status=0, tsn=166, dp=1, data=TuyaData(dp_type=, function=0, raw=b'\x01', *payload=)) 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=True, is_reply=0, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), manufacturer=4098, tsn=167, command_id=0, *is_reply=False) 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending request: set_data(data=TuyaCommand(status=0, tsn=166, dp=1, data=TuyaData(dp_type=, function=0, raw=b'\x01', *payload=))) 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] tuya_mcu_command: cluster_data=TuyaClusterData(endpoint_id=1, cluster_attr='current_level', attr_value=140, expect_reply=True) 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] get_dp_mapping --> found DP: 2 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] from_cluster_data: 2, DPToAttributeMapping(ep_attribute='level', attribute_name='current_level', dp_type=, converter= at 0x7fc620f2a9d0>, dp_converter= at 0x7fc620f2aa60>, endpoint_id=None) 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] converted: 549 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] ztype: 549 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] from_value: [4, 0, 0, 2, 37] 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] raw: b'\x00\x00\x02%' 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] tuya_command: TuyaCommand(status=0, tsn=168, dp=2, data=TuyaData(dp_type=, function=0, raw=b'\x00\x00\x02%', *payload=620888064)) 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=True, is_reply=0, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), manufacturer=4098, tsn=169, command_id=0, *is_reply=False) 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending request: set_data(data=TuyaCommand(status=0, tsn=168, dp=2, data=TuyaData(dp_type=, function=0, raw=b'\x00\x00\x02%', *payload=620888064))) 2022-06-13 10:19:42 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1ABB:1:0x0008]: executed 'move_to_level_with_on_off' command with args: '(140, 1)' kwargs: '{}' result: Default_Response(command_id=4, status=) 2022-06-13 10:19:42 DEBUG (MainThread) [homeassistant.components.zha.entity] light.familyroom_dimmer: turned on: {'move_to_level_with_on_off': Default_Response(command_id=4, status=)} 2022-06-13 10:19:42 DEBUG (MainThread) [homeassistant.core] Bus:Handling ], color_mode=brightness, brightness=0, off_brightness=None, friendly_name=Family Room Dimmer, supported_features=41 @ 2022-06-13T10:09:08.036149+10:00>, new_state=], color_mode=brightness, brightness=140, off_brightness=None, friendly_name=Family Room Dimmer, supported_features=41 @ 2022-06-13T10:09:08.036149+10:00>> 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 167 under 170 request id, data: b'050210a70000a60101000101' 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (27, 170, , , 260, 61184, 1, b'\x05\x02\x10\xa7\x00\x00\xa6\x01\x01\x00\x01\x01', , 0) 2022-06-13 10:19:42 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 169 under 171 request id, data: b'050210a90000a80202000400000225' 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, , 170] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (30, 171, , , 260, 61184, 1, b'\x05\x02\x10\xa9\x00\x00\xa8\x02\x02\x00\x04\x00\x00\x02%', , 0) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, , 171] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 170: 00 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0xaa 'aps_data_confirm' for , status: 0x00 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [30, , , 1, , 1, 260, 61184, b'\x0c\x02\x10\xa7\x0b\x00\x00', 0, 175, 255, 228, 60, 19, 0, -46] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received ZCL frame: b'\x0c\x02\x10\xa7\x0b\x00\x00' 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=True, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), manufacturer=4098, tsn=167, command_id=11, *is_reply=True) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:Default_Response(command_id=0, status=) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'0c0210a70b0000' 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 171: 00 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0xab 'aps_data_confirm' for , status: 0x00 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [30, , , 1, , 1, 260, 61184, b'\x0c\x02\x10\xa9\x0b\x00\x00', 0, 175, 255, 228, 60, 19, 0, -47] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received ZCL frame: b'\x0c\x02\x10\xa9\x0b\x00\x00' 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=True, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), manufacturer=4098, tsn=169, command_id=11, *is_reply=True) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:Default_Response(command_id=0, status=) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'0c0210a90b0000' 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [33, , , 1, , 1, 260, 61184, b'\t(\x02\x01\x10\x01\x01\x00\x01\x01', 0, 175, 255, 77, 59, 19, 0, -46] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received ZCL frame: b'\t(\x02\x01\x10\x01\x01\x00\x01\x01' 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=40, command_id=2, *is_reply=True) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:set_data_response(data=TuyaCommand(status=1, tsn=16, dp=1, data=TuyaData(dp_type=, function=0, raw=b'\x01', *payload=))) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received command 0x02 (TSN 40): set_data_response(data=TuyaCommand(status=1, tsn=16, dp=1, data=TuyaData(dp_type=, function=0, raw=b'\x01', *payload=))) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=40, command_id=, *is_reply=True) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending reply: Default_Response(command_id=2, status=) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 40 under 172 request id, data: b'18280b0200' 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'09280201100101000101' 2022-06-13 10:19:43 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x4A97](TS0501): Device seen - marking the device available and resetting counter 2022-06-13 10:19:43 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x4A97](TS0501): Update device availability - device available: True - new availability: True - changed: False 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (20, 172, , , 260, 61184, 1, b'\x18(\x0b\x02\x00', , 0) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, , 172] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 172: 00 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0xac 'aps_data_confirm' for , status: 0x00 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [36, , , 1, , 1, 260, 61184, b'\t)\x02\x01\x11\x02\x02\x00\x04\x00\x00\x02%', 0, 175, 255, 228, 60, 19, 0, -46] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received ZCL frame: b'\t)\x02\x01\x11\x02\x02\x00\x04\x00\x00\x02%' 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=41, command_id=2, *is_reply=True) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:set_data_response(data=TuyaCommand(status=1, tsn=17, dp=2, data=TuyaData(dp_type=, function=0, raw=b'%\x02\x00\x00', *payload=549))) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received command 0x02 (TSN 41): set_data_response(data=TuyaCommand(status=1, tsn=17, dp=2, data=TuyaData(dp_type=, function=0, raw=b'%\x02\x00\x00', *payload=549))) 2022-06-13 10:19:43 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1ABB:1:0x0008]: received attribute: 0 update with value: 139 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=41, command_id=, *is_reply=True) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending reply: Default_Response(command_id=2, status=) 2022-06-13 10:19:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling ], color_mode=brightness, brightness=140, off_brightness=None, friendly_name=Family Room Dimmer, supported_features=41 @ 2022-06-13T10:09:08.036149+10:00>, new_state=], color_mode=brightness, brightness=139, off_brightness=None, friendly_name=Family Room Dimmer, supported_features=41 @ 2022-06-13T10:09:08.036149+10:00>> 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 41 under 173 request id, data: b'18290b0200' 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'09290201110202000400000225' 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (20, 173, , , 260, 61184, 1, b'\x18)\x0b\x02\x00', , 0) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, , 173] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 173: 00 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0xad 'aps_data_confirm' for , status: 0x00 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [36, , , 1, , 1, 260, 61184, b'\t*\x02\x01\x12\x02\x02\x00\x04\x00\x00\x02\x12', 0, 175, 255, 228, 60, 19, 0, -46] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received ZCL frame: b'\t*\x02\x01\x12\x02\x02\x00\x04\x00\x00\x02\x12' 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=42, command_id=2, *is_reply=True) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:set_data_response(data=TuyaCommand(status=1, tsn=18, dp=2, data=TuyaData(dp_type=, function=0, raw=b'\x12\x02\x00\x00', *payload=530))) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received command 0x02 (TSN 42): set_data_response(data=TuyaCommand(status=1, tsn=18, dp=2, data=TuyaData(dp_type=, function=0, raw=b'\x12\x02\x00\x00', *payload=530))) 2022-06-13 10:19:43 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1ABB:1:0x0008]: received attribute: 0 update with value: 135 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=42, command_id=, *is_reply=True) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending reply: Default_Response(command_id=2, status=) 2022-06-13 10:19:43 DEBUG (MainThread) [homeassistant.core] Bus:Handling ], color_mode=brightness, brightness=139, off_brightness=None, friendly_name=Family Room Dimmer, supported_features=41 @ 2022-06-13T10:09:08.036149+10:00>, new_state=], color_mode=brightness, brightness=135, off_brightness=None, friendly_name=Family Room Dimmer, supported_features=41 @ 2022-06-13T10:09:08.036149+10:00>> 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 42 under 174 request id, data: b'182a0b0200' 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'092a0201120202000400000212' 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (20, 174, , , 260, 61184, 1, b'\x18*\x0b\x02\x00', , 0) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, , 174] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [36, , , 1, , 1, 260, 61184, b'\t*\x02\x01\x12\x02\x02\x00\x04\x00\x00\x02\x12', 0, 175, 255, 228, 60, 19, 0, -38] 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received ZCL frame: b'\t*\x02\x01\x12\x02\x02\x00\x04\x00\x00\x02\x12' 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=42, command_id=2, *is_reply=True) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:set_data_response(data=TuyaCommand(status=1, tsn=18, dp=2, data=TuyaData(dp_type=, function=0, raw=b'\x12\x02\x00\x00', *payload=530))) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'092a0201120202000400000212' 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,) 2022-06-13 10:19:43 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 174: 00 2022-06-13 10:19:44 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xF4F5](TS0505B): Device seen - marking the device available and resetting counter 2022-06-13 10:19:44 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xF4F5](TS0505B): Update device availability - device available: True - new availability: True - changed: False 2022-06-13 10:19:45 DEBUG (MainThread) [homeassistant.core] Bus:Handling 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0x0008] Sending Tuya Cluster Command. Cluster Command is 4, Arguments are (61, 1) 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] tuya_mcu_command: cluster_data=TuyaClusterData(endpoint_id=1, cluster_attr='on_off', attr_value=1, expect_reply=True) 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] get_dp_mapping --> found DP: 1 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] from_cluster_data: 1, DPToAttributeMapping(ep_attribute='on_off', attribute_name='on_off', dp_type=, converter=None, dp_converter=None, endpoint_id=None) 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] ztype: Bool.true 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] from_value: [1, 1] 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] raw: b'\x01' 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] tuya_command: TuyaCommand(status=0, tsn=175, dp=1, data=TuyaData(dp_type=, function=0, raw=b'\x01', *payload=)) 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=True, is_reply=0, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), manufacturer=4098, tsn=176, command_id=0, *is_reply=False) 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending request: set_data(data=TuyaCommand(status=0, tsn=175, dp=1, data=TuyaData(dp_type=, function=0, raw=b'\x01', *payload=))) 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] tuya_mcu_command: cluster_data=TuyaClusterData(endpoint_id=1, cluster_attr='current_level', attr_value=61, expect_reply=True) 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] get_dp_mapping --> found DP: 2 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] from_cluster_data: 2, DPToAttributeMapping(ep_attribute='level', attribute_name='current_level', dp_type=, converter= at 0x7fc620f2a9d0>, dp_converter= at 0x7fc620f2aa60>, endpoint_id=None) 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] converted: 239 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] ztype: 239 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] from_value: [4, 0, 0, 0, 239] 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] raw: b'\x00\x00\x00\xef' 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] tuya_command: TuyaCommand(status=0, tsn=177, dp=2, data=TuyaData(dp_type=, function=0, raw=b'\x00\x00\x00\xef', *payload=4009754624)) 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=True, is_reply=0, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), manufacturer=4098, tsn=178, command_id=0, *is_reply=False) 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending request: set_data(data=TuyaCommand(status=0, tsn=177, dp=2, data=TuyaData(dp_type=, function=0, raw=b'\x00\x00\x00\xef', *payload=4009754624))) 2022-06-13 10:19:45 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1ABB:1:0x0008]: executed 'move_to_level_with_on_off' command with args: '(61, 1)' kwargs: '{}' result: Default_Response(command_id=4, status=) 2022-06-13 10:19:45 DEBUG (MainThread) [homeassistant.components.zha.entity] light.familyroom_dimmer: turned on: {'move_to_level_with_on_off': Default_Response(command_id=4, status=)} 2022-06-13 10:19:45 DEBUG (MainThread) [homeassistant.core] Bus:Handling ], color_mode=brightness, brightness=135, off_brightness=None, friendly_name=Family Room Dimmer, supported_features=41 @ 2022-06-13T10:09:08.036149+10:00>, new_state=], color_mode=brightness, brightness=61, off_brightness=None, friendly_name=Family Room Dimmer, supported_features=41 @ 2022-06-13T10:09:08.036149+10:00>> 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 176 under 179 request id, data: b'050210b00000af0101000101' 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (27, 179, , , 260, 61184, 1, b'\x05\x02\x10\xb0\x00\x00\xaf\x01\x01\x00\x01\x01', , 0) 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 178 under 180 request id, data: b'050210b20000b102020004000000ef' 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, , 179] 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:45 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:46 DEBUG (MainThread) [homeassistant.core] Bus:Handling , new_state=> 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (30, 180, , , 260, 61184, 1, b'\x05\x02\x10\xb2\x00\x00\xb1\x02\x02\x00\x04\x00\x00\x00\xef', , 0) 2022-06-13 10:19:46 DEBUG (MainThread) [homeassistant.core] Bus:Handling , new_state=> 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, , 180] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 179: 00 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0xb3 'aps_data_confirm' for , status: 0x00 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [30, , , 1, , 1, 260, 61184, b'\x0c\x02\x10\xb0\x0b\x00\x00', 0, 175, 255, 228, 60, 19, 0, -46] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received ZCL frame: b'\x0c\x02\x10\xb0\x0b\x00\x00' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=True, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), manufacturer=4098, tsn=176, command_id=11, *is_reply=True) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:Default_Response(command_id=0, status=) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'0c0210b00b0000' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 180: 00 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0xb4 'aps_data_confirm' for , status: 0x00 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [33, , , 1, , 1, 260, 61184, b'\t+\x02\x01\x13\x01\x01\x00\x01\x01', 0, 175, 255, 228, 60, 19, 0, -47] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received ZCL frame: b'\t+\x02\x01\x13\x01\x01\x00\x01\x01' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=43, command_id=2, *is_reply=True) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:set_data_response(data=TuyaCommand(status=1, tsn=19, dp=1, data=TuyaData(dp_type=, function=0, raw=b'\x01', *payload=))) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received command 0x02 (TSN 43): set_data_response(data=TuyaCommand(status=1, tsn=19, dp=1, data=TuyaData(dp_type=, function=0, raw=b'\x01', *payload=))) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=43, command_id=, *is_reply=True) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending reply: Default_Response(command_id=2, status=) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 43 under 181 request id, data: b'182b0b0200' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'092b0201130101000101' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [30, , , 1, , 1, 260, 61184, b'\x0c\x02\x10\xb2\x0b\x00\x00', 0, 175, 255, 228, 60, 19, 0, -46] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received ZCL frame: b'\x0c\x02\x10\xb2\x0b\x00\x00' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=True, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), manufacturer=4098, tsn=178, command_id=11, *is_reply=True) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:Default_Response(command_id=0, status=) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'0c0210b20b0000' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [33, , , 1, , 1, 260, 61184, b'\t+\x02\x01\x13\x01\x01\x00\x01\x01', 0, 175, 255, 228, 60, 19, 0, -38] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received ZCL frame: b'\t+\x02\x01\x13\x01\x01\x00\x01\x01' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=43, command_id=2, *is_reply=True) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:set_data_response(data=TuyaCommand(status=1, tsn=19, dp=1, data=TuyaData(dp_type=, function=0, raw=b'\x01', *payload=))) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'092b0201130101000101' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (20, 181, , , 260, 61184, 1, b'\x18+\x0b\x02\x00', , 0) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, , 181] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 181: 00 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0xb5 'aps_data_confirm' for , status: 0x00 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [36, , , 1, , 1, 260, 61184, b'\t,\x02\x01\x14\x02\x02\x00\x04\x00\x00\x02\x12', 0, 175, 255, 228, 60, 19, 0, -39] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received ZCL frame: b'\t,\x02\x01\x14\x02\x02\x00\x04\x00\x00\x02\x12' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=44, command_id=2, *is_reply=True) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:set_data_response(data=TuyaCommand(status=1, tsn=20, dp=2, data=TuyaData(dp_type=, function=0, raw=b'\x12\x02\x00\x00', *payload=530))) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received command 0x02 (TSN 44): set_data_response(data=TuyaCommand(status=1, tsn=20, dp=2, data=TuyaData(dp_type=, function=0, raw=b'\x12\x02\x00\x00', *payload=530))) 2022-06-13 10:19:46 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1ABB:1:0x0008]: received attribute: 0 update with value: 135 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=44, command_id=, *is_reply=True) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending reply: Default_Response(command_id=2, status=) 2022-06-13 10:19:46 DEBUG (MainThread) [homeassistant.core] Bus:Handling ], color_mode=brightness, brightness=61, off_brightness=None, friendly_name=Family Room Dimmer, supported_features=41 @ 2022-06-13T10:09:08.036149+10:00>, new_state=], color_mode=brightness, brightness=135, off_brightness=None, friendly_name=Family Room Dimmer, supported_features=41 @ 2022-06-13T10:09:08.036149+10:00>> 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 44 under 182 request id, data: b'182c0b0200' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'092c0201140202000400000212' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (20, 182, , , 260, 61184, 1, b'\x18,\x0b\x02\x00', , 0) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, , 182] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 182: 00 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0xb6 'aps_data_confirm' for , status: 0x00 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [36, , , 1, , 1, 260, 61184, b'\t-\x02\x01\x15\x02\x02\x00\x04\x00\x00\x00\xef', 0, 175, 255, 228, 60, 19, 0, -38] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received ZCL frame: b'\t-\x02\x01\x15\x02\x02\x00\x04\x00\x00\x00\xef' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=45, command_id=2, *is_reply=True) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:set_data_response(data=TuyaCommand(status=1, tsn=21, dp=2, data=TuyaData(dp_type=, function=0, raw=b'\xef\x00\x00\x00', *payload=239))) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received command 0x02 (TSN 45): set_data_response(data=TuyaCommand(status=1, tsn=21, dp=2, data=TuyaData(dp_type=, function=0, raw=b'\xef\x00\x00\x00', *payload=239))) 2022-06-13 10:19:46 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x1ABB:1:0x0008]: received attribute: 0 update with value: 60 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=45, command_id=, *is_reply=True) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending reply: Default_Response(command_id=2, status=) 2022-06-13 10:19:46 DEBUG (MainThread) [homeassistant.core] Bus:Handling ], color_mode=brightness, brightness=135, off_brightness=None, friendly_name=Family Room Dimmer, supported_features=41 @ 2022-06-13T10:09:08.036149+10:00>, new_state=], color_mode=brightness, brightness=60, off_brightness=None, friendly_name=Family Room Dimmer, supported_features=41 @ 2022-06-13T10:09:08.036149+10:00>> 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 45 under 183 request id, data: b'182d0b0200' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'092d02011502020004000000ef' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (20, 183, , , 260, 61184, 1, b'\x18-\x0b\x02\x00', , 0) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, , 183] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [36, , , 1, , 1, 260, 61184, b'\t-\x02\x01\x15\x02\x02\x00\x04\x00\x00\x00\xef', 0, 175, 255, 228, 60, 19, 0, -38] 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received ZCL frame: b'\t-\x02\x01\x15\x02\x02\x00\x04\x00\x00\x00\xef' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=45, command_id=2, *is_reply=True) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:set_data_response(data=TuyaCommand(status=1, tsn=21, dp=2, data=TuyaData(dp_type=, function=0, raw=b'\xef\x00\x00\x00', *payload=239))) 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'092d02011502020004000000ef' 2022-06-13 10:19:46 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:47 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [36, , , 1, , 1, 260, 61184, b'\t-\x02\x01\x15\x02\x02\x00\x04\x00\x00\x00\xef', 0, 175, 255, 228, 60, 19, 0, -39] 2022-06-13 10:19:47 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received ZCL frame: b'\t-\x02\x01\x15\x02\x02\x00\x04\x00\x00\x00\xef' 2022-06-13 10:19:47 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=45, command_id=2, *is_reply=True) 2022-06-13 10:19:47 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:set_data_response(data=TuyaCommand(status=1, tsn=21, dp=2, data=TuyaData(dp_type=, function=0, raw=b'\xef\x00\x00\x00', *payload=239))) 2022-06-13 10:19:47 DEBUG (MainThread) [zigpy.device] [0x1abb] Invalid state on future for 0x2d seq -- probably duplicate response 2022-06-13 10:19:47 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'092d02011502020004000000ef' 2022-06-13 10:19:47 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,) 2022-06-13 10:19:47 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 183: 00 2022-06-13 10:19:47 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0xb7 'aps_data_confirm' for , status: 0x00 2022-06-13 10:19:47 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:19:52 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x9247](TS0501): Device seen - marking the device available and resetting counter 2022-06-13 10:19:52 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x9247](TS0501): Update device availability - device available: True - new availability: True - changed: False 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [30, , , 1, , 1, 260, 6, b"\x18'\n\x00\x00\x10\x00", 0, 175, 255, 243, 60, 19, 0, -54] 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy.zcl] [0x68BE:1:0x0006] Received ZCL frame: b"\x18'\n\x00\x00\x10\x00" 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy.zcl] [0x68BE:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=39, command_id=10, *is_reply=True) 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy.zcl] [0x68BE:1:0x0006] Decoded ZCL frame: OnOff:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=))]) 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy.zcl] [0x68BE:1:0x0006] Received command 0x0A (TSN 39): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=))]) 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy.zcl] [0x68BE:1:0x0006] Attribute report received: on_off= 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0x0006, data: b'18270a00001000' 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [34, , , 1, , 1, 260, 514, b'\x18(\n\x00\x000\x00\x01\x000\x01', 0, 175, 255, 77, 59, 19, 0, -54] 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy.zcl] [0x68BE:1:0x0202] Received ZCL frame: b'\x18(\n\x00\x000\x00\x01\x000\x01' 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy.zcl] [0x68BE:1:0x0202] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=40, command_id=10, *is_reply=True) 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy.zcl] [0x68BE:1:0x0202] Decoded ZCL frame: Fan:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=enum8, value=)), Attribute(attrid=0x0001, value=TypeValue(type=enum8, value=))]) 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy.zcl] [0x68BE:1:0x0202] Received command 0x0A (TSN 40): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=enum8, value=)), Attribute(attrid=0x0001, value=TypeValue(type=enum8, value=))]) 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy.zcl] [0x68BE:1:0x0202] Attribute report received: fan_mode=, fan_mode_sequence= 2022-06-13 10:20:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x68BE:1:0x0202]: Attribute report 'Fan Control'[fan_mode] = FanMode.Off 2022-06-13 10:20:00 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x68BE:1:0x0202]: Attribute report 'Fan Control'[fan_mode_sequence] = FanModeSequence.Low_High 2022-06-13 10:20:00 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0x0202, data: b'18280a0000300001003001' 2022-06-13 10:20:00 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xD8E3](TS0501): Device seen - marking the device available and resetting counter 2022-06-13 10:20:00 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0xD8E3](TS0501): Update device availability - device available: True - new availability: True - changed: False 2022-06-13 10:20:03 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:20:03 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:20:03 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [30, , , 1, , 1, 260, 514, b'\x18!\n\x01\x000\x01', 0, 175, 255, 243, 60, 19, 0, -54] 2022-06-13 10:20:03 DEBUG (MainThread) [zigpy.zcl] [0x9247:1:0x0202] Received ZCL frame: b'\x18!\n\x01\x000\x01' 2022-06-13 10:20:03 DEBUG (MainThread) [zigpy.zcl] [0x9247:1:0x0202] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=33, command_id=10, *is_reply=True) 2022-06-13 10:20:03 DEBUG (MainThread) [zigpy.zcl] [0x9247:1:0x0202] Decoded ZCL frame: Fan:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=enum8, value=))]) 2022-06-13 10:20:03 DEBUG (MainThread) [zigpy.zcl] [0x9247:1:0x0202] Received command 0x0A (TSN 33): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=enum8, value=))]) 2022-06-13 10:20:03 DEBUG (MainThread) [zigpy.zcl] [0x9247:1:0x0202] Attribute report received: fan_mode_sequence= 2022-06-13 10:20:03 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x9247:1:0x0202]: Attribute report 'Fan Control'[fan_mode_sequence] = FanModeSequence.Low_High 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0x0202, data: b'18210a01003001' 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [30, , , 1, , 1, 260, 514, b'\x18!\n\x01\x000\x01', 0, 175, 255, 243, 60, 19, 0, -54] 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy.zcl] [0x352F:1:0x0202] Received ZCL frame: b'\x18!\n\x01\x000\x01' 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy.zcl] [0x352F:1:0x0202] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=33, command_id=10, *is_reply=True) 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy.zcl] [0x352F:1:0x0202] Decoded ZCL frame: Fan:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=enum8, value=))]) 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy.zcl] [0x352F:1:0x0202] Received command 0x0A (TSN 33): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=enum8, value=))]) 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy.zcl] [0x352F:1:0x0202] Attribute report received: fan_mode_sequence= 2022-06-13 10:20:04 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x352F:1:0x0202]: Attribute report 'Fan Control'[fan_mode_sequence] = FanModeSequence.Low_High 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0x0202, data: b'18210a01003001' 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [30, , , 1, , 1, 260, 514, b'\x18"\n\x01\x000\x01', 0, 175, 255, 243, 60, 19, 0, -46] 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy.zcl] [0xD8E3:1:0x0202] Received ZCL frame: b'\x18"\n\x01\x000\x01' 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy.zcl] [0xD8E3:1:0x0202] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=34, command_id=10, *is_reply=True) 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy.zcl] [0xD8E3:1:0x0202] Decoded ZCL frame: Fan:Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=enum8, value=))]) 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy.zcl] [0xD8E3:1:0x0202] Received command 0x0A (TSN 34): Report_Attributes(attribute_reports=[Attribute(attrid=0x0001, value=TypeValue(type=enum8, value=))]) 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy.zcl] [0xD8E3:1:0x0202] Attribute report received: fan_mode_sequence= 2022-06-13 10:20:04 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0xD8E3:1:0x0202]: Attribute report 'Fan Control'[fan_mode_sequence] = FanModeSequence.Low_High 2022-06-13 10:20:04 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0x0202, data: b'18220a01003001' 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [36, , , 1, , 1, 260, 61184, b'\tL\x02\x004\x06\x02\x00\x04\x00\x00\x00\x00', 0, 175, 255, 249, 60, 19, 0, -54] 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy.zcl] [0x96AA:1:0xef00] Received ZCL frame: b'\tL\x02\x004\x06\x02\x00\x04\x00\x00\x00\x00' 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy.zcl] [0x96AA:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=76, command_id=2, *is_reply=True) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy.zcl] [0x96AA:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:set_data_response(data=TuyaCommand(status=0, tsn=52, dp=6, data=TuyaData(dp_type=, function=0, raw=b'\x00\x00\x00\x00', *payload=0))) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy.zcl] [0x96AA:1:0xef00] Received command 0x02 (TSN 76): set_data_response(data=TuyaCommand(status=0, tsn=52, dp=6, data=TuyaData(dp_type=, function=0, raw=b'\x00\x00\x00\x00', *payload=0))) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy.zcl] [0x96AA:1:0xef00] No datapoint handler for TuyaCommand(status=0, tsn=52, dp=6, data=TuyaData(dp_type=, function=0, raw=b'\x00\x00\x00\x00', *payload=0)) 2022-06-13 10:20:18 WARNING (MainThread) [zigpy.zcl] [0x96AA:1:0xef00] No 'handle_set_data_response' tuya handler found for set_data_response(data=TuyaCommand(status=0, tsn=52, dp=6, data=TuyaData(dp_type=, function=0, raw=b'\x00\x00\x00\x00', *payload=0))) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy.zcl] [0x96AA:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=76, command_id=, *is_reply=True) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy.zcl] [0x96AA:1:0xef00] Sending reply: Default_Response(command_id=2, status=) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 76 under 184 request id, data: b'184c0b0281' 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'094c0200340602000400000000' 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (20, 184, , , 260, 61184, 1, b'\x18L\x0b\x02\x81', , 0) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, , 184] 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 184: 00 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0xb8 'aps_data_confirm' for , status: 0x00 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_indication (1, 1) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] APS data indication response: [36, , , 1, , 1, 260, 61184, b'\t.\x02\x01\x16\x06\x02\x00\x04\x00\x00\x00\x00', 0, 175, 255, 249, 60, 19, 0, -46] 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received ZCL frame: b'\t.\x02\x01\x16\x06\x02\x00\x04\x00\x00\x00\x00' 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, is_reply=1, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=46, command_id=2, *is_reply=True) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Decoded ZCL frame: TuyaLevelControlManufCluster:set_data_response(data=TuyaCommand(status=1, tsn=22, dp=6, data=TuyaData(dp_type=, function=0, raw=b'\x00\x00\x00\x00', *payload=0))) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Received command 0x02 (TSN 46): set_data_response(data=TuyaCommand(status=1, tsn=22, dp=6, data=TuyaData(dp_type=, function=0, raw=b'\x00\x00\x00\x00', *payload=0))) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] No datapoint handler for TuyaCommand(status=1, tsn=22, dp=6, data=TuyaData(dp_type=, function=0, raw=b'\x00\x00\x00\x00', *payload=0)) 2022-06-13 10:20:18 WARNING (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] No 'handle_set_data_response' tuya handler found for set_data_response(data=TuyaCommand(status=1, tsn=22, dp=6, data=TuyaData(dp_type=, function=0, raw=b'\x00\x00\x00\x00', *payload=0))) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=False, is_reply=1, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=46, command_id=, *is_reply=True) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy.zcl] [0x1ABB:1:0xef00] Sending reply: Default_Response(command_id=2, status=) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.zigbee.application] Sending Zigbee request with tsn 46 under 185 request id, data: b'182e0b0281' 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] 'aps_data_indication' response from , ep: 1, profile: 0x0104, cluster_id: 0xef00, data: b'092e0201160602000400000000' 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_request (20, 185, , , 260, 61184, 1, b'\x18.\x0b\x02\x81', , 0) 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] APS data request response: [2, , 185] 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] Device state changed response: [, 0] 2022-06-13 10:20:18 DEBUG (MainThread) [zigpy_deconz.api] Command Command.aps_data_confirm (0,) 2022-06-13 10:20:19 DEBUG (MainThread) [zigpy_deconz.api] APS data confirm response for request with id 185: 00 2022-06-13 10:20:19 DEBUG (MainThread) [zigpy_deconz.api] Request id: 0xb9 'aps_data_confirm' for , status: 0x00 ```
intra-aud commented 2 years ago

Sorry to contaminate the thread with a question to @ToastySefac , you mention that you have the hub that also integrates with this mech. I don't suppose you can check to see what the firmware version is reported as ?

I seem to have an issue with coil whine and i'm wondering if there's a newer firmware that might solve this issue (since i don't have a hub to use with this).

ToastySefac commented 2 years ago

I bought the Mercator hub just to check if any of the devices I have had any updates, they don't 😁

It says the following for the dimmer: ZigBee Module: V1.0.0 MCU Module V2.0.0

I've got a whining too, but the switch is far enough away that I don't hear it. Let me know if you need anything else checked with the hub

intra-aud commented 2 years ago

@ToastySefac , Thank you for checking!

ToastySefac commented 2 years ago

@ToastySefac , Thank you for checking!

Do you have the same issue as above with your dimmer?

intra-aud commented 2 years ago

@ToastySefac , I do not have the same behaviour. It appears mine works as i would expect, however if my dimmer is in the "off" state and i adjust the brightness it does turn on (which is annoying).

github-actions[bot] commented 1 year ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

SamBRZ commented 1 year ago

Hi Guys , a complete noob here ,so appreciate your help . i got the exact same light switch from Mercator Ikuu , and usinghome assitant OS , ZHA with Skyconnect , the switch interview comletes and i get a switch toggle which does nothing , also dont have any dimming options. i read through the whole discussion , but really dont know where to start and how to edit the device .py or even where to find it ! @ToastySefac appreciate your help since it seems like you got this working . thanks mate!

ToastySefac commented 1 year ago

Here's my memory of what I did...

  1. Add this into your configuration.yaml file:
    zha:
    custom_quirks_path: /config/custom_zha_quirks/
  2. Create a folder called "custom_zha_quirks" in /config
  3. Create a new blank file called "ts0601_dimmer.py" and save it in /config/custom_zha_quirks/
  4. Copy and paste the quirk into the new "ts0601_dimmer.py" file.
    
    """Tuya based touch switch."""
    from typing import Optional, Union

from zigpy.profiles import zha from zigpy.quirks import CustomCluster import zigpy.types as t from zigpy.zcl import foundation from zigpy.zcl.clusters.general import Basic, GreenPowerProxy, Groups, Identify, LevelControl, OnOff, Ota, Scenes, Time from zigpy.zcl.clusters.lighting import Color

from zhaquirks.const import ( DEVICE_TYPE, ENDPOINTS, INPUT_CLUSTERS, MODELS_INFO, OUTPUT_CLUSTERS, PROFILE_ID, ) from zhaquirks.tuya import ( TuyaDimmerSwitch, TuyaLevelControl, TuyaManufacturerClusterOnOff, TuyaManufacturerLevelControl, TuyaManufCluster, TuyaOnOff, ) from zhaquirks.tuya.mcu import ( TuyaInWallLevelControl, TuyaLevelControlManufCluster, TuyaOnOff as TuyaOnOffMCU, )

class TuyaSingleSwitchDimmerPlus(TuyaDimmerSwitch): """Tuya touch switch device."""

signature = {
    # "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, 
    # reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, 
    # manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, 
    # descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, 
    # *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
    MODELS_INFO: [
        ("_TZE200_swaamsoy", "TS0601"),
    ],
    ENDPOINTS: {
        1: {
            PROFILE_ID: zha.PROFILE_ID,
            DEVICE_TYPE: zha.DeviceType.DIMMER_SWITCH,
            INPUT_CLUSTERS: [
                Basic.cluster_id,
                Identify.cluster_id,
                Groups.cluster_id,
                Scenes.cluster_id,
                OnOff.cluster_id,
                LevelControl.cluster_id,
                Color.cluster_id,
                TuyaManufCluster.cluster_id,
            ],
            OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
        }
    },
}

replacement = {
    ENDPOINTS: {
        1: {
            DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
            INPUT_CLUSTERS: [
                Basic.cluster_id,
                Identify.cluster_id,
                Groups.cluster_id,
                Scenes.cluster_id,
                TuyaOnOffMCU,
                TuyaInWallLevelControl,
                TuyaLevelControlManufCluster,
            ],
            OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
        }
    }
}

5. Delete anything in /config/custom_zha_quirks/__pycache__/
6. Restart Home Assistant

**To see if the quirk is being applied:**

1. Go into Settings>Devices>Devices and open the dimmer device
2. Under Device Info > Zigbee info, underneath _Power Source:Mains_ you should see an entry that says "_Quirk: ts0601_dimmer.TuyaSingleSwitchDimmerPlus_"
SamBRZ commented 1 year ago

Hey mate , thanks a lot for your reply and step by step instructions. i have followed all the steps and i am getting below error at step #6 when trying to restart HA.

Logger: homeassistant.components.websocket_api.http.connection Source: components/hassio/init.py:563 Integration: Home Assistant WebSocket API (documentation, issues) First occurred: 4:56:39 PM (1 occurrences) Last logged: 4:56:39 PM

[546903718064] The system cannot restart because the configuration is not valid: Invalid config for [zha]: not a directory for dictionary value @ data['zha']['custom_quirks_path']. Got '/config/custom_zha_quirks/'. (See /config/configuration.yaml, line 17). Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 199, in handle_call_service await hass.services.async_call( File "/usr/src/homeassistant/homeassistant/core.py", line 1849, in async_call task.result() File "/usr/src/homeassistant/homeassistant/core.py", line 1889, in _execute_service await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)( File "/usr/src/homeassistant/homeassistant/components/hassio/init.py", line 563, in async_handle_core_service raise HomeAssistantError( homeassistant.exceptions.HomeAssistantError: The system cannot restart because the configuration is not valid: Invalid config for [zha]: not a directory for dictionary value @ data['zha']['custom_quirks_path']. Got '/config/custom_zha_quirks/'. (See /config/configuration.yaml, line 17).

ToastySefac commented 1 year ago

I'm still a novice but I think it's an issue with your custom_zha_quirks folder. Check that you've created it in the right location. It should be: /config/custom_zha_quirks/

intra-aud commented 1 year ago

I think toasty is right, it needs to be in the right place.

For my installation, the quirk file lives in "/usr/share/hassio/homeassistant/custom_zha_quirks"

On Sat, 13 May 2023 at 16:45, ToastySefac @.***> wrote:

I'm still a novice but I think it's an issue with your custom_zha_quirks folder. Check that you've created it in the right location. It should be: /config/custom_zha_quirks/

— Reply to this email directly, view it on GitHub https://github.com/zigpy/zha-device-handlers/issues/1463#issuecomment-1546599095, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABSSJG75OSI4FHRHOZMHLM3XF5CYXANCNFSM5SYMI5KA . You are receiving this because you commented.Message ID: @.***>

-- Cheers,

Peter