Introduction: Somfy Control From Your Mobile, IFTTT and Google for $20
In this Instructable, I'll show you how I took a cheap (yeah, Somfy and cheap!) Somfy RTS radio remote and took control via my mobile, IFTTT (think timers/reactions) and Google home. It's worth noting that this is the RTS Situo remote, I have not seen the inside of a Situo IO remote, so the below may not be relevant - drop a comment below if you've opened your Situo IO up to find something similar or not.
I should say at this point, that a previous Somfy+Alexa Instructable (here) by Jerry Olsen inspired and shaped the main soldering of this project.
I wanted mobile control (when I'm outside I have my mobile with me and I can hardly ever find or remember where the original Somfy remote went!), IFTTT control (so that I can link other events such as my ESP8266 rain sensor) and for me, Google home/nest voice assistant control too.
To do this, I used a Wemos D1 mini (good clone), USB charger, Somfy Situo remote and a dremel. Software-wise it was a basic Arduino sketch using Blynk and webhooks into IFTTT.
Unlike the other instructable I linked to above, I wanted to have the Somfy remote on the wall and still be able to use the original buttons (family and guest friendly!). Therefore, I went about fitting it all in the original remote housing. I also wanted the remote powered by the Wemos as in the other instructable.
The method of control (other than the buttons!) is (Google*)>>(IFTTT*)>>Blynk>>Wemos D1 Mini GPIOs>>Somfy board
*Optional in the chain.
Somfy Situo remote control (they're cheap and wall mountable!)
Wemos D1 Mini (Lolin sell them directly on Aliexpress, but I bought a good clone on Amazon)
Dremel or something to cut plastic (the Somfy case is pretty easy to cut)
Soldering iron capable of soldering the Wemos and Somfy pads
Thin gauge wire
Blynk account (and a project with three buttons)
IFTTT account (optional)
Google home/nest speaker or mobile (optional)
Step 1: Register and Then Open Up the Somfy Remote
First things first, pretty soon, the Somfy won't be working on it's own battery or have access to the program/reset/connect button easily. So, connect the remote to your Somfy device(s) now, while it's all new and nice. It's also worth checking everything works as expected on this remote before we open it up and void any kind of warranty.
To do this varies on what you already have, so check the instructions in the box and also this video guide. I had an existing remote, so I pressed the reset/connect button briefly on that, then the new one and then pressed buttons on the new one until it worked.
The remote pops open by just pulling at the bottom edge. Undo the two screws/torx security screws with a small flat tip screwdriver (the type you find in a mobile repair kit).
Step 2: Flip the Board Off the Top Half of the Shell
Flip the board out and over to see the buttons of interest. In this picture, the solder points for the buttons are on the right.
Step 3: Unmount the Battery
Take the coin battery out of the holder (it slides out with a push from that small screwdriver). Then unsolder the two mounting points in turn, while gently pulling or prising the battery clip off so it looks like the photo above. We'll use the mount points for the 3.3v, so don't worry about solder left behind.
Step 4: Solder the 3.3v and GND Wires to the Somfy Remote
The (red) 3.3v wire goes to either of those battery holder mount points and then to the Wemos Mini 3.3v pin. The (black) GND wire goes to the pad just to the left of that chip (I found this an easy place to solder to, I think there are several ground points on the Somfy board). This then goes to (you guessed it!) GND on the Wemos.
This means the Wemos board will power the Somfy board whenever it's connected (via USB in my case) to power.
Step 5: Cover the Battery Ground Pad Up With Insulating Tape
In all honesty I have no idea whether this is crucial or not, but as I knew the Wemos was going to end up in close contact to this, I took no risks.
Step 6: Solder It All Up
My Somfy Situo had four buttons in total - connect/reset, up/out, stop and down/in
In case you're not aware, the Somfy remote simply pulls the left side legs of the button (as shown) to ground (from the right side legs) when pressed. So, if we ground the left side with the Wemos it sees a press.
I wasn't interested in the connect/reset button as I'd already learnt the remote to the control box using my original remote. So, I wanted the Wemos to 'ground' the other three on demand. To do this, solder a wire to the leg on the left side (as shown) for each button. These are in turn each soldered to a GPIO on the Wemos.
Step 7: Dremel the Case
In order to get the original board and a Wemos D1 mini in the case, you need to open up the back a little bit to have space for it to fit. It also allows the (warm to quite warm) ESP8266 WiFi chip to cool a bit easier. While I was at it, I cut away the bottom of the top screw slot so that when it was all done, I could hook the remote on a screw in the wall (Somfy expect you to screw the backplate to the wall first, then re-fit the front - not possible when you're trying to fit the wires and Wemos in at the same time!)
* - Update, I've recently got my hands on the very latest (official) D1 mini (v3.1.0) and the wifi chips are now tiny! This would most likely mean you wouldn't have to Dremel the case. Worth checking if it all fits first if you are using the later D1 Mini without the big silver wifi chip as shown.
Step 8: Fit It All In
This takes a bit of time and patience, space is tight and you need to get the wires under the main Somfy board, without them getting in the way of the buttons. I found that running the wires down the sides under the Somfy board first, then 'folded' the Wemos up into place worked best.
Step 9: How It Looks From the Back
This is the finished article showing the cut-away to allow the Wemos to fit and cool. You can also see the screw cut-away for easy wall-hooking. The Wemos isn't crushed in, but is a tight fit enough that you can remove and insert the USB cable without fear of pulling any of the soldered connections.
Step 10: How It Looks From the Front and Side
As you can see from the front, the USB cable is the only give away that anything has been done and from the side this shows that the Wemos doesn't stick out, it just fits flush to the original case edge, meaning wall mounting will be no problem.
Step 11: The Coding Bit
With the hardware part done, you can flash a sketch onto the Wemos, build a Blynk project, setup IFTTT applets and then talk to Google.
I'll break each down into a different step. You may choose to do this before you put the hardware together, just keep a note of the GPIOs you use so they match on each.
Step 12: Blynk and You'll Miss It
I used Blynk as it was simple and effective, there's other options, so this isn't critical. For me it was a nice simple way of getting the Arduino sketch to ground the GPIOs on the Wemos using my mobile as a 'remote'.
Open a Blynk account if you don't already have one and then create a new project. Keep the auth key given handy for the Arduino sketch later. Add three buttons linked to virtual pins 1,2 and 3. Word the buttons as you'd like. As I am controlling two awnings/shades I chose Out, In and Stop.
We'll use the Blynk Arduino library to tell the Wemos when one of these virtual-pinned buttons was pressed and then simply ground the appropriate GPIO to fire the physical Somfy press.
Step 13: An IFTTT That Keeps on Giving
This is optional, you can skip straight to the Arduino sketch step if you have no interest in voice, timer or event reaction control of your Somfy remote.
I created three IFTTT applets, one to 'press' each of the three Somfy buttons. These fire a webhook request into Blynk which in turn (see previous step) fires the Wemos to physically ground the Somfy button.
So, the IF part can be whatever you need to trigger a button press, I chose Google assistant so I can talk to it and schedule it.
The THAT part then needs to be a Webhook into Blynk using a URL like this;
The BLYNK_IP should be the country IP you find by pinging the blynk server. The auth key was sent to you when you created the Blynk project. V2 is the virtual pin assigned to the button in the Blynk app we want to press.
Set the method to GET
Set the content type to be application/json
Repeat the above for the other buttons.
Step 14: Hey Google!
As I chose Google Assistant in the IFTTT 'IF' part, I can then tell Google a phrase (that I've put in the IFTTT Google Assistant settings) to tell it to press one of the three buttons.
Step 15: Can We Write Some Code Already!
Finally we need to write and upload a sketch to the Arduino. I won't cover this in too much detail and it's all commented and each section is straightforward enough.
Two libraries are needed, the ESP8266 wifi and ESP8266Blynk - these may change over time and if you use another board instead of the Wemos Mini, so check on that first.
You have to set your wifi ssid, password and blynk auth tokens as they'll always be different.
I used D1, D5 and D7 to ground the Somfy buttons and of course the 3.3v and GND pins to power the Somfy board.
I have included a few serial monitor prints, so if you run this up on a Wemos first, you can test Blynk, IFTTT and Google without disturbing your Somfy device(s).
My buttons are called OUT, IN and STOP.
I hold the physical button for one second to ensure the radio signal gets received by the Somfy box. I use a delay to do this to also prevent erratic button overlap if someone (the kids!) get onto my Blynk app, coupled with the Somfy relay design this means the motors aren't changed direction too quickly.
I drag the Blynk button high and low to show it's been pressed and as IFTTT leaves it high forever if you call the Blynk press this way.
The void.loop should be left with just the Blynk.run(); line to keep things running well.