This ESPHome external component provides rtl_433 decoders for ESPHome remote_receivers.
-
Include what is needed for this external component via packages directive in your esphome yaml config:
packages: rtl_433: github://juanboro/esphome-rtl_433-decoder/rtl_433.yaml
-
Add the rtl_433 config to your yaml with an on_json_message handler...
rtl_433: id: my_rtl433_id on_json_message: then: ....
You can find example ESPHome json message trigger handling examples in the ESPhome MQTT documentation. Examples are also included here.
-
You can send raw OOK/FSK pulse data to the decoder via lambdas like this:
- lambda: |- id(my_rtl433_id).recv_raw(rawdata);
The included examples show how to do this via the ESPHome remote_receiver component.
Two examples are provided:
- esp32-rtl_433-decoder.yaml - MQTT relay - generates rtl_433 style MQTT messages from decoded receiver data. Also includes example of how to generate Home Assistant API events.
- esp32-rtl_433-sensors.yaml) - Example of creating specific ESPHome sensors from rtl_433 json messages. It also shows how to limit to the component to only specific protocols, which will speed up processing and help prevent: Component remote_receiver took a long time for an operation (>30ms)
The example configurations points to a configuration with a ESP32 dev board connected to a TI-CC1101 board (both from AliExpress ~ $5 total). However, any working way of receiving OOK on/off pulses or FSK mark/space data should be able to work.