New Shade Driver? (Somfy ZRTSI Bridge)

Really would like some help with troubleshooting.

I have the same shades as mentioned in this thread. I have 7 total windows that I am utilizing this driver on. All of the shades seem to have random problems, they sometimes move just a little bit when I send the open or close command, not all the shades, sometimes only one shade has this problem and sometimes a few more.

I have been playing with the script a bit trying to track down this error and figure out how I could solve this problem. I have run into a bit of a snag and I think it is the root cause of the problem.

Here is my log file, any help or tips would be greatly appreciated. The error is the last line in the file (bolded). I have purchased a Smart Things Hub, since I know these work on that Hub, but I really would like to solve this problem with Hubitat and not have to use another hub just for my blinds.

dev:10582020-05-11 11:23:45.016 am debugzwaveEvent( SwitchMultilevelReport(value:13) ) returned []

dev:10582020-05-11 11:23:45.007 am debugReported state is neither open or closed; device is on 100

dev:10582020-05-11 11:23:44.746 am debugin on loop

dev:10582020-05-11 11:23:44.659 am traceSwitchMultilevelReport cmd.value: 13

dev:10582020-05-11 11:23:43.110 am debuglevel.inspect 100

dev:10582020-05-11 11:23:43.095 am tracesetLevel(level) {100}

dev:10582020-05-11 11:23:43.090 am traceon() treated as open()

dev:10582020-05-11 11:23:40.159 am tracerefresh()

dev:10582020-05-11 11:23:35.044 am debugzwaveEvent( BasicReport(value:13) ) returned []

dev:10582020-05-11 11:23:30.077 am debuglevel.inspect 0

dev:10582020-05-11 11:23:30.073 am tracesetLevel(level) {0}

dev:10582020-05-11 11:23:30.068 am traceoff() treated as close()

dev:10582020-05-11 11:23:29.018 am tracerefresh()

dev:10582020-05-11 11:23:28.865 am debugzwaveEvent( BasicReport(value:13) ) returned []

dev:10582020-05-11 11:23:25.168 am errorgroovy.lang.MissingMethodException: No signature of method: user_driver_E_Sch_Somfy_Z_Wave_Shades_and_Blinds_Multi_tile_321.parse() is applicable for argument types: (hubitat.zwave.commands.batteryv1.BatteryReport) values: [BatteryReport(batteryLevel:0)]

Do you have your blinds directly paired with Hubitat? The driver above is for a ZRTSI hub, not Somfy Z-Wave shades (there may be overlap in commands however). Specifically, the error says that a parse method for a battery report does not exist. A ZRTSI wouldn’t send this as it’s not a battery powered device.

Yes I do have it paired directly to the shade. I have tried all the drivers even the generic shade driver and they all seem to have this problem. Not exactly the same error though. I was hoping to modify this script to suit my devices.

At the top of the script I am currently able to catch the shade in the middle of the fault. But it will not accept any commands from the script because it keeps throwing the same error. I was hoping to send a command that could clear the error and have it try again.

The modification I made catches the script at the point that it reports "Reported state is neither open or closed; device is on 100" at this point I am able to send the device another command, however, the commands are just ignored and instead the error just keeps being reported. unfortunately, the script just gets stuck in this endless loop.

Is there a way to clear this error and continue forward? If so I think I can get this driver to work with no issues.

This has been a problem since the day I purchased Hubitat. I previously had all my blinds on Wink, and was waiting to see if Hubitat would put out a update to correct this, so I did have one shade on Hubitat and would always try after each update to see if it was corrected. Wink made a bad business move and this weekend I moved all my devices over to Hubitat and having been struggling to try and come up with a solution. Any help would be greatly appreciated, I just need to be pointed in the right direction. Like I said I did purchase SmartThings but I really don't want to put that to use if I don't have to.

Thanks for any help or suggestions,

Forgot to let you know that I have tried a generic dimmer and also other options within the device list, all with no success. They all sporadically have this problem with stopping just a little before opening or closing, and they all seem to throw a very similar error.

You might try porting this ST driver. It was written for Somfy Z-Wave shades and has a battery report parse method.

ST-Z-Wave-Shade/zwave-shade.groovy at master · ericvitale/ST-Z-Wave-Shade · GitHub

Thank you. I will give this a try. :slight_smile:

If the problem is only with one shade, you may need a Somfy repeater (#1810791) because the Somfy transmitters only seem to have a range of about 35 feet or so. We’ve got 7 Somfy Glydea drapes with RTS motors, and I had to get a bunch of Somfy RTS repeaters & sprinkle them around the house to make the drapes operate reliably. You can usually find them on eBay for between $100 and $200 (USD).

Interesting. I have 11 Somfy RTS blinds and I just use a single hub to control the lot no repeaters at all. Is it possible the Somfy Bridge is just weak?

There was a review on Amazon where someone mentioned drilling a hole in the ZRTSI and pulling the antennas through. They said it solved all their range woes.


I have the same issue. See this thread if you want to use the driver that I am using. Doesn't fully resolve the issue, but better than the out of the box shade driver - Moving from Wink - Shade Woes in Hubitat. Help!

FWIW, I have a ZRTSII driver I released which tracks position. It can be found here.

1 Like

this driver works really well with the ZRTSII. I have homeseer as my current platform and the only thing that I found that would make the "MY" set position trigger was when a value command of "1255" was sent via ZWAVE command that triggered that event. Is there anyway this driver could be modified to support the "MY" position? I know the ST DH's could not do this, but I do have this working on Homeseer as a command. Example. Send "0" for closed, "255" for open" and then 1255 for "MY" position.

Thanks again for the great work, but your thoughts and feedback are greatly appreciated

The community Somfy ZRTSI driver by Justin Walker (@augoisms) lets you send the MyPosition (Stop) command. I use it on our 5 Somfy drapes (well, one is a group of 2 in the bedroom that move together, so it’s really 6 Glydea motors) and it works well.

1 Like

As far as Z-Wave is concerned, the ZRTSII node a Motor Control Class A device with no ability to set position, report current position or even when an endpoint has been reached. In simpler terms, it's a one-way interface with only open/close/stop commands. "1255" is an out of range value, so I'm not sure how this would work...

To my knowledge, the only way to implement a "My" position, or any other position, is to track the position based on travel time. If anyone knows of a different approach to this, I'm all ears...

The way My Position works is that you use the manual controls to move the drapes (or shades) to a desired favorite position and then push the stop button on the control to stop motion. Then, push and hold hold the Stop button in until the drapes (or shades) “jog”, indicating that the favorite position had been memorized. From then on, if the drapes (shades) are moving and a Stop is received, the drapes (shades) will stop, as usual. However, if the drapes (shades) are not moving and a Stop command is received, the drapes (shades) move from wherever they are to that favorite position previously set.

In short, the Stop serves both functions - there is no “move to my favorite position” command.

Hope that helps.

Very interesting! I've definitely missed that in the Somfy doc. I'll have to set it up and test.

I could add it to the driver... but I'm curious... what would you see the value of using the pre-recorded My position vs using setPosition(X)?

I can only speak for the drapes, which know how many times the motor turns, and thus know exactly where the position of the track ribbon is. They seem to save the My Position setting as motor rotation position. It's exact.

That's why Justin Walker (@augoisms) did the clever hack of, whenever his driver receives a set position (dimmer position) of 50, it just sends a Stop command rather than trying to figure out where to go.

You are right, the ZRTSI is dumb, knows nothing about position. All of the positioning is done in the motor. That's why the motor, on initial power on after reset, does the calibration to find the center and end stop positions.

1 Like

The driver already has the ability to set any arbitrary position between 0 and 100, so I guess what I'm asking is... if I were to add a My position command (which I can do), what would the advantage be of using My position vs just using setLevel(35)?

I understood what you were asking. By my reading of your code (and of Justin Walker's), you scale the desired position by the open/close transit time, and the accuracy depends on that. At least with my drapes, sometimes, on cold days, or if the cat is sitting on the drapes, it takes longer to open/close than other times. The MyPosition point is exact - it depends on how many times the motor turns, not on a guess about how long the drapes take to open/close, or variations in how fast the motor moves on that day.

I only use the driver like the Somfy controls - to open the drapes (fully), to close the drapes, and to move to My Position. I doubt that anyone uses the drivers to open to 10%, etc., because the Telis hand controls and Decoflex wall controls don't do that.

1 Like

Okay, your logic makes sense. I'll have a look at adding it.

I haven't experienced any issues with variance on motor operation due to temperature, but the cat thing kinda makes sense. I don't have a cat, so I've never actually seen the issue myself. :slight_smile:

My traverse times have always been within a quarter second or so, but I have my drapery motors on the slowest (quietest) setting specifically for that reason. However I have had issues with delays in the Z-Wave network. It's been on my list to change the driver so it doesn't count movement until I receive an ack from the node, but it just keeps falling to the bottom of the list. Maybe I can do these at the same time. I'll let you know when I've implemented it.

Thank you again for the information!

Download the Hubitat app