ESP Somfy RTS Integration

I have created a Somfy RTS integration that uses an ESP32 and a CC1101 transceiver that is readily available. The radio range is excellent, it supports up to 32 covers per device, and it links your existing Somfy remotes to keep the shade positions and tilt in sync, and it supports the My positions set from your remotes.

The configuration is simple, it requires no coding, and you can update the device OTA so stuff it somewhere and get control of your shades, drapes, and blinds.

The controller is constructed from readily available parts and can be put together without soldering and for less than $20us. Complete instructions on how to connect the parts as well as options for connecting the ESP32 using wifi, hardwired ethernet, and/or POE.

A complete project guide is located here.

Integration for home assistant can be installed via HACS and is located here.


This looks like a wonderful project.
I was in the process of deploying something based on this tutorial Controlling Somfy roller shutters using an ESP32 and ESPHome |

Now neither your project, nor your tutorial seems to be recognised by my motor (nor can I see anything on the SDR on the computer).
I do wonder as well if I have a faulty CC11011. Mine is “D-Sun” Are they one of the makes you tried?

I have just ordered a pair of your recommended tranceivers

Yes I have two of them and one of them failed. The E07 has much better reception and I bought 7 of them. Built 5 devices, gave 3 away and using two. I had a D-SUN in production and it didn’t perform as well as the E07. It worked after tweaking the tuning but the range wasn’t as good. You can see the RSSI on the configure transceiver screen.

You should expect the TX and RX to work over the whole house. I have shades outside on the patio being controlled through 4 walls about 100 feet away.

Looks really powerful @rstrouse
I am currently using solution which work fine.
But will move to pour project this week. I am really curious about the ability to read external remotes.

Yeah I could only find solutions that transmitted. That’s why I wrote my own.

My house seems to be radiation proof :slight_smile: Can hardly get a signal on the phone so I would not blame anyone if I have to put different emitters in different locations. After all this is what I have done for wifi

Is this ESPHome based or a new project from scratch?

How are you able to show the current position? I thought RTS was a unidirectional protocol!
Either way, this is pretty cool, I look forward to giving it a try when I’ve got some more time.

If this is your WiFi reception then focus on improving your WiFi. The current connection strength is shown at the top when in the gears menu. Mine hovers between -43dBm and -60dBm the closer it is to 0dBm the better. However, if you re having TX/RX issues with the radio then follow the advice below.

The enemy of 433mHz is stucco and metal studs. The transmit power from the Somfy remotes are not very good but the TX from the device will be much higher. Which CC1101 do you have? I am getting a pretty negative impression of the D-SUN ones. They are just not consistent and never seem to perform as well as the E07-M1101D transceivers.

The E07-M1101D-SMA transceivers seem to have much better reception and transmit. I have 3 of these (D-SUN) and out of the 3 none of them are as good as the worst of the others and one was dead out of the box.

You can also go into the transceiver configuration on the app and tune the RX Bandwidth as well as the Frequency Deviation to get better reception from your Somfy remotes.

This is a new project from scratch. I looked at the various options out there and decided that none of them operated the way I wanted them to.

Yes RTS is a unidirectional protocol. However, over half of any good conversation is listening. The device is a good listener and picks up on the linked remotes to retain its positions.

Oh, I think I missed a link in the setup doc. You need the transit time for the shades in both directions to get the percentage. :+1:

It is amazing how well they stay in sync. The timing for the trigger is about half a millisecond from the receipt of the transmission. It doesn’t send the information off to some other place to come up with the position, everything is done on the ESP32 using interrupts.

Version 1.4.0 has been released. The highlights are an updated user interface, tilt motor and position controls, and backup/restore functions. The wiki has also been updated.

Hi, thanks rstouse to share your job with community!! Your github is also a model to follow ( very good wiki!)
Do you think a gate opening command (somfy sga6000 model )can be likened to a roller shutter ( shade device )?
I precise that opening is only 0% or 100% .
Pairing RTS command requires to be stick to motor controllor as described in this video (Comment ajouter une télécommande sur votre motorisation de portail ? | Somfy - YouTube) : long press until led prog is activated .

My final idea is to wire the esp with your firmware , integrate to homeassistant and open devices ( shades and gate with alexa).

Great job. I’m currently using RFLINK, but your project is much better. Will implement it over the weekend. I have everything I need in a drawer

Hi @rstrouse

Do you have any howto / steps to troubleshoot the pairing?

I finally received my transceiver. I have a good reception (in your app) and I can listen to my remote. This gives me good confidence that the wiring is correct. Now I cannot get the motor to pair with the remote. There are only so many ways I can wire the TX line (i tried a few different pins but to no avail) :slight_smile:

Not sure what to try next

If it does use the Telis RTS protocol then the ESPSomfy RTS device should work just fine and it should be able to give you a fair idea of the transition. The only weirdness might be the icon displayed.

I am sorry though, my high school French is not up to par and not sure I got the gist of the video.

Are you running the latest version? I increased the time applied to the pairing button in the 1.4.x release.

The other thing that I have run into with another user was resetting the memory on the shade. The only thing I can think of is that there are limited pairing slots on the shade and all of them were full. Like the motor had been paired too many times and never unpaired.

Finally, it is possible that the transceiver is defective in that it is receiving but not transmitting. If you had two devices they will talk to each other and indicate this.

Alternatively, you can try to set the address and rolling code for the shade set up in ESPSomfy RTS to the same address and code as the remote. Then issue an up or down command to see if the shade responds. If it doesn’t then your transceiver is receiving but not sending.

Whatever you do, do not send a bunch of commands with the same address as your remote. If you do, you will need to reset the shade and start over. Which you may need to do anyway if the remote memory is full.

Thank you. I am using the latest version 1.4.1

I will try a few of those things and report

Ok. It’s finally working and I have no idea why :slight_smile:
Probably some small contact issues. The range is impressive