ESP Somfy RTS Integration

Unfortunately, that is the only way to keep the entities unique across multiple devices. In your automations and visualizations, I think you can change the entities for both of those.

I had to delete all devices/hubs/configurations, then a restart of HA was necessary and afterwards i was able to add it again.
After the device with the entities was again in ha, I had to configure every entity by hand (name, room, ā€¦) and the history get lost because of the renaming. :frowning:

  • Cannot migrate history for entity_id cover.xxx to cover.yyy because the new entity_id is already in use

Thanks so much for creating this integration. I have built a device according to your wiki instructions and have paired a Somfy Tilt & Lift 25 RTS motor (which will be for a Roman blind) with it. The motor jogs when clicking PROG on the ESP Somfy RTS interface, which presumably means the CC1101 is transmitting successfully. However, when clicking the up/down buttons in the interface, the blind doesnā€™t move.

Other info that might be relevant:

  • Iā€™m using an E07-M1101D-SMA like the one in your photos with a duck antenna.
  • Iā€™ve also paired the remote and commands are showing up in the logs with ā€˜80-Sā€™ in the bits column. (What does the ā€˜-Sā€™ mean, incidentally?)
  • I wired the perfboard according to the penultimate photo on your wiki page before I realised that this doesnā€™t agree with the diagram of the ESP-WROOM32 pinout under this heading, so the TX and RX pins are the other way round (TX = GPIO-12, RX = GPIO-13). Iā€™ve set these appropriately in the interface.

Perhaps a separate issue is that the interface is becoming unresponsive quite often and Iā€™m seeing a spinning wheel. Any idea what might be causing it? The ESP32 and my laptop are connected to a wi-fi router and the ESP32 has a static IP address. Weā€™ve recently changed wi-fi routers and I donā€™t remember seeing this on our old router.

Iā€™d be grateful for any help you can offer. Thanks again.

If the interface becomes unresponsive this is likely because the mDNS from your router is trying to search the interwebs for the .local addresses which drops the socket. Did you make an IP reservation in DHCP for the ESPSomfy RTS device? Try using the IP address to see if you have a different experience. If it is better then mDNS resolution is the issue.

Another thing to try is to add a repeat or two from the dropdown. Your motor may go to sleep between frames.

EDIT: S = RTS, W = RTW, and V = RTV protocol detected

Thanks for the swift reply. Using DHCP seems to have sorted out the interface issue ā€“ thanks.

Unfortunately adding two repeats doesnā€™t help.

I also tried upgrading to v2.4.5 and unpairing, deleting, re-adding and re-pairing the motor but no luck. Again the motor jogs to indicate successful pairing, and the animation correctly indicates when the blind is moved using the remote, but nothing happens when I press the up and down buttons on the interface.

Do you have any other suggestions or anything I could do to debug?

I got it working now.
I did buy a new cc1001.
Now just have to get the My position working. Iā€™ll check the wiki for that.
Because I donā€™t see the set button.

Thanks for the support

Hi rstroouse,

FYI
Iā€™m getting ā€œFailed to call service update/install. tuple index out of rangeā€ when trying to update from 2.4.4 to 2.4.5 using home assistantā€™s build in update system.

Updating from the GUI and using Github does work!

Thanks

If you update the integration the problem has been fixed.

1 Like

Update: Iā€™ve now successfully paired the motor (Somfy Tilt & Lift 25 RTS) I was having difficulty with. Unpairing, changing the remote address and re-pairing sorted it.

I also paired several other motors (all Somfy Sonesse ULTRA 30 WF RTS, I think) successfully, although one refused to pair until I changed the remote address.

So far I was using RFLink to control my Somfy blinds, but yesterday I switched to ESPSomfy. Itā€™s an amazing piece of software and very cheap to build. Thanks a lot for creating this!

Pairing my awning and two outdoor screens was easy with help of the great documentation. Also controlling from HA works like a charm.

I am now in the process of creating a group of my two screens on the first floor, but unfortunately pairing the motors wonā€™t work. Opening memory works, but pairing doesnā€™t give the ā€˜joggingā€™. Would it help to reset the motors or clearing the transmitter memory of the motors?

As a workaround I tried to create a cover group in HA (or giving a service call to both covers), but only one blind is moving. Is this supported? I understand the requests needs to be processed by one ESP, but I would expect some kind of queue for handling simultaneously incoming commands.

UPDATE: I erased the paired transmitters of the two screens by doing the 2sec-10sec-2sec power cycle on the plug which powers both screens. After final power up both screens were jogging, indicating that the memory is erased. First I paired a remote which controls both screens simultaneously, accordingly paired ESPSomfy. The strange thing is that the memory of only one screen was erased, the other still can be controlled individually with ā€˜oldā€™ transmitters. To be honest I donā€™t understand this phenomena, but my problem is solved now. In ESPSomfy I have a single blind controlling both screens :grin:

This is epic, well done @rstrouse . Where can I donate?

I am using an Olimex ESP32-POE - with the ethernet PHY using so many pins and my misreading of the funky layout of the pin assignment sheet for pins 13 to 15, it took me a while to get this working.

In case it helps others, here is a working pin assignment for an ESP32-POE with the EMAC in use:
GPIO1: TX (GDO0)
GPIO2: SCK
GPIO32: CSN
GPIO33: MOSI
GPIO35: MISO (GDO1)
GPIO36: RX (GDO2)

There is a queue and ESPSomfy RTS will send these commands sequentially. However, the issue is at the motor. Unfortunately, all motors decode every command regardless of whether it is for them or not and sometimes their radio is not very quick to recover from decoding the frame. The way to make this work is to include some command repeats for the motors that are tardy. In most instances when you press a single button on a remote it will set 2-3 frames for a short button press.

That is very strange that only one of the screens erased its memory. However, your initial problem was that for many of the solutions out there, they never properly unpair remotes from the motor. It also is not uncommon to have several remotes paired by the installer as they fiddle around with getting it all set up. These remotes often do not get unpaired either. This fills up the address memory and you have to factory reset to clear them out.

1 Like

Thanks for the compliments and the pin suggestions.

1 Like

@rstrouse awesome project, thank you very much! I am using the setup you described for a feew weeks now but since the latest update, my ESP32 crashes multiple times ever day and I have to reset power to get it back working. Accessing it via browser is then also not working anymore.

I could not find any logs, if you could hint me where to find them, I can provide logs. Do you have any Idea why this could happen?

Thank you very much in advance

Are you running 2.4.5? Also check the memory log in HA to see if it is running out of memory or just losing connection.

Yes I am running on 2.4.5. I enabled debug logging for the Integration and will come Back when the error occured again. Or are there other logs?

Greetings all,

Iā€™ve managed to build and install ESP Somfy RTS HW and software and itā€™s brilliant, thank you.

The only issue I have is Iā€™m unable to get a script to execute more than one cover action.

Eg the script below will only every execute which cover is listed first.

parallel:
  - service: cover.close_cover
    metadata: {}
    data: {}
    target:
      entity_id:
        - cover.living_back_left
  - service: cover.close_cover
    metadata: {}
    data: {}
    target:
      entity_id:
        - cover.living_front_left

Any clues at where I should start?
Thanks,
R.

Either group them using the grouping function in ESPSomfy RTS or include a couple of repeats in the shade configuration. Ultimately, moving groups of motors are much more efficient than one at a time.

Some motors, even when the frame is not addressed to it, will not respond right away after it digests a frame in a kind of cooling off period. To give you an idea a typical short press on the remote is 1 frame + 2 repeats. This equates to a normal button press of around 2 tenths of a second.

The other thing is to not parallel process the motors. The requests are extremely efficient and doing that will flood the poor little ESP32 with requests that some motors are not fast enough to respond to and do not hear the frame.

You will not be able to get the motors to move all at once anyway because each frame has to be sent sequentially and every motor processes every frame it hears. If the frames come faster than the motor can digest it, it will simply not do anything with it.

1 Like

Hi man, appreciate your work, but i could really use some help. I have successfully set up esphome and i can properly read signals from my remote. I am having trouble pairing my awning, which is the only Somfy device i have. i hit prog button on remote, awning jogs once, i see the prog log if i take a look; for some reason when pressing prog on interface does nothing. tried pressing, long pressing, setting repeat, nothing. I already factory reset the awning, still canā€™t get the prog button to work. Any suggestions?

below some screens of my configuration, also remote says pratic on the front and situo 1 RTS on the back

image


First move the TX power slider to 10dBm and try again.

Troubleshooting 1
Try this. Without changing anything else set the TX pin the the config to GPIO12 so that the TX and RX pins are the same and try to pair again. If this works then either the pin 3 (GDO0) and pin 8 (GDO2) are reversed in your wiring.

Troubleshooting 2
If this does not work inspect the wire going from pin 3 to ensure it is not loose and ensure it is connected to GPIO13. If it is change the configuration back to have GPIO13 on the TX. Then set the RX pin to GPIO13 and check to see if you get any frames from the remote. If you do then the wiring is fine.

Troubleshooting 3
Change the address set in the configuration to 842177 from 832177 then press the save shade button. If this works that address has paired but with a rolling code that does not match the internal memory of the motor.