Homey Community Forum

Unable to receive 433MHz RF signal

Hi all,

I’m developing an application using the node-homey-rfdriver. At this stage, I can send RF signals but I can’t receive RF signals. Receiving of RF signals is needed to extract the address of the RF signal (pairing).

The receiving / extraction of the RF signal should probably be done in createPairCommand(), but I don’t know how. Can someone provide me with example code or give me a direction?

Regards,
Rutger

Hi Rutger,

Sorry, I can’t help you with that.

The whole forum is full off frustrated people (like me) which are not able to learn and reproduce RF signals in the Homey.
If you seriously want to find a solution for this, please include 868 MHz as well. (I have 9 devices that I would love to control)

When you manage to find a solution you’ll be considered a hero!!

2 Likes

You can test receiving / emulating signals:
https://tools.developer.homey.app/tools/signals

You can view a working example of a Homey App that uses 433 MHz at: GitHub - athombv/nl.klikaanklikuit-example: KlikAanKlikUit — Example code to inspire your own Homey app.

Hi Rob,

It’s unfortunate that we just can’t simply use the record and emulate signal in Developer Tools.

First of, I want to finish my specific application (it works, but I want to make it possible to have dynamic addresses instead of a fixed one) and after that maybe a generic recorder / bridge (if possible).

If you want to control your devices, you could use a logic analyzer and a 868 MHz receiver to decode the signal and then make a signal definition in Homey, but it could be difficult if you don’t have technical knowledge.

Hi JPe4619,

Thank you for the URLs.

I have already a working application but it can only send a signal with a fixed address.

I have also seen the 433 MHz example, but it only generate a radom bit string for a couple of parameters and I want to be able to read the value of my remote.

CreatePairCommand from the example:

  static createPairCommand() {
    return {
      address: RFUtil.generateRandomBitString(26),
      group: false,
      state: true,
      channel: RFUtil.generateRandomBitString(2),
      unit: RFUtil.generateRandomBitString(2),
    };
  }

OK, so you have already analyzed the signal and found the sof: the eof: the data length and the words values.
Then you probably need: https://apps.developer.homey.app/the-basics/devices/pairing
I have not used this (yet) / until now.

Not possible. An app needs to provide a fixed signal definition up front, which rules out “generic”.

That’s unfortunate… I just came across the following text which confirms this and which is also an answer to my question:

The Homey Signal Manager receives all incoming raw transmissions and attempts to match these block-waves to a registered signal definition. When an incoming signal matches a registered signal definition, the signal is automatically decoded and the contained data is routed to the corresponding app. To transmit, data travels the reverse path which means the data is encoded using the same signal definition and then transmitted."