Closed Daandeve closed 2 years ago
It seems that is like others Tuya dimmers but with the green power endpoint. I believe that can be easily added.
For future reference do you have a link to the product to help visually identify it?
The 2 gang will require the PR #1247 to be merged. The 1 gang can be fixed with PR #1122, but it is a Work In Progress
@Daandeve are you able to test local quirks in your environment?
It seems that is like others Tuya dimmers but with the green power endpoint. I believe that can be easily added.
For future reference do you have a link to the product to help visually identify it?
This is the product: https://nl.aliexpress.com/item/1005003619398730.html?gatewayAdapt=glo2nld&spm=a2g0o.9042311.0.0.130d4c4dGYyEsh I have the 1 and 2 EU gang models
The 2 gang will require the PR #1247 to be merged. The 1 gang can be fixed with PR #1122, but it is a Work In Progress
@Daandeve are you able to test local quirks in your environment?
I would like to test it but I do not fully understand how I can test quirks. Edit: I figured it out :)
Depending on the environment there are different ways to do it. Here are some examples of how to do it:
It is not too difficult, but it does require touching the insides of the installation and it is preferable to do it if you feel comfortable with those kind of modifications.
Thanks, but the device does not show entities and no errors in the logs. I only see this in the logs, I don't think it was there before.
[0x80c1:1:0xef00] Unknown cluster-specific command 1
[0x80c1:1:0xef00] Unknown cluster-specific command 36
I put the script in custom_zha_quirks/tuya/mcu/__init__.py
And in the home assistant config
zha:
custom_quirks_path: /config/custom_zha_quirks/`
Ok, let's try it.
You need to copy 2 file to the custom_zha_quirks
:
custom_zha_quirks/tuya/mcu/
custom_zha_quirks
:
Then you need to modify the ts0601_dimmer.py
file:
add the new GreenPowerProxy
import:
from zigpy.zcl.clusters.general import Basic, GreenPowerProxy, Groups, LevelControl, Ota, Scenes, Time
replace all the zhaquirks.tuya.mcu
imports:
from custom_zha_quirks.tuya.mcu import (
TuyaInWallLevelControl,
TuyaLevelControlManufCluster,
TuyaOnOff as TuyaOnOffMCU,
)
Add 2 new classes at the end of file:
class TuyaSingleSwitchDimmerGP(TuyaDimmerSwitch):
"""Tuya touch switch device."""
signature = {
MODELS_INFO: [
("_TZE200_3p5ydos3", "TS0601"),
("_TZE200_ip2akl4w", "TS0601"),
],
ENDPOINTS: {
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
INPUT_CLUSTERS: [
Basic.cluster_id,
Groups.cluster_id,
Scenes.cluster_id,
TuyaManufCluster.cluster_id,
],
OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
},
242: {
# <SimpleDescriptor endpoint=242 profile=41440 device_type=97
# input_clusters=[]
# output_clusters=[33]
PROFILE_ID: 41440,
DEVICE_TYPE: 97,
INPUT_CLUSTERS: [],
OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
},
},
}
replacement = {
ENDPOINTS: {
1: {
DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
INPUT_CLUSTERS: [
Basic.cluster_id,
Groups.cluster_id,
Scenes.cluster_id,
TuyaLevelControlManufCluster,
TuyaOnOffMCU,
TuyaInWallLevelControl,
],
OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
},
242: {
PROFILE_ID: 41440,
DEVICE_TYPE: 97,
INPUT_CLUSTERS: [],
OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
},
},
}
class TuyaDoubleSwitchDimmerGP(TuyaDimmerSwitch): """Tuya double channel dimmer device."""
signature = {
MODELS_INFO: [
("_TZE200_fjjbhx9d", "TS0601"),
],
ENDPOINTS: {
1: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
INPUT_CLUSTERS: [
Basic.cluster_id,
Groups.cluster_id,
Scenes.cluster_id,
TuyaManufCluster.cluster_id,
],
OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
},
242: {
PROFILE_ID: 41440,
DEVICE_TYPE: 97,
INPUT_CLUSTERS: [],
OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
},
},
}
replacement = {
ENDPOINTS: {
1: {
DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
INPUT_CLUSTERS: [
Basic.cluster_id,
Groups.cluster_id,
Scenes.cluster_id,
TuyaLevelControlManufCluster,
TuyaOnOffMCU,
TuyaInWallLevelControl,
],
OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
},
2: {
PROFILE_ID: zha.PROFILE_ID,
DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
INPUT_CLUSTERS: [
TuyaOnOffMCU,
TuyaInWallLevelControl,
],
OUTPUT_CLUSTERS: [],
},
242: {
PROFILE_ID: 41440,
DEVICE_TYPE: 97,
INPUT_CLUSTERS: [],
OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
},
}
}
Also, you can enable debug logs for `custom_zha_quirks`:
logger: default: warning logs: .../... custom_zha_quirks: debug
Delete the `__pycache__` folder and restart HA.
It seems that device also have the power_on_state
and backlight_mode
. Not implemented for dimmer yet.
This must be reviewed in order to support it.
And probably also support minimum_level
and maximum_level
. It is not documented, but the photos from the link suggest it.
I followed all steps but nothing is coming up, no logs and no entities. I tried to remove the zigbee device and add it again, but with no success..
When I reconfigure the device the binding and reporting tables are empty.
Do not have any logs when operate the device? Maybe you need to enable the zigpy logs. Can you do a power cycle to the device? Usually this way, devices will broadcast their status.
And the device signature? It is the quirk loaded?
This is what I get in the logs:
2022-01-24 00:00:21 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=141 command_id=Command.Report_Attributes>
2022-01-24 00:00:21 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=65503, value=<TypeValue type=CharacterString, value=���)e���)i���)i���)i���)i���)i���)i���)i���)i���)i���)i���)i>)]]
2022-01-24 00:00:21 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] Attribute report received: 65503=���)e���)i���)i���)i���)i���)i���)i���)i���)i���)i���)i���)i
And
2022-01-24 00:02:28 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=142 command_id=1>
2022-01-24 00:02:28 WARNING (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] Unknown cluster-specific command 1
2022-01-24 00:02:28 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL request 0x0001: b'\x00\xd1\x07\x01\x00\x01\x01'
2022-01-24 00:02:28 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] No handler for cluster command 1
And the device signature? It is the quirk loaded?
How can I see if the quirk is loaded correctly?
How can I see if the quirk is loaded correctly?
From Configuration --> Integrations --> ZHA Devices --> select your device --> Zigbee device signature
It's the same info you put in the first comment.
{
"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=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, 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": "0x0051",
"in_clusters": [
"0x0000",
"0x0004",
"0x0005",
"0xef00"
],
"out_clusters": [
"0x000a",
"0x0019"
]
},
"242": {
"profile_id": 41440,
"device_type": "0x0061",
"in_clusters": [],
"out_clusters": [
"0x0021"
]
}
},
"manufacturer": "_TZE200_fjjbhx9d",
"model": "TS0601",
"class": "zigpy.device.Device"
}
I don't think it is loaded
I don't think it is loaded
No, it is not.
I believe that I have made a mess copying the files. Give me a second to review it.
I think I did it right, why is the init.py in the mcu folder?
Then you hace to replace at ts0601_dimmer.py
some imports:
from custom_zha_quirks.tuya.mcu import (
TuyaInWallLevelControl,
TuyaLevelControlManufCluster,
TuyaOnOff as TuyaOnOffMCU,
)
I think the rest will be OK.
(I have updated the TuyaSingleSwitchDimmerGP
signature part)
I updated the files, without success. The quirk is not found in general.
2022-01-24 00:40:53 DEBUG (MainThread) [zigpy.quirks.registry] Checking quirks for _TZE200_fjjbhx9d TS0601 (a4:c1:38:75:54:c8:df:96)
2022-01-24 00:40:53 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.xbee.xbee_io.XBeeSensor'>
2022-01-24 00:40:53 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {232, 230} {1, 242}
2022-01-24 00:40:53 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.xbee.xbee3_io.XBee3Sensor'>
2022-01-24 00:40:53 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {232, 230} {1, 242}
2022-01-24 00:40:53 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.smartthings.tag_v4.SmartThingsTagV4'>
2022-01-24 00:40:53 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {1} {1, 242}
2022-01-24 00:40:53 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.smartthings.multi.SmartthingsMultiPurposeSensor'>
2022-01-24 00:40:53 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {1} {1, 242}
2022-01-24 00:40:53 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.netvox.z308e3ed.Z308E3ED'>
2022-01-24 00:40:53 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {1} {1, 242}
2022-01-24 00:40:53 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.gledopto.soposhgu10.SoposhGU10'>
2022-01-24 00:40:53 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {11, 13} {1, 242}
2022-01-24 00:40:53 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'bellows.zigbee.application.EZSPCoordinator'>
2022-01-24 00:40:53 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {1} {1, 242}
Just to be sure, are in HA the files placed in /config/custom_zha_quirks/tuya/...
?
No error logs in HA restart? no __pycache__
folder in custom_zha_quirks folder?
Just to be sure, are in HA the files placed in
/config/custom_zha_quirks/tuya/...
?
Yes that is correct
No error logs in HA restart? no
__pycache__
folder in custom_zha_quirks folder?
No errors and no pycache
No idea what could be going on...
Maybe you can try to put all the files at root level /config/custom_zha_quirks/
. The import from ts0601_dimmer.py
file would be replaced with:
from . import (
TuyaInWallLevelControl,
TuyaLevelControlManufCluster,
TuyaOnOff as TuyaOnOffMCU,
)
The rest will be fine as is.
Are you sure HA is restarting? Sometimes, if there is a validation and other error, the console doesn't tell you and it appears to have restarted, but it really hasn't. (Sorry to ask, but I don't find a reason way it is not loading the quirk)
Okay now it loads but I get
ImportError: attempted relative import with no known parent package
Are you sure HA is restarting? Sometimes, if there is a validation and other error, the console doesn't tell you and it appears to have restarted, but it really hasn't. (Sorry to ask, but I don't find a reason way it is not loading the quirk)
I thought that was happening as well, but I restarted the full VM. So that is not the problem
Okay now it loads but I get
ImportError: attempted relative import with no known parent package
Well, then put the __init__.py
file at any place, for example in the original one /config/custom_zha_quirks/tuya/mcu/
and adapt the import accordly:
from custom_zha_quirks.tuya.mcu import (
TuyaInWallLevelControl,
TuyaLevelControlManufCluster,
TuyaOnOff as TuyaOnOffMCU,
)
(not too diferent from previous situation 😅 )
It works!🎇
__init__.py
location:
/config/custom_zha_quirks/tuya/mcu/__init__.py
ts0601_dimmer.py
location:
/config/custom_zha_quirks/ts0601_dimmer.py
And the original import
Okay now it loads but I get
ImportError: attempted relative import with no known parent package
Well, then put the
__init__.py
file at any place, for example in the original one/config/custom_zha_quirks/tuya/mcu/
and adapt the import accordly:from custom_zha_quirks.tuya.mcu import ( TuyaInWallLevelControl, TuyaLevelControlManufCluster, TuyaOnOff as TuyaOnOffMCU, )
(not too diferent from previous situation 😅 )
Exactly 😀
If you're up for it, I'd like to validate a couple of device features to see if they can be implemented. If you are predisposed to it, I will contact you in the next few days to validate. But for now, I'm going to rest a bit 😴.
Thanks and regards.
The on/off states report correctly, but they are not controllable. The brightness states report sometimes correctly, but are also not controllable. When I try to turn it on or off the zha state return a SUCCESS
2022-01-24 01:36:28 DEBUG (MainThread) [zigpy.zcl] [0x80c1:2:0x0006] Sending Tuya Cluster Command... Cluster Command is 1, Arguments are ()
2022-01-24 01:36:28 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] tuya_mcu_command: cluster_data=TuyaClusterData(endpoint_id=2, cluster_attr='on_off', attr_value=1)
2022-01-24 01:36:28 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] get_dp_mapping --> found DP: 7
2022-01-24 01:36:28 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] from_cluster_data: 7, DPToAttributeMapping(ep_attribute='on_off', attribute_name='on_off', dp_type=<TuyaDPType.BOOL: 1>, converter=None, dp_converter=None, endpoint_id=2)
2022-01-24 01:36:28 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ztype: Bool.true
2022-01-24 01:36:28 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] from_value: [1, 1]
2022-01-24 01:36:28 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] raw: b'\x01'
2022-01-24 01:36:28 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] tuya_command: TuyaCommand(status=0, tsn=127, dp=7, data=TuyaData(dp_type=<TuyaDPType.BOOL: 1>, function=0, raw=b'\x01', *payload=<Bool.true: 1>))
2022-01-24 01:36:28 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x80C1:2:0x0006]: executed 'on' command with args: '()' kwargs: '{}' result: Status.SUCCESS
2022-01-24 01:36:28 DEBUG (MainThread) [homeassistant.components.zha.entity] light.bathroom_dimmer_level_on_off_2: turned on: {'on_off': <Status.SUCCESS: 0>}
2022-01-24 01:36:29 DEBUG (MainThread) [zigpy.zcl] [0x8df7:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=59 command_id=Command.Report_Attributes>
2022-01-24 01:36:29 DEBUG (MainThread) [zigpy.zcl] [0x8df7:1:0x0006] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=Bool, value=Bool.false>)]]
2022-01-24 01:36:29 DEBUG (MainThread) [zigpy.zcl] [0x8df7:1:0x0006] Attribute report received: on_off=0
2022-01-24 01:36:31 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=128 command_id=Command.Default_Response>
If you're up for it, I'd like to validate a couple of device features to see if they can be implemented. If you are predisposed to it, I will contact you in the next few days to validate. But for now, I'm going to rest a bit 😴.
Thanks and regards.
Yes for sure! Take your time 😀
If making updated in one normal quirk and one INIT its not working putting both in local quirk ford then both "see" the originals in the HA container. The INIT must being updated in the container for the local quirk can "see" / using it or putting both in the container. That's the limit with local quirks.
I will need traces from the physical device operation:
Okay, I don't really know what I'm looking for. But this happened when I turned the switch on, then dimmed the switch and after I turned it off
2022-01-24 16:26:31 DEBUG (MainThread) [zigpy.zcl] [0x8df7:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=239 command_id=Command.Report_Attributes>
2022-01-24 16:26:31 DEBUG (MainThread) [zigpy.zcl] [0x8df7:1:0x0006] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=Bool, value=Bool.false>)]]
2022-01-24 16:26:31 DEBUG (MainThread) [zigpy.zcl] [0x8df7:1:0x0006] Attribute report received: on_off=0
2022-01-24 16:26:33 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=126 command_id=1>
2022-01-24 16:26:33 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL request 0x0001: [TuyaCommand(status=0, tsn=33, dp=7, data=TuyaData(dp_type=<TuyaDPType.BOOL: 1>, function=0, raw=b'\x01', *payload=<Bool.true: 1>))]
2022-01-24 16:26:34 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=126 command_id=1>
2022-01-24 16:26:34 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=126 command_id=1>
2022-01-24 16:26:34 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x7e seq -- probably duplicate response
2022-01-24 16:26:34 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=126 command_id=1>
2022-01-24 16:26:34 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x7e seq -- probably duplicate response
2022-01-24 16:26:34 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=126 command_id=1>
2022-01-24 16:26:34 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x7e seq -- probably duplicate response
2022-01-24 16:26:35 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=126 command_id=1>
2022-01-24 16:26:35 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x7e seq -- probably duplicate response
2022-01-24 16:26:35 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=126 command_id=1>
2022-01-24 16:26:35 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x7e seq -- probably duplicate response
2022-01-24 16:26:35 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=126 command_id=1>
2022-01-24 16:26:35 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x7e seq -- probably duplicate response
2022-01-24 16:26:37 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=127 command_id=Command.Report_Attributes>
2022-01-24 16:26:37 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=1, value=<TypeValue type=uint8_t, value=64>), Attribute(attrid=65506, value=<TypeValue type=uint8_t, value=32>), Attribute(attrid=65508, value=<TypeValue type=uint8_t, value=0>)]]
2022-01-24 16:26:37 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] Attribute report received: app_version=64, 65506=32, 65508=0
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=127 command_id=Command.Report_Attributes>
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=1, value=<TypeValue type=uint8_t, value=64>), Attribute(attrid=65506, value=<TypeValue type=uint8_t, value=32>), Attribute(attrid=65508, value=<TypeValue type=uint8_t, value=0>)]]
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] Attribute report received: app_version=64, 65506=32, 65508=0
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.util] Duplicate 127 TSN
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=127 command_id=Command.Report_Attributes>
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=1, value=<TypeValue type=uint8_t, value=64>), Attribute(attrid=65506, value=<TypeValue type=uint8_t, value=32>), Attribute(attrid=65508, value=<TypeValue type=uint8_t, value=0>)]]
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] Attribute report received: app_version=64, 65506=32, 65508=0
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.util] Duplicate 127 TSN
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=127 command_id=Command.Report_Attributes>
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=1, value=<TypeValue type=uint8_t, value=64>), Attribute(attrid=65506, value=<TypeValue type=uint8_t, value=32>), Attribute(attrid=65508, value=<TypeValue type=uint8_t, value=0>)]]
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] Attribute report received: app_version=64, 65506=32, 65508=0
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.util] Duplicate 127 TSN
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=127 command_id=Command.Report_Attributes>
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=1, value=<TypeValue type=uint8_t, value=64>), Attribute(attrid=65506, value=<TypeValue type=uint8_t, value=32>), Attribute(attrid=65508, value=<TypeValue type=uint8_t, value=0>)]]
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] Attribute report received: app_version=64, 65506=32, 65508=0
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.util] Duplicate 127 TSN
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=127 command_id=Command.Report_Attributes>
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=1, value=<TypeValue type=uint8_t, value=64>), Attribute(attrid=65506, value=<TypeValue type=uint8_t, value=32>), Attribute(attrid=65508, value=<TypeValue type=uint8_t, value=0>)]]
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] Attribute report received: app_version=64, 65506=32, 65508=0
2022-01-24 16:26:38 DEBUG (MainThread) [zigpy.util] Duplicate 127 TSN
2022-01-24 16:26:39 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=127 command_id=Command.Report_Attributes>
2022-01-24 16:26:39 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=1, value=<TypeValue type=uint8_t, value=64>), Attribute(attrid=65506, value=<TypeValue type=uint8_t, value=32>), Attribute(attrid=65508, value=<TypeValue type=uint8_t, value=0>)]]
2022-01-24 16:26:39 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] Attribute report received: app_version=64, 65506=32, 65508=0
2022-01-24 16:26:39 DEBUG (MainThread) [zigpy.util] Duplicate 127 TSN
2022-01-24 16:26:39 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=127 command_id=Command.Report_Attributes>
2022-01-24 16:26:39 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=1, value=<TypeValue type=uint8_t, value=64>), Attribute(attrid=65506, value=<TypeValue type=uint8_t, value=32>), Attribute(attrid=65508, value=<TypeValue type=uint8_t, value=0>)]]
2022-01-24 16:26:39 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] Attribute report received: app_version=64, 65506=32, 65508=0
2022-01-24 16:26:39 DEBUG (MainThread) [zigpy.util] Duplicate 127 TSN
2022-01-24 16:26:39 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=128 command_id=Command.Report_Attributes>
2022-01-24 16:26:39 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=65503, value=<TypeValue type=CharacterString, value=���)i���)i���)i���)iƼ�)i���)i;�)i���)i�ր)i�׀)io�)i�)i>)]]
2022-01-24 16:26:39 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] Attribute report received: 65503=���)i���)i���)i���)iƼ�)i���)i;�)i���)i�ր)i�׀)io�)i�)i
2022-01-24 16:26:39 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=128 command_id=Command.Report_Attributes>
2022-01-24 16:26:39 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=65503, value=<TypeValue type=CharacterString, value=���)i���)i���)i���)iƼ�)i���)i;�)i���)i�ր)i�׀)io�)i�)i>)]]
2022-01-24 16:26:39 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] Attribute report received: 65503=���)i���)i���)i���)iƼ�)i���)i;�)i���)i�ր)i�׀)io�)i�)i
2022-01-24 16:26:39 DEBUG (MainThread) [zigpy.util] Duplicate 128 TSN
2022-01-24 16:26:40 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=128 command_id=Command.Report_Attributes>
2022-01-24 16:26:40 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=65503, value=<TypeValue type=CharacterString, value=���)i���)i���)i���)iƼ�)i���)i;�)i���)i�ր)i�׀)io�)i�)i>)]]
2022-01-24 16:26:40 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] Attribute report received: 65503=���)i���)i���)i���)iƼ�)i���)i;�)i���)i�ր)i�׀)io�)i�)i
2022-01-24 16:26:40 DEBUG (MainThread) [zigpy.util] Duplicate 128 TSN
2022-01-24 16:26:40 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=128 command_id=Command.Report_Attributes>
2022-01-24 16:26:40 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=65503, value=<TypeValue type=CharacterString, value=���)i���)i���)i���)iƼ�)i���)i;�)i���)i�ր)i�׀)io�)i�)i>)]]
2022-01-24 16:26:40 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] Attribute report received: 65503=���)i���)i���)i���)iƼ�)i���)i;�)i���)i�ր)i�׀)io�)i�)i
2022-01-24 16:26:40 DEBUG (MainThread) [zigpy.util] Duplicate 128 TSN
2022-01-24 16:26:40 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=128 command_id=Command.Report_Attributes>
2022-01-24 16:26:40 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] ZCL request 0x000a: [[Attribute(attrid=65503, value=<TypeValue type=CharacterString, value=���)i���)i���)i���)iƼ�)i���)i;�)i���)i�ր)i�׀)io�)i�)i>)]]
2022-01-24 16:26:40 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0x0000] Attribute report received: 65503=���)i���)i���)i���)iƼ�)i���)i;�)i���)i�ր)i�׀)io�)i�)i
2022-01-24 16:26:40 DEBUG (MainThread) [zigpy.util] Duplicate 128 TSN
2022-01-24 16:26:40 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=129 command_id=1>
2022-01-24 16:26:40 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL request 0x0001: [TuyaCommand(status=0, tsn=34, dp=8, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'\x08\x02\x00\x00', *payload=520))]
2022-01-24 16:26:40 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x80C1:2:0x0008]: received attribute: 0 update with value: 132
2022-01-24 16:26:41 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=129 command_id=1>
2022-01-24 16:26:41 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=129 command_id=1>
2022-01-24 16:26:41 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x81 seq -- probably duplicate response
2022-01-24 16:26:41 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=130 command_id=1>
2022-01-24 16:26:41 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL request 0x0001: [TuyaCommand(status=0, tsn=35, dp=8, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'\xe0\x01\x00\x00', *payload=480))]
2022-01-24 16:26:41 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x80C1:2:0x0008]: received attribute: 0 update with value: 122
2022-01-24 16:26:41 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=130 command_id=1>
2022-01-24 16:26:41 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=130 command_id=1>
2022-01-24 16:26:41 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x82 seq -- probably duplicate response
2022-01-24 16:26:42 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=130 command_id=1>
2022-01-24 16:26:42 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x82 seq -- probably duplicate response
2022-01-24 16:26:42 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=130 command_id=1>
2022-01-24 16:26:42 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x82 seq -- probably duplicate response
2022-01-24 16:26:42 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=131 command_id=1>
2022-01-24 16:26:42 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL request 0x0001: [TuyaCommand(status=0, tsn=36, dp=8, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'\xb8\x01\x00\x00', *payload=440))]
2022-01-24 16:26:42 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x80C1:2:0x0008]: received attribute: 0 update with value: 112
2022-01-24 16:26:43 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=132 command_id=1>
2022-01-24 16:26:43 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL request 0x0001: [TuyaCommand(status=0, tsn=37, dp=8, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'\x9a\x01\x00\x00', *payload=410))]
2022-01-24 16:26:43 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x80C1:2:0x0008]: received attribute: 0 update with value: 104
2022-01-24 16:26:43 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=133 command_id=1>
2022-01-24 16:26:43 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL request 0x0001: [TuyaCommand(status=0, tsn=38, dp=7, data=TuyaData(dp_type=<TuyaDPType.BOOL: 1>, function=0, raw=b'\x00', *payload=<Bool.false: 0>))]
That's weird. You have several send retries and that should not be happening.
Can you turn on the custom_zha_quirks: debug
log level?
I have the custom_zha_quirks on the debug level but it does not seem to do anything...
Be aware of the tuya is using 2 hardware and 2 software for the Zigbee module. On the software side its one no sleeping version and one sleeping version. TRVs is normally using sleeping firmware and i think switches with no neutral is doing the same but with neutral is using no sleeping firmware.
Look in the signature if its having is_receiver_on_when_idle=True
= not sleeping and (from my tuya TRV) is_receiver_on_when_idle=False
? sleeping end device.
Be aware of the tuya is using 2 hardware and 2 software for the Zigbee module. On the software side its one no sleeping version and one sleeping version. TRVs is normally using sleeping firmware and i think switches with no neutral is doing the same but with neutral is using no sleeping firmware.
Look in the signature if its having
is_receiver_on_when_idle=True
= not sleeping and (from my tuya TRV)is_receiver_on_when_idle=False
? sleeping end device.
Okay interesting, but my switches do have neutral wires and they are wired up.
I have the custom_zha_quirks on the debug level but it does not seem to do anything...
And you said that HA is updating the state, but you can not control device from HA, correct?
Maybe the logger is not like I thought...
Can you please also enable the debug level for zigpy.zcl
? Maybe this one is too verbose...
I have the custom_zha_quirks on the debug level but it does not seem to do anything...
And you said that HA is updating the state, but you can not control device from HA, correct?
Correct
Maybe the logger is not like I thought...
Can you please also enable the debug level for
zigpy.zcl
? Maybe this one is too verbose...
This is what I get, it look the same to me.
2022-01-24 18:39:23 DEBUG (MainThread) [zigpy.device] [0x22a8] Delivery error for seq # 0x0b, on endpoint id 1 cluster 0x0000: message send failure
2022-01-24 18:39:26 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=230 command_id=1>
2022-01-24 18:39:26 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL request 0x0001: [TuyaCommand(status=0, tsn=39, dp=7, data=TuyaData(dp_type=<TuyaDPType.BOOL: 1>, function=0, raw=b'\x01', *payload=<Bool.true: 1>))]
2022-01-24 18:39:26 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=230 command_id=1>
2022-01-24 18:39:26 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=230 command_id=1>
2022-01-24 18:39:26 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0xe6 seq -- probably duplicate response
2022-01-24 18:39:27 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=230 command_id=1>
2022-01-24 18:39:27 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0xe6 seq -- probably duplicate response
2022-01-24 18:39:27 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=230 command_id=1>
2022-01-24 18:39:27 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0xe6 seq -- probably duplicate response
2022-01-24 18:39:27 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=230 command_id=1>
2022-01-24 18:39:27 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0xe6 seq -- probably duplicate response
2022-01-24 18:39:27 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=230 command_id=1>
2022-01-24 18:39:27 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0xe6 seq -- probably duplicate response
2022-01-24 18:39:27 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=230 command_id=1>
2022-01-24 18:39:27 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0xe6 seq -- probably duplicate response
2022-01-24 18:39:30 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=231 command_id=1>
2022-01-24 18:39:30 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL request 0x0001: [TuyaCommand(status=0, tsn=40, dp=8, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'\x95\x01\x00\x00', *payload=405))]
2022-01-24 18:39:30 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x80C1:2:0x0008]: received attribute: 0 update with value: 103
2022-01-24 18:39:31 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=231 command_id=1>
2022-01-24 18:39:31 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=231 command_id=1>
2022-01-24 18:39:31 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0xe7 seq -- probably duplicate response
2022-01-24 18:39:31 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=231 command_id=1>
2022-01-24 18:39:31 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0xe7 seq -- probably duplicate response
2022-01-24 18:39:31 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=231 command_id=1>
2022-01-24 18:39:31 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0xe7 seq -- probably duplicate response
2022-01-24 18:39:32 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=231 command_id=1>
2022-01-24 18:39:32 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0xe7 seq -- probably duplicate response
2022-01-24 18:39:32 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=231 command_id=1>
2022-01-24 18:39:32 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0xe7 seq -- probably duplicate response
2022-01-24 18:39:32 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=231 command_id=1>
2022-01-24 18:39:32 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0xe7 seq -- probably duplicate response
2022-01-24 18:39:32 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=232 command_id=1>
2022-01-24 18:39:32 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL request 0x0001: [TuyaCommand(status=0, tsn=41, dp=8, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'm\x01\x00\x00', *payload=365))]
2022-01-24 18:39:32 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x80C1:2:0x0008]: received attribute: 0 update with value: 93
2022-01-24 18:39:32 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=232 command_id=1>
2022-01-24 18:39:32 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=232 command_id=1>
2022-01-24 18:39:32 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0xe8 seq -- probably duplicate response
2022-01-24 18:39:33 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=232 command_id=1>
2022-01-24 18:39:33 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0xe8 seq -- probably duplicate response
2022-01-24 18:39:33 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=233 command_id=1>
2022-01-24 18:39:33 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL request 0x0001: [TuyaCommand(status=0, tsn=42, dp=8, data=TuyaData(dp_type=<TuyaDPType.VALUE: 2>, function=0, raw=b'J\x01\x00\x00', *payload=330))]
2022-01-24 18:39:33 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x80C1:2:0x0008]: received attribute: 0 update with value: 84
2022-01-24 18:39:33 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=234 command_id=1>
2022-01-24 18:39:33 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL request 0x0001: [TuyaCommand(status=0, tsn=43, dp=7, data=TuyaData(dp_type=<TuyaDPType.BOOL: 1>, function=0, raw=b'\x00', *payload=<Bool.false: 0>))]
2022-01-24 18:39:35 DEBUG (MainThread) [zigpy.zcl] [0x4ee9:1:0x0006] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=12 command_id=Command.Report_Attributes>
2022-01-24 18:39:35 DEBUG (MainThread) [zigpy.zcl] [0x4ee9:1:0x0006] ZCL request 0x000a: [[Attribute(attrid=0, value=<TypeValue type=Bool, value=Bool.true>)]]
2022-01-24 18:39:35 DEBUG (MainThread) [zigpy.zcl] [0x4ee9:1:0x0006] Attribute report received: on_off=1
2022-01-24 18:39:37 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x0000](EZSP): Attempting to checkin with device - missed checkins: 1
2022-01-24 18:39:37 DEBUG (MainThread) [homeassistant.components.zha.core.device] [0x0000](EZSP): does not have a mandatory basic cluster
This is what I get, it look the same to me.
Yes it is pretty similar.
You don't get any trace from custom quirk classes and I don't know why. Also, you are getting retries from device and it shouldn't be happening.
Please, confirm once again that device is loading the quirks, I will look at the code to see what can be happening...
Yes the quirk is loaded, before I loaded the scripts it was not showing the Quirk field.
Deleting the __pycache__
folder (in the local quirk directory) between restarts can being necessarily after doing changes of the code.
Also restarting HA can eliminating some problems like quirk is not loading and so on.
Deleting the
__pycache__
folder (in the local quirk directory) between restarts can being necessarily after doing changes of the code.Also restarting HA can eliminating some problems like quirk is not loading and so on.
Yes I tried that but sadly with no success..
I did see this Logger: zigpy.zcl, Unknown cluster 61184
in my log could this warning be related?
When I turn the switch on in HA it logs this
2022-01-24 22:28:16 DEBUG (MainThread) [zigpy.zcl] [0x80c1:2:0x0006] Sending Tuya Cluster Command... Cluster Command is 1, Arguments are ()
2022-01-24 22:28:16 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] tuya_mcu_command: cluster_data=TuyaClusterData(endpoint_id=2, cluster_attr='on_off', attr_value=1)
2022-01-24 22:28:16 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] get_dp_mapping --> found DP: 7
2022-01-24 22:28:16 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] from_cluster_data: 7, DPToAttributeMapping(ep_attribute='on_off', attribute_name='on_off', dp_type=<TuyaDPType.BOOL: 1>, converter=None, dp_converter=None, endpoint_id=2)
2022-01-24 22:28:16 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ztype: Bool.true
2022-01-24 22:28:16 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] from_value: [1, 1]
2022-01-24 22:28:16 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] raw: b'\x01'
2022-01-24 22:28:16 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] tuya_command: TuyaCommand(status=0, tsn=9, dp=7, data=TuyaData(dp_type=<TuyaDPType.BOOL: 1>, function=0, raw=b'\x01', *payload=<Bool.true: 1>))
2022-01-24 22:28:16 DEBUG (MainThread) [homeassistant.components.zha.core.channels.base] [0x80C1:2:0x0006]: executed 'on' command with args: '()' kwargs: '{}' result: Status.SUCCESS
2022-01-24 22:28:16 DEBUG (MainThread) [homeassistant.components.zha.entity] light.bathroom_dimmer_level_on_off_2: turned on: {'on_off': <Status.SUCCESS: 0>}
2022-01-24 22:28:18 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=GLOBAL_COMMAND manufacturer_specific=False is_reply=True disable_default_response=True> manufacturer=None tsn=10 command_id=Command.Default_Response>
When I turn the switch on manually it logs this
2022-01-24 22:28:46 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=156 command_id=1>
2022-01-24 22:28:46 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL request 0x0001: [TuyaCommand(status=0, tsn=50, dp=7, data=TuyaData(dp_type=<TuyaDPType.BOOL: 1>, function=0, raw=b'\x01', *payload=<Bool.true: 1>))]
2022-01-24 22:28:46 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=156 command_id=1>
2022-01-24 22:28:47 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=156 command_id=1>
2022-01-24 22:28:47 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x9c seq -- probably duplicate response
2022-01-24 22:28:47 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=156 command_id=1>
2022-01-24 22:28:47 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x9c seq -- probably duplicate response
2022-01-24 22:28:47 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=156 command_id=1>
2022-01-24 22:28:47 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x9c seq -- probably duplicate response
2022-01-24 22:28:47 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=156 command_id=1>
2022-01-24 22:28:47 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x9c seq -- probably duplicate response
2022-01-24 22:28:47 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=156 command_id=1>
2022-01-24 22:28:47 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x9c seq -- probably duplicate response
2022-01-24 22:28:48 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=156 command_id=1>
2022-01-24 22:28:48 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x9c seq -- probably duplicate response
When I turn the switch off manually it logs this
2022-01-24 22:28:48 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=157 command_id=1>
2022-01-24 22:28:48 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL request 0x0001: [TuyaCommand(status=0, tsn=51, dp=7, data=TuyaData(dp_type=<TuyaDPType.BOOL: 1>, function=0, raw=b'\x00', *payload=<Bool.false: 0>))]
2022-01-24 22:28:48 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=157 command_id=1>
2022-01-24 22:28:48 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=157 command_id=1>
2022-01-24 22:28:48 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x9d seq -- probably duplicate response
2022-01-24 22:28:48 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=157 command_id=1>
2022-01-24 22:28:48 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x9d seq -- probably duplicate response
2022-01-24 22:28:48 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=157 command_id=1>
2022-01-24 22:28:48 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x9d seq -- probably duplicate response
2022-01-24 22:28:49 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=157 command_id=1>
2022-01-24 22:28:49 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x9d seq -- probably duplicate response
2022-01-24 22:28:49 DEBUG (MainThread) [zigpy.zcl] [0x80c1:1:0xef00] ZCL deserialize: <ZCLHeader frame_control=<FrameControl frame_type=CLUSTER_COMMAND manufacturer_specific=False is_reply=True disable_default_response=False> manufacturer=None tsn=157 command_id=1>
2022-01-24 22:28:49 DEBUG (MainThread) [zigpy.device] [0x80c1] Invalid state on future for 0x9d seq -- probably duplicate response
This is a Tuya device that has no entities and/or controls in home assistant and its a simple Zigbee Tuya dimmer. It should be very similar to many other devices like this.
1 Gang _TZE200_ip2akl4w
2 Gang _TZE200_fjjbhx9d
Thanks in advance for the support.