RFM-Gateway: A radio-to-WiFi bridge
The RFM-WiFi interfaces a Hope-RF radio module to an ESP8266 microcontroller in order to send or receive data over radio and forward it to a WiFi network. The PCB can be assembled with one of the following radiomodules:
- RFM69C(W) 315 / 433 / 868 / 915 MHz FSK/OOK radio module
- RFM69HC(W) 315 / 433 / 868 / 915 MHz FSK/OOK radio module
- RFM95(W) 868 MHz LoRa module
- RFM96(W) 433 MHz LoRa module
- RFM97(W) LoRa module
- RFM98(W) 433 MHz LoRa module
Features
- Modern USB-C connector for power supply, flashing and UART interface to the ESP8266
- Integrated USB programmer, no need for an additional programmer in order to upload firmware to the ESP8266
- SMA connector for mounting an SMA antenna for the RFM radio module
- Connector for optional 0.96″ I²C OLED display
- Completely SMD assembled (except radio module and SMA and extension-connectors)
- Extension pinheader for I²C
- Extension pinheader for 1-wire bus
- fits in a compact plastic enclosure TEKO 100007, 80 x 56 x 24 mm
Applications
- Bring wireless weathersensors (LaCrosse, …) into your WiFi
- Control RC sockets
- Single channel LoRa-Gateway
- Gateway for open-energy-monitor nodes (emonTH)
- Gateway for mysensors nodes
- Gateway for JeeNodes
- Gateway for nodes based on Moteino
Includes
- PCB with all SMD parts assembled
- SMA connector
- Pin headers for I²C & 1wire
- Plastic enclosure (without cuts für SMA & USB connectors)
Firmware
The RFM-gateway is meant as a open-source-hardware-platform to be used for own projects. When shipped it is preflashed with the inhouse-firmware. Push the button > 3 s in order to bring it into the configuration mode. It will open an access point with ssid RFM-gateway
. This password is 12345678
. Connect to it and browse to the address http://4.3.2.1. Connect it to your WiFi-network and configure the MQTT settings.


The inhouse firmware has the following capabilities:
433 MHz RC pulse gateway

When the RFM-gateway is assembled with a 433 MHr radiochip it can send & receive the signals of many sockets, remote controls, sensors and more. A (not complete) list of compatible devices can be found here. Received radiodata is translated to MQTT-messages and vice versa. Decoded and unknown received messages are displayed under the „log“ tab in the webinterface:

The log additionally shows the MQTT topic and payload, and the HTTP call in order to generate and send the received message from radio.
Receiving
Received and known protocols are sent using MQTT messages. The addressing parameters are encoded in the MQTT topic. E. g. an intertechno tristate device has the parameters house, group and channel, the topic is home/rfm-gateway/ittristate/A/1/1
. The command („on“ or „off“) is available in the payload of the MQTT message. The received data is also sent to the topic home/rfm-gateway/received as a JSON object, for example:
{
"protocol": "ittristate",
"house": 1,
"channel": 1,
"group": 1,
"command": "on"
}
{
"protocol": "intertechno",
"id": 12345,
"channel": 1,
"command": "on"
}
{
"protocol": "pilota",
"id": 12345,
"type": 1,
"channel": 1,
"command": "on"
}
{
"protocol": "emylo",
"id": 12345,
"key": "A"
}
Sending
Commands over radio can be transmitted using 4 different ways:
HTTP GET
The parameters and commands are encoded in the URL. Example for an ittristate device:
http://192.168.178.78/send/ittristate/A/1/1/on
switches on the device with housecode A, group 1 and channel 1.
HTTP POST
The parameters and commands are encoded as an JSON object in the HTTP post data sent to the endpoint http://192.178.178.78/send
. The JSON data has the same structure as described in the chapter „Receiving“.
MQTT
The parameters need to be encoded in the MQTT topic as described in the chapter „Receiving“, and the part /set has to be appended to the topic. Example topic for a intertechno tristate device: home/rfm-gateway/ittristate/A/1/1/set
. The payload can be „on“, „off“ or others, depending on the used protocol.
MQTT JSON
The JSON objects described under chapter „Receiving“ can also be sent to the topic home/rfm-gateway/send
in order to control a RF device.
Adding a switch to Home Assistant
For this example an Intertechno tristate switch is added to home assistant. Add the following lines to your configuration.yaml
:
mqtt:
switch:
- name: "Test Switch"
command_topic: "home/rfm-gateway/ittristate/A/1/1/set"
state_topic: "home/rfm-gateway/ittristate/A/1/1"
payload_on: "on"
payload_off: "off"
868 MHz sensor gateway
When the RFM-gateway is assembled with the RFM69 868 MHz radiochip it can receive the following sensors and send the received data to a MQTT broker:
- Lacrosse temperature/humidity sensors TX-22, TX-29, TX-35, …
- Voltcraft Energy Count 3000
- Bresser 7-in-1 weatherstation
- EMT7170 energy counter

The data can be fed into homeassistant or other homeautomation software.
868 MHz FS20 gateway
This application sends and receives radio messages from FS20 devices and translates these to MQTT messages and vice versa. Here are some example MQTT messages for controlling FS20 devices sent to the MQTT topic home/rfm-gateway/fs20
:
{
"house": 1,
"address": 1,
"comand": 1
}
- house: 16-bit (1-65525)
- address: 8-bit address (1-255), nibble = 15 addresses all
- command: 8-bit or 16-bit, 0=off, 16=on
Shop
Links
Git repository with hardware and inhouse firmware
Hallo,
ich versuche gerade vergeblich, die aktuelle Firmware herunterzuladen. Der Link zur Git Repository enthält alles, außer ein gültiges Firmware-File. Können sie mir bitte die Firmware 1.4 oder höher zukommen lassen?
Danke und Gruß
Norbert Lübke
Hallo, ich habe eben in Github unter Releases die aktuelle Version 1.4 hochgeladen:
https://github.com/Phunkafizer/RFM-gateway/releases/tag/v1.4
Hallo
Ich möchte das Intertechno Master Gate entsorgen da das Teil immer wieder rumzickt und unendlich Zeit frisst. Lässt sich das RFM Gatway ohne das arbeiten in MQTT im Home Assistant integrieren? Und findet die vorhandenen Intertechno Empfänger quasi von alleine? Mir ist überhaupt nich klar wie ich den ITL3500 Empfänger von Intertechno mit den vier Kanälen mit Zeilen wie oben beschrieben in MQTT bearbeiten müsste.
Danke für Ihre Antwort
Hallo,
den ITL3500 verwende ich selber hier. Dieser kann einfach an Kommandos angelernt werden über die Tasten an den Kanälen. Es gibt 2 Möglichkeiten entsprechende Kommandos mit dem RFM Gateway zu senden. Entweder über einen HTTP Aufruf an das RFM Gateway wie:
http://IP-Adresse/send/ittristate/A/1/1/on
Damit wird z. B. der 1. Kanal (Hauscode A, Gruppe 1) eingeschaltet wenn der 1. Kanal des ITL3500 damit angelernt wird,
http://IP-Adresse/send/ittristate/A/1/2/on
wäre das gleiche für den 2. Kanal.
Alternativ erzeugt eine MQTT Nachricht an das Topic
home/rfm-gateway/ittristate/A/1/1/set mit dem Payload „on“ das gleiche Kommando.
In Home Assistant können sie in der Konfigurationsdatei einfach jeweils einen Switch anlegen der die passende MQTT Nachricht erzeugt. Ich werde den Blogbeitrag noch um ein Konfigurationsbeispiel ergänzen.
Backup…
Hatte Herrn Seegel mein Problem mit dem verbummelten Zugang per Mail geschildert.
Ein Tag später war eine versprochene Lösung online (s. Git Repository oben). Die beinhaltet
nun ein Restore des Auslieferungszustands nach Drücken des Reset-Tasters für 10 Sekunden.
Das nenne ich Kundenorientierung!!!
Mit freundlichem Gruß,
Michael Märker
Hallo Herr Seegel,
kann mich auf meinem rfm-gateway nicht mehr anmelden, da mein Sohn mit dem Gateway „rumgespielt“ hatte.
Können Sie mir einen Weg nennen, um den Auslieferungszustand wiederherzustellen?
Mit freundlichem Gruß,
Michael Märker