Seite 1 von 1

rtl_433 als Dienst

Verfasst: Mo 13. Feb 2023, 20:02
von sebalutz
Nach einigem Rumgebastel mit dem 433 Mhz DVB-T Stick und dem Problem, dass sich die verfügbare
Software rtl_433 immer wieder mal sporadisch verabschiedet, habe ich nach kurzer Recherche
zunächst das hier gefunden:

https://hagensieker.com/2019/03/06/how- ... upervisor/

Die eigentliche Lösung findet sich nicht in dem Artikel, sondern in einem Kommentar von
anonymous July 21, 2019 at 8:47 am, wo beschrieben wird, wie man rtl_433 als Dienst einrichtet.
Die Beschreibung ist aber so rudimentär, dass ich hier nochmal die Konfiguration und Aufrufe
darstelle.

1. Es ist nicht notwendig "mosquitto_pub" aufzurufen, um den MQTT anzusprechen,
weil RTL_433 eine eigene MQTT Schnittstelle hat, die durch Parameter aufgerufen wird:

Code: Alles auswählen

rtl_433 -F mqtt://localhost:1883,user=NAME,pass=PASSWORD,retain=0,events=home/rtl_433
2. Die Dienst-Beschreibung sieht damit folgendermaßen aus:
[Unit]
Description=433MHz receiver on DVB stick
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/rtl_433 -F mqtt://localhost:1883,user=NAME,pass=PASSWORD,retain=0,events=home/rtl_433

RestartSec=0
Restart=always
RemainAfterExit=no

[Install]
WantedBy=multi-user.target
3. Diese Dienst-Beschreibung legt man also als root in der Datei /lib/systemd/system/rtl_433.service ab
und erzeugt noch einen symbolischen Link auf die alte Position der Dienste-Beschreibungen:

Code: Alles auswählen

ln -s /lib/systemd/system/rtl_433.service /etc/systemd/system/
4. Danach muss der Dienst noch gestartet und zum Restart eintragen werden:

Code: Alles auswählen

sudo systemctl start rtl_433.service
sudo systemctl enable rtl_433.service
Jetzt läuft der rtl_433 und wird automatisch wieder gestartet, wenn er sich aufhängt oder der Rechner einen Reboot macht.