openHAB – Geräte über 433MHz auslesen

Viele besitzen einfache „Wetterstationen“, welche über eine Basis und einen Außenfühler verfügen.
Der Außenfühler ist meist ein kleines Zusatzgerät, welches die aktuellen Messwerte per Funk an die Basis in regelmäßgen Abständen schickt.
Diese Daten werden über die freie Frequenz 433MHz übertragen.
Es wäre doch nun cool, wenn wir diese Daten abfangen können, um sie z.B. in openHAB für weitere Automatismen verwenden zu können oder?
Genau das ist möglich!
Mit einem passenden USB-Stick, können wir die Frequenz abfangen und alle Daten automatisiert in openHAB leiten lassen.
Was zu tun ist, kannst du hier ansehen und nachlesen.

Was brauchen wir?

– Ein SDR-USB-Stick (SDR = Software Defined Radio), welcher die Frequenz 433MHz unterstützt (Nooelec NESDR Mini 2+ ODER Nooelec NESDR SMArt v4)
– Ein Linux-System (x86/x64/arm/arm64)
– Root-Zugriff auf das System
– Einen MQTT-Server
– Das Tool rtl_433
– Ca. eine Stunde Zeit, um die Messwerte auszulesen und korrekt einbinden zu können (wir müssen manchmal etwas warten)
– Ein Gerät, was Daten über 433MHz überträgt (Liste an unterstützten Geräten)





Die Installation via System-Repository

# apt update && apt upgrade -y
# apt install rtl-433 -y

Die Installation für ein Raspberry Pi – oder andere nicht direkt unterstützte Systeme.

# apt update && apt upgrade -y
# apt install libtool libusb-1.0-0-dev librtlsdr-dev rtl-sdr cmake mosquitto-clients git -y
# git clone https://github.com/merbanan/rtl_433.git
# cd rtl_433/
# mkdir build
# cd build/
# cmake ../
# make
# make install
# rtl_433 -h

Die allgemeine Verwendung:

Ein kurzer Funktionstest der Anwendung selbst:

# rtl_433 -h

Prüfen, ob der Stick die Daten empfangen kann und auch die Auswertung funktioniert:

# rtl_433

RTL433-Daten zu MQTT:

# rtl_433 -C si -F "mqtt://127.0.0.1:1883,user=MQTT-NUTZERNAME,pass=MQTT-PASSWORT"
# nano /etc/systemd/system/rtl433.service

SystemD-Datei für den automatischen Systemstart für Installation über die Paketquellen:

[Unit]
Description=rtl_443 SDR Receiver Daemon
After=network-online.target

[Service]
ExecStart=/usr/bin/rtl_433 -C si -F "mqtt://127.0.0.1:1883,user=MQTT-NUTZERNAME,pass=MQTT-PASSWORT"
Restart=always

[Install]
WantedBy=multi-user.target

SystemD-Datei für den automatischen Systemstart für die selbst erstellte Anwendung:

[Unit]
Description=rtl_443 SDR Receiver Daemon
After=network-online.target

[Service]
ExecStart=/usr/local/bin/rtl_433 -C si -F "mqtt://127.0.0.1:1883,user=MQTT-NUTZERNAME,pass=MQTT-PASSWORT"
Restart=always

[Install]
WantedBy=multi-user.target
# systemctl daemon-reload
# systemctl enable rtl433.service
# systemctl start rtl433.service

Das Setup wurde von mir erfolgreich mit folgenden Systemen getestet:
– AMD64-CPU (Virtuelle Maschine)
– Raspberry Pi 3B+ (64bit OS)
– Raspberry Pi 4B (64bit OS)
– Raspberry Pi Zero WH (32bit OS)


Wie gut ist die Reichweite?

Diese Frage wurde auch unter dem Video auf YouTube gestellt.
Die Reichweite der Antenne des SDR-RTL-Empfängers ist hierbei ehr zweitrangig.
Viel wichtiger ist hierbei, wie stark die Sendeleistung der jeweiligen Sensoren ist.
Denn es findet hier nur eine einseitige Kommunikation statt.
Der USB-Stick „hört nur zu“ und sendet keinerlei Daten.
Daher kann er auch nur das empfangen, was „laut genug ist“.
Ich habe bereits diverse Sendeeinheiten in meiner Umgebung gefunden und ich habe auch einige in Besitz.
Je nach Hersteller und Modell sind die Sendeleistungen etwas unterschiedlich.
Von nur 15 Meter Reichweite bis zu 40 Meter ist alles enthalten.
Man muss also etwas Glück haben und eine geeignete Position für den Stick mit Antenne im Haus suchen.
Eine größere Antenne kann zwar helfen die Signale abzufangen, sollten aber zu viele Störgeräusche im Funk enthalten sein, bringt die größte Antenne dann auch nicht mehr viel.
Eine pauschale Aussage kann man daher nicht treffen.

Was sind Störquellen?

Wie üblich beim Funk, ist alles Elektromagnetische ein Problem.
Kühlschränke, Kochstellen, Mikrowellen, Spiegel, … sind übliche Feinde.
Der Stick mit Antenne sollte aber am besten auch nicht direkt auf elektronischen Geräten liegen wie z.B. dem Raspberry Pi, Smartphones oder Fernseher.
Ein schöner großer TV ist z.B. ein super Abschirmungsort für die Signale.

Wo sollte ich die Antenne also am besten platzieren?

Am besten an einem Ort, wo min. 50cm im Umkreis der Antenne nichts in irgendeiner Form elektromagnetische Wellen ausstrahlen kann.
(Dazu gehören auch Stromkabel!)
Probiere auch dein Glück, indem du die Antenne in horizontaler oder vertikaler Postion anbringst.
Ich habe bei mit mit einer geraden vertikalen Position die beste Erfahrung gemacht.
Habe ich die Antenne leicht geneigt, ist der ein oder andere weiter entferne Sensor nicht mehr sauber empfangbar gewesen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.