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)