Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Klingelbild Script/Telegram Fehler

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Klingelbild Script/Telegram Fehler

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

      Hey,

      ich habe seit heute folgendes Problem, die Bilder die ich mit meiner Camera aufnehme werden nicht gesendet, allerdings in der Pfadangabe ordnungsgemäss gespeichert,

      Fehler

      ! ````
      telegram.0 2018-11-21 15:03:23.277 error Cannot send photo [chatId - 796402639]: Error: ETELEGRAM: 400 Bad Request: IMAGE_PROCESS_FAILED
      telegram.0 2018-11-21 15:03:23.235 error Cannot send photo [chatId - 796402639]: Error: ETELEGRAM: 400 Bad Request: IMAGE_PROCESS_FAILED
      javascript.0 2018-11-21 15:03:23.112 info script.js.Klingel.Camera2: sendTo(adapter=telegram.0, cmd=[object Object], msg=undefined)
      javascript.0 2018-11-21 15:03:20.111 info script.js.Klingel.Camera2: setTimeout(ms=3000)
      telegram.0 2018-11-21 15:03:12.875 error Cannot send photo [chatId - 796402639]: Error: ETELEGRAM: 400 Bad Request: IMAGE_PROCESS_FAILED
      telegram.0 2018-11-21 15:03:12.865 error Cannot send photo [chatId - 796402639]: Error: ETELEGRAM: 400 Bad Request: IMAGE_PROCESS_FAILED
      javascript.0 2018-11-21 15:03:12.753 info script.js.Klingel.Camera2: sendTo(adapter=telegram.0, cmd=[object Object], msg=undefined)
      javascript.0 2018-11-21 15:03:09.751 info script.js.Klingel.Camera2: setTimeout(ms=3000)
      javascript.0 2018-11-21 15:03:06.742 info script.js.Klingel.Camera2: registered 1 subscription and 0 schedules
      javascript.0 2018-11-21 15:03:06.742 info script.js.Klingel.Camera2: setTimeout(ms=10000)
      javascript.0 2018-11-21 15:03:06.171 info script.js.Klingel.Camera2: subscribe: {"pattern":{"id":"hm-rpc.1.NEQ0955114.1.PRESS_SHORT","change":"any"},"name":"script.js.Klingel.Camera2"}
      javascript.0 2018-11-21 15:03:06.108 info Start javascript script.js.Klingel.Camera2
      javascript.0 2018-11-21 15:03:06.101 info Stop script script.js.Klingel.Camera2

      
      Als Script verwende ich dieses :
      
      >! ````
      // -------------------------------------------------------------------------
      // Dieses Script überwaht den Zustand eines Bewegungsmelders und speichert bei
      // Aktivierung ein Bild einer Überwachnungskamera in einem Vereichnis und sendet
      // dieses via Telegram.0-Adapter. Nach 10 Sek wird ein weiteres Bild erstellt und
      // gesendet.
      // Die Speicherung der Bilder erfolgt als "Stack", d.h. das aktuellste Bild bekommt
      // immer den Suffix "0" und es werden n Bilder mit den Suffixen 1..n-1 vorgehalten
      // Uhula 2017.11
      // -------------------------------------------------------------------------
      >! // -------------------------------------------------------------------------
      // Konfiguration
      // -------------------------------------------------------------------------
            // Objekt-ID des Bewegungsmelders
      const oidLichtBewmelderTuer = "hm-rpc.1.NEQ0955114.1.PRESS_SHORT"/*HM-Sen-DB-PCB NEQ0955114:1.PRESS_SHORT*/;
            // URL zur Kamera umn ein Image (jpg) zu erhalten
      const cam_url = "http://192.168.181.51/SSS_Get.php?stream=jpeg&camera=2&snapQual=0";
            // Pfadangabe für die Speicherung der Bilder, der Pfad muss existieren
      const dest_path = '/cam/';
            // Anzahl der Bilder, die vorgehalten werden sollen
      const imageCountMax = 9999;                
            // Prefix für die Bildnamen
      const imageNamePre = "eingangstuer_"; 
      >! // -------------------------------------------------------------------------
      // Scriptteil
      // -------------------------------------------------------------------------
      var request = require('request');
      var fs      = require('fs');
      >! // Bild an telegram schicken 
      function sendImage (path) { 
          try {
              var stats = fs.statSync(path);
              var msg = formatDate(stats.birthtime,"DD.MM.YYYY hh:mm:ss") + " " + path.substring(path.lastIndexOf('/')+1);
              sendTo('telegram.0', {
                  text:                   path,
                  caption:                msg, 
                  disable_notification:   true
              });
          }
          catch(err) { if (err.code != "ENOENT") log(err); }     
      }
      >! // löscht eine Datei synchron (wartet auf das Ergebnis)
      function fsUnlinkSync(path) {
          try {
              var stats = fs.statSync(path);
              try { fs.unlinkSync(path); }
              catch(err) { if (err.code != "ENOENT") log(err); }     
          }
          catch(err) { if (err.code != "ENOENT") log(err); }
      }
      >! // benennt eine Datei synchron um (wartet auf das Ergebnis)
      function fsRenameSync(oldPath, newPath) {
          try {
              var stats = fs.statSync(oldPath);
              try { fs.renameSync(oldPath, newPath); }
              catch(err) { if (err.code != "ENOENT") log(err); }     
          }
          catch(err) { if (err.code != "ENOENT") log(err); }
      }
      >! // Bild speichern und senden
      function saveImage() {
          // Bild imageCountMax-1 löschen
          fsUnlinkSync( dest_path + imageNamePre + (imageCountMax-1) + ".jpg" );
          // Bilder 0..imageCountMax-2 umbenennen
          for (var i=imageCountMax-2; i >= 0; i-- ) { 
              fsRenameSync(dest_path + imageNamePre + i + ".jpg", dest_path + imageNamePre + (i+1) + ".jpg"); 
          }
          // Bild 0 löschen
          var fname = imageNamePre + "0.jpg";
          fsUnlinkSync( fname );
          // Bild holen und speichern
          request.get({url: cam_url, encoding: 'binary'}, function (err, response, body) {
              fs.writeFile(dest_path + fname, body, 'binary', function(err) {
                  if (err) {
                      log('Fehler beim Bild speichern: ' + err, 'warn');
                  } else {
                      // dem Filesystem 2 Sek Zeit zum Speichern lassen
                      setTimeout(function() { sendImage(dest_path + fname); }, 3000); 
                  }
              }); 
          });
      }
      >! // sofort ein Bild senden und nach 10 Sek erneut
      function onEvent() {
          saveImage();
          setTimeout(function() { saveImage(); }, 10 * 1000); 
      }
      >! // Ereignisroutine
      on({id: oidLichtBewmelderTuer, change: "any"}, function (obj) {
          onEvent( obj );
      });
      >! // manuelle Ausführung (Test)
      onEvent();
      

      Wer weiss rat für mich? Berechtigungen sind alle gesetzt mit 777

      Läuft auf Synology ds218+ mit 8gb und bis gestern eigentlich ohne Probleme!

      1 Reply Last reply Reply Quote 0
      • wendy2702
        wendy2702 last edited by

        Verzeichnis / Platte voll ?

        // Anzahl der Bilder, die vorgehalten werden sollen
        const imageCountMax = 9999;                
        
        1 Reply Last reply Reply Quote 0
        • H
          HoffmannOs last edited by

          Hat sich erledigt, im Script hat sich die IP durch Neukonfig geändert!

          Soviele Sachen die man immer beachten muss 😄

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

          Support us

          ioBroker
          Community Adapters
          Donate

          640
          Online

          31.6k
          Users

          79.5k
          Topics

          1.3m
          Posts

          2
          3
          966
          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