Soma blind control via MQTT

Tags: #<Tag:0x00007f2047af6748>


Thank you very much.


@andersonshatch I got it working, thank you! Just wondering do you run it on startup? If my raspberry pi restarts I’d like somactrl to start again. Thanks!


At the moment I just have it running in a while true loop that I leave running in a screen session via SSH.
It’s far from ideal, but I haven’t yet found anything good to make startup scripts for macOS and *nix for node apps – not that I’ve spent much time looking – but my server is not restarted that often for it to be very inconvenient
If anyone has any suggestions for something like that, I’m all ears!


Just released version 1.1.0 which adds support for device registry data, so in Configuration -> Integrations -> MQTT you should see something like this:

…You’ll need at least version 0.81 of HASS for this to be supported.

Additionally, the unique_id parameter is now passed along with the discovery data, so you can rename and change the entity_id from within HASS.


I’ve installed on a rpi3b+ successfully, but i can’t get it to detect the blinds, what am I doing wrong?
any help appreciated.


Hmm… have you used Bluetooth on the pi with anything else?
I’m not sure if my tool can turn on Bluetooth if it’s not yet been enabled by something (possibly just you running a command with something installed by bluez I guess – still haven’t tried it myself on a pi so am not 100% sure)

What output do you get when running with DEBUG=noble at the front of your command?
DEBUG=noble somactrl -l 3000


hey, thanks, heres the output:

[email protected]:~ $ sudo DEBUG=noble somactrl -l 3000
soma* No device names supplied, will stop scanning after 30 seconds +0ms
soma* scanning for as many devices until timeout +8ms
noble addressChange b8:27:eb:4e:8b:5f +0ms
noble stateChange poweredOn +3ms
noble scanStart +5ms
soma* stopping scan after timeout +31s
soma* No devices found, exiting +2ms


Looks ok, at least the bluetooth adapter power was on.
Have you setup the blind devices in the iOS / Android app first?
Could range be an issue?


yeah i have, pi is literally sitting beside the soma.
should i try old pi? or older debian distro?

these are also brand new, hopefully its not new firmware or something…


Ok… one last thing to check… was the soma app on your smart phone closed when you were trying to use the tool on your pi?
If it was still open, it can maintain a connection and that means the device will not be advertising itself for other connections.

Otherwise, I think we should move this to a GitHub issue, maybe you can export the logs from the soma app for me to examine. You can do that by pressing on the header a few times where the group name is displayed, and then a log window opens allowing you to copy the text out.


Just released v1.1.1 which includes a fix to the discovery data that will be needed for 0.82.0 of hass
If you upgrade to 0.82.0 and the soma devices no longer show up and cause errors, please update to v1.1.1 of soma-ctrl :slight_smile:


Hey, if soma have changed the ble device id’s, will detection fail?
From what I can tell, the id’s of my blinds are f023c6wu and f023c6fa…


Yeah, if they are not using RISE_nnn_ anymore, then they will not be discovered, and right now you can only manually specify IDs with RISE_nnn_ format as well.
Open a GitHub issue with some more details, maybe the log from the smartphone app and I can have a think about how to adjust to this.


Does this project still work? How about the Soma itself? Good product? Looking at getting one as an Xmas present


Still works for me at least, and I’m happy with the devices themselves, it’s nice to have automatic control of the blinds; open at sunrise, close around sunset, keep the sun out of your eyes when it’s bright.


Awesome! Thanks for the info. I think I’ll pull the trigger


got it working in a docker node-red but can’t connect any device as the host nomes have apperently changed…

BLE Scan provides the following info:
[NEW] Device E2:E4:81:69:E8:05 S
[NEW] Device FD:BD:B4:7F:4F:7A S

Anyway this can be fixed in the somactrl?


Hello, could someone provide the dockerfile used to make it works :slight_smile: ?



I have the standard node red docker running. My docker-compose:

container_name: node-red
restart: unless-stopped
image: nodered/node-red-docker:v8
user: “root”
- /srv/docker/node-red:/data
- /etc/localtime:/etc/localtime:ro
- “1880:1880”
network_mode: host

within this I have installed the soma-ctrl and start it at command line for testing purposes

The problem I’m having with this setup (running Hass & node red on the same host) is that the somactrl takes posession of the ble stack and HASS cannot reach any devices … so that is a no go for me :frowning:

If anybody has a solution to this I would be very happy… now I’m planning to dig out one of my raspi’s and install it on there…


Just published v1.3.0 with (hopefully!) a few stability improvements

Time to npm update -g soma-ctrl!