MQTT - Mosquitto
Um bei meiner Heim-Automatisierung den Server aus der Shell abzufragen, ob Sprachausgabe erwünscht ist, habe ich eine retained-message abgespeichert. Leider kann ich auf meinem Jessy - Pi nur mosquitto 1.3.4 aus dem repository laden. Da gibt es den Befehl noch nicht. Also gehts wieder los. Aktuell läuft jetzt 1.6.8.
Auf Stackexchange habe ich folgendes gefunden
wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key sudo apt-key add mosquitto-repo.gpg.key cd /etc/apt/sources.list.d/
Je nach Betriebssystem unterschiedlicher Aufruf, also erst schauen
lsb_release -a
und dann entweder oder oder
sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list sudo wget http://repo.mosquitto.org/debian/mosquitto-stretch.list
Dann installieren
sudo apt-get update sudo apt-get install mosquitto sudo apt-get install mosquitto-clients
Jetzt werden keine neuen Nachrichten mehr ausgegeben, wenn ich sage „hey snips: bitte sei leise“ und wieder ausgegeben, wenn ich sage „hey snips: bite sag was“. Abgefragt wird in der Shell folgendes, wobei '-W 1' ein Timeout von 1 Sekunde ist:
a=`mosquitto_sub -h 192.168.178.25 -t "wohnung/leise" -W 1` if [ $a -eq 1 ]; then exit fi
Das oben ist für die Shell und das vorlesen von regelmäßigen News aus dem RSS-Feed. das untere ist der PHP-Aufruf für die Unwetter-Warnungen.
$a=system("mosquitto_sub -h 192.168.178.25 -t 'wohnung/leise' -W 1",$retval); if ($a == 1) exit;
Persistente Einträge werden nicht automatisch über einen erbot gerettet. Dazu muss man das in der Date konfigurieren
sudo nano /etc/mosquitto/mosquitto.conf persistence true
Stand Juni 2021