Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Skriptumbau von Telegram zu Pushover

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Skriptumbau von Telegram zu Pushover

    This topic has been deleted. Only users with topic management privileges can see it.
    • nurChris
      nurChris last edited by

      Hallo.

      Ich habe folgendes Skript welches ein snap meiner Überwachungskamera erstellt und es bei ausgelöstem trigger an telegram sendet.

      Das funktioniert sehr zuverlässig:

      // Telegram Bild senden
      
      var source_url = 'http://192.168.178.XXX/tmpfs/snap.jpg?usr=XXX&pwd=XXX', // Adresse der INSTAR-5907HD HOF Kamera
          dest_path = '/opt/iobroker/iobroker-data/snaps/'; // Hier werden die Snaps gespeichert auf dem RPI
      var Trigger = "javascript.0.Eigene_Datenpunkte.INFO.PostIstDa"/*Variablen.Test-Trigger*/; //Trigger (PostIstDaTrigger)
      var Nachricht = ""; // Nachricht, zu dem Bild wenn gewünscht
      
      var request = require('request');
      var fs      = require('fs');
      var picdate = formatDate(new Date(), "JJJJ-MM-TT SS-mm-ss")+'.jpg'; // Snap-Dateinamen
      
      // Bild an telegram schicken
      function sendImage (pfad) {
          setTimeout(function() {
              sendTo('telegram.0', pfad);
              log('Instar5907HD Hof snap per telegram verschickt');
          }, 1 * 5); // SENDE DELAY!(timeout) 1 x 5 ms
          sendTo("telegram.0", Nachricht);    // <-- nach der Timeout funktion ausführen
      }
      
      // Bild speichern
      function saveImage() {
          request.get({url: source_url, encoding: 'binary'}, function (err, response, body) {
              fs.writeFile(dest_path + picdate, body, 'binary', function(err) { // Hier wird der erzeugte Namen (picdate) mit dem Pfad zum Speichern übergeben!
      
              if (err) {
                  log('Fehler beim Bild speichern: ' + err, 'warn');
              } else {
                  log('Webcam Bild gespeichert');
                  sendImage(dest_path + picdate); // Hier hole ich mir den erzeugten Namen rein
              }
            }); 
          });
      }
      
      //Trigger
      on ({id: Trigger, val: true}, function () {
          saveImage();
      });
      
      

      Nun ist es möglich, dass auch Pushover Bilder sendet (siehe dazu https://forum.iobroker.net/viewtopic.php?f=21&t=13287&p=198193&hilit=Pushover+Attachments#p198193)

      JS ist völlig neu für mich, ich komme gerade so eben mit dem Grundprinzipien von Blockly klar und leider sind wohl deshalb all meine Versuche mein Skript dahingehend umzubauen gescheitert.

      Mit Copy&Paste und Trial and Error kam ich nicht ans Ziel, mein Skript sieht zuletzt so aus:

      // Pushover Bild senden
      
      var source_url = 'http://192.168.178.XXX/tmpfs/snap.jpg?usr=XXX&pwd=XXX', // Adresse der INSTAR-5907HD HOF Kamera
          dest_path = '/opt/iobroker/iobroker-data/snaps/'; // Hier werden die Snaps gespeichert auf dem RPI
      var Trigger = "javascript.0.Eigene_Datenpunkte.INFO.PostIstDa"/*Variablen.Test-Trigger*/; //Trigger (PostIstDaTrigger)
      var Nachricht = ""; // Nachricht, zu dem Bild wenn gewünscht
      
      var request = require('request');
      var fs      = require('fs');
      var picdate = formatDate(new Date(), "JJJJ-MM-TT SS-mm-ss")+'.jpg'; // Snap-Dateinamen
      
      // Bild an telegram schicken
      function sendImage (pfad) {
          setTimeout(function() {
             sendTo("pushover", {
           message: 'Dies ist eine Test-Nachricht', // mandatory - your text message
           title: 'ioBroker', // optional - your message's title, otherwise your app's name is used
           sound: 'magic', // optional - the name of one of the sounds supported by device clients to override the user's default sound choice
                        // pushover, bike, bugle, cashregister, classical, cosmic, falling,
                        // gamelan, incoming, intermission, magic, mechanical, pianobar, siren,
                        // spacealarm, tugboat, alien, climb, persistent, echo, updown, none
          priority: 0, // optional (-2, -1, 0, 1, 2)
                        // -2 to always send as a quiet notification,
                        // 1 to display as high-priority and bypass the user's quiet hours, or
                        // 2 to also require confirmation from the user
          file: '(dest_path + picdate)', // optional - attachment
        //token: 'API/KEY token', // optional - add other than configurated token to the call
        //url: , // optional - a supplementary URL to show with your message
        //url_title: , // optional - a title for your supplementary URL, otherwise just the URL is shown
        //device: , // optional - your user's device name to send the message directly to that device, rather than all of the user's devices
        //timestamp // optional - a Unix timestamp of your message's date and time to display to the user, rather than the time your message is received by our API
      });
          }, 1 * 5); // SENDE DELAY!(timeout) 1 x 5 ms
          sendTo("pushover.0", Nachricht);    // <-- nach der Timeout funktion ausführen
      }
      
      // Bild speichern
      function saveImage() {
          request.get({url: source_url, encoding: 'binary'}, function (err, response, body) {
              fs.writeFile(dest_path + picdate, body, 'binary', function(err) { // Hier wird der erzeugte Namen (picdate) mit dem Pfad zum Speichern übergeben!
      
              if (err) {
                  log('Fehler beim Bild speichern: ' + err, 'warn');
              } else {
                  log('Webcam Bild gespeichert');
                  sendImage(dest_path + picdate); // Hier hole ich mir den erzeugten Namen rein
                  //sendImage(dest_path + 'image2.jpg'); // So war es vorher!
              }
            }); 
          });
      }
      
      //Trigger
      on ({id: Trigger, val: true}, function () {
          saveImage();
      });
      
      

      Pushover sendet mit dem Skript noch die Nachricht "Dies ist eine Test-Nachricht" aber der snap, also das Bild wird nicht mitgesendet.

      Vielleicht hat einer der Profis hier Zeit und Muße mir da auszuhelfen, oder ist das zuviel verlangt? Ist ja schon etwas Code den man erstmal nachvollziehen muss.

      Viele Grüße

      Chris

      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      888
      Online

      31.8k
      Users

      79.9k
      Topics

      1.3m
      Posts

      1
      1
      1765
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo