After some more research on the web and through Let’s Control It forums, I realize there are some limitations with an RFLink built on Arduino 2560 Nodo-Wifi kit and Home Assistant integration.
Here are the limitations I cannot bypass:
Somfy Sonesse® 30 RTS does not accept user-generated HEX codes to add RFLink as a remote.
Because of the limitation #1 I will have to buy a new remote or borrow one that I will dedicate to controlling blinds with RFLink.
RFLink cannot send a STOP command that corresponds to the “MY” button on the remote. STOP command with RFLink is a real stop that will stop any movement UP or DOWN.
RFLink integration with Home Assistant only works with Esp-Easy, it does not work with Esp-link.
Using Esp-Easy Mega latest firmware and adding a Serial Communication Device does not work. I had to revert back to Esp-Easy R147 RC8, set a Serial Server, and now I can control blinds with RFLink.
If anyone has found solutions to the problems listed above, I’ll be more than happy to clear those limitations from the list. But so far, these limitations seem to be unsolvable.
To have RFLink working bidirectional with Home Assistant, I think you must set a MQTT bridge in the Esp-Easy. I haven’t been on that path because I use RFLink only with blinds and I don’t mind if HA does not know if my blinds are UP or DOWN. Maybe you should look into one of the github projets like this one https://github.com/seb821/espRFLinkMQTT
There are different attempts to implement MQTT with Esp-Easy but this one seems to work well. I haven’t tested it. Maybe you will have success with other MQTT projets as well.
If you don’t mind bidirectional communication, you can tell Home Assistant not to wait for an acknowledgement back by adding this code: wait_for_ack: false to you configuration.yaml.
Look below:
rflink:
host: 192.168.86.209 #Your ESP8266 IP address
port: 1234 #Default port suggested by Home Assistant
wait_for_ack: false
tcp_keepalive_idle_timer: 300 #To avoid ESP8266 going into sleep mode
My RFLink is connected via USB, but (at least in my RTS covers) the MY button is working as expected.
RFLink (and my Somfy remotes) only sends the STOP command. There’s not a MY command.
If cover is moving, the STOP will stop the movement. If cover is stopped, the command will send the the cover to the MY position.
If RFLink is sending the STOP command, the MY function would also work.
Keep on mind that that ‘acknowledgement’ is only for RFLink sending the command, not for the device receiving it.
That is sometimes confusing people that thinks that because there’s an ACK that means that RFLink is communicating OK with devices.
Thank you very much for the link. I’ve re-flashed my ESP-Easy with this version and I can control my Somfy blinds. Up, down and stop all work over WiFi now. Really appreciate your help.
I know @javicalle about Somfy remotes and RFLink sending a “stop” command and that this STOP should bring covers to the MY position when they are not moving. But as I said, with Sonesse® 30 RTS, when blinds are not moving, RFLink do send a stop command but it’s a real stop. Thus I wrote it down as a limitation that I cannot overcome.
I don’t know about the Sonesse® 30 RTS and I would not try to explain its behavior. But from what I know about the RTS remotes they send three commands UP/DOWN/STOP. And RFLink can send all the three commands (there are a known limitation with tilt and ‘normal’ commands). There’s no a real STOP command and a MY command. Remotes only sends a STOP command (and the motor reacts to the command in function of the state)
I have understood that there is a limitation with the Sonesse® 30 RTS and RFLINK, and thus the comment.
You probably wouldn’t use RFLink to configure most of the motor options (because you can’t simulate to keep pressing a button) but if the STOP command is working I can’t see a reason why you can’t use the MY function with these motors.
Hello @javicalle, I had not seen your answer when you posted it. I can’t explain why but when sending a “STOP” command from RFLink to a Sonesse® 30 RTS motor, it won’t do anything. If you send a STOP commande while the cover is moving, it will littterally stop where it is.
If you send a STOP command from a Somfy Telis remote to a Sonesse® 30 RTS motor, it will go to MY position. If you send a STOP commande while the cover is moving, it will will stop where it is.
My only guess is that the MY Button on a Telis remote is a kind of hybrid button and that the remote might save the recorded MY position in the board’s remote and sends it when we press it while the cover is not moving? But this guess is not really working since the MyLink controller can send a proper MY command to any blind… So I guess it will remain a mystery!
Also, I’m letting future readers and RFLink-explorers know that when programming a Sonesse® 30 RTS motor using the RFLink Loader software, there are 16 channels you can pair blinds with, but once you add a cover on channel 10 and beyond, you must send the command using the hex position in memory. Nowhere did I see anyone mention this information about channels.
In all tutorials I found the example was something like this: 10;RTS;02FFFF;0412;3;PAIR;
When sending a PAIR command on channel 10, you must write: 10;RTS;02FFFF;0412;A;PAIR;
a=10
b=11
c=12
d=13
e=14
f=15
I hope it might help someone in the future. I felt lucky I had the correct guess on this one.