Cover groups with RFLINK (Somfy RTS)

Hi everyone,

I have successfully paired my Somfy blinds with RFLINK and HA :ok_hand:

What’s working
Every cover is working fine individually, and I can send UP/DOWN/STOP commands with almost no delay and every blind is within reception range.

I’ve added the physical remote aliases too, so when someone is using one of these physical remotes, HA is aware that the blinds state might have change. So far so good !

What’s NOT working
I’ve created a cover group including all my eleven blinds. When I try to CLOSE/OPEN the blinds using this group, I have a very erratic behaviour : only 1 or 3 blinds will randomly answer the command. Sometimes one upstairs, sometimes 2 downstairs…

It seems that HA is sending all the commands at the exact same time :

homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [homeassistant.components.rflink] Sending command: DOWN to Rflink device: RTS_F00008_07
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] sending command: {'protocol': 'RTS', 'id': 'F00008', 'switch': '07', 'command': 'DOWN'}
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] writing data: '10;RTS;F00008;07;DOWN;\r\n'
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [homeassistant.components.rflink] Sending command: DOWN to Rflink device: RTS_F00012_10
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] sending command: {'protocol': 'RTS', 'id': 'F00012', 'switch': '10', 'command': 'DOWN'}
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] writing data: '10;RTS;F00012;10;DOWN;\r\n'
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [homeassistant.components.rflink.cover] Getting command: DOWN for Rflink device: RTS_F00003_02
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [homeassistant.components.rflink] Sending command: UP to Rflink device: RTS_F00003_02
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] sending command: {'protocol': 'RTS', 'id': 'F00003', 'switch': '02', 'command': 'UP'}
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] writing data: '10;RTS;F00003;02;UP;\r\n'
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [homeassistant.components.rflink] Sending command: DOWN to Rflink device: RTS_F00222_01
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] sending command: {'protocol': 'RTS', 'id': 'F00222', 'switch': '01', 'command': 'DOWN'}
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] writing data: '10;RTS;F00222;01;DOWN;\r\n'
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [homeassistant.components.rflink] Sending command: DOWN to Rflink device: RTS_F00006_05
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] sending command: {'protocol': 'RTS', 'id': 'F00006', 'switch': '05', 'command': 'DOWN'}
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] writing data: '10;RTS;F00006;05;DOWN;\r\n'
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [homeassistant.components.rflink] Sending command: DOWN to Rflink device: RTS_F00009_08
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] sending command: {'protocol': 'RTS', 'id': 'F00009', 'switch': '08', 'command': 'DOWN'}
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] writing data: '10;RTS;F00009;08;DOWN;\r\n'
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [homeassistant.components.rflink] Sending command: DOWN to Rflink device: RTS_F00001_00
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] sending command: {'protocol': 'RTS', 'id': 'F00001', 'switch': '00', 'command': 'DOWN'}
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] writing data: '10;RTS;F00001;00;DOWN;\r\n'
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [homeassistant.components.rflink] Sending command: DOWN to Rflink device: RTS_F00011_09
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] sending command: {'protocol': 'RTS', 'id': 'F00011', 'switch': '09', 'command': 'DOWN'}
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] writing data: '10;RTS;F00011;09;DOWN;\r\n'
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [homeassistant.components.rflink] Sending command: DOWN to Rflink device: RTS_F00004_03
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] sending command: {'protocol': 'RTS', 'id': 'F00004', 'switch': '03', 'command': 'DOWN'}
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] writing data: '10;RTS;F00004;03;DOWN;\r\n'
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [homeassistant.components.rflink] Sending command: DOWN to Rflink device: RTS_F00007_06
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] sending command: {'protocol': 'RTS', 'id': 'F00007', 'switch': '06', 'command': 'DOWN'}
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] writing data: '10;RTS;F00007;06;DOWN;\r\n'
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [homeassistant.components.rflink] Sending command: DOWN to Rflink device: RTS_F00005_04
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] sending command: {'protocol': 'RTS', 'id': 'F00005', 'switch': '04', 'command': 'DOWN'}
homeassistant    | 2020-03-19 15:51:03 DEBUG (MainThread) [rflink.protocol] writing data: '10;RTS;F00005;04;DOWN;\r\n'

My guess is that this must create a transmission jamming (too many commands on the same frequency at the same time) but maybe I’m wrong.

My questions are :

  • Do you guys have this problem ?
  • Is it possible to tell HA to add a delay between each command (let’s say 1 second) ?

Feel free to ask me if you need more information.

This kind of configuration (cover group in HA) will lead to an erratic behavior for sure.

TL;DR
HA will send a command signal to every cover in group.
RFLink will receive multiple commands at once and will queue all.
By default every RFLink command will wait for an ACK response.
I’m not sure why, but some commands are lost or fail to run in RFLink side.

My recomendation is to create another HA cover (like all_covers for example) and pair this new ‘remote’ to all the Somfy covers (the physical ones).
This way, HA will send just one command and RFLink will react instantly.

Maybe this new cover can be set like an alias for your other covers (but I have not personally tested it).

Had this issue too. What I did was wrap the RF Service call in a script and then added a 500ms delay and made sure the script is set to queued.