homebridge-rtl

RTL_433 based sensor for Homebridge

Usage no npm install needed!

<script type="module">
  import homebridgeRtl from 'https://cdn.skypack.dev/homebridge-rtl';
</script>

README

homebridge-rtl

NPM Downloads

Homebridge plugin to display information from 433 Mhz sensors, like the Skylink HA-434TL motion sensor or the AcuRite Digital Wireless Fridge and Freezer Thermometer temperature sensor. This plugin uses the RTL_433 package to listen to the sensor in-conjunction with a sdr device to receive the signals from the sensor. In my setup I use this RTL_SDR to receive the radio signal from the sensor.

Supported Sensors

For sensors, I'm using these

Contributor added sensors:

Features

  • Supported sensors include Motion, Temperature and Humidity
  • Also shows "not responding" if the sensor stops sending data
  • For temperature and humidity sensors, has ability to create alarms if the current value exceeds a alarm value

I have tested this on both a Mac and a RPI3

Installation

  1. Install Homebridge using sudo npm install -g homebridge
  2. Install this plugin sudo npm install -g homebridge-rtl
  3. Install RTL_433 following the instructions here
  4. Configure homebridge

Configuration

  • platform: "rtl_433"
  • name: "Front Porch" - Name of device for display in the Home App
  • id: id number of device - To find the ID of your device, run homebridge in DEBUG mode, and it will log the message received from all rtl_433 devices. See below for examples
  • type: Type of sensor device. Supported sensors are motion, temperature, humidity
  • alarm: Optional, Create a fake contact sensor called name + Alarm. Value is temperature in Celsius that if exceeded will trigger contact sensor.
  • humidity: Optional, For devices of type temperature that emits also humidity set to true and humidity will shows in HomeKit/Eve app in the sensor.

Example configuration:

"platforms": [{
    "platform": "rtl_433",
    "devices": [
      {
      "id": "1e3e8",
      "name": "Front Porch",
      "type": "motion"
      }]
  }]

Sample log file entries from homebridge to determine sensor ID

  • Motion sensor log entries
Message {"time" : "2019-04-03 09:43:05", "model" : "Skylink HA-434TL motion sensor", "motion" : "false", "id" : "1e3e8", "raw" : "5e3e8"}

id is 1e3e8
  • Temperature sensor log entries
[rtl_433] FYI: Message from unknown device ID 21650
[rtl_433] Message {"time" : "2021-02-02 10:22:30", "model" : "Acurite 986 Sensor", "id" : 21650, "channel" : "1R", "temperature_C" : 20.556, "battery" : "OK", "status" : 0}
[rtl_433] FYI: Message from unknown device ID 21650
[rtl_433] Message {"time" : "2021-02-02 10:22:30", "model" : "Acurite 986 Sensor", "id" : 21650, "channel" : "1R", "temperature_C" : 20.556, "battery" : "OK", "status" : 0}

id is 21650

If the device does not transmit an ID value, will default to channel

Message {"time" : "2020-03-14 11:34:22", "model" : "Philips outdoor temperature sensor", "channel" : 1, "temperature_C" : 1.500, "battery" : "LOW"}

id is the channel 1
Message {"time" : "2020-03-14 14:40:41", "model" : "Acurite tower sensor", "id" : 15424, "sensor_id" : 15424, "channel" : "A", "temperature_C" : 3.600, "humidity" : 60, "battery_low" : 0}

id is 15424

Credits

  • merbanan - RTL_433 Sensor decoder
  • simont77 - History Service
  • matopeto - Humidity Sensor Support