Somfy RTS devices in FHEM with the RFXtrx433E

RTSSomfy RTS

RTS (Radio Technology Somfy) is the protocol used by some (but not all) Somfy motorized blinds. It is supported by  some propriatory home automation controlers such as the « Somfy box », zibase, and HomeWizard.

rfxtrx433eRFXCOM RFXtrx433

The new RFXtrx433E supports the RTS protocol in firmware (in writing mode only).

As far as I know, it is the first RTS controler usable on open home automation systems. While RTS has been reverse-engineered recently, there is no current open implementation for it. (see note 1)

Nice features are now available :

  • close/open screens on daylight times,
  • close/open blinds depending on home temperature and weather conditions (passive regulation of home temperature),
  • close/open screens on arm/disarm
  • open blinds on a smoke alarm
  • ….

It comes with support for the Domoticz software, which allowed me to test the solution before trying it in FHEM.

FHEM and the RTS protocol

The protocol is called RFY in the RFCOM SDK for whatever reason. It is supported in write mode only for security reasons (so you cannot open the neighbors’ blinds sniffing their remotes’ codes).

In order to support it in FHEM, here is a modified 46_TRX_LIGHT.pm module, which I hope will be integrated by Willi in the main code when tested by users. Support for this is included in the official FHEM code (module 46_TRX_LIGHT). All feedbacks are welcome.

Definition

To define the blinds, you must first choose a device ID (4 bytes) composed :

  • unit-id : 00000001 – 0FFFFFFF
  • unit-code : 01-04
define MyBlind TRX_LIGHT RFY 0F1F1F01 light
attr MyBlind IODev TRX_2
attr MyBlind devStateIcon down:fts_shutter_down:stop stop:fts_shutter_manual:up up:fts_shutter_up:down
attr MyBlind icon fts_shutter
attr MyBlind room My Room
attr MyBlind webCmd up:down:stop
attr MyBlind verbose 5

RFY_device

Association

In order to make it work with the blinds, you need to associate it using the following procedure :

  1. press and hold the PROGRAM BUTTON on the original transmitter until the blind jogs.
  2. in FHEM send the program command, either with the command line set MyBlinds program or using the GUI . The blind should jog again

program_blind

Same procedure applied a second time will remove the association on the Somfy motor

Tips and tricks

Favorite position

The « My » feature from the original command works fine with this software remote (stop command = « My » button). The only thing is you have to define the favorite position using the original remote (Once the desired intermediate position is reached, press and hold my-button.gif (STOP) until the window covering jogs.)
It is only the matter of a word in the code to define a set-MY command in order to be  able to set this position with FHEM because it is in the RFXCOM SDK. I do not know if it is desirable because in the SDK it is recommanded not to define the « advanced » commands which allow to setup a blind (probably because you may cause injury to the motor, but that’s not the case with this command)

To be done

  • on-till and on-for-timer commands are available for the device in FHEM but need to be implemented. It is a general issue with TRX_LIGHT devices which do not support on and off commands. I would suggest to test on/off existence and use up for on and down for off
  • let commands appear in the GUI without needing  attr MyBlinds webCmd up:down:stop
  • Convince Bert to implement in firmware a secured way of having a feedback on user-known remotes (partial read mode)

Resources

Notes

  1. An open implementation is now available in FHEM since June 30th, 2014, using the CUL family of hardware : Implemented Somfy RTS support as FHEM module. See also support thread in the FHEM forum and command reference.

 

RFXtrx433E and RTS