The Soma Smart Shades is now at a lower price and has even more functionality.
We just recieved great news. The Soma Connect software is now open source. This means if you have a Raspberry Pi then you can flash the software onto the memory card and start using with your Soma Smart Shades or Soma Tilt.
In light of this we are now building our own Oz Soma Connect this means that we can sell our Soma voice package at a lower cost. This package can include 1 2 or 3 Soma Smart shades + the Oz Soma Connect. Just in time for summer!
It doesn't stop there. All new Soma Connect device supports HTTP commands. This means that integration with Vera, Fibaro and Home Assistant is a breeze. See below for details.
Install SOMA Connect software on SOMA Connect / Raspberry Pi
Installation
Download the SD Card image from here, password: GetYourSoma
MD5 (2.0.6.soma.connect.zip) = 097bcd08b089562d13684124ce6c07af
MD5 (2.0.6.soma.connect.img) = 170a35e65465395cf894048ad86da7de
The software has been tested on:
SOMA Connect
Raspberry Pi 3 Model B V1.2
Raspberry Pi 3 Model B+
Raspberry Pi 4 Model B
Instructions for writing to SD card:
* Download and install the software for writing the image to the SD Card (for Linux, Windows, MacOS): https://www.balena.io/etcher/
* Select the image in the Etcher program
* Plug in the SD Card to your computer
* Select target in the Etcher program
* Click on the Flash button
Follow the setup instructions here
Troubleshooting
balenaEtcher version 1.5.58 is not fully compatible with MacOS Catalina yet (see https://github.com/balena-io/etcher/issues/2833 for more info).
As a workaround, try running balenaEtcher as root, copy and paste the following command into Terminal:
sudo /Applications/balenaEtcher.app/Contents/MacOS/balenaEtcher
HTTP API
The HTTP API is currently made available as a beta feature, we welcome your feedback (here or send an email to support@somasmarthome.com).
Preconditions
- SOMA Smart Shades / SOMA Tilt devices have been set up in the Smart Shades app
- Install latest version of SOMA Connect following the instructions here
- SOMA Connect has been connected to the network using Wi-Fi or ethernet cable
- SOMA Connect local IP address is known
The HTTP API responds to GET requests on port 3000 on the SOMA Connect local IP address. At the moment the API does not need any credentials and is not secured in any way. We recommend to only use the API locally and not expose it to the internet.
Response data is JSON encoded.
List of API endpoints is as follows (this may change without notice for now):
- /list_devices : This endpoint will return a JSON encoded list of all shades this SOMA Connect has seen since last restart. For each entry in the list a name and a MAC address will be provided. The MAC address is needed for controlling and querying devices on other endpoints.
- /get_shade_state/"MAC" : This endpoint needs a MAC address from the list. The MAC address can be copied in the format it appears in the list (for example: http://192.168.0.104:3000/get_shade_state/dd:9b:89:47:a5:e7). This will return the current position of the shade. Position is in the range 0..100. This endpoint will make a request to the device over BLE so it may take a few seconds to come back depending on signal strength and distance to device.
- /get_battery_level/"MAC" : This endpoint returns the current battery level from the device. The battery level is in units of 10 mV. The battery level should usually be between 420 and 320. Anything under 320 is critically low. The device itself considers 360 the minimum to move the motor - anything under this will reject all motion commands. This endpoint will make a request to the device over BLE so be patient if the device is far from the Connect.
- /set_shade_position/"MAC"/"position" : This endpoint will send a position update (move) command to the device addressed. Position should be a value between 0..100. This will return as soon as the command is sent - it will not wait for the motion to end and the endpoint to be reached. The position value in the state endpoint will also be updated immediately so currently there is no way to tell when the shades have reached target positions.
- /open_shade/"MAC" : Endpoint to fully open the shade.
- /close_shade/"MAC" : Endpoint to fully close the shade.
- /stop_shade/"MAC" : Endpoint to stop the shade immediately.
There is a Python 3 wrapper library in the works as well. Current version can be downloaded from PiP.
"sudo pip install pysoma"