Koenkk / zigbee2mqtt

Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨
https://www.zigbee2mqtt.io
GNU General Public License v3.0
12.19k stars 1.68k forks source link

[New device support]: Moes Curtain Robot ADCBZI01 #24605

Open and7ey opened 2 weeks ago

and7ey commented 2 weeks ago

Link

https://aliexpress.ru/item/1005007923066724.html

Database entry

{"id":36,"type":"EndDevice","ieeeAddr":"0xa4c138df4695086d","nwkAddr":238,"manufId":4417,"manufName":"_TZ3210_sxtfesc6","powerSource":"Battery","modelId":"TS030F","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":514,"inClusterList":[258,61184,0],"outClusterList":[25,10],"clusters":{"closuresWindowCovering":{"attributes":{"tuyaMotorReversal":3,"currentPositionLiftPercentage":0,"tuyaMovingState":1}},"genBasic":{"attributes":{"65503":"�A�.\u0013","65506":54,"65508":0,"65534":0,"stackVersion":0,"dateCode":"","manufacturerName":"_TZ3210_sxtfesc6","zclVersion":3,"appVersion":85,"modelId":"TS030F","powerSource":3}}},"binds":[],"configuredReportings":[],"meta":{}}},"appVersion":85,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"meta":{"configured":332242049},"lastSeen":1730569357340}

Zigbee2MQTT version

1.41.0

Comments

The device 0xa4c138df4695086d is detected as https://www.zigbee2mqtt.io/devices/TS030F.html, but doesn't work as expected. Sometimes it moves the curtain by 10 cms only. But in many cases just doesn't react and returns timeout.

Here are some logs:

 info 2024-11-02 17:34:20zh:controller: Interview for '0xa4c138df4695086d' started
info 2024-11-02 17:34:20z2m: Device '0xa4c138df4695086d' joined
info 2024-11-02 17:34:20z2m: Starting interview of '0xa4c138df4695086d'
info 2024-11-02 17:34:20z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0xa4c138df4695086d","ieee_address":"0xa4c138df4695086d"},"type":"device_joined"}'
info 2024-11-02 17:34:20z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0xa4c138df4695086d","ieee_address":"0xa4c138df4695086d","status":"started"},"type":"device_interview"}'
info 2024-11-02 17:34:41zh:controller:device: Device '0xa4c138df4695086d' is only compliant to revision '21' of the ZigBee specification (current revision: 23).
info 2024-11-02 17:34:51z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0xa4c138df4695086d","ieee_address":"0xa4c138df4695086d"},"type":"device_announce"}'
info 2024-11-02 17:34:54zh:controller: Succesfully interviewed '0xa4c138df4695086d'
info 2024-11-02 17:34:54z2m: Successfully interviewed '0xa4c138df4695086d', device has successfully been paired
info 2024-11-02 17:34:54z2m: Device '0xa4c138df4695086d' is supported, identified as: Tuya Smart blind controller (TS030F)
info 2024-11-02 17:34:54z2m: Configuring '0xa4c138df4695086d'
info 2024-11-02 17:34:54z2m:mqtt: MQTT publish: topic 'homeassistant/cover/0xa4c138df4695086d/cover/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state","value_template":"{{ value_json.state }}"}],"command_topic":"zigbee2mqtt/0xa4c138df4695086d/set","device":{"identifiers":["zigbee2mqtt_0xa4c138df4695086d"],"manufacturer":"Tuya","model":"Smart blind controller (TS030F)","name":"0xa4c138df4695086d","via_device":"zigbee2mqtt_bridge_0x00124b002a2e94e2"},"name":null,"object_id":"0xa4c138df4695086d","origin":{"name":"Zigbee2MQTT","sw":"1.41.0","url":"https://www.zigbee2mqtt.io"},"position_template":"{{ value_json.position }}","position_topic":"zigbee2mqtt/0xa4c138df4695086d","set_position_template":"{ \"position\": {{ position }} }","set_position_topic":"zigbee2mqtt/0xa4c138df4695086d/set","state_closed":"CLOSE","state_open":"OPEN","state_stopped":"STOP","state_topic":"zigbee2mqtt/0xa4c138df4695086d","unique_id":"0xa4c138df4695086d_cover_zigbee2mqtt","value_template":"{{ value_json.state }}"}'
info 2024-11-02 17:34:54z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"definition":{"description":"Smart blind controller","exposes":[{"features":[{"access":3,"label":"State","name":"state","property":"state","type":"enum","values":["OPEN","CLOSE","STOP"]},{"access":7,"description":"Position of this cover","label":"Position","name":"position","property":"position","type":"numeric","unit":"%","value_max":100,"value_min":0}],"type":"cover"},{"access":2,"label":"Border","name":"border","property":"border","type":"enum","values":["up","down","up_delete","down_delete"]},{"access":7,"label":"Calibration time","name":"calibration_time","property":"calibration_time","type":"numeric","value_max":100,"value_min":0},{"access":7,"description":"Reverse the motor, resets all endpoints! Also the upper border after hardware initialisation. Be careful!After this you have to turn off and turn on the roller so that it can drive into the uppest position.","label":"Motor reversal","name":"motor_reversal","property":"motor_reversal","type":"binary","value_off":"OFF","value_on":"ON"},{"access":1,"category":"diagnostic","description":"Link quality (signal strength)","label":"Linkquality","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"TS030F","options":[{"access":2,"description":"Inverts the cover position, false: open=100,close=0, true: open=0,close=100 (default false).","label":"Invert cover","name":"invert_cover","property":"invert_cover","type":"binary","value_off":false,"value_on":true},{"access":2,"description":"Do not publish set cover target position as a normal 'position' value (default false).","label":"Cover position tilt disable report","name":"cover_position_tilt_disable_report","property":"cover_position_tilt_disable_report","type":"binary","value_off":false,"value_on":true}],"supports_ota":false,"vendor":"Tuya"},"friendly_name":"0xa4c138df4695086d","ieee_address":"0xa4c138df4695086d","status":"successful","supported":true},"type":"device_interview"}'
info 2024-11-02 17:34:54z2m:mqtt: MQTT publish: topic 'homeassistant/select/0xa4c138df4695086d/border/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state","value_template":"{{ value_json.state }}"}],"command_topic":"zigbee2mqtt/0xa4c138df4695086d/set/border","device":{"identifiers":["zigbee2mqtt_0xa4c138df4695086d"],"manufacturer":"Tuya","model":"Smart blind controller (TS030F)","name":"0xa4c138df4695086d","via_device":"zigbee2mqtt_bridge_0x00124b002a2e94e2"},"enabled_by_default":true,"name":"Border","object_id":"0xa4c138df4695086d_border","options":["up","down","up_delete","down_delete"],"origin":{"name":"Zigbee2MQTT","sw":"1.41.0","url":"https://www.zigbee2mqtt.io"},"unique_id":"0xa4c138df4695086d_border_zigbee2mqtt"}'
info 2024-11-02 17:34:54z2m:mqtt: MQTT publish: topic 'homeassistant/sensor/0xa4c138df4695086d/calibration_time/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state","value_template":"{{ value_json.state }}"}],"device":{"identifiers":["zigbee2mqtt_0xa4c138df4695086d"],"manufacturer":"Tuya","model":"Smart blind controller (TS030F)","name":"0xa4c138df4695086d","via_device":"zigbee2mqtt_bridge_0x00124b002a2e94e2"},"enabled_by_default":false,"entity_category":"diagnostic","icon":"mdi:wrench-clock","name":"Calibration time","object_id":"0xa4c138df4695086d_calibration_time","origin":{"name":"Zigbee2MQTT","sw":"1.41.0","url":"https://www.zigbee2mqtt.io"},"state_topic":"zigbee2mqtt/0xa4c138df4695086d","unique_id":"0xa4c138df4695086d_calibration_time_zigbee2mqtt","value_template":"{{ value_json.calibration_time }}"}'
error 2024-11-02 17:34:54z2m: Failed to configure '0xa4c138df4695086d', attempt 1 (Error: Bind 0xa4c138df4695086d/1 genPowerCfg from '0x00124b002a2e94e2/1' failed (Status 'INVALID_EP') at Endpoint.bind (/app/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:566:23) at Object.bind (/app/node_modules/zigbee-herdsman-converters/src/lib/reporting.ts:42:9) at Object.configure (/app/node_modules/zigbee-herdsman-converters/src/devices/tuya.ts:9138:13) at Configure.configure (/app/lib/extension/configure.ts:130:13) at EventEmitter.wrappedCallback (/app/lib/eventBus.ts:206:17))
info 2024-11-02 17:34:54z2m:mqtt: MQTT publish: topic 'homeassistant/number/0xa4c138df4695086d/calibration_time/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state","value_template":"{{ value_json.state }}"}],"command_topic":"zigbee2mqtt/0xa4c138df4695086d/set/calibration_time","device":{"identifiers":["zigbee2mqtt_0xa4c138df4695086d"],"manufacturer":"Tuya","model":"Smart blind controller (TS030F)","name":"0xa4c138df4695086d","via_device":"zigbee2mqtt_bridge_0x00124b002a2e94e2"},"entity_category":"config","icon":"mdi:wrench-clock","max":100,"min":0,"name":"Calibration time","object_id":"0xa4c138df4695086d_calibration_time","origin":{"name":"Zigbee2MQTT","sw":"1.41.0","url":"https://www.zigbee2mqtt.io"},"state_topic":"zigbee2mqtt/0xa4c138df4695086d","unique_id":"0xa4c138df4695086d_calibration_time_zigbee2mqtt","value_template":"{{ value_json.calibration_time }}"}'
info 2024-11-02 17:34:54z2m:mqtt: MQTT publish: topic 'homeassistant/switch/0xa4c138df4695086d/switch_motor_reversal/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state","value_template":"{{ value_json.state }}"}],"command_topic":"zigbee2mqtt/0xa4c138df4695086d/set/motor_reversal","device":{"identifiers":["zigbee2mqtt_0xa4c138df4695086d"],"manufacturer":"Tuya","model":"Smart blind controller (TS030F)","name":"0xa4c138df4695086d","via_device":"zigbee2mqtt_bridge_0x00124b002a2e94e2"},"entity_category":"config","icon":"mdi:arrow-left-right","name":"Motor reversal","object_id":"0xa4c138df4695086d_motor_reversal","origin":{"name":"Zigbee2MQTT","sw":"1.41.0","url":"https://www.zigbee2mqtt.io"},"payload_off":"OFF","payload_on":"ON","state_topic":"zigbee2mqtt/0xa4c138df4695086d","unique_id":"0xa4c138df4695086d_switch_motor_reversal_zigbee2mqtt","value_template":"{{ value_json.motor_reversal }}"}'
info 2024-11-02 17:34:54z2m:mqtt: MQTT publish: topic 'homeassistant/sensor/0xa4c138df4695086d/linkquality/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state","value_template":"{{ value_json.state }}"}],"device":{"identifiers":["zigbee2mqtt_0xa4c138df4695086d"],"manufacturer":"Tuya","model":"Smart blind controller (TS030F)","name":"0xa4c138df4695086d","via_device":"zigbee2mqtt_bridge_0x00124b002a2e94e2"},"enabled_by_default":false,"entity_category":"diagnostic","icon":"mdi:signal","name":"Linkquality","object_id":"0xa4c138df4695086d_linkquality","origin":{"name":"Zigbee2MQTT","sw":"1.41.0","url":"https://www.zigbee2mqtt.io"},"state_class":"measurement","state_topic":"zigbee2mqtt/0xa4c138df4695086d","unique_id":"0xa4c138df4695086d_linkquality_zigbee2mqtt","unit_of_measurement":"lqi","value_template":"{{ value_json.linkquality }}"}'
info 2024-11-02 17:34:58z2m: Configuring '0xa4c138df4695086d'
error 2024-11-02 17:34:58z2m: Failed to configure '0xa4c138df4695086d', attempt 2 (Error: Bind 0xa4c138df4695086d/1 genPowerCfg from '0x00124b002a2e94e2/1' failed (Status 'INVALID_EP') at Endpoint.bind (/app/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:566:23) at Object.bind (/app/node_modules/zigbee-herdsman-converters/src/lib/reporting.ts:42:9) at Object.configure (/app/node_modules/zigbee-herdsman-converters/src/devices/tuya.ts:9138:13) at Configure.configure (/app/lib/extension/configure.ts:130:13) at EventEmitter.wrappedCallback (/app/lib/eventBus.ts:206:17))
info 2024-11-02 17:34:58z2m: Configuring '0xa4c138df4695086d'
error 2024-11-02 17:34:58z2m: Failed to configure '0xa4c138df4695086d', attempt 3 (Error: Bind 0xa4c138df4695086d/1 genPowerCfg from '0x00124b002a2e94e2/1' failed (Status 'INVALID_EP') at Endpoint.bind (/app/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:566:23) at Object.bind (/app/node_modules/zigbee-herdsman-converters/src/lib/reporting.ts:42:9) at Object.configure (/app/node_modules/zigbee-herdsman-converters/src/devices/tuya.ts:9138:13) at Configure.configure (/app/lib/extension/configure.ts:130:13) at EventEmitter.wrappedCallback (/app/lib/eventBus.ts:206:17))
info 2024-11-02 17:35:25z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0xa4c138df4695086d","ieee_address":"0xa4c138df4695086d"},"type":"device_announce"}'
info 2024-11-02 17:35:30z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0xa4c138df4695086d', payload '{"calibration_time":null,"linkquality":33,"motor_reversal":"OFF","state":null}'
info 2024-11-02 17:35:30z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0xa4c138df4695086d', payload '{"calibration_time":null,"linkquality":30,"motor_reversal":"OFF","position":100,"state":"OPEN"}'
error 2024-11-02 17:43:22z2m: Publish 'get' 'calibration_time' to '0xa4c138df4695086d' failed: 'Error: ZCL command 0xa4c138df4695086d/1 closuresWindowCovering.read(["moesCalibrationTime"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"writeUndiv":false}) failed (Status 'UNSUPPORTED_ATTRIBUTE')'
info 2024-11-02 17:45:00z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/response/device/generate_external_definition', payload '{"data":{"id":"0xa4c138df4695086d","source":"const {windowCovering} = require('zigbee-herdsman-converters/lib/modernExtend');\n\nconst definition = {\n zigbeeModel: ['TS030F'],\n model: 'TS030F',\n vendor: '_TZ3210_sxtfesc6',\n description: 'Automatically generated definition',\n extend: [windowCovering({\"controls\":[\"lift\",\"tilt\"]})],\n meta: {},\n};\n\nmodule.exports = definition;"},"status":"ok","transaction":"73cpb-2"}'
error 2024-11-02 17:45:01z2m: Publish 'set' 'position' to '0xa4c138df4695086d' failed: 'Error: ZCL command 0xa4c138df4695086d/1 closuresWindowCovering.goToLiftPercentage({"percentageliftvalue":100}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"reservedBits":0,"writeUndiv":false}) failed (Timeout - 6423 - 1 - 62 - 258 - 11 after 10000ms)'
info 2024-11-02 17:50:08z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0xa4c138df4695086d', payload '{"calibration_time":null,"linkquality":6,"motor_reversal":null,"position":100,"state":"OPEN"}'
[2024-11-02 19:32:13] debug:    zh:controller:endpoint: ZCL command 0xa4c138df4695086d/1 manuSpecificTuya.defaultRsp({"cmdId":5,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"transactionSequenceNumber":176,"writeUndiv":false})
[2024-11-02 19:32:13] debug:    zh:zstack: sendZclFrameToEndpointInternal 0xa4c138df4695086d:6423/1 (0,0,1)
[2024-11-02 19:32:13] debug:    zh:zstack:znp: --> SREQ: AF - dataRequest - {"dstaddr":6423,"destendpoint":1,"srcendpoint":1,"clusterid":61184,"transid":24,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[16,176,11,5,0]}}
[2024-11-02 19:32:13] debug:    zh:zstack:unpi:writer: --> frame [254,15,36,1,23,25,1,1,0,239,24,0,30,5,16,176,11,5,0,102]
[2024-11-02 19:32:13] debug:    zh:zstack:unpi:parser: --- parseNext []
[2024-11-02 19:32:13] debug:    z2m: Received Zigbee message from '0xa4c138df4695086d', type 'commandActiveStatusReportAlt', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[1],"type":"Buffer"},"datatype":4,"dp":7}],"seq":20224}' from endpoint 1 with groupID 0
[2024-11-02 19:32:13] debug:    z2m: No converter available for 'TS030F' with cluster 'manuSpecificTuya' and type 'commandActiveStatusReportAlt' and data '{"dpValues":[{"data":{"data":[1],"type":"Buffer"},"datatype":4,"dp":7}],"seq":20224}'

[2024-11-02 19:32:13] debug:    z2m: Received Zigbee message from '0xa4c138df4695086d', type 'attributeReport', cluster 'closuresWindowCovering', data '{"tuyaMotorReversal":3}' from endpoint 1 with groupID 0
[2024-11-02 19:32:13] info:     z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0xa4c138df4695086d', payload '{"calibration_time":null,"linkquality":9,"motor_reversal":null,"position":100,"state":"OPEN"}'

[2024-11-02 19:32:20] debug:    zh:controller:endpoint: ZCL command 0xa4c138df4695086d/1 manuSpecificTuya.defaultRsp({"cmdId":5,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"transactionSequenceNumber":179,"writeUndiv":false})
[2024-11-02 19:32:20] debug:    zh:zstack: sendZclFrameToEndpointInternal 0xa4c138df4695086d:6423/1 (0,0,1)
[2024-11-02 19:32:20] debug:    zh:zstack:znp: --> SREQ: AF - dataRequest - {"dstaddr":6423,"destendpoint":1,"srcendpoint":1,"clusterid":61184,"transid":26,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[16,179,11,5,0]}}
[2024-11-02 19:32:20] debug:    zh:zstack:unpi:writer: --> frame [254,15,36,1,23,25,1,1,0,239,26,0,30,5,16,179,11,5,0,103]
[2024-11-02 19:32:20] debug:    zh:zstack:unpi:parser: --- parseNext []
[2024-11-02 19:32:20] debug:    z2m: Received Zigbee message from '0xa4c138df4695086d', type 'commandActiveStatusReportAlt', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,6,164],"type":"Buffer"},"datatype":2,"dp":10}],"seq":20480}' from endpoint 1 with groupID 0
[2024-11-02 19:32:20] debug:    z2m: No converter available for 'TS030F' with cluster 'manuSpecificTuya' and type 'commandActiveStatusReportAlt' and data '{"dpValues":[{"data":{"data":[0,0,6,164],"type":"Buffer"},"datatype":2,"dp":10}],"seq":20480}'
[2024-11-02 19:32:20] debug:    zh:zstack:unpi:parser: <-- [254,1,100,1,0,100]
[2024-11-02 19:32:20] debug:    zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100]
[2024-11-02 19:32:20] debug:    zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
[2024-11-02 19:32:20] debug:    zh:zstack:znp: <-- SRSP: AF - dataRequest - {"status":0}
[2024-11-02 19:32:20] debug:    zh:zstack:unpi:parser: --- parseNext []
[2024-11-02 19:32:27] debug:    zh:zstack:unpi:parser: <-- [254,3,68,128,240,1,26,44]
[2024-11-02 19:32:27] debug:    zh:zstack:unpi:parser: --- parseNext [254,3,68,128,240,1,26,44]
[2024-11-02 19:32:27] debug:    zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [240,1,26] - 44
[2024-11-02 19:32:27] debug:    zh:zstack:znp: <-- AREQ: AF - dataConfirm - {"status":240,"endpoint":1,"transid":26}
[2024-11-02 19:32:27] debug:    zh:zstack:unpi:parser: --- parseNext []
[2024-11-02 19:32:27] debug:    zh:zstack: Data confirm error (0xa4c138df4695086d:6423,240,0)

I tried to follow https://www.zigbee2mqtt.io/advanced/support-new-devices/02_support_new_tuya_devices.html, but not sure where to take datapoints.

External definition

const {windowCovering} = require('zigbee-herdsman-converters/lib/modernExtend');

const definition = {
    zigbeeModel: ['TS030F'],
    model: 'TS030F',
    vendor: '_TZ3210_sxtfesc6',
    description: 'Automatically generated definition',
    extend: [windowCovering({"controls":["lift","tilt"]})],
    meta: {},
};

module.exports = definition;

What does/doesn't work with the external definition?

doesn't work as expected. Sometimes it moves the curtain by 10 cms only. But in many cases just doesn't react and returns timeout.

and7ey commented 2 weeks ago

Here some of the data points found:

[2024-11-02 20:42:56] debug:    z2m: Received Zigbee message from '0xa4c138df4695086d', type 'commandActiveStatusReportAlt', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,0,0],"type":"Buffer"},"datatype":2,"dp":110}],"seq":29952}' from endpoint 1 with groupID 0
[2024-11-02 20:42:56] debug:    zhc:tuya: Datapoint 110 not defined for '_TZ3210_sxtfesc6' with value 0

[2024-11-02 20:43:09] debug:    z2m: Received Zigbee message from '0xa4c138df4695086d', type 'commandActiveStatusReportAlt', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,0,16],"type":"Buffer"},"datatype":2,"dp":107}],"seq":30464}' from endpoint 1 with groupID 0
[2024-11-02 20:43:09] debug:    zhc:tuya: Datapoint 107 not defined for '_TZ3210_sxtfesc6' with value 16

[2024-11-02 20:43:09] debug:    z2m: Received Zigbee message from '0xa4c138df4695086d', type 'commandActiveStatusReportAlt', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,0,16],"type":"Buffer"},"datatype":2,"dp":107}],"seq":30720}' from endpoint 1 with groupID 0
[2024-11-02 20:43:09] debug:    zhc:tuya: Datapoint 107 not defined for '_TZ3210_sxtfesc6' with value 16

[2024-11-02 20:51:56] debug:    z2m: Received Zigbee message from '0xa4c138df4695086d', type 'commandActiveStatusReportAlt', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,0,52],"type":"Buffer"},"datatype":2,"dp":107}],"seq":33536}' from endpoint 1 with groupID 0
[2024-11-02 20:51:56] debug:    zhc:tuya: Datapoint 107 not defined for '_TZ3210_sxtfesc6' with value 52

[2024-11-02 20:43:09] debug:    z2m: Received Zigbee message from '0xa4c138df4695086d', type 'commandActiveStatusReportAlt', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,0,100],"type":"Buffer"},"datatype":2,"dp":13}],"seq":30976}' from endpoint 1 with groupID 0
[2024-11-02 20:43:09] debug:    zhc:tuya: Datapoint 13 not defined for '_TZ3210_sxtfesc6' with value 100

[2024-11-02 20:51:56] debug:    z2m: Received Zigbee message from '0xa4c138df4695086d', type 'commandActiveStatusReportAlt', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,0,100],"type":"Buffer"},"datatype":2,"dp":3}],"seq":33280}' from endpoint 1 with groupID 0
[2024-11-02 20:51:56] debug:    zhc:tuya: Datapoint 3 not defined for '_TZ3210_sxtfesc6' with value 100

[2024-11-02 20:50:12] debug:    z2m: Received Zigbee message from '0xa4c138df4695086d', type 'commandActiveStatusReportAlt', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,0,0],"type":"Buffer"},"datatype":2,"dp":13}],"seq":32000}' from endpoint 1 with groupID 0
[2024-11-02 20:50:12] debug:    zhc:tuya: Datapoint 13 not defined for '_TZ3210_sxtfesc6' with value 0
jmijn commented 2 weeks ago

Following this bc i want to buy these devices too, but only with z2m support 😉

jmijn commented 2 weeks ago

@and7ey have you made any progress?

and7ey commented 2 weeks ago

With dinamik1488 support we've developed more or less working version. But I've ordered tuya zigbee gateway to make the integration better.

and7ey commented 6 days ago

Here is the current version

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const e = exposes.presets;
const ea = exposes.access;
const tuya = require('zigbee-herdsman-converters/lib/tuya');

const definition = {
        fingerprint: tuya.fingerprint('TS030F', ['_TZ3210_sxtfesc6']),
        model: 'ADCBZI01',
        vendor: 'Moes',
        description: 'Curtain Robot',
        fromZigbee: [fz.cover_position_tilt, tuya.fz.datapoints],
        toZigbee: [tz.cover_position_tilt, tz.cover_state, tuya.tz.datapoints],
        exposes: [
            e.cover_position(),
            e.position(),
            e.battery(),
            e.illuminance(),
        ],
        meta: {
            tuyaDatapoints: [
                [3, 'position', tuya.valueConverter.raw],
                [13, 'battery', tuya.valueConverter.raw],
                [107, 'illuminance', tuya.valueConverter.raw],                      
              ],
        },
};

module.exports = definition;

I can open/close the curtain and control the position. The battery and illuminance are available. But I can not revert the motor ;(

I've got the following table from MOES:

image

Would appreciate if somebody help me with motor inversion.