Tuya Zigbee Roller Shade Blind Motor - Hubitat Issues

I think that I have found the core reason for the strange issues (opening/closing windowShade state misbehavior) - these new Tuya blind motors report the current position inverted when compared to the ''classic'' AM43 models.

Also, seems like the new models do not report when the motor stops spinning. So switching the windowShade from "opening" to "open" (or to "partially open") must be based on some inactivity timeout.. probably 1-2 seconds without receiving a new position change report should be considered as stop.

So I am adding now a new option 'Invert Position Reporting', trying to not break the backward compatibility with the older AM43 models. Hopefully will be able to post a new version for testing in a day or two.

1 Like

@kkossev Thanks for the update, and very happy to help with testing the driver whenever it suits. Let me know if fingerprint data for the motor (actually the Zigbee/RF convertor, I guess) would be useful at any point (and how to collect it, please - I'm a novice at this sort of thing!).

FWIW my own efforts "when time permits" haven't got round to starting yet - it's currently looking like I'll actually have some spare time the weekend after next, and have pencilled in giving it a go then. (Even if your "all in one" driver finishes up being the better option all round, it'd still be good practice getting some familiarity with the basics of Groovy/Hubitat coding.)

1 Like

I don't know what happened here, probably I have accidentally deleted my post myself pressing a wrong button on my phone... Sorry about this, I noticed it just now and I have restored the post below


@ian3 thank you for AM15 tubular motor details. This model will need different handling logic if it does not report the current position back to HE. Probably a simple timer can switch the windowShade state to 'Open' or 'Closed' after several seconds, assuming the motor has really reached that position.

I propose that we first finish the changes and the tests for the other models and then try to incorporatethe AM15 control into the same driver.


P.S. a new version is almost ready, will publish the update in an hour.


The latest update (ver 3.1.1) is available from the temporary link in the previous post.
For the new type of motors (M515EGBZTN) there is a new parameter "Invert Position Reporting" that must be set enabled. I suppose for the older models (AM43/AM45) the new option must be disabled.

After updating the driver, please press the "Save Preferences" button at least once.

The basic fincitonalities : open / close / setPosition / stopPositionChange / position reporting 0..100% / windowShade state reporting ("opening", "partially open", "closed", "open", "closing") should be working now, at least these work with my device.

There are still some issues remaining to be fixed in the next days:

  • the first state "opening" or "closing" is always [sometimes] incorrect. These devices use to send one and the same command to HE for two different purposes - the first time to confirm the destination position, and the next several times to report the current temporary position.. very weird, I have no idea if this is done on purpose or is simply a bug or..
  • I am not sure if the changes made for M515EGBZTN (and the other new models) did not break some functionalities for the old AM43/AM45 models, we need to test the same driver with these models.
  • AM15 model is not supported yet.

EDIT: when the remote (or the buttons on the device) are used for moving up/down, there is no problem with the single wrong 'opening/closing' state. The problem appears only when the commands are sent from the Zigbee interface (device commands from HE).
EDIT2: the correct position values are:

  • 0% - fully CLOSED
  • 100% - fully OPEN
    WIth M515EGBZTN these values were swapped... Respectively my post with the HE Dashboard screenshots before some weeks is incorrect also, I will edit it later.
2 Likes

I loaded the driver from the link but for me it's still not working correctly - though it is much better.

1 - I'm now able to get it working when set to lift (instead of having to incorrectly have it set to tilt)

2 - Directions are correct - both on the physical buttons and with regard to position (0 is closed, 100 is open)

3 - Open and Close do not work for me - though Step Open and Step Close do.

4 - States are a little better. It reports Open when open (used to go straight to closing), it reports Closed when closed (used to go straight to opening) and if stopped part way it shows Partially open.

5 - However, Closing & Opening are not reported while in motion. Example - Blind is fully open and I set position 0. The state goes from 'Open' to 'Closing' for a brief moment but then immediately reports 'Closed' while the blind is closing. Similarly when fully closed and sending position 100 - the state goes from 'Closed' to 'Opening' for a brief moment then immediately goes to 'Open' while still opening.

6 - Now that it is working on Lift instead of Tilt the operation is much faster (speed of opening/closing). One thing I've noticed when messing about is that when the Direction is set to reverse or Invert Position is set to on (I forget which one did it), the speed decreases - I don't think I imagined it.

The strangest thing is I've had to set the 'Invert Position Reporting' switch Off to get it working correctly and I thought my model needed it on?

I'm so confused as there are so many models and variants in this thread that I don't even know whether mine is an 'old' or 'new' AM45.

Screenshot 2022-04-27 at 20.56.20

PS - What's the best way to import the driver to avoid confusion. When I go to select the new driver I've got a choice of three all with the same name so it's difficult to correctly select the correct version.

1 Like

Thanks for the feedback! As said, the different models behave differently, but this is something that can be handled, it just needs some time and several iterations. I think in a few days we should be ready.

Yes, this is a problem, when there are several drivers with the same name.. I don't want to change the driver name, as this one is already in the HPM and if I create a driver with a new name, it will become even worse...

In the 'Drivers code' page I often order the drivers by 'clicking once to twice on the 'Last Modified' column, this way the latest modified driver comes on the top. The namespace should be amosyuen for this driver.

When in the device web page, you can look at the State Variables section, the version of the driver together with the release date and time is there.

I propose to start with this problem. Please copy and paste the debug text from the Logs page, when presing Open and Close buttons. Make sure all debug options are on.

Once you copy the text in the , you can select it, press the gear icon and then 'Hide details'. Like this :
image

My logs for Open command look like this:

Summary

dev:18372022-04-27 23:25:55.431 debugupdateWindowShadeArrived: position=99

dev:18372022-04-27 23:25:53.503 debugupdateWindowShadeArrived: position=100

dev:18372022-04-27 23:25:53.499 debugupdatePosition: arrived!

dev:18372022-04-27 23:25:53.494 traceisWithinOne:true (position=100, lastPosition=99)

dev:18372022-04-27 23:25:53.490 debugupdatePosition: position=100

dev:18372022-04-27 23:25:53.451 traceupdateWindowShadeOpening

dev:18372022-04-27 23:25:53.432 debugupdateWindowShadeMoving: position=100 (lastPosition=99)

dev:18372022-04-27 23:25:53.426 debugparse: moved to position 100

dev:18372022-04-27 23:25:53.422 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 29C6 01 00 0000 01 01 5F880202000400000000, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:29C6, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[5F, 88, 02, 02, 00, 04, 00, 00, 00, 00]]

dev:18372022-04-27 23:25:53.398 debugupdatePresence: present=true

dev:18372022-04-27 23:25:52.450 traceisWithinOne:false (position=99, lastPosition=94)

dev:18372022-04-27 23:25:52.444 debugupdatePosition: position=99

dev:18372022-04-27 23:25:52.440 traceupdateWindowShadeOpening

dev:18372022-04-27 23:25:52.437 debugupdateWindowShadeMoving: position=99 (lastPosition=94)

dev:18372022-04-27 23:25:52.421 debugparse: moved to position 99

dev:18372022-04-27 23:25:52.418 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 29C6 01 00 0000 01 01 5F880202000400000001, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:29C6, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[5F, 88, 02, 02, 00, 04, 00, 00, 00, 01]]

dev:18372022-04-27 23:25:52.397 debugupdatePresence: present=true

dev:18372022-04-27 23:25:51.526 traceisWithinOne:false (position=94, lastPosition=89)

dev:18372022-04-27 23:25:51.518 debugupdatePosition: position=94

dev:18372022-04-27 23:25:51.514 traceupdateWindowShadeOpening

dev:18372022-04-27 23:25:51.510 debugupdateWindowShadeMoving: position=94 (lastPosition=89)

dev:18372022-04-27 23:25:51.491 debugparse: moved to position 94

dev:18372022-04-27 23:25:51.483 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 29C6 01 00 0000 01 01 5F880202000400000006, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:29C6, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[5F, 88, 02, 02, 00, 04, 00, 00, 00, 06]]

dev:18372022-04-27 23:25:51.419 debugupdatePresence: present=true

dev:18372022-04-27 23:25:50.449 traceisWithinOne:false (position=89, lastPosition=84)

dev:18372022-04-27 23:25:50.445 debugupdatePosition: position=89

dev:18372022-04-27 23:25:50.441 traceupdateWindowShadeOpening

dev:18372022-04-27 23:25:50.437 debugupdateWindowShadeMoving: position=89 (lastPosition=84)

dev:18372022-04-27 23:25:50.421 debugparse: moved to position 89

dev:18372022-04-27 23:25:50.418 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 29C6 01 00 0000 01 01 5F88020200040000000B, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:29C6, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[5F, 88, 02, 02, 00, 04, 00, 00, 00, 0B]]

dev:18372022-04-27 23:25:50.397 debugupdatePresence: present=true

dev:18372022-04-27 23:25:49.449 traceisWithinOne:false (position=84, lastPosition=79)

dev:18372022-04-27 23:25:49.446 debugupdatePosition: position=84

dev:18372022-04-27 23:25:49.442 traceupdateWindowShadeOpening

dev:18372022-04-27 23:25:49.439 debugupdateWindowShadeMoving: position=84 (lastPosition=79)

dev:18372022-04-27 23:25:49.423 debugparse: moved to position 84

dev:18372022-04-27 23:25:49.420 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 29C6 01 00 0000 01 01 5F880202000400000010, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:29C6, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[5F, 88, 02, 02, 00, 04, 00, 00, 00, 10]]

dev:18372022-04-27 23:25:49.399 debugupdatePresence: present=true

dev:18372022-04-27 23:25:48.454 traceisWithinOne:false (position=79, lastPosition=74)

dev:18372022-04-27 23:25:48.449 debugupdatePosition: position=79

dev:18372022-04-27 23:25:48.443 traceupdateWindowShadeOpening

dev:18372022-04-27 23:25:48.440 debugupdateWindowShadeMoving: position=79 (lastPosition=74)

dev:18372022-04-27 23:25:48.424 debugparse: moved to position 79

dev:18372022-04-27 23:25:48.421 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 29C6 01 00 0000 01 01 5F880202000400000015, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:29C6, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[5F, 88, 02, 02, 00, 04, 00, 00, 00, 15]]

dev:18372022-04-27 23:25:48.396 debugupdatePresence: present=true

dev:18372022-04-27 23:25:47.455 traceisWithinOne:false (position=74, lastPosition=69)

dev:18372022-04-27 23:25:47.451 debugupdatePosition: position=74

dev:18372022-04-27 23:25:47.447 traceupdateWindowShadeOpening

dev:18372022-04-27 23:25:47.443 debugupdateWindowShadeMoving: position=74 (lastPosition=69)

dev:18372022-04-27 23:25:47.428 debugparse: moved to position 74

dev:18372022-04-27 23:25:47.424 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 29C6 01 00 0000 01 01 5F88020200040000001A, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:29C6, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[5F, 88, 02, 02, 00, 04, 00, 00, 00, 1A]]

dev:18372022-04-27 23:25:47.403 debugupdatePresence: present=true

dev:18372022-04-27 23:25:46.445 traceisWithinOne:false (position=69, lastPosition=59)

dev:18372022-04-27 23:25:46.440 debugupdatePosition: position=69

dev:18372022-04-27 23:25:46.436 traceupdateWindowShadeOpening

dev:18372022-04-27 23:25:46.433 debugupdateWindowShadeMoving: position=69 (lastPosition=59)

dev:18372022-04-27 23:25:46.419 debugparse: moved to position 69

dev:18372022-04-27 23:25:46.415 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 29C6 01 00 0000 01 01 5F88020200040000001F, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:29C6, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[5F, 88, 02, 02, 00, 04, 00, 00, 00, 1F]]

dev:18372022-04-27 23:25:46.398 debugupdatePresence: present=true

dev:18372022-04-27 23:25:44.457 traceisWithinOne:false (position=59, lastPosition=54)

dev:18372022-04-27 23:25:44.453 debugupdatePosition: position=59

dev:18372022-04-27 23:25:44.449 traceupdateWindowShadeOpening

dev:18372022-04-27 23:25:44.445 debugupdateWindowShadeMoving: position=59 (lastPosition=54)

dev:18372022-04-27 23:25:44.427 debugparse: moved to position 59

dev:18372022-04-27 23:25:44.423 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 29C6 01 00 0000 01 01 5F880202000400000029, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:29C6, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[5F, 88, 02, 02, 00, 04, 00, 00, 00, 29]]

dev:18372022-04-27 23:25:44.403 debugupdatePresence: present=true

dev:18372022-04-27 23:25:43.461 traceisWithinOne:false (position=54, lastPosition=49)

dev:18372022-04-27 23:25:43.457 debugupdatePosition: position=54

dev:18372022-04-27 23:25:43.452 traceupdateWindowShadeOpening

dev:18372022-04-27 23:25:43.448 debugupdateWindowShadeMoving: position=54 (lastPosition=49)

dev:18372022-04-27 23:25:43.424 debugparse: moved to position 54

dev:18372022-04-27 23:25:43.421 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 29C6 01 00 0000 01 01 5F88020200040000002E, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:29C6, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[5F, 88, 02, 02, 00, 04, 00, 00, 00, 2E]]

dev:18372022-04-27 23:25:43.400 debugupdatePresence: present=true

dev:18372022-04-27 23:25:42.172 traceupdateWindowShadeOpening

dev:18372022-04-27 23:25:42.156 debugparse: opening

dev:18372022-04-27 23:25:42.153 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 29C6 01 00 0000 01 01 5F880104000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:29C6, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:01, direction:01, data:[5F, 88, 01, 04, 00, 01, 00]]

dev:18372022-04-27 23:25:42.133 debugupdatePresence: present=true

dev:18372022-04-27 23:25:41.958 traceparse: ACK command=0

dev:18372022-04-27 23:25:41.939 debugupdatePresence: present=true

dev:18372022-04-27 23:25:41.347 tracesendTuyaCommand: dp=0x01, dpType=0x04, fnCmd=0x00, fnCmdLength=2

dev:18372022-04-27 23:25:41.316 debugopen, direction = 0

Or you can simply send me the big logs in PM to avoid spamming the public thread with large log files.

1 Like

Thanks for this! Unfortunate timing's meant that from this evening I'm away from home until next Monday, but I'll give the latest version of the driver a go as soon as I'm back.

1 Like

That's perfect advice. I didn't want to delete the old versions for now, but when it's all sorted and gets updated to HPM I'll add it in from there.

I'll get those logs now.....

So currently the blind is fully down and correctly showing closed. Here is the log capture from pressing 'Open' in the panel:

Summary

dev:10932022-04-27 21:32:16.233 debugupdateWindowShadeArrived: position=0

dev:10932022-04-27 21:32:14.237 traceupdateWindowShadeOpening

dev:10932022-04-27 21:32:14.226 debugparse: opening

dev:10932022-04-27 21:32:14.219 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 B7F4 01 00 0000 02 01 00000104000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B7F4, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 00, 01, 04, 00, 01, 00]]

dev:10932022-04-27 21:32:14.188 debugupdatePresence: present=true

dev:10932022-04-27 21:32:14.052 traceparse: ACK command=0

dev:10932022-04-27 21:32:14.027 debugupdatePresence: present=true

dev:10932022-04-27 21:32:13.810 tracesendTuyaCommand: dp=0x01, dpType=0x04, fnCmd=0x00, fnCmdLength=2

dev:10932022-04-27 21:32:13.780 debugopen, direction = 0

1 Like

Send me some logs from successfully working StepOpen or StepClose ( at least 25 steps )

Blind was closed - step open 25:

Summary

dev:10932022-04-27 21:42:21.407 debugupdateWindowShadeArrived: position=25

dev:10932022-04-27 21:42:19.410 traceupdateWindowShadeOpening

dev:10932022-04-27 21:42:19.396 debugparse: opening

dev:10932022-04-27 21:42:19.394 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 B7F4 01 00 0000 02 01 00000104000100, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B7F4, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 00, 01, 04, 00, 01, 00]]

dev:10932022-04-27 21:42:19.378 debugupdatePresence: present=true

dev:10932022-04-27 21:42:19.292 debugupdateWindowShadeArrived: position=25

dev:10932022-04-27 21:42:19.290 debugupdatePosition: arrived!

dev:10932022-04-27 21:42:19.288 traceisWithinOne:true (position=25, lastPosition=25)

dev:10932022-04-27 21:42:19.286 debugupdatePosition: position=25

dev:10932022-04-27 21:42:19.284 debugupdateWindowShadeArrived: position=25

dev:10932022-04-27 21:42:19.273 debugparse: arrived at position 25

dev:10932022-04-27 21:42:19.271 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 B7F4 01 00 0000 02 01 00000302000400000019, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B7F4, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 00, 03, 02, 00, 04, 00, 00, 00, 19]]

dev:10932022-04-27 21:42:19.254 debugupdatePresence: present=true

dev:10932022-04-27 21:42:07.513 debugupdateWindowShadeArrived: position=25

dev:10932022-04-27 21:42:05.627 debugupdateSpeed: speed=100

dev:10932022-04-27 21:42:05.625 debugparse: speed=100

dev:10932022-04-27 21:42:05.622 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 B7F4 01 00 0000 02 01 00006902000400000064, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B7F4, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 00, 69, 02, 00, 04, 00, 00, 00, 64]]

dev:10932022-04-27 21:42:05.591 debugupdatePresence: present=true

dev:10932022-04-27 21:42:05.518 traceupdateWindowShadeClosing

dev:10932022-04-27 21:42:05.516 debugparse: closing

dev:10932022-04-27 21:42:05.501 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 B7F4 01 00 0000 02 01 00000104000102, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B7F4, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 00, 01, 04, 00, 01, 02]]

dev:10932022-04-27 21:42:05.480 debugupdatePresence: present=true

dev:10932022-04-27 21:42:05.386 traceisWithinOne:false (position=25, lastPosition=0)

dev:10932022-04-27 21:42:05.384 debugupdatePosition: position=25

dev:10932022-04-27 21:42:05.382 traceupdateWindowShadeOpening

dev:10932022-04-27 21:42:05.374 debugupdateWindowShadeMoving: position=25 (lastPosition=0)

dev:10932022-04-27 21:42:05.361 debugparse: moved to position 25

dev:10932022-04-27 21:42:05.359 traceparseSetDataResponse: descMap=[raw:catchall: 0104 EF00 01 01 0040 00 B7F4 01 00 0000 02 01 00000202000400000019, profileId:0104, clusterId:EF00, clusterInt:61184, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:B7F4, isClusterSpecific:true, isManufacturerSpecific:false, manufacturerId:0000, command:02, direction:01, data:[00, 00, 02, 02, 00, 04, 00, 00, 00, 19]]

dev:10932022-04-27 21:42:05.339 debugupdatePresence: present=true

dev:10932022-04-27 21:42:05.200 traceparse: ACK command=0

dev:10932022-04-27 21:42:05.176 debugupdatePresence: present=true

dev:10932022-04-27 21:42:04.153 tracesendTuyaCommand: dp=0x02, dpType=0x02, fnCmd=0x00000019, fnCmdLength=8

dev:10932022-04-27 21:42:04.097 debugsetPosition: position=25, currentPosition=0

dev:10932022-04-27 21:42:04.094 traceisWithinOne:false (position=25, lastPosition=0)

dev:10932022-04-27 21:42:04.087 debugstepOpen: step=25

I deleted message as there was a '0' populated in the set position box from a previous test. I can't be sure I didn't knock the touchpad on my Mac

1 Like

I will need to analyze these logs tomorrow when I have enough time - your model _TZE200_rddyvrci commands are different. I see speed reporting in the logs, but do not see the position reports, etc..

OK, thank you for the tests tonight!

1 Like

No problem - thanks for all your work

1 Like

The forked version was updated to version 3.1.2, where the main internal change is that now the Open/Close/Stop commands codes are handled differently, depending on the Manufacturer ID.

There is a new parameter under 'Advanced Options': 'Position report timeout'. For your AM43 model this parameter may need to have a much larger value (30,000 milliseconds for example ) or 0 (disabled) - you can experiment with it if the windowsShade status changes sooner than expected when opening or closing . For your model it was already determined that the 'Invert position reporting' should be switched off.

In the next updates, I will try to set these 'advanced' parameters automatically when a new device joins or when the Configure button is pressed, depending on the known models/manufacturers specifics.

1 Like

Thanks for the update @kkossev

I've loaded the new version and this is what I've found (I've referred to my previous post):

This seems to be unchanged. If the blind is open and I press 'Close' the blind just nudges down for a fraction of a second. If I press 'Open' the blind just nudges up for a fraction of a second. From memory, previously the 'Open' wouldn't do anything at all - not even nudge.

This now works correctly - nice one! Blind is open, send it to position 0 and the state changes from 'Open' to 'Closing' as it begins to move, then doesn't change until it stops. If I stop the position change mid way it shows "Partially Open' otherwise when it hits it's lower limit it stops itself and shows 'Closed'

I didn't notice any change with the 'Position report timeout'. It seemed to update correctly and promptly to the correct status whether at default (2500), 0 or 30,000.

So the only remaining issues are:

'Open" and 'Close' don't work currently for me. This is not an issue at all in my automations - as I tend to set them to 0 or 100, rather than open/closed. I suppose the only negative is that I cannot currently say 'Hey Siri' or 'Alexa' 'Close the Kitchen Blind' as it will just momentarily nudge as described. I'd have to say 'Hey Siri, set the Kitchen Blind to 100'

The position value does not update in real time while moving. Again this is not an issue in the slightest for me as it reports the value correctly as soon as it stops.

Again thank you so much for all of your work on this - I really appreciate it. And if you need any logs or anything tested, I'm happy to oblige.

Please send me logs when the blind is in a middle position and you press Open and then Close buttons. Is you Direction parameter 'Forward' ?

Yes, I am testing with Alexa voice commands and all work fine with my M515EGBZTN model, including 'lower by 10', "rise by 50", etc.. I will later test with Google Home as well.

Seems like AM43 model is not sending real-time position when moving, otherwise it should be captured in the logs.

1 Like

Mi problema esque tengo lo botones invertidos si le doy a bajar sube, y si subo baja, pero desde he me funciona bien, si lo invierto me funcionan mal, alguna soluciรณn amigos porfavor?

Your Manufacturer ID is "_TZE200_nueqqe6k", I have to research what is specific for it.

@diegodelprat Is your motor this one: https://www.ajaxonline.co.uk/product/zignito-zigbee-roller-blind-motor/
If not, please post a link from the site where you purchased it.