===== MQTT - Mosquitto =====
Um bei meiner [[heim-automatisierung|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