Somfy binding is being weird

Hi there.
I recently purchased a Somfy blind and one of their Connectivity Kits which links the blinds to the cloud via wi-fi.

I set up the Somfy app, created an account and linked it to Google Home - voice controls work! Great!

I installed the Somfy Tahoma binding and set up a Bridge with the account details I used in the app. It connected no problem and detected my Connectivity Kit and Blind. Nice!

However, when I try to control the blind from OpenHAB the bridge goes offline with a communication error…

2023-12-11 18_19_34-NVIDIA GeForce Overlay DT

And I get the following messages in the log…

2023-12-11 18:19:24.846 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Bedroom_Blind_Bedroom_Control' received command DOWN
2023-12-11 18:19:24.847 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Bedroom_Blind_Bedroom_Control' predicted to become DOWN
2023-12-11 18:19:24.847 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Bedroom_Blind_Bedroom_Control' changed from NULL to 100
2023-12-11 18:19:25.005 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'somfytahoma:bridge:eb543391a0' changed from ONLINE: Cloud mode to OFFLINE (COMMUNICATION_ERROR)
2023-12-11 18:19:25.006 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'somfytahoma:dimmerlight:eb543391a0:ogp21053869566815728639' changed from ONLINE to OFFLINE (BRIDGE_OFFLINE)
2023-12-11 18:19:25.006 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'somfytahoma:screen:eb543391a0:ogp2105386956681044833' changed from ONLINE to OFFLINE (BRIDGE_OFFLINE)
2023-12-11 18:19:25.006 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'somfytahoma:gateway:eb543391a0:2105-3869-5668' changed from ONLINE to OFFLINE (BRIDGE_OFFLINE)

Now… I’ve done a load of investigation, and there is some weird stuff going on.

Firstly, I can’t log on to www.tahomalink.com (the default gateway for the binding) using my log-in credentials, even though they work in the app, and to set-up the binding.

Then I tried to connect to the Connection Kit using the direct FTP Developer Mode.
I set a static IP on my router, and got the PIN from the bottom of the device. This generated a Local Token, but the bridge gave me the error “Unable to register events”.

2023-12-11 18_24_06-NVIDIA GeForce Overlay DT

I’ve scoured various forum posts about the Somfy Tahoma Binding, and tried a few of the fixes (like removing the “www” from the cloud portal address) and nothing seems to work.

Any tips would be massively appreciated!

Cheers,
Dan

Hmmm. Looks like the Connectivity Kit doesn’t support Developer Mode. That answers that question at least.

I activated debug mode on the Somfy Binding and seem to be getting this error…

2023-12-11 21:04:33.951 [DEBUG] [nal.handler.SomfyTahomaBridgeHandler] - Received unexpected status code: 400
2023-12-11 21:04:33.951 [DEBUG] [nal.handler.SomfyTahomaBridgeHandler] - Cannot call url: https://www.tahomalink.com/enduser-mobile-web/enduserAPI/exec/apply with params: {"label":"Bedroom Blind - up - openHAB","actions":[{"deviceURL":"ogp://2105-3869-5668/1044833","commands":[{"name":"up","parameters":[]}]}]}!
java.util.concurrent.ExecutionException: Unknown http error 400 while attempting to send a message.
	at org.openhab.binding.somfytahoma.internal.handler.SomfyTahomaBridgeHandler.sendMethodToTahomaWithCookie(SomfyTahomaBridgeHandler.java:823) ~[?:?]
	at org.openhab.binding.somfytahoma.internal.handler.SomfyTahomaBridgeHandler.sendPostToTahomaWithCookie(SomfyTahomaBridgeHandler.java:773) ~[?:?]
	at org.openhab.binding.somfytahoma.internal.handler.SomfyTahomaBridgeHandler.invokeCallToURL(SomfyTahomaBridgeHandler.java:1120) ~[?:?]
	at org.openhab.binding.somfytahoma.internal.handler.SomfyTahomaBridgeHandler.sendCommandInternal(SomfyTahomaBridgeHandler.java:939) ~[?:?]
	at org.openhab.binding.somfytahoma.internal.handler.SomfyTahomaBridgeHandler.repeatSendCommandInternal(SomfyTahomaBridgeHandler.java:928) ~[?:?]
	at org.openhab.binding.somfytahoma.internal.handler.SomfyTahomaBridgeHandler.lambda$10(SomfyTahomaBridgeHandler.java:962) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
	at java.lang.Thread.run(Thread.java:840) ~[?:?]

This looks like the exact same problem described in this post which has a work-around… but no proper solution.

Has something changed recently on the Somfy/Overkiz end that could have broken the binding?

OK then. using the advice from the post above I think I have the blinds working.

The problem is that the Roller Blinds are auto-detected (correctly) as a Somfy Screen. Most likely because the logical set-up flow from within the Tahoma app implies that they are that kind of device.

Steps to get them working were as follows…

  1. Add the thing when it is auto-detected and sent to your in-box.
  2. Copy the thing’s Somfy Tahoma Device URL.
  3. Set up a new thing, as a Somfy Shutter and use the URL from step 2.
  4. Delete the old thing.

The response time is pretty slow, so I’m bummed the Connectivity Kit doesn’t support the local API, particularly as the Bridge seems to have a fairly spotty connection.

Bonus Tip: I also kept getting frequent…

OFFLINE (COMMUNICATION_ERROR): Too many requests, try again later

…errors, so I changed the Refresh Time to 600 on the Bridge, which seemed to fix it.

Just as a reference, the commands being sent from the binding are…

DIDN’T WORK:

Sending POST to url: https://www.tahomalink.com/enduser-mobile-web/enduserAPI/exec/apply with data: {"label":"Bedroom Blind - down - openHAB","actions":[{"deviceURL":"ogp://2105-3869-5668/1044833","commands":[{"name":"down","parameters":[]}]}]}

DID WORK:

Sending POST to url: https://www.tahomalink.com/enduser-mobile-web/enduserAPI/exec/apply with data: {"label":"Bedroom Blind - close - openHAB","actions":[{"deviceURL":"ogp://2105-3869-5668/1044833","commands":[{"name":"close","parameters":[]}]}]}

…so it looks like the key difference is the open/close up/down command.