Funksteckdosen, -sensoren und Fernbedienungen in Homeassistant integrieren
Mithilfe des RaspyRFM Funkmoduls können mittels einem Raspberry PI, Funkkomponenten wie Steckdosen, Bewegungsmelder, Türkontakte usw. in Home Assistant einfach eingebunden werden, sodass diese darin als Entitäten wie lights, switches oder sensors zur Verfügung stehen und so z.B. in Automationen oder der komfortablen Weboberfläche konfiguriert werden können.

Voraussetzungen
- RaspyRFM 433 MHz Funkmodul
- Homeassistant-Installation (Home Assistant Container oder Home Assistant Core) mit MQTT Integration (kann auf dem gleichen Raspberry PI laufen, auf dem auch das Funkmodul betrieben wird)
- MQTT Broker (z. B. Mosquitto), kann ebenfalls auf dem gleichen Raspberry PI laufen
- Installiertes Pythonmodul für das RaspyRFM Funkmodul, Installation siehe hier
- Laufendes rcpulsegw Skript, im Softwarepaket des RaspyRFM enthalten. Starten mit
apps/rcpulsegw.py
Unterstützt wird eine große Auswahl an fernsteuerbaren Steckdosen, Unterputzmodulen, Fernbedienungen, Bewegungsmeldern und Fensterkontakten. Unter anderen werden die Geräte der Marken
- Intertechno
- Hama
- Brennenstuhl
- Pilota Casa
- Emylo
- ELV FS20
- Nexa
- Telldus
- Voltcraft
- Logilight
- REV
- Elro
- uvw.
unterstützt. Eine (unvollständige) Liste aller unterstützten Geräte findet sich hier.
Konfiguration in Homeassistant (configuration.yaml)
Nachdem in Homeassistant die MQTT Integration eingerichtet und betriebsbereit ist, müssen die Funkkomponenten nur noch in dessen Konfiguration eingesetzt werden. Dazu werden in die Datei configuration.yaml
von Homeassistant einfach lights
, switches
oder sensors
hinzugefügt und mit den passenden MQTT Topics und States versehen. Hier ist ein Beispielauszug aus der Datei configuration.yaml:
mqtt:
light:
- name: "Licht 1"
command_topic: home/rcpulse/intertechno/23087301/1/set
state_topic: home/rcpulse/intertechno/23087301/1
- name: "Licht 2"
command_topic: home/rcpulse/intertechno/23087301/2/set
state_topic: home/rcpulse/intertechno/23087301/2
- name: "Theke"
command_topic: home/rcpulse/intertechno/23087301/3/set
state_topic: home/rcpulse/intertechno/23087301/3
switch:
- name: "Steckdose 1"
command_topic: home/rcpulse/hama/97301/3/set
state_topic: home/rcpulse/hama/97301/3
MQTT Nachrichten zum Steuern der Funksteckdosen
Das rcpulsegw Skript hört auf das MQTT Topic „home/rcpulse/#“. Im Topicpfad werden das zu verwendende Funkprotokoll (z. B. „intertechno“, „pilota“, „emylo“ etc.) sowie die Parameter wie Unit, Group, und/oder Channel angegeben. Zum Testen können mit einem MQTT Client Nachrichten an das rcpulse Skript gesendet werden, um die Funksteckdosen zu schalten:
mosquitto_pub -h localhost -t home/fs20/1722/2/set -m "ON"
mosquitto_pub -h localhost -t home/emylo/1722/2/set -m "OFF"
Hier sind die passenden Topics einiger der möglichen Protokolle und deren Parameter aufgelistet, um Schaltbefehle mit dem rcpulsegw Skript auszusenden.
Intertechno (Tristate)
Mit diesem Protokoll können die älteren, nicht selbstlernenden Funksteckdosen und die zugehörigen Fernbedienungen von Intertechno angesprochen werden.
Aufbau: home/rcpulse/ittristate/<house>/<group>/<unit>/set <ON|OFF> Beispiele: home/rcpulse/ittristate/B/3/2/set ON home/rcpulse/ittristate/B/3/2/set OFF
Brennenstuhl RCS 1000
Aufbau: home/rcpulse/brennenstuhl/<dips>/<unit>/set <ON|OFF> Beispiele: home/brennenstuhl/110100/2/set ON home/brennenstuhl/110100/2/set OFF
Intertechno (selbstlernend)
Aufbau: home/rcpulse/intertechno/<id>/<unit>/set <ON|OFF|0-100> Beispiele: home/intertechno/47145/2/set ON home/intertechno/47145/2/set OFF home/intertechno/47145/2/set 60 # auf 60 % dimmen
Hama
Aufbau: home/rcpulse/hama/<id>/<unit>/set <ON|OFF> Beispiele: home/hama/1394/3/set ON home/hama/1394/3/set OFF
Logilight
Aufbau: home/rcpulse/logilight/<id>/<unit>/set <ON|OFF> Beispiele: home/logilight/91823/1/set ON home/logilight/91823/1/set OFF
Emylo
Die Emylo Fernbedienungen haben keine expliziten Ein-/Austasten, sondern je nach Typ Tasten von A-B oder A-D. Daher müssen in Homeassistant zusätzlich die Payloads angegeben werden:
mqtt:
light:
- name: "Weihnachtsbaum"
command_topic: home/rcpulse/emylo/9172/set
state_topic: home/rcpulse/emylo/9172
payload_on: A
payload_off: B
Aufbau: home/rcpulse/emylo/<id>/<unit>/set <A-D> Beispiele: home/emylo/9172/set A home/emylo/9172/set B
ELV FS20
Das Funkschaltsystem von ELV läuft im Gegensatz zu den meisten anderen Systemen auf 868 MHz, dazu wird das RaspyRFM in der 868 MHz Ausführung benötigt.
Aufbau: home/rcpulse/fs20/<id>/<unit>/set <ON|OFF> Beispiele: home/fs20/9172/set A home/fs20/9172/set B
Pilota Casa
Vom Hersteller Pilota Casa gibt es neben Handfernbedienungen auch praktische Wandtaster, Bewegungsmelder, Fensterkontakte usw.
Aufbau: home/rcpulse/pilota/<id>/<group>/<unit>/set <ON|OFF|LEARN> Beispiele: home/pilota/9831/2/2/set ON home/pilota/9831/2/2/set OFF
Sonstige
Funksteckdosen und Sender werden von zahlreichen Firmen vermarktet und verwenden oft gleiche oder ähnliche Protokolle. So lassen sich etwa auch Komponenten der Marken Telldus, Nexa, Voltcraft usw. integrieren. Eine (unvollständige) Liste mit den zugehörigen Protokollen findet sich hier.
MQTT-Nachrichten zum Empfang von Sensoren
Wird eine Funksteckdose mit der zugehörigen Fernbedienung angesteuert wird der Schaltbefehl vom RaspyRFM empfangen und über eine MQTT Statusmeldung an Homeassistant weitergereicht. So kann man in Homeassistant den geänderten Schaltzustand sehen, auch wenn der Befehl nicht von Homeassistant selbst kam. Das rcpulsegw Skript gibt alle empfangenen und dekodierten Telegramme, etwa von Funkfernbedienungen, Bewegungssensoren oder Fensterkontakten an den MQTT Broker weiter. Weil sich viele Protokolle sehr ähnlich sind, können für dasselbe empfangene Telegram unter Umständen mehrere MQTT-Nachrichten erzeugt werden. Wird an das jeweils empfangene Topic noch /set
gehängt ergibt sich das passende Topic zum Senden. Mit einem MQTT Client lassen sich alle empfangenen Telegramme mitlesen:
mosquitto_sub -h localhost -t home/rcpulse/# -v
home/pilota/9831/2/2 ON
Handfernbedienungen, Fensterkontakte, Bewegungsmelder, etc.
Ein Fensterkontakt von Pilota Casa kann beispielsweise folgendermaßen in Homeassistant eingebunden werden:
mqtt: binary_sensor: - name: "win-musik" unique_id: rcpulse-51221-1-2 state_topic: home/rcpulse/pilota/512271/1/2
Funktemperatursensoren
Im 434 MHz Band senden ebenfalls einige Temperatur- und Feuchtigkeitssensoren, z. B. von Telldus, welche mit dem RaspyRFM 434 MHz zusätzlich eingebunden werden können:
mqtt: sensor: - name: "Test" state_topic: "home/rcpulse/wh2/88" unit_of_measurement: "°C" value_template: "{{ value_json.T }}" device_class: "temperature"

Temperatur-/Feuchtigkeitssensoren LaCrosse 868 MHz
Diese Sensoren, z. B. Technoline TX29, TX35, u.a., senden mit einer anderen Modulation und einer anderen Frequenz als alle anderen o. g. Geräte. Dafür wird das RaspyRFM in der 868 MHz Ausführung benötigt, und anstelle des rcpulsegw Skript muss das lacrossegw Skript laufen. Ein gemeinsamer Betrieb von Sensoren/Aktoren im 434 MHz Band und LaCrosse-Sensoren ist mit dem RaspyRFM Doppelmodul möglich, mit dem beide Skripte gleichzeitig ausgeführt werden können. Weitere Informationen zu den LaCrosse Funksensoren finden sich hier. Einbindung in Homeassistant:
mqtt: sensor: - name: "T Küche" unique_id: T-lacrosse-4c state_topic: "home/lacrosse/4c" value_template: "{{ value_json.T }}" unit_of_measurement: "°C" device_class: "temperature" - name: "T Wohnzimmer" unique_id: T-lacrosse-70 state_topic: "home/lacrosse/70" value_template: "{{ value_json.T }}" unit_of_measurement: "°C" device_class: "temperature"
Wow! Ich bin begeistert! Konnte dadurch meine Funkschalter in Homebridge per mqtthing einbingen.
Beispiel zum nachbauen:
„type“: „lightbulb-OnOff“,
„name“: „Lampe“,
„url“: „mqtt://127.0.0.1:1883“,
„topics“: {
„getOn“: „home/rcpulse/brennenstuhl/11000/1“,
„setOn“: „home/rcpulse/brennenstuhl/11000/1/set“
},
„integerValue“: false,
„onValue“: „ON“,
„offValue“: „OFF“,
„accessory“: „mqttthing“
Leider habe ich es nicht geschafft einen Dimmer einzubinden. Lediglich das Ein- und Ausschalten gelingt mir.
Sind Dimmer in den Gateway auch bereits berücksichtigt?
Hallo,
vielen Dank für das Feedback! Welche Dimmer verwenden sie? Können sie mit dem rcpulse Script eine Ausgabe sehen wenn sie den Dimmer mit der Originalfernbedienung steuern?
Hallo,
danke für die schnelle Antwort! Es handelt sich um eine Intertechno ITLR-200. Ich nutze leider keine Originalfernbedienung. Ursprünglich hatte ich den Dimmer mit der SteckerPRO App gesteuert.
Nun habe ich den Dimmer mit folgenden Befehl neu angelernt:.
/rcpulse.py -p intertechno -i 47113 -u 1 -a on
Vielen Dank!
Ich habe eine Dimfunktion für Intertecho zum Testen eingebaut:
https://github.com/Phunkafizer/RaspyRFM/tree/itdim
Können Sie mit dieser Version testen ob mit
./rcpulse.py -p intertechno -i 47113 -u 1 -a 95
das Licht gedimmt wird?
Vielen Dank für die neue Funktion!
Konnte es eben testen und hat einwandfrei funktioniert.