Soma Connect App
I have added a new Soma app which is now live at
This app connects to the the Soma hub which is different from the Soma app produced by Gerard Ricart which connects directly to the blinds via Bluetooth. The advantage is that Homey does not have to be within Bluetooth range of the blinds, but the disadvantage is that you will need the hub or a Raspberry Pi running the Soma image. Gerard’s app also provides an MQTT interface but I didn’t think it necessary on mine as it is already talking to the hub over the WiFi.
Version 2.0.0 onwards support multiple hubs to make it possible to reach devices that are far apart.
I wrote the app to solve my requirements but thought it would be good to share it. If there are any feature requests then feel free to ask and I will do my best to accommodate them.
Using the app
The app detects “Connect bridges” on the network using mDNS so there is no longer a need to find and enter the IP address.
You just go through the normal add devices procedure to select the blinds you want to control.
Note (updated 19th Dec 2019)
The Connect box from Soma requires the latest version to work as they have only recently added the API interface. If you see the “ECONNREFUSED” error message in the log panel then it probably means the Connect firmware needs to be updated. Check the following link to get the latest Connect firmware: https://somasmarthome.zendesk.com/hc/en-us/articles/360035521234-Install-SOMA-Connect-software-on-SOMA-Connect-Raspberry-Pi
Note (updated 30th Oct 2020)
The Soma Connect Hub version 2.2.0 changes the Tilt position value. It used to be 0 to 100 but is now -100 to +100. Therefore, if you update the hub firmware make sure you install version 1.1.1 or later of this app.
There is also a new device setting to specify if it is a Shade or a Tilt so the app knows if it should apply the fix.
I have discussed the issue with Soma and they have said they will add more information to the data that is available via the API so the type can be automatically detected. However, they have not specified when that will be available.
Note (updated 29th July 2021)
Connect firmware 2.2.6 now provides the type (shade or tilt) via the API so all settings are automatic.
The Tilt also has a new parameter for tilt up or down to define the direction which the latest app version uses.
- Spaces are now trimmed from the entered IP address.
- Converted to SDK 3 for Homey v5 and later.
- Add timeout to http requests
- Support for Soma Connect firmware 2.2.6
Version 2.0.0 Test Soma Connect | Homey
- The Connect bridge is now detected using mDNS so no longer need to set the IP address.
- Support for multiple Connect bridges.
Wow, Nice! Looks promesing!
Do I need the Some Connect box to get this working with the blind motors?
I’m waiting for an update (0.0.5) to go live that fixes the polling. If you want it now then the test version is at:
Thanks, I hope you find it useful.
Yes. The app talks to the Connect box via the WiFi and the Connect box talks to the blind motors via Bluetooth.
I think Soma also provide a download for a Raspberry-Pi image so you can build your own Connect box if you have a spare Pi around.
If you want to try connecting directly to the blind motors then you can use the other Soma app by Gerard Ricart:
His version didn’t work for me because my blinds are too far away from Homey and if I moved Homey closer it would be too far away from my other devices.
Some has created a diagnostics report but they don’t include any identifying information so I have no way to know who you are or how to contact you so i hope you read this message.
The report says:
Hi it will not work on my side
I have inkludet the IP adress fromm my soma connect
If I will connect to him, it will not create a divice the Name had a problem
It also includes the cause of the problem:
sendMessage: get list_devices
2019-12-19 11:54:49 [log] [SomaConnectApp] Connection Failed: FetchError: request to http://192.168.1.105:3000/list_devices failed, reason: connect ECONNREFUSED 192.168.1.105:3000
The ECONNREFUSED is the key to the problem as it means the request for information was rejected. One possible cause of this is the Connect box is running an old version of the firmware that does not support the API. I have now included information in the first post of this topic about this with a link to the Soma page that provides instruction on how to update the box free of charge.
Also double check the IP address is correct just in case the app is talking to the wrong device.
If that doesn’t help then please get back to me so I can work this out for you.
I have submitted an update that fixes the formula used to calculate the battery percentage so the value matches the Soma App.
The new version 1.0.0 is now available.
- It fixes the battery percentage so it reads the same as the Soma App.
- It has hysteresis on the battery alarm so you don’t get many warnings on the time line when the battery is low and the shades move.
- I have added the Up / Stop / Down buttons. If you have Venetian blinds the blinds will stop at the centre position on the first press if the slats arrive at that position.
The latest Athom guide lines state that if a cover device has the option to set a position then that should be used and not any other control. Also a device should have battery level if possible else it should have battery alarm as the next alternative, but not both. I am considering simplifying the app by removing the options to:
- Turn the blind On/Off (e.g. one tap open / close),
- Move Up/Stop/Down,
- Batter Alarm
So all that will be left is:
a. Set position,
b. Battery Level
Could you let me know if you are using any of the features (1, 2 or 3) so I know if it will cause any problems. I think any flows that use those features can be adapted to use the remaining features quite easily.
I am also investigating if Homey still provides a low battery message if the alarm feature is removed.
Hi ! Thanks for the hard work.
I am still waiting for my device, but meantime I am trying to set up the soma connect software on a raspberry pi. At first boot the pi is asking for a login/password : which one is it ?
Thanks a lot
I’m not sure. I purchased the Soma Connect box as I don’t think they had the code available for a Pi at the time. Also it was nearly a year ago when I set that up and my memory is not so good these days.
Where are you seeing the request?
Is it in the Soma app or do you have a screen attached to the Pi?
I don’t think I have ever connected a screen to the Soma Connect box as it is all configured through the Soma app as far as I can remember.
Edit: by Soma app I am talking about their Android app.
The login is being asked at the 1st boot of the raspberry (I have a screen connected to the raspberry)
Have you installed the Soma Connect image on the Pi?
Yes : downloaded and flashed on the SD Card.
Then when I start the Pi :
OK, then I would suggest you ignore that and run the Soma Smart Shades app on your phone and use that to connect to the Pi. It uses BlueTooth to select the WiFi, etc.
Edit: You will need the app once you get your devices to set them up. Once setup my app will control them.
Thanks… now I have to wait for the device.
I also sent a message to SOMA support, we’ll see
New build installed, but still at startup it’s asking for the same login/password
Are you saying that it is asking for the details on the monitor attached to the Pi still?
If so then that is normal. Once you have installed their image on the Pi it is not intended to use the Pi for anything else.
Just to ensure you are aware, the Pi code is property of Soma and I have no control over it accept via their API.
So to setup it up you use the Soma Android/iOS app and follow the instructions provided by Soma.
Obviously if I have misunderstood the please correct me.
Thanks a lot. I did not get it. It works perfectly !
A little question : is there any way to invert the up/down buttons & slider) ?
When I hit up it goes down
In the advanced settings you can set the % value for open and close (if I remember correctly).
The new test version has removed all except for the position slider as Athom have set guidelines for window covers. It makes the interface much simpler.
I have added a test version to the store that simplifies the user interface according to Athoms guidelines.
This version just has the set position slider and battery level and related flow cards.
Let me know what you think:
Does the new version seems more friendly?
Do you miss the removed features?
Thanks for your support.