Open brettjurgens opened 1 year ago
I was able to get this to work by overriding the command method and having it use TUYA_SEND_DATA
instead of the default TUYA_SET_DATA
Battery doesn't seem to work, but mode
/up_movement
/down_movement
do
It seems down_movement does not work for me. up_movement does
https://github.com/zigpy/zha-device-handlers/assets/8139881/368d91db-0c40-4178-94ec-80bbbdace3b5
It seems down_movement does not work for me. up_movement does WhatsApp.Video.2023-08-08.at.12.33.52.mp4
I had the same issue initially, but after setting values for both down
and up
, down
started working.
Try setting up
to 20 and down
to 80 and test again (it only works after two tries in my case).
I have had this device for a couple of months, and it has suddenly stopped working. On/off control has suddenly stopped working, and I cannot figure out why.
It doesn’t look like a hardware issue - I had a spare unopened device that I paired to ZHA, and that doesn’t work either. Doesn't seem like connection issue since I can read/write the up/down movement attributes (or the touch_control attribute) just fine.
Any pointers to troubleshoot?
I don't know if this is the right place to ask, but I will do it, maybe someone knows...
I have the same product and I use it by doing a ZbSend command like this zbsend {"Device":"0xD3E6","Endpoint":1,"Send":{"Power":1}}
and the device will do the job, but I really want to know a command to use in order to make the device only press 50% of the way down, anyone knows how can I find all the commands or how to do this?
Thanks
Nobody? :-(
@pickonedev Have you tried setting these parameters: https://github.com/zigpy/zha-device-handlers/issues/2493#issuecomment-1705745634
btw: how are you sending the command? for me the device becomes unresponsive after pairing. When I sart paring and the blue light flashes it gets connected but once it stops flashing (it flashes for a minute or so even after paring) it doesn't respond anymore
I have had this device for a couple of months, and it has suddenly stopped working. On/off control has suddenly stopped working, and I cannot figure out why.
It doesn’t look like a hardware issue - I had a spare unopened device that I paired to ZHA, and that doesn’t work either. Doesn't seem like connection issue since I can read/write the up/down movement attributes (or the touch_control attribute) just fine.
Any pointers to troubleshoot?
Since I have an issue in the same direction: Maybe it's the new firmware. Not sure if you updated it but mine is new ordered and this could be a reason for it.
Problem description
I purchased this Zigbee Fingerbot from aliexpress and it has limited support in home assistant.
I've attempted to write a custom quirk based on the code from zigbee-herdsman-converters. I can read most of the values, but writing does not work.
Solution description
I'd like to be able to write the
mode
,down_movement
, andup_movement
data points.Screenshots/Video
Screenshots/Video
![Screenshot 2023-07-27 at 19 32 41](https://github.com/zigpy/zha-device-handlers/assets/1226910/3661de92-fa58-446a-9253-4c02632c45a0) ![Screenshot 2023-07-27 at 19 33 05](https://github.com/zigpy/zha-device-handlers/assets/1226910/a959dcce-99d3-4abb-b0ab-cf5007bc7a13) ![Screenshot 2023-07-27 at 19 33 42](https://github.com/zigpy/zha-device-handlers/assets/1226910/50aad00c-3876-4308-ad68-70c4cbd545da)Device signature
Device signature
```json { "node_descriptor": "NodeDescriptor(logical_type=Diagnostic information
Diagnostic information
```json { "home_assistant": { "installation_type": "Home Assistant Container", "version": "2023.7.3", "dev": false, "hassio": false, "virtualenv": false, "python_version": "3.11.4", "docker": true, "arch": "x86_64", "timezone": "America/Los_Angeles", "os_name": "Linux", "os_version": "5.10.0-14-amd64", "run_as_root": true }, "custom_components": { "hacs": { "version": "1.32.1", "requirements": [ "aiogithubapi>=22.10.1" ] }, "tryfi": { "version": "0.0.20", "requirements": [ "pytryfi>=0.0.20" ] }, "opower": { "version": "0.0.14", "requirements": [ "opower==0.0.14" ] }, "smartcar": { "version": "0.1.0", "requirements": [ "smartcar>=6.5.1" ] }, "zha_toolkit": { "version": "v0.9.5", "requirements": [ "pytz" ] } }, "integration_manifest": { "domain": "zha", "name": "Zigbee Home Automation", "after_dependencies": [ "onboarding", "usb" ], "codeowners": [ "@dmulcahey", "@adminiuga", "@puddly" ], "config_flow": true, "dependencies": [ "file_upload" ], "documentation": "https://www.home-assistant.io/integrations/zha", "iot_class": "local_polling", "loggers": [ "aiosqlite", "bellows", "crccheck", "pure_pcapy3", "zhaquirks", "zigpy", "zigpy_deconz", "zigpy_xbee", "zigpy_zigate", "zigpy_znp" ], "requirements": [ "bellows==0.35.8", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.101", "zigpy-deconz==0.21.0", "zigpy==0.56.2", "zigpy-xbee==0.18.1", "zigpy-zigate==0.11.0", "zigpy-znp==0.11.3" ], "usb": [ { "vid": "10C4", "pid": "EA60", "description": "*2652*", "known_devices": [ "slae.sh cc2652rb stick" ] }, { "vid": "1A86", "pid": "55D4", "description": "*sonoff*plus*", "known_devices": [ "sonoff zigbee dongle plus v2" ] }, { "vid": "10C4", "pid": "EA60", "description": "*sonoff*plus*", "known_devices": [ "sonoff zigbee dongle plus" ] }, { "vid": "10C4", "pid": "EA60", "description": "*tubeszb*", "known_devices": [ "TubesZB Coordinator" ] }, { "vid": "1A86", "pid": "7523", "description": "*tubeszb*", "known_devices": [ "TubesZB Coordinator" ] }, { "vid": "1A86", "pid": "7523", "description": "*zigstar*", "known_devices": [ "ZigStar Coordinators" ] }, { "vid": "1CF1", "pid": "0030", "description": "*conbee*", "known_devices": [ "Conbee II" ] }, { "vid": "10C4", "pid": "8A2A", "description": "*zigbee*", "known_devices": [ "Nortek HUSBZB-1" ] }, { "vid": "0403", "pid": "6015", "description": "*zigate*", "known_devices": [ "ZiGate+" ] }, { "vid": "10C4", "pid": "EA60", "description": "*zigate*", "known_devices": [ "ZiGate" ] }, { "vid": "10C4", "pid": "8B34", "description": "*bv 2010/10*", "known_devices": [ "Bitron Video AV2010/10" ] } ], "zeroconf": [ { "type": "_esphomelib._tcp.local.", "name": "tube*" }, { "type": "_zigate-zigbee-gateway._tcp.local.", "name": "*zigate*" }, { "type": "_zigstar_gw._tcp.local.", "name": "*zigstar*" }, { "type": "_slzb-06._tcp.local.", "name": "slzb-06*" } ], "is_built_in": true }, "data": { "ieee": "**REDACTED**", "nwk": 44734, "manufacturer": "_TZ3210_dse8ogfy", "model": "TS0001", "name": "_TZ3210_dse8ogfy TS0001", "quirk_applied": true, "quirk_class": "ts0001_switch.TuyaFingerbot", "manufacturer_code": 4417, "power_source": "Battery or Unknown", "lqi": 172, "rssi": -57, "last_seen": "2023-07-27T19:33:37", "available": true, "device_type": "EndDevice", "signature": { "node_descriptor": "NodeDescriptor(logical_type=Logs
Logs
I tried to write the attributes using zha toolkit Input: ```yaml service: zha_toolkit.attr_write data: ieee: switch.tz3210_dse8ogfy_ts0001_switch cluster: 61184 attribute: 101 attr_val: 1 use_cache: false attr_type: 0x30 ``` Logs: ```python 2023-07-27 19:36:48.223 INFO (MainThread) [custom_components.zha_toolkit] Running ZHA Toolkit service:Custom quirk
Custom quirk
```python from typing import Dict from zigpy.profiles import zha import zigpy.types as t from zigpy.zcl.clusters.general import Basic, Groups, Ota, Scenes, Time from zhaquirks.const import ( DEVICE_TYPE, ENDPOINTS, INPUT_CLUSTERS, MODELS_INFO, OUTPUT_CLUSTERS, PROFILE_ID, ) from zhaquirks.tuya.mcu import ( DPToAttributeMapping, EnchantedDevice, TuyaMCUCluster, TuyaOnOff, TuyaEnchantableCluster, ) class FingerBotMode(t.enum8): CLICK = 0x00 SWITCH = 0x01 PROGRAM = 0x02 class FingerBotReverse(t.enum8): UP_ON = 0x00 UP_OFF = 0x01 class TuyaFingerbotCluster(TuyaEnchantableCluster, TuyaMCUCluster): attributes = TuyaMCUCluster.attributes.copy() attributes.update({101: ("mode", FingerBotMode)}) attributes.update({102: ("down_movement", t.uint16_t)}) attributes.update({103: ("sustain_time", t.uint16_t)}) attributes.update({104: ("reverse", FingerBotReverse)}) attributes.update({106: ("up_movement", t.uint16_t)}) dp_to_attribute: Dict[int, DPToAttributeMapping] = { 1: DPToAttributeMapping(TuyaOnOff.ep_attribute, "on_off"), 101: DPToAttributeMapping( TuyaMCUCluster.ep_attribute, "mode", converter=lambda x: FingerBotMode(x), ), 102: DPToAttributeMapping( TuyaMCUCluster.ep_attribute, "down_movement", ), 103: DPToAttributeMapping(TuyaMCUCluster.ep_attribute, "sustain_time"), 104: DPToAttributeMapping( TuyaMCUCluster.ep_attribute, "reverse", converter=lambda x: FingerBotReverse(x), ), 106: DPToAttributeMapping( TuyaMCUCluster.ep_attribute, "up_movement", ), } data_point_handlers = { 1: "_dp_2_attr_update", 101: "_dp_2_attr_update", 102: "_dp_2_attr_update", 103: "_dp_2_attr_update", 104: "_dp_2_attr_update", 106: "_dp_2_attr_update", } class TuyaFingerbot(EnchantedDevice): signature = { MODELS_INFO: [("_TZ3210_dse8ogfy", "TS0001")], ENDPOINTS: { 1: { PROFILE_ID: zha.PROFILE_ID, DEVICE_TYPE: zha.DeviceType.ON_OFF_SWITCH, INPUT_CLUSTERS: [ Basic.cluster_id, TuyaOnOff.cluster_id, TuyaFingerbotCluster.cluster_id, ], OUTPUT_CLUSTERS: [ Time.cluster_id, Ota.cluster_id, ], } }, } replacement = { ENDPOINTS: { 1: { PROFILE_ID: zha.PROFILE_ID, DEVICE_TYPE: zha.DeviceType.ON_OFF_SWITCH, INPUT_CLUSTERS: [ Basic.cluster_id, Groups.cluster_id, Scenes.cluster_id, TuyaOnOff.cluster_id, TuyaFingerbotCluster, ], OUTPUT_CLUSTERS: [ Time.cluster_id, Ota.cluster_id, ], } } } ```Additional information
No response