Push-Nachrichten von DoorPi

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    Da in jedem Forum ein paar Regeln eingehalten werden müssen, möchte ich diese auch vorher hier festlegen und niederschreiben. Die grundsätzliche Netiquette setze ich bei Jedem voraus. Darüber hinaus möchte ich nur spezielle Regeln ansprechen:
    - Unterlasse FullQuote sondern nutze Alternativen wie Inline-Quoting
    -> siehe auch https://de.wikipedia.org/wiki/Fullquote vs. https://de.wikipedia.org/wiki/TOFU#Alternativen_zu_TOFU
    - Unterlasse nichtssagende Antworten wie "Danke" oder "werde ich mal testen" oder ähnliches, sofern Du nicht der Threadersteller bist und einen Lösungsvorschlag angeboten bekommen hast.
    - Vermeide Doppel-Posts (zwei Beiträge von Dir hintereinander) sondern editiere wenn möglich Deine Posts.

    Danke...

    • Push-Nachrichten von DoorPi

      In Verbindung mit meiner HomeMatic nutze ich den Push-Dienst Telegram, um mich zeitnah über Statusänderungen informieren zu lassen. Telegram hat den Vorteil, dass es nahezu für alle Betriebssysteme entsprechende Clients gibt. Dabei funktioniert Telegram im Wesentlichen wie z.B. WhatsApp, bietet aber zusätzlich so genannte Bots. Bots sind quasi virtuelle Teilnehmer, die über API-Keys angesteuert werden können, um Push-Nachrichten abzusenden. Dabei kann Telegram nicht nur mit Texten, sondern auch mit angehängten Dateien, wie z.B. Bildern, Tönen und Videos, umgehen.

      Das Einrichten eines Bots gestaltet sich recht einfach.

      Sofern man noch keinen Telegram-Account hat, läd man sich die Telegram-App oder das Telegram-Programm für sein OS herunter, gibt eine Telefonnummer an, an die die SMS mit dem Freischaltcode geschickt werden soll und schaltet sich einen Account frei.
      In der InApp-Suche gibt man dann einfach BotFather ein und startet anschließend mit

      Source Code

      1. /start
      einen Chat mit ihm.

      Über

      Source Code

      1. /newbot
      richtet man dann den Bot ein. Dazu fragt der Botfather nach einem Namen für den Bot (z.B. "DoorPi") und anschließend nach einem Usernamen, der immer auf "bot" oder "Bot" enden muss (z.B. "MeinDoorPiBot"). Das war's. Nun ist der Bot eingerichtet und man erhält vom BotFather eine Nachricht mit dem API-Schlüssel des Bots und mit einem Link (z.B. "telegram.me/MeinDoorPiBot").

      Damit der Bot Einem eine Nachricht schicken kann, muss man noch die chat_id des Empfängers, also von sich selbst, herausfinden. Dazu geht man zunächst in der App auf den vom BotFather gesenden Link, gibt entweder "/start" ein oder drückt unten auf den Start-Button und sendet eine kleine Nachricht an ihn (z.B. "Hallo Bot"). Im Anschluss startet man einen Browser und gibt folgendes ein:

      Source Code

      1. https://api.telegram.org/bot<API-Schlüssel des Bots>/getUpdates
      Achtung, die "<>" dienen lediglich der optischen Abgrenzung und sind folglich wegzulassen. Unter Linux wäre die Eingabe übrigens

      Source Code

      1. curl -s -X POST https://api.telegram.org/bot<API-Schlüssel des Bots>/getUpdates
      Nun sucht man in dem angezeigten String nach der ID des Chats. Diese steht in der Regel hinter "chat"; {"id":

      Soweit zu den Vorbereitungen.

      Um sich nun zum Beispiel von DoorPi eine Push-Nachricht schicken zu lassen, wenn dieser neu startet, erstellt man sich z.B. in dem Verzeichnis "/usr/local/etc/DoorPi/scripts" ein kleines Shell-Skript, nennen wir es mal "Startmeldung.sh", mit folgendem Inhalt:

      Source Code

      1. curl -s -k "https://api.telegram.org/bot<API-Schlüssel des Bots>/sendMessage" -d text="DoorPi gestartet" -d chat_id=<chatid>
      wobei "<API-Schlüssel des Bots>" der obige API-Key des Bots und "<chatid>" die ID des Chats sind.

      Beispiel:

      Source Code

      1. curl -s -k "https://api.telegram.org/bot12345678:SLSDJRtuDRTx39dSRe43455sSDFsiasdfS/sendMessage" -d text="DoorPi gestartet" -d chat_id=987654321
      Dem Shell-Skript abschließend noch mit

      Source Code

      1. sudo chmod 775 /usr/local/etc/DoorPi/scripts/Startmeldung.sh
      die entsprechenden Rechte zum Ausführen zuweisen.
      Um das Shellskript beim Start von DoorPi auszuführen, wird in der doorpi.ini folgender Eintrag ergänzt:

      Source Code

      1. [EVENT_OnStartup]
      2. 10 = sleep:1
      3. 20 = os_execute:/usr/local/etc/DoorPi/scripts/Startmeldung.sh
      Das war's. Viel Spaß beim Ausprobieren.

      Gruß,

      Thorsten

      The post was edited 3 times, last by dtp ().

    • RE: Push-Nachrichten von DoorPi

      Ich mache im Zusammenhang mit meiner FHEM-Installation sowas ähnliches, allerdings benutze ich den Pushover Dienst.
      Damit kann man die Nachrichten fast genauso verschicken:

      Source Code

      1. curl -s -F token=XXXX user=XXXX title=$title message=$msg https://api.pushover.net/1/messages.json


      Das werde ich für den DoorPi auch nutzen. Es gibt da glaube ich noch einige weitere Dienste die sowas ähnliches machen.
    • RE: Push-Nachrichten von DoorPi

      Ja. Zum Beispiel Pushalot oder Prowl. Telegram bietet aber den Vorteil, dass man damit auch direkt Bilder versenden kann.

      Ich nutze z.B. in Verbindung mit dem DoorPi das RPi-Cam-Web-Interface. Einen Snapshot davon lasse ich mir beim Klingeln über das Shellskript "Klingelbild.sh" mit dem Inhalt

      Source Code

      1. wget -O /home/pi/Haustürklingel.jpg http://192.168.0.21:80/cam.jpg
      2. curl -s -k "https://api.telegram.org/bot<API-Schlüssel des Bots>/sendPhoto" -F chat_id=<chatid> -F photo="@/home/pi/Haustürklingel.jpg"


      in das Home-Verzeichnis von pi schieben und dann per Telegramm zusenden (nicht vergessen, die Rechte gemäß obiger Anleitung zu setzen). 

      Der entsprechende Eintrag in der doorpi.ini lautet dann bei Nutzung von Pin 0 des PiFace-Moduls zur Erkennung der Klingelbetätigung:

      Source Code

      1. [EVENT_OnKeyPressed_onboardpins.0]
      2. 10 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
      3. ...
      4. [onboardpins_InputPins]
      5. 0 = call:**610#611#612#613


      Gruß,

      Thorsten
    • RE: Push-Nachrichten von DoorPi

      Hi Thomas,

      das Problem ist, dass es zig Push-Dienste gibt und jeder irgendwie andere Parameter nutzt und Möglichkeiten bietet. Für die HomeMatic habe ich das hier mal für vier Dienste umgesetzt.

      Da erkennt man dann auch die Schwierigkeiten, wenn man es als integrierten Dienst anbieten möchte. Da aber die Konfiguration eigentlich kein Hexenwerk ist, würde ich es persönlich nicht direkt in DoorPi einbinden.

      Aber es ist natürlich letztlich Deine Entscheidung. :cool:

      Gruß,

      Thorsten
    • RE: Push-Nachrichten von DoorPi

      j0j0182 wrote:


      aber das schaffe ich auf keinen Fall :(


      Na, aber...

      Source Code

      1. [EVENT_OnKeyPressed_onboardpins.0]
      2. 10 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
      3. 11 = sleep:0.5
      4. 20 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
      5. 21 = sleep:0.5
      6. 30 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
      7. 31 = sleep:0.5
      8. 40 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
      9. 41 = sleep:0.5
      10. 50 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
      11. 51 = sleep:0.5
      Display All


      Wenn Du die Version von dtp nutzt, in der vorher ein Bild gemacht wird.
      --
      MfG Thomas
    • RE: Push-Nachrichten von DoorPi

      Ich fände eine Umsetzung, die zumindest kompatibel mit Telegram ist auch sehr interessant, da ich einer dieser völlig exotischen (und auch noch hochzufriedenen) Windows Phone (10) User bin. Ein Microsoft Surface benutze ich auch noch. Oftmals krankt es aber leider an der Verfügbarkeit von Apps auf dieser Plattform und Telegram ist zudem noch ein vielgenutzter Dienst der auch gepflegt wird.

      The post was edited 1 time, last by MarcusS ().

    • RE: Push-Nachrichten von DoorPi

      motom001 wrote:


      j0j0182 wrote:


      aber das schaffe ich auf keinen Fall :(


      Na, aber...

      Source Code

      1. [EVENT_OnKeyPressed_onboardpins.0]
      2. 10 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
      3. 11 = sleep:0.5
      4. 20 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
      5. 21 = sleep:0.5
      6. 30 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
      7. 31 = sleep:0.5
      8. 40 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
      9. 41 = sleep:0.5
      10. 50 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
      11. 51 = sleep:0.5
      Display All


      Wenn Du die Version von dtp nutzt, in der vorher ein Bild gemacht wird.

      oke, doch so einfach... Danke
      aber eine Frage hätte ich..
      wieso 10, 11, 20, 21, ...
      und nicht 10, 11, 12, 13, ...

      /edit: und noch eine,
      geht das auch mit dem mjpg-streamer? den hab ich schon am laufen...

      The post was edited 1 time, last by j0j0182 ().

    • RE: Push-Nachrichten von DoorPi

      Du kannst die Nummer auch fortlaufend wählen...

      Zum Thema Integration in DoorPi

      dtp wrote:


      Hi Thomas,

      das Problem ist, dass es zig Push-Dienste gibt und jeder irgendwie andere Parameter nutzt und Möglichkeiten bietet. Für die HomeMatic habe ich das hier mal für vier Dienste umgesetzt.

      Da erkennt man dann auch die Schwierigkeiten, wenn man es als integrierten Dienst anbieten möchte. Da aber die Konfiguration eigentlich kein Hexenwerk ist, würde ich es persönlich nicht direkt in DoorPi einbinden.

      Aber es ist natürlich letztlich Deine Entscheidung. :cool:


      Ich seh es genauso. Es gibt soviele verschiedene, alle einbinden ist viel Aufwand, und die Konfiguration von den Diensten ist wirklich ein Kinderspiel. Der eigentliche Aufwand ist das registrieren bei dem Dienst, dort alles einzurichten und herausfinden was die Token und User Id ist.
      Wenn das klar ist, braucht man nur noch ein einzeiliges Skript (siehe obige Beispiele), was man als Action ausführen muss.
      Vermutlich wär es sinnvoller, ein paar Tutorials die für jeden Dienst zeigen was gemacht werden muss. Wenn gewünscht kann ich für Pushover eins machen.

      dtp wrote:


      Telegram ist wirklich ein sehr umfangreicher Push-Dienst. Hier mal ein Bild, wie's bei mir auf dem iPhone aussieht. Ich erhalte z.B. viele Statusinformationen über meine HomeMatic.


      Hehe, bei mir sieht es so ähnlich aus:
      [Blocked Image: http://www.bernd-schubart.de/downloads/doorpi/IMG_3575.jpg]

      Ich glaube man kann bei Pushover auch ein Bild mitschicken, das werde ich gleich mal checken (hatte bis jetzt keine Notwendigkeit dies zu tun). Wenn nicht wär das ein echter Vorteil von Telegram.
    • RE: Push-Nachrichten von DoorPi

      Joker wrote:


      Ich glaube man kann bei Pushover auch ein Bild mitschicken, das werde ich gleich mal checken (hatte bis jetzt keine Notwendigkeit dies zu tun). Wenn nicht wär das ein echter Vorteil von Telegram.


      Ich hatte Prowl, Pushover, Pushalot und Telegram installiert und getestet. Bilder kannst du meines Wissens nach nur direkt mit Telegram versenden. Die anderen Push-Dienste erlauben das leider (noch) nicht. Pushover bietet den Vorteil, dass man Texte in der App einfärben kann.

      Hier mal ein Beispiel für meine HomeMatic-Konfiguration:



      Telegram bietet aber die Vorteile, dass es komplett kostenlos ist, auf nahezu allen Plattformen läuft und auch eine ordentliche Verschlüsselung mitbringt. Ich hatte auch schon Kontakt mit den Leuten von Telegram, ob sie evtl. nicht mal die HTML-Tags für farbige Texte unterstützen wollen. Bisher gehen ja leider nur fett und kursiv markierte Texte. Sie denken drüber nach. ;)

      Bis dann,

      Thorsten
      [hr]
      Übrigens,

      möchte man eine Push-Nachricht per Telegram in fett gedruckten Buchstaben erhalten, wenn jemand an der Tür geklingelt hat, dann kann man dies mit folgendem String in einem entsprechenden Shell-Skript, nennen wir es zum Beispiel "Klingelnachricht.sh" erreichen:

      Source Code

      1. curl -s -k "https://api.telegram.org/bot<API-Schlüssel des Bots>/sendMessage" -d text="<b>Es hat an der Tuer geklingelt!</b>" -d chat_id=<chatid> -d parse_mode=html


      Das Skript dann noch in oben beschriebener Weise in die doorpi.ini einbinden:

      Source Code

      1. [EVENT_OnKeyPressed_onboardpins.0]
      2. 10 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelnachricht.sh


      Wenn man bereits das obige Shellskript "Klingelbild.sh" verwendet, kann man die Kodezeile natürlich auch dort einbinden.

      Bis dann,

      Thorsten

      The post was edited 1 time, last by dtp ().

    • RE: Push-Nachrichten von DoorPi

      Ja du hast Recht, Pushover kann scheinbar keine Bilder verschicken.

      Was geht ist, eine URL zu schicken, diese wird dann klickbar dargestellt und führt zu der entsprechenden Aktion, z.B. im Browser öffnen. Ich denke damit kann ich erstmal leben, da müsste ich mir nur was basteln dass z.B. Klingelbilder wo liegen wo sie zugreifbar sind. Das ist aber kein Problem da ich mein Smartphone so konfiguriert habe, dass bei Aufruf von bestimmten URLs automatisch eine VPN Verbindung aufgebaut wird.

      Also ich werde in jedem Fall erstmal bei Pushover bleiben, das wäre mir jetzt zu viel Aufwand alles auf was anderes umzustellen.
    • RE: Push-Nachrichten von DoorPi

      Joker wrote:


      Also ich werde in jedem Fall erstmal bei Pushover bleiben, das wäre mir jetzt zu viel Aufwand alles auf was anderes umzustellen.


      Deswegen hatte ich für die HomeMatic das oben verlinkte zentrale Push-Nachrichten-Programm entwickelt. Ein Wechsel zu anderen Push-Diensten ist damit in recht kurzer Zeit erledigt. Für die vier erwähnten Push-Dienste ist es sogar nur noch das entsprechende Setzen einer einzigen Systemvariablen. Wenn mal ein Push-Dienst ausfällt, kann ich so innerhalb einer Sekunde alles auf einen anderen Push-Dienst "umleiten".
    • RE: Push-Nachrichten von DoorPi

      dtp wrote:


      Ja. Zum Beispiel Pushalot oder Prowl. Telegram bietet aber den Vorteil, dass man damit auch direkt Bilder versenden kann.

      Ich nutze z.B. in Verbindung mit dem DoorPi das RPi-Cam-Web-Interface. Einen Snapshot davon lasse ich mir beim Klingeln über das Shellskript "Klingelbild.sh" mit dem Inhalt

      Source Code

      1. wget -O /home/pi/Haustürklingel.jpg http://192.168.0.21:80/cam.jpg
      2. curl -s -k "https://api.telegram.org/bot<API-Schlüssel des Bots>/sendPhoto" -F chat_id=<chatid> -F photo="@/home/pi/Haustürklingel.jpg"


      in das Home-Verzeichnis von pi schieben und dann per Telegramm zusenden (nicht vergessen, die Rechte gemäß obiger Anleitung zu setzen). 

      Der entsprechende Eintrag in der doorpi.ini lautet dann bei Nutzung von Pin 0 des PiFace-Moduls zur Erkennung der Klingelbetätigung:

      Source Code

      1. [EVENT_OnKeyPressed_onboardpins.0]
      2. 10 = os_execute:/usr/local/etc/DoorPi/scripts/Klingelbild.sh
      3. ...
      4. [onboardpins_InputPins]
      5. 0 = call:**610#611#612#613


      Gruß,

      Thorsten


      Hallo Thorsten,

      habe den mjpg-streamer durch das RPi Cam Web Interface ersetzt...

      aber wie bekomm ich da den automatischen Snapshot beim Klingeln hin???

      Grüße
    • RE: Push-Nachrichten von DoorPi

      j0j0182 wrote:


      habe den mjpg-streamer durch das RPi Cam Web Interface ersetzt...

      aber wie bekomm ich da den automatischen Snapshot beim Klingeln hin???


      Hab's selbst noch nicht getestet, aber es sollte eigentlich klappen mit dem Event

      Source Code

      1. 10 = take_snapshot:http://192.168.0.21:80/cam.jpg


      Wobei Du natürlich die IP-Adresse an Deine Gegebenheiten anpassen musst.

      Gruß,

      Thorsten
    • RE: Push-Nachrichten von DoorPi

      Oke, danke!

      das mit dem snapshot funktioniert...

      ... nur das mit dem versenden nicht...

      hier mal das, was in der /Klingelbild.sh steht

      wget -O /backup/record-video/Klingelbild.jpg http://192.168.183.34:9080/cam.jpg
      curl -s -k "https://api.telegram.org/botxxx/sendPhoto" -F chat_id=1xxx8 -F photo="@ /backup/record-video/Klingelbild.jpg"