NEWS

Pushover und file: mitschicken



  • Das Script soll ein Kamerabild bei Auslösung über pushover senden.
    Leider wird das Bild nur als Pfad gesendet und nicht als Bild.

    Kann sich das mal bitte wer ansehen wo ich da meinen Denkfehler habe?
    INFO: In der function "sendPushover" mit "file: dest_path", kommt gar kein pushover mehr durch.

    var timer;
    var request;  
    var message = "CAM Aktion erkannt"             
     
     
    // Netatmo Datenpunkt auf Änderung prüfen
    on('netatmo.0.Mein-Haus.LastEventData.LastEventId', function (obj) {
        
        // max. alle 30 sec
        if (!timer) {
            timer = setTimeout(function () {
                timer = null;
            }, 30000);
        }
        
    	saveImage();
    });
     
     
    function saveImage() 
    {
        var fs = require('fs');
        var source_url; 
     
        // Datum und Zeit
        var today = new Date();
        var d = new Date();
        var mm = d.getMonth() + 1;
        var dd = d.getDate();
        var yy = d.getFullYear();
        // Doppelpunkte im string druch - ersetzen
        var timestamp = today.toLocaleTimeString().replace(/:/g,"-"); 
     
        // Zielpfad + Dateiname
        var dest_path = '/opt/iobroker/iobroker-data/files/webcam/' + 'image-' + dd + '-' + mm + '-' + yy + '-' + timestamp + '.jpg' ;
        log(dest_path);
       
       //---- aktuelle URL für Bild holen.  --------------------------------------
     
        // LastEventId selektieren
        var LastEventId = getState("netatmo.0.Mein-Haus.LastEventData.LastEventId").val;         
     
        // Fuer Event CamId fuer LastEvendId selektieren 
        var id_path   =   'netatmo.0.Mein-Haus.Events.' + LastEventId + '.camera_id';        
        var CamId = getState(id_path).val;
     
        // CAM IDs selektieren
        var CAM1 = getState("netatmo.0.Mein-Haus.Vorplatz.info.id").val;
        var CAM2 = getState("netatmo.0.Mein-Haus.Wohnzimmer.info.id").val;
     
        // Welche CAM hat angeschlagen 
        if (CamId === CAM1)
        {
            source_url = getState("netatmo.0.Mein-Haus.Vorplatz.live.picture").val;
        }
        else if (CamId === CAM2)
        {
            source_url = getState("netatmo.0.Mein-Haus.Wohnzimmer.live.picture").val;
        }
        else
        {
            log('keine CAM erkannt');
    		source_url = 0;
        }
     
        if (source_url)
        {
            request.get({url: source_url, encoding: 'binary'}, function (err, response, body) 
            {
    			fs.writeFile(dest_path, body, 'binary', function(err)  {
                    if (err) 
                    {
                        setTimeout(function() { sendPushover('Fehler beim Bild speichern!'); }, 2000); 
                    }
                    else
                    {
                        setTimeout(function() { sendPushover(dest_path); }, 2000); 
                    }
                });
            });
        }
    }
     
     
    // Bild oder Text über Pushover senden 
    function sendPushover (fname) { 
        try {
            sendTo('pushover.0', {
                title:                  fname,
                message:                message, 
                //file:                   dest_path,
                //disable_notification:   true
            });
        }
        catch(err) { if (err.code != "ENOENT") log(err); }  
        setTimeout(function() {  }, 3000); 
    }
    

  • Starter

    Das folgende Skript hat sehr ähnliche Funktionen (dort wird ein Bild gesendet per Email).
    Eventuell gibt es analogien:

    https://forum.iobroker.net/topic/29461/aufruf-welche-guten-javascripts-setzt-ihr-ein/25



  • @Tirador

    Danke, ich hab es umgeschrieben von einem Telegramm Script.
    Nur das das bei Pushover anscheinend anders funktioniert hab ich nicht gedacht.
    Beim Mail ist es wieder anders.

    Gibt es niemanden der das mit Pushover schon realisiert hat?

    Liebe Grüße Erich





  • @ticaki

    danke für die info. das hab ich installiert, aber es ist meines Erachtens ein scriptfehler vorhanden. Ich finde ihn leider nicht.


Log in to reply
 

Suggested Topics

  • 5
  • 4
  • 38
  • 3
  • 5
  • 5
  • 6
  • 9

1.4k
Online

32.2k
Users

38.9k
Topics

527.1k
Posts