RFLink with Cover Time Based entity for Somfy RTS RF shutters

Hello,

I use RFLink with my Somfy RTS shutters and I can successfully control them with it.
I use the RFLink Cover integration and the Cover Time Based script/entity for RF devices.
(I also used the great description at https://github.com/filipmaelbrancke/ha-rflink-rts)

My actual configuration if someone is interested in:

rflink:
  port: /dev/serial/by-id/usb-Arduino__www.arduino.cc__0000_00000000000000000000-if00
  wait_for_ack: false
  ignore_devices:
    - rts_0c0c0c0_01

cover:
  - platform: rflink
    devices:
      # Rfloader created remote control which is used by Home Assistant
      RTS_0A0A01_0:
        name: Shutter 1 RF
        aliases:
          - rts_0b0b01_01 # ID of the remote control (Somfy smove in this case)
        type: standard # inverted
  
  - platform: cover_rf_time_based
    devices:
      my_room_cover_time_based:
        name: Shutter 1
        travelling_time_up: 28
        travelling_time_down: 27
        cover_entity_id: cover.shutter_1_rf
        send_stop_at_ends: false #optional
        always_confident: false #optional
        device_class: shutter #optional
        availability_template: "{{ not (is_state('cover.shutter_1_rf', 'unavailable') or is_state('cover.shutter_1_rf', 'unknown')) }}" #optional

However, I have the following questions:
1. What exactly does the parameter ignore_devices.
I can’t see any difference when I add a device or not.
(There are also other devices in my neighborhood, which are then detected. But they show up in the debug log no matter if I ignore them or not).

2. Why do commands sometimes take longer?
In the example below, the command is executed after 3 seconds:

2023-01-27 14:41:10.266 DEBUG (MainThread) [homeassistant.components.rflink] Sending command: STOP to Rflink device: RTS_0A0A01_0
2023-01-27 14:41:10.267 DEBUG (MainThread) [rflink.protocol] sending command: {'protocol': 'RTS', 'id': '0A0A01', 'switch': '0', 'command': 'STOP'}
2023-01-27 14:41:10.267 DEBUG (MainThread) [rflink.protocol] writing data: '10;RTS;0A0A01;0;STOP;\r\n'
2023-01-27 14:41:13.524 DEBUG (MainThread) [rflink.protocol] received data: 20;E2;OK;
2023-01-27 14:41:13.524 DEBUG (MainThread) [rflink.protocol] got packet: 20;E2;OK;

I would expect this from a device that is connected via WLAN etc., but not one that is wired directly via USB.

3. Why is only the open and close state logged in the device (cover) log, but not stop?
This is probably a general question that has nothing to do with RFLink, but I would be interested to know.

4. Why doesn’t the Cover Time Based entity update when changes are made with the RFLink cover?
It looks like the Cover Time Based entity is only one way (writing). If the cover of the RFLink changes the state, the Cover Time Based entity does not recognize it. (Neither when I operate the RFLink cover in HA, nor when the shutter is operated via a remote which is entered in the aliases of the RFLink configuration).
I know that there is the possibility to manually communicate this back to the Cover Time Based entity, but surely this should only be necessary for a script and not for an entity?

5. What is the best way to simulate the “My” (Stop) command of Somfy RTS?
When the shutter is stopped and you press the My/Stop button, the shutter moves to a stored position. Unfortunately the state becomes wrong by this command. Are there any solutions to this problem?

Thanks in advance.

@javicalle could you help?
thx

The ignore_devices parameter is documented here:

And is useful if you have the automatic_add configured to True.

RFLink uses a queu to send commands because it uses the same antenna to send and receive. That is the cause for that irregulars send times.

Because there’s no stop state is a command. There’s no a stopped status either.

The other questions should be answered by the custom component authors.

Hello @javicalle.

thank you for your reply.

1.

I have read the documentation. However, it only says that ID’s can be ignored with it, but not what the ignore means. But if it only means that these devices wouldn’t be added automatically, then I understand. (But this info is missing…)

2.

OK. I have a device in the area (neighborhood) that is constantly sending stop commands. Unfortunately I don’t know which device it is…
But that explains why it often takes longer. Thank you.

3.

OK. Can commands also be logged?

4. and 5.
@robi Probably you could help?

Thanks

I’m pretty new to home assistant and had the same problem as you. the status not updating when you trigger them with the orignal remote.
There are some examples in the documentation how to update the position :

yaml :

alias: RF Cover Kitchen Opening
description: ""
trigger:
  - platform: state
    entity_id:
      - cover.store_keuken
    to: open
condition:
  - condition: state
    entity_id: cover.cover_keuken
    state: closed
action:
  - service: cover_rf_time_based.set_known_position
    data:
      entity_id: cover.cover_keuken
      position: 100
mode: single

cover.store_keuken => my original cover
cover.cover_keuken => my time based cover

same has to be done for opening, and still have to look how to implement a stop from the remote

I solved this issues with the components from @javicalle.

Thx for that. :+1: