Prowl-API mit Bash-Script nutzen (iOS Push)

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    nach mehreren Anfragen gibt es heute ein kleines Tutorial zur Nutzung vom Push-Dienst 'Prowl' innerhalb von Bash-Scripten. :)

    Prowl ermöglicht es aus einem Script oder Programm heraus Benachrichtigungen an ein iOS Gerät (iPhone/iPad/iPod Touch) zu senden.

    Ein Beispiel der Implementierung könnt ihr in meinem grausigen Youtube Video oder in dem zugehörigen Thread sehen. (Die verwendete Software läuft zwar in Python, aber zur Verdeutlichung ist es sicherlich ok.)


    Prowl am Beispiel einer einfachen Temperaturüberwachung (Bash)

    Im folgenden Tutorial zeig ich euch eine stark vereinfachte Temperaturüberwachung mit zwei simplen Bash-Scripten. Bitte beachtet, dass es tatsächlich nur als Beispiel dienen soll und nicht in einem produktiv System genutzt werden sollte. :stumm:

    Ihr benötigt für dieses Beispiel:

    • einen Raspberry Pi :shy:
    • einen konfigurierten 1-Wire Temperatur Sensor (DS18B20 [Anzeige]) [Optional könnt ihr das auch weglassen und nur bis Schritt 6. das Tutorial lesen]
    • ein iOS Device (iPhone, iPod Touch oder iPad)
    • Prowl App
    • curl
    • ein bisschen Zeit


    1. Schritt: Anmeldung bei Prowl
    Im ersten Schritt müsst ihr euch zunächst bei Prowl registrieren, anschließend loggt ihr euch mit euren neuen Zugangsdaten bei dem Dienst an.

    2. Schritt: Erstellen eines API-Keys
    Um die Schnittstelle von Prowl nutzen zu können, müsst ihr euch im folgenden einen API-Schlüssel anlegen. Dafür wählt ihr den Tab API Keysund generiert euch unter “Generate Key” einen neuen Schlüssel.

    pw_api_mini.jpg

    3. Schritt: App auf dem iPhone/iPad/iPod Touch installieren

    Hier geht es zum Download :)

    Nun ist es Zeit die Prowl App aus dem AppStore zu laden und zu installieren. Nach erfolgter Installation müsst ihr lediglich die im ersten Schritt festgelegten Zugangsdaten eingeben und schon könnt ihr euren ersten Test-Push versenden.

    4. Schritt: Test Push versenden

    Unter Add Message habt ihr die Möglichkeit über die Prowl-Webseite einen Test-Push zu versenden. Neben dem Benachrichtigungstext könnt ihr eine URL mit senden und die Priorität der Nachricht festlegen.

    Bildschirmfoto-2014-03-02-um-18.04.19.png

    Wenn ihr die Prowl-App offen habt, könnt ihr die Benachrichtigung direkt einsehen. Andernfalls wird sie, wie bei anderen Apps auch, aus der Statuszeile heraus eingeblendet.

    prowl_ios.jpg

    Die Prowl App zeigt euch eine Historie der erhaltenen Nachrichten.

    prowl_app.jpg


    5. Schritt: Bash Script

    Code
    pi@raspberrypi:~# mkdir /home/pi/notify/
    pi@raspberrypi:~# cd /home/pi/notify/
    pi@raspberrypi:~# sudo nano notify.sh

    Als erstes legen wir im /home/pi-Verzeichnis einen notify Ordner an und erstellen mit sudo nano das notify.sh Script.

    Pushes werden von der Prowl API per HTTP-POST Ereignis entgegengenommen. Auf Client Seite eignet sich innerhalb von Bash-Scripten curl für diese Aufgabe. Sollte es nicht standardmäßig auf eurem Raspberry Pi installiert sein, könnt ihr es einfach mit ‘sudo apt-get install curl’ nachinstallieren.


    Das Script sieht dann wie folgt aus:



    Wir speichern das Script mit STRG + O ab und beenden sudo nano mit STRG + X. Anschließend machen wir das Script ausführbar:

    Code
    sudo chmod +x notify.sh


    Zeit für den zweiten Test!

    6. Schritt: Test des Scriptes
    Das notify.sh Script übernimmt den Titel, die Priorität, das Event und die Beschreibung als Parameter. Mit folgendem Befehl versenden wir nun einen Push:

    Code
    /home/pi/notify/notify.sh "Test-App" 0 "Test-Event" "Test Beschreibung"


    Nach etwa einer kurzen Weile sollte die Benachrichtigung auf eurem iOS Device erscheinen.


    7. Schritt: Warnung bei Temperatur-Überschreitung


    Wir legen ein weiteres Bash-Script an, das sich um die Temperatur-Überwachung eines Sensors kümmert:

    Code
    pi@raspberrypi:~# sudo nano tempWatch.sh

    Und fügen das folgende Script ein:

    Anschließend vergeben wir wieder die entsprechenden Rechte:

    Code
    pi@raspberrypi:~# sudo chmod +x tempWatch.sh

    Das Script übernimmt als ersten Parameter den Sensor-Namen und als zweiten Parameter den Schwellwert für die Benachrichtigung.

    Nun führen wir das Script aus:

    Code
    pi@raspberrypi:~# ./tempWatch.sh "28-000004c5de9f" 10


    Die Sensor ID ’28-000004c5de9f’ müsst ihr natürlich mit eurem Sensor ersetzen. Falls ihr euch nicht sicher seid, wie euer Sensor heißt, führt einfach folgenden Befehl aus:

    Code
    pi@raspberrypi:~# ls /sys/bus/w1/devices/


    Je nach Temperatur sollte das Script nun “Alles gut!” oder “Ohoh… Es wird warm!” ausgeben und je nach Meldung einen Push versenden.

    8. Schritt: Script zyklisch ausführen lassen


    Um das Script regelmäßig ausführen zu lassen, können wir einen cronjob anlegen.

    Code
    pi@raspberrypi:~# sudo crontab -e

    Wir fügen folgende Zeile ein:

    Code
    */1 * * * * /home/pi/notify/tempWatch.sh "SENSOR_ID" TEMPERATUR

    Diese Zeile bewirkt, dass das Script minütlich ausgeführt wird.

    Natürlich müsst ihr die Sensor ID und den Temperaturwert entsprechend eurer Wünsche setzen!

    Bitte beachtet, dass dieses Tutorial lediglich die Funktionsweise der Prowl API in Bash-Scripten aufzeigen soll. Für den produktiven Einsatz eignet sich das tempWatch.sh-Script nicht, da es wirklich sehr rudimentär ist und keine Fehlerbehandlung enthält (falls der CRC-Check fehlschlägt, die übergebene Sensor ID nicht existiert,…).

    Wenn ihr Wünsche oder Anregungen habt, oder Fehler findet: Her damit. ;)

    Das Tutorial findet ihr im übrigen auch in meinem neuen Blog. :^^:

    Gruß
    Chris

    Einmal editiert, zuletzt von Chris1705 (3. März 2014 um 19:27)

  • :lol: Hab auf deinem Blog geschaut 99Grad im Aquarium *lach* Ich nenne sowas nicht gesalzene uund wässerige Fischsuppe :lol:

    Gefällt mir gut diese Idee!

    Gruß Lunepi

    P.s.: Das Rezept ist besser:

    Zutaten
    1300 g Fischfilet(s), Rotbarsch, Tilapia-Buntbarsch, Victoriabarsch, frisch
    150 g Shrimps
    100 g Krebse (Flusskrebsschwänze)
    1 Bund Suppengrün, knackiges
    1/2 Zwiebel(n) (Gemüsezwiebel)
    1 große Chilischote(n), rote, frische
    2 Knoblauchzehe(n)
    2 EL Kräuterbutter oder auch einfache Butter
    etwas Hummerpaste und Krustentier-Paste
    2 Becher Crème fraîche á 200g
    2 Gläser Fischfond á 400 ml
    Wein, weiß
    2 Zitrone(n)
    Dill
    Salz



    Portionen

    Zubereitung

    Arbeitszeit: ca. 35 Min. / Schwierigkeitsgrad: simpel / Brennwert p. P.: keine Angabe

    Das Suppengemüse (2 große Möhren, ein Stück Sellerie, eine halbe Stange Porree - das Weiße) und die Zwiebel in gleichgroße Würfelchen schneiden (den Porree längs halbieren und in Streifen schneiden), Knoblauch und Chilischote hacken. Alles zusammen in der Kräuterbutter anschwitzen. Mit gut 200 ml Weißwein löschen und etwas einkochen lassen. Fischfonds mit derselben Menge Wasser dazugeben. Hummer- und Krustentierpaste und die Creme fraiche einrühren. Mit Salz abschmecken. Alles zusammen kurz aufkochen lassen. Jetzt die Fischfilets in nicht zu kleinen Stücken, die Shrimp und die Flusskrebsschwänze dazugeben und alles zusammen auf ganz kleiner Flamme 15 Minuten ziehen lassen.

    Zitronenviertel und frischen, gehackten Dill EXTRA dazu reichen (das Fischaroma soll nicht schon im Topf erschlagen werden).

    Alle mageren, festen Fischsorten sind geeignet (wer mag, kann auch Wels, Pangasius, Rotbarben, Kabeljau nehmen).

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

  • Vielen Dank für dein Feedback. :)

    Rezept kann ich leider wegen meiner Allergien nicht ausprobieren, geb' ich allerdings trotzdem mal im Bekanntenkreis weiter. ;)

  • Hallo chris

    Will mir so ein Gerät kaufen und Feuerwehr Alarmierung weiterleiten auf das Handy gibt es da ein Programm wo ich das machen kann wo ich kein fw Melder benötige

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!