Somfy Control From Your Mobile, IFTTT and Google for $20

3,328

5

10

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.

Supplies

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.

Somfy YouTube video for connecting another remote

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;

http://blynk_ip:8080/BLYNK_PROJECT_AUTH_KEY/update/V2?value=1

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.

Step 16: Arduino Code - Copy Away!

Be the First to Share

    Recommendations

    • Back to School: Student Design Challenge

      Back to School: Student Design Challenge
    • Lamps and Lighting Contest

      Lamps and Lighting Contest
    • Tinkercad Student Design Contest

      Tinkercad Student Design Contest

    10 Comments

    0
    Ynsdy
    Ynsdy

    5 weeks ago

    I change the 3 lines of your file :
    #define OUT 0x01
    #define STOP 0x05
    #define IN 0x07

    instead of D1, D5 and D7
    The compiling is working ;p

    But when i'm trying to upload the project.. it seems the USB port is not selected :/
    How can you set the USB port ?

    sketcherror2.png
    0
    Ynsdy
    Ynsdy

    6 months ago

    Many thx for this tuto.
    I'm on the last step.... and get this error on compiling Arduino :

    exit status 1
    'D1' was not declared in this scope

    0
    MKJustUK
    MKJustUK

    Reply 6 months ago

    Thanks!
    Check it's defined still as an output right at the top of the code. Also check the board type and how the gpios are referred if different to a Wemos mini. You can probably replace the D1 with a direct gpio number.

    0
    Ynsdy
    Ynsdy

    Reply 5 weeks ago

    Thanks.. but i'm still stuck :/
    I use a Wemos D1 mini,
    i download your FC3KT5SJX0O4SN9.ino and just edit the 3 lines auth, ssid, and pass.

    After that, i include 2 librairies : ESP8266Wifi and Blynk (I did'nt found the exact library "ESP8266Blynk")

    And finally, I try to compiling, and still have this error :(

    sketcherror.png
    0
    Fred13127
    Fred13127

    Question 6 months ago on Step 16

    Hi very nice tutorial thanks for sharing. I don’t have the same remote control so not sure where to weld my cables. Can you help?
    Also I can’t find the ground point and the battery to solder on the remote.

    52A1E915-D9C5-4B9B-A43B-5F1271E25143.jpegEC371C9D-6A75-4CC4-BE9B-159B5010D682.jpeg
    0
    Paul-ChristiaanD
    Paul-ChristiaanD

    Answer 3 months ago

    I have this remote as well, it’s the IO version of the remote. It works almost the same. You can find the ground on the first picture, on the left is a row of ‘gold’ soldering pads. The top one is ground. The rest of the process is the same. Bring the right bottom of the switch momentarily to ground and the button is triggered. Now to find a way to solder a cable to these tiny pads at the switches…

    0
    MKJustUK
    MKJustUK

    Answer 6 months ago

    Sorry that's quite different to any I've seen. The button for programming is like mine, but the other four are not - they look like some kind of capacitance button. You may need to trace using a continuity meter between the gnd of the battery and the button 'pads' but it doesn't look as easy. The battery holder needs to be de-soldered and removed, then you'll see the ground point and 3v point, but again, the battery holder also looks a little different, so I'd trace that in the same way too first.

    0
    rdc-green
    rdc-green

    Question 5 months ago on Step 16

    Hi, thanks for the instructions, they are brilliant. I was just wondering with the newer version of the Wemos, is it possible to keep the battery in place so you don’t need an external power source? Thanks

    0
    MKJustUK
    MKJustUK

    Answer 5 months ago

    Thanksl you! You'll always need either a good capacity external battery or a constant power supply as the Wemos will drain a coin battery in a very short time.

    0
    Penolopy Bulnick
    Penolopy Bulnick

    2 years ago

    Nice tutorial! I like your added tip about the tape and the battery ground pad. It never hurts to be safe :)