Help controlling 433MHz ceiling fan using RFXtrx integration!

Hi! I used to have quite a lot of devices connected using a RFXtrx433E USB Transceiver but have gradually during the years phased out many for other types of devices. However, I still have some sensors using 433MHz and recently found out the remote for my ceiling fan controller also seems to send on the 433MHz frequency.

I would like Home Assistant to send the same commands without the remote but can’t figure out how.

The RFXtrx integration automatically find and create a new device for each button on the remote when the Enable automatic add option is enabled. The devices looks like this:

However, when I press the buttons to send on or off commands using the created devices nothings happens. The fan controller do not receive a signal.

When I try to listen to what commands the remote is sending when the buttons are pressed the log looks like this:

2022-07-24 15:04:06 DEBUG (Thread-3) [RFXtrx] Recv: 0x09 0x03 0x01 0x3d 0x26 0xe2 0x9d 0x2c 0x04 0xa4
2022-07-24 15:04:08 DEBUG (Thread-3) [RFXtrx] Recv: 0x09 0x03 0x01 0x3e 0x26 0xe2 0x9d 0x2c 0x04 0xad

I assume 0x09 0x03 0x01 0x3d 0x26 0xe2 0x9d 0x2c 0x04 0xa4 and 0x09 0x03 0x01 0x3e 0x26 0xe2 0x9d 0x2c 0x04 0xad are the commands I should send using the rfxtrx.send service, but the numbers needs to be converted somehow? I’ve tried to remove all 0x and spaces (resulting in the strings 0903013f26e29d2c04ad and 0903014026e29d2c04a4) but this doesn’t work either when using the service dev tool in HASS.

Hi.
You should see the logs if the order is well placed!
Response 0x04 0x…
This type 0x03 is normally a call for information from Rfxcom.
A test by Rfxmngr?
French translation
@+Dom

I tried listening to the remote using RFXmngr and it seems I get different commands when I press the button?

For example, this is the log when I press the “LOW SPEED” button on the remote:

2022-08-13 12:05:00:846= 0903010027F14E8404AD
Packettype        = UNDECODED RF Message
UNDECODED ARC:27F14E8404AD 
------------------------------------------------
2022-08-13 12:05:00:878= 0803010120A74204AD
Packettype        = UNDECODED RF Message
UNDECODED ARC:20A74204AD 
------------------------------------------------
2022-08-13 12:05:01:724= 0903010226E29D0804AD
Packettype        = UNDECODED RF Message
UNDECODED ARC:26E29D0804AD 

What should I use when sending event commands using the rfxtrx.send service? I assume I need to convert for example the UNDECODED ARC:26E29D0804AD to something Home Assistant understands?

This is the important part - ARC is the protocol (there is ARC and AC) and 26E29D08 looks like the unique code and 04AD looks like the “House Code”.

I send and receive commands over MQTT to a NodeRed instance with the RFXComm trx433 connected to it, for example AC/0x0002A95/1

In the case of your fan though it looks like it needs to receive 3 separate commands. One probably actually tells the fan to turn on, and one sets the speed. I’m not sure what the third will be for.

EDIT:

OK Having a quick look at the RFX Integration page - try this:

action:
  service: rfxtrx.send
  data:
    event: 0903010027f14e8404ad
action:
  service: rfxtrx.send
  data:
    event: 0803010120a74204ad
action:
  service: rfxtrx.send
  data:
    event: 0903010226e29d0804ad
1 Like

Hmm… Unfortunately none of these commands seems to do anything when I send them using the Services tab under Developer Tools.

It seems I get different responses in RFXmngr when pressing the different buttons on the remote but some strings keeps repeating. For example, this is the log from when I press the light on/off button on the remote:

2022-08-13 12:02:13:764= 0903010726E29D2C04A4
Packettype        = UNDECODED RF Message
UNDECODED ARC:26E29D2C04A4 
------------------------------------------------
2022-08-13 12:02:14:872= 0903010826E29D2C04A4
Packettype        = UNDECODED RF Message
UNDECODED ARC:26E29D2C04A4 
------------------------------------------------
2022-08-13 12:02:15:550= 0903010926E29D2C04AD
Packettype        = UNDECODED RF Message
UNDECODED ARC:26E29D2C04AD 
------------------------------------------------
2022-08-13 12:02:16:105= 0903010A26E29D2C04A4
Packettype        = UNDECODED RF Message
UNDECODED ARC:26E29D2C04A4 
------------------------------------------------
2022-08-13 12:02:17:421= 0903010B26E29D2C04AD
Packettype        = UNDECODED RF Message
UNDECODED ARC:26E29D2C04AD 
------------------------------------------------
2022-08-13 12:02:18:086= 0903010C26E29D2C04A4
Packettype        = UNDECODED RF Message
UNDECODED ARC:26E29D2C04A4 
------------------------------------------------
2022-08-13 12:02:18:639= 0903010D27F14E9604AD
Packettype        = UNDECODED RF Message
UNDECODED ARC:27F14E9604AD 
------------------------------------------------
2022-08-13 12:02:18:745= 0903010E26E29D2C04AD
Packettype        = UNDECODED RF Message
UNDECODED ARC:26E29D2C04AD 
------------------------------------------------
2022-08-13 12:02:19:190= 0903010F26E29D2C04A4
Packettype        = UNDECODED RF Message
UNDECODED ARC:26E29D2C04A4 
------------------------------------------------
2022-08-13 12:02:19:633= 0903011027F14E9604AD
Packettype        = UNDECODED RF Message
UNDECODED ARC:27F14E9604AD 
------------------------------------------------
2022-08-13 12:02:19:775= 0903011126E29D2C04A4
Packettype        = UNDECODED RF Message
UNDECODED ARC:26E29D2C04A4 
------------------------------------------------
2022-08-13 12:02:20:297= 0903011226E29D2C04A4
Packettype        = UNDECODED RF Message
UNDECODED ARC:26E29D2C04A4 
------------------------------------------------
2022-08-13 12:02:20:950= 0903011326E29D2C04A4
Packettype        = UNDECODED RF Message
UNDECODED ARC:26E29D2C04A4

The 26E29D2C04A4 seems to be the most common response. How do I convert this command to a hexadecimal string to send using the rfxtrx.send service? I’ve tried to read the documentation but can’t seem to figure it out.

I was a bit concerned about that. It looks like a rolling code to me.
107, 108, 109, 10A, 10B, 10C etc

I see! I assume this means the code is different each time and I can’t control the device using RFXtrx433E?

In theory, if you stopped using the remote - you could store the current rolling code in an input helper. And each time you send a command from a script in homeassistant, increment the rolling code. In theory.

Bonjour à tous @n0ir

Ici c’est “seqnbr” incrémenté par le Rfxcom automatiquement de 0 à FF.
Rappel de la structure
Exemple :0903011326E29D2C04A4
09 Longueur Trame
03 Type
01 Sous type
13 incrément du Rfxcom
26E29D2C04A4 Là devrait être l’ID puis le reste commande, le problème c’est qu’en Undecod avec Type 03 c’est une commande pour appel d’information.

Il faut essayer de mettre le maxi de protocole dans le Rfxmngr, sans le undecod.
Pour voir si décodage autre !
@+Dom
Français

Google translation

Hello everyone @n0ir

Here it is “seqnbr” incremented by the Rfxcom automatically from 0 to FF.
Reminder of the structure
Example: 0903011326E29D2C04A4
09 Weft Length
03 Type
01 Subtype
13 increment of Rfxcom
26E29D2C04A4 There should be the ID then the rest command, the problem is that in Undecod with Type 03 it is a command for information call.

You have to try to put the maximum protocol in the Rfxmngr, without the undecod.
To see if other decoding!
@+Dom
French

PS: Get Status ? LOG Please