Noch ein Weg: Nachrichten vom PI via Push auf ein Android Device

  • Angeregt durch das Posting [url=http://www.forum-raspberrypi.de/Thread-eigene-nachrichten-vom-pi-push-aufs-android-handy]eigene Nachrichten (vom Pi) Push aufs Android Handy! habe ich mir eigene Gedanken zu dem Thema gemacht (wobei ich den beschriebenen Weg im o.g. Posting nicht schmälern will!).


    Da ich auf meinem Android sowieso den Dienst PushBullet benutze (der es erlaubt, mittels Browser Plugins bzw. Web-Zugang) Notizen, Listen, URLs usw. auf ein oder mehrere Android Geräte zu pushen (die dort als Benachrichtigungen erscheinen), liegt es nahe die mit dem Dienst zur Verfügung stehende API zu benutzen, um von einem Raspberry Nachrichten auf ein Android Gerät zu schicken.


    Die API ist hier erklärt: https://www.pushbullet.com/api
    Den notwendigen API Key findet jeder registrierte Benutzer in den Account Settings, die device_id kann man einmalig ermitteln. Das ganze dann in ein einfaches shell-Skript und fertig.


    Der eigentliche Aufruf sieht dann so aus:


    Code
    curl -u $API_KEY: -d device_id=$DEV_ID -d type=note -d title="Msg from Raspi" -d body="$MSG" -X POST 
    https://api.pushbullet.com/api/pushes

    Edited once, last by ps915 ().

  • Hört sich gut an...werd ich gleich mal testen!

  • Bei Interesse kann ich ein bash-Skript zur Verfügung stellen, das bei mir im praktischen Einsatz prima funktioniert.
    Voraussetzungen wären:

    • Account bei http://www.pushbullet.com
    • Installierte Android App aus dem Play Store
    • API Key (aus den PushBullet Account Settings)
    • Device ID des Androiden (aus Managed Devices bei PushBullet)
  • du kannst das bash doch in python einbinden!

    • Official Post

    Alternativ sollte auch urllib damit klar kommen. In diesem Fall würde ich aber auch curl über subprocess aufrufen

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Edited once, last by dbv ().

  • Na denn...


    Hinweise:

    • allen die was anderes als ein bash-Skript benutzen wollen, würde ich raten, das selbst in der gewünschten Programmier-/Skript-Sprache zu implementieren. Letztendlich reduziert sich das ja auf einen HTTP POST Aufruf
    • Die Konfiguration geschieht entweder im Skript selbst durch Eintragen der Werte für DEV_ID, API_KEY (und ggf. Default TITLE) oder durch Erstellen einer Datei $HOME/.pushtoandroid.conf die zeilenweise die entsprechenden Einträge enthält.
    • Diese Konfigurations-Einstellungen lassen sich durch die entsprechenden Kommandozeilen-Optionen überschreiben.



    Ggf. wird dies bei Gelegenheit in einem github Repository landen, kann ich aber nicht versprechen.

  • Hab das ganze mal getestet und läuft 1A :thumbup:
    Benutze PushBullet jetzt auch so, sehr Nützlich!

  • Habe für mich jetzt noch einen Rück Kanal eingebaut um auch Anweisungen an den Pi zu senden. Bei Interesse melden.


  • Habe für mich jetzt noch einen Rück Kanal eingebaut um auch Anweisungen an den Pi zu senden. Bei Interesse melden.


    Wie jetzt?
    PushBullet ist doch ein Android Only (tm) Dienst, auf welchem Weg kommen da die Anweisungen am Raspberry an?

  • Kleines socket script auf dem pi und bei Android auf klick der pushbullet notification reagieren. Das ist es eig schon. So kann man auch Nachrichten über einen Umweg zurück senden.

  • Habe das ganze auch gerade mal getestet und versucht, eine Meldung auf mein iPhone zu schicken (Mittlerweile gibt es die App auch für iOS).


    Wenn ich den Curl Befehl direkt eingebe bzw. über ein Script aufrufe, kommt immer eine Abfrage nach dem Passwort ("Enter host password for user '<Mein API-Key>':"). Diese bestätige ich einfach mit Enter und die Nachricht wird gesandt.


    Da ich aber gerne automatisiert solche Pushnachrichten schicken würde, hätte ich diese Abfrage gerne umgangen. Ich habe auch schon ein -v getestet, leider ohne Erfolg.


    Sonst noch jemand ne Idee, wie ich diese Frage umgehen kann?


    Danke


    Tobi

  • Hallo zusammen,


    genau so eine Funktion suche ich und werde es mal testen, allerdings wäre es für mich wichtig auch Nachrichten an den PI zu senden...


    leider ist der Benutzer gelöscht, der das wohl hinbekommen hat.


    Gibt es hier vielleicht noch jemand der Pushbullet benutzt und vielleicht erklären könnte wie man Nachrichten zum PI schicken kann
    und der diese Nachricht auch verarbeitet.


    Ich stellen mir das so vor... ich pushe "runterfahren" zum PI und der PI interpretiert es als "sudo shutdown -h now"


    Wäre total klasse, wenn das funktionieren würde !!!


    Vielen Dank und viele Grüße


    Markus


  • Möglicherweise hast du den Doppelpunkt nach dem deinemAPI-Key vergessen ;)

  • EDIT: Ich ziehe meine Frage zurück.
    Also bitte nicht antworten, ich löse das anders.




    Hallo,
    ist zwar schon ein Stückchen älter, aber die Lösung könnte ich mir gut für meine (größtenteils in Bash geschriebene) Haussteuerung vorstellen. So nach dem Motto "Fenster 1 wurde geöffnet" und so weiter.


    Allerdings sind meine Kenntnisse für diese Anwendung zu gering. Auch glaube ich, dass bei Pushbullet evtl. etwas verändert wurde.


    Also, ich habe mich über mein Google-Konto angemeldet und mit dem Zugangs-Token folgende Abfrage gestartet:

    Code
    curl --header 'Access-Token: aaaaa...\https://api.pushbullet.com/v2/users/me


    Darauf bekam ich folgende Antwort:


    Wenn ich den Code aus #9 mit nur diesen Änderungen übernehme:

    Code
    # settings read from config file or set on command line
    TITLE=Alarm-Titel
    MSG=Alarm-Nachricht
    DEV_ID=bbbbb <also iden>
    API_KEY=aaaaa <also Access-Token>
    VERBOSE=        <frei gelassen>


    bekomme ich diese Meldung:

    Code
    ./pushalarm.sh
    ./pushalarm.sh: Zeile 87: Warnung: here-document at line 15 delimited by end-of-file (wanted `EOF')
    ./pushalarm.sh: Zeile 88: Syntax Fehler: Unerwartetes Dateiende.


    Vermutlich nutze ich das Programm falsch, aber ich muss mir erst mal eine Vorstellung machen, wie das überhaupt läuft.

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,

    Edited once, last by docadams ().

  • Finde die App Simplepush für sowas ganz gut. Kann zwar nicht so viel aber ist viel einfacher zu benutzen und man muss sich auch nicht registrieren. Leider nur für Android.