We have received numerous requests to make it possible to control our shade motors with a physical button. Having guests over and forcing them to download an app just to open the shades in their room does sound a bit weird. But releasing a whole new line of products for just that would take us a very long time. And frankly there’s not much we would improve upon compared to existing offers on the market anyway. So this article will show one way of using an existing product to have the most basic control over your shades. We plan on releasing a few updates to the Connect at some point to have better support for different buttons but this here will work on any Connect firmware that supports the HTTP API.
The first thing you have to do is set up your Smart Shades and your SOMA Connect. If you’ve already done that just move on to the next step. To set up your Smart Shades follow the instructions here: https://support.somasmarthome.com/hc/en-us/categories/360001982294-SOMA-Smart-Shades-and-SOMA-Tilt
Next you need to find the id/MAC address of the shade you want the button to control. For this you need to be connected to the same WiFi network as your Connect. You also need to know the IP address of your SOMA Connect. Usually your router will have a table of all the DHCP clients it is currently connected to and you just have to find your Connect in that list. Once you have the IP address just direct your browser to go to this address:
http://<connect-ip-address>:3000/list_devices
For me for example I have to go to http://192.168.0.104:3000/list_devices
You should get back a simple text response. Something like this:
{"result":"success","version":"2.2.0","shades":[{"name":"playroom","mac":"cf:d6:36:d3:d3:8a"},{"name":"bedroom","mac":"d2:4c:91:ef:c6:95"},{"name":"livingroom","mac":"fd:ca:55:f7:12:af"},{"name":null,"mac":"d7:83:d2:54:0f:5a"},{"name":"livingroom2","mac":"c7:1b:cc:8f:6c:57"},{"name":"office","mac":"db:01:14:72:21:0b"}]}
So from this list you should be able to find all the devices your SOMA Connect has seen since last restart. You can just leave this open in your browser window as you will need this later in the process.
Now you should set up your Shelly button. You should follow any instructions that came from the manufacturer but right now the user guide is available here.
After you have set that up you should be able to configure the button on your local network with any browser while the button is connected to a USB charger. First you have to log into your router and find the IP address for the button.

Here you can see my button show up in my home network (working from home like a good boy) at the IP address 192.168.1.221
Now open your browser to that IP address and click Actions.
You can see 4 different actions that can each be configured to do something different. So for this example I have set up the short press to open one shade and the long press to close that same shade.
For that I just basically follow the SOMA Connect API documentation. I set up the API call to open a shade and from the list_devices answer we got before I copy the MAC address of the device I want to control. So for me all that ends up looking like this. After saving you can test to see if it actually works.

I do a similar thing for the long press and just use cose_shade instead of open_shade. And there you go - it should just work now. Once you unplug the button it will take a little bit longer for these actions to run since the button needs to wake up and connect to wifi before firing the action. But at least in my home it is still reasonably fast.
You can actually set up multiple calls for each press type. And if you really want to get creative you may want to try out our IFTTT integration which can also be set up to work with this button. Or for total control and a fully local execution you may want to look into Home Assistant.