I am having very bad latency with my Z-Wave roller shades. The brand is Bali, manufactured by Springs Window Fashions. They also manufacture Graber shades. I suspect my problem can be solved by a custom driver, and that suggests to me that other people are probably experiencing the same things. I can potentially author or help author the driver, but it would be my first time doing so. I'm a software engineer, but new to home automation.
What is happening
I have three roller shades (really more, but we will use three for this example) registered as generic Z-Wave shades. I have created a simple rule that closes the shades at a certain time. The only condition is "When time is..." and the only action is "Close shades 1, 2, and 3".
When I wait until the specified time or press "run actions", all three shades close. However, it can take up to ~5 seconds for the first shade to start closing. The other two follow, each delayed by 2-5 seconds. That is incredibly slow, and not particularly aesthetic.
Here's where it gets interesting: the shades also came with a remote. After pairing the shades with Hubitat, I also paired the remote with Hubitat and then "associated" the shades with the remote. The remote allows me to then assign shades to "channels", which are basically scenes in the remote. When I assign all three shades to a channel and then try to open/close them with the remote, they respond instantly and simultaneously. They close at the exact same time, perfectly aligned. Zero perceptible latency.
When I look at the logs after running a remote command, I see the following:
Z-Wave command:CentralSceneNotification(keyAttributes:0, sceneNumber:13, sequenceNumber:20, slowRefresh:true)
In the above string,
sequenceNumber increases each time I press the button the remote.
sceneNumber varies based on the channel, but in this example, I am using channel #1. I do not know if the remote's "scenes" always begin on 13 or if that increments for some other reason. I'm guessing the latter.
My understanding/guess is that Z-Wave has some sort of built-in scene management functionality that allows for multiple actions to occur simultaneously. I suspect that the remote is taking advantage of that functionality, but Hubitat is not. This is probably because the generic Z-Wave shade driver does not know about it. I do not know whether that functionality is specific to the remote, or rather the combination of the shades+remote.
In the past, before purchasing Hubitat, the company provided me with an Ezlo Atom and some cheap app for basic routines. It was terrible in every way, but it also had zero latency. This was also the case when I did not have a remote, which rules out the remote being magic. If an Ezlo Atom can do it, I am confident that it is possible to make Hubitat have the same non-delayed behavior. I also know that the logged command is part of the Z-Wave specification, but my insight ends here.
Does anyone have any additional insights? I appreciate your help.
- My hub is connected via Ethernet.
- The shades are approximately 10 feet away from the hub.
- The shades are not blocked by a wall.
- I have rebooted and power-cycled the hub.
- I have tried using groups.
- I have tried using scenes.
- I have tried using "Room Lighting".
- I only have ~15 Z-Wave devices connected.
- I have no ghost devices.
- I have run a Z-Wave repair.