Follow me

Ab sofort werde ich meine Projekte und Gaming-Highlights auch auf Youtube stellen.

Wer möchte kann mir hier gerne Folgen:

youtube logo

Des Weiteren, da ich eh jeden Abend online Zocke, so habe ich mich auch hier entschieden auf Twitch zu streamen.

Fast täglich ab ca. 19 Uhr

twitch gameplay

 Instagram gefällig?

Instagram logo transparent PNG

Wir sehen uns 

top

DoorPi - MQTT & Call.txt

Und schon geht es weiter, hätte nicht gedacht, dass euch das Thema so interessiert ... freut mich umso mehr, dass es ankommt.

MQTT

Ich setze jetzt einmal voraus, dass ihr einen Mosquitto/MQTT Server am start habt, wenn nicht, auch nicht schlimm, denn auch hierzu wird in Zukunft ein Video/Beitrag folgen. Damit Ihr ein Event auslösen könnt und an den MQTT schicken, benötigt Ihr zunächst ein Client auf dem DoorPi. 

Hierzu einfach:

pip install paho-mqtt

ausführen und schon habt Ihr den notwendigen Client und sollte so am Ende bei euch aussehen:

mqtt client install

Soweit so gut, weiter benötigt Ihr eine Datei z.B. mqtt.py mit folgendem Inhalt:

#!/usr/bin/env python>
import paho.mqtt.publish as publish
import time auth = {
'username':"",
'password':""
} publish.single("doorpi/keyboard/ring", "true", hostname = "<ip von eurem MQTT-Server>")
time.sleep(2)
publish.single("doorpi/keyboard/ring", "false", hostname = "<ip von eurem MQTT-Server")

Kurz erklärt:

Anfangs werden die benötigen Sachen importiert, der Client und Time. Danach kommt die Authentifizierung am MQTT-Server, sofern ihr dort ein Benutzer/Passwort habt, müsst ihr dort natürlich eure Credentials eintragen.

Anschließend wird ein "true" an den MQTT-Server geschickt... kurz gewartet (time.sleep) und dann wieder auf false gestellt. Also genau genommen, wie wenn Ihr den Knopf an der Klingel drückt und der "Kreislauf" geschlossen wird... sobald ihr den Knopf wieder los lasst, wird der Kreislauf geöffnet, sprich in den Ursprpung zurück gesetzt, genau das passiert hier auch. 

D.h. ihr könnt (was auch immer Ihr benutzt z.B. an Hausautomation) jetzt auf das Event "true" reagieren.

Jetzt erst einmal das Ganze Testen:

Am MQTT-Server warten wir auf das Event mit:

mosquitto_sub -h 127.0.0.1 -t doorpi/keyboard/ring

In dem Falle hört der MQTT-Server auch nur auf den Pfad doorpi/keyboard/ring damit wir natürlich auch nur auf das Event vom DoorPi wartet und nicht alles andere mit rein blubbert.

Auf dem DoorPi führen wir die zuvor angelegte Datei aus:

python /pfad/zu/eurer/mqtt.py

Solltet Ihr alles richtig gemacht haben, dannt sollte das "auf eurem MQTT-Server" so aussehen:

doorpi mosquitto

sprich er hat einmal "true" bekommen und nach kurzer Zeit dann "false".

Ab jetzt könnt Ihr dieses Event abgreifen und weiter nutzen... in meinem Fall schicke ich z.B. ein Snapshot von der Kamera an Telegram sowie ein entsprechenden Text dazu. Ich habe es mal angefangen, aber noch nicht fertig leider, aber rein theoretisch, wenn Ihr z.B. Kodi benutzt, dann könntet ihr auch dort den Snapshot und die Info einblenden, dass es klingelt und zeitgleich das Licht eingeschalten/heller machen oder sowas in die Richtung, kurz gesagt, eurer Phantasie sind keine Grenzen gesetzt. biggrin

Natürlich muss DoorPi auslösen, wenn ein Event zutrifft, hierzu einfach die DoorPi.ini anpassen: 

/usr/local/etc/DoorPi/conf/doorpi.ini

[EVENT_BeforeSipPhoneMakeCall]
10 = os_execute:python /usr/local/etc/DoorPi/conf/mqtt.py

oder [EVENT_OnKeyPressed_onboardpins.1] 40 = os_execute:python /usr/local/etc/DoorPi/conf/mqtt.py

Somit wird entweder beim Drücken des Klingelknopfes oder eben vor dem Call ausgelöst. 

MQTT sollte somit eingerichtet und bereit für die weitere Verwendung sein (sprich abgreifen für was auch immer ihr damit erledigen wollt).

 

Call.txt bzw. weitere Rufnummern

Wollt Ihr, wie in unserem Fall die Möglichkeit haben mehrer Rufnummern ansprechen zu können, könnt Ihr u.A. eine "Gruppenrufnummer" auf der (in meinem Fall) Fritzbox anlegen und die entsprechenden Nr. hinterlegen. Anschließend das Pi einfach diese Gruppennummer anrufen lassen oder, wenn Ihr flexibel sein wollt, dann macht eine Datei z.B. Call.txt natürlich mehr Sinn wie in meinem Falle.

Wie ist mein Aufbau:

In meiner Hausautomation habe ich ein Dropdownfeld eingebaut mit 3 Rufnummern, die Gruppenrufnummer, welche interne Tablet, Handy, C3 und C4 klingeln lässt, meine Handy-Nr. und die meiner Frau. Wird einer dieser Nummern in der Hausautomation ausgewählt, dann gibt es im HIntergrund drei Dateien, eine für jede Nummer mit folgendem Inhalt. 

echo -n "eure Rufnummer" | ssh  "cat > /usr/local/etc/DoorPi/tools/call.txt" 

Von der Hausautomation (welche ebenfalls eine Linux-Maschine ist) wird mit SSH-Files remote genau der Command in der Datei ausgeführt. Setzt natürlich voraus, dass Doorpi vorbereitet ist und die Hausautomationsmaschine das Recht hat remote einen Command (ohne Benutzer Passwort) auf dem Doorpi auszuführen.

Wie in der Command/Datei zu sehen, wird mit einem echo die Information in den darauffolgenden Pfad/Datei (Call.txt) geschrieben.

Wie könnt Ihr DoorPi jetzt dazu bringen die call.txt zu verwenden? Hierzu müsst Ihr die DoorPi.ini anpassen, welche sich in diesem Pfad befindet:

/usr/local/etc/DoorPi/conf/doorpi.ini

Ihr könnt in folgenden Bereich einfach eine Zeile wie folgt hinzufügen:

[EVENT_OnKeyPressed_onboardpins.1]
10 = file_call_value:/usr/local/etc/DoorPi/tools/call.txt

Das ist auch schon die ganze Magic. Somit wird nicht eine Rufnummer direkt angerufen sondern eben die Rufnummer, die sich jeweils flexibel in der call.txt befindet.

 Viel Spaß beim Nachbauen top

Kommentare / Erfahrungsaustausch bitte hier!

Ihr habt eine Frage oder wollt eure Erfahrungen teilen, nutze einfach unseren Discord top (einfach unten rechts auf "Connect")

Einfach mal DANKE sagen!

Auch wenn ich oft etwas länger brauche um neue Beiträge zu verfassen, Videos zu drehen etc. So freut mich es immer wieder ein positives Feedback von euch zu bekommen bzw. neue Follower, daher liegt es mir sehr nahe ein besonderes Dankeschön an euch da draußen zu senden.

Ihr seid super top

Thats me!

Name: Mike
Nickname: Pampersjoe / LuMp
Bj.: 1981
Hobbys: (eindeutig zu viele)

  • Online Zocken
  • IT/EDV
  • Handwerk (eigentlich egal was)

Contact me!

Kontakt


discord logo png 7635 Telegram
discord logo png 7635 Discord

 

Streams


discord logo png 7635 Twitch
discord logo png 7635 YouTube

Rechtliches