Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Error/Bug
  4. [gelöst]Fehler seit Javascript Update beim speichern vom Webcam Bild

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

[gelöst]Fehler seit Javascript Update beim speichern vom Webcam Bild

Scheduled Pinned Locked Moved Error/Bug
8 Posts 6 Posters 4.7k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • coyoteC Offline
    coyoteC Offline
    coyote
    Most Active
    wrote on last edited by
    #1

    Seit dem Update bekomme ich Fehler im Log beim abspeichern meines Webcam Bildes

    Hier das Log und das Script dazu. Hat vorher ohne weiteres funktioniert.

    // Foto an Telegram senden, wenn geklingelt wird oder wenn von Telegram angefragt wird.
    
    var source_url = "http://XXXXXXXXXX/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=XXXXXXX",
        dest_path = '/opt/iobroker/foto/'; // der Pfad 
    var Download = require('download');
    var fs = require('fs');
    
    function speichereFoto () {
        new Download({mode: '755'}).get(source_url).dest(dest_path).run(function(err, files){
              fs.rename('/opt/iobroker/foto/CGIProxy.fcgi!cmd=snapPicture2&usr=admin&pwd=XXXXXXX', '/opt/iobroker/foto/kamerabild.jpeg');  //Datei umbenennen
            if (err) log('Fehler beim Bild speichern: ' + err, 'warn');
            else log('Webcam Bild gespeichert');
    
        });
    }
    
    // Bild an telegram schicken
    function sendeFoto (pfad) {
        sendTo('telegram', pfad);
        log('Bild per telegram verschickt');
    }
    
    function aktion () {
            speichereFoto();
            setTimeout(function() {
                sendeFoto(dest_path + 'kamerabild.jpeg'); // hier Dateinamen des abgespeicherten Bildes angeben
            }, 5 * 1000); // 5s Verzögerung
    }
    
    // ab hier den Trigger einfügen
    var idKlingel = "hm-rpc.0.MEQ00XXXXX.1.PRESS_SHORT";   //Klingelsensor
    on({id: idKlingel, val: true}, function() {
            sendTo('telegram', "Es hat geklingelt");
            aktion();
    });
    
    on("telegram.0.communicate.request", function (obj) {
       if  (obj.newState.val == "[Coyote]kamera" || obj.newState.val == "[Coyote]/kamera") {  //Telegram anfrage
            aktion();
           setState("telegram.0.communicate.request","leer");
       }
    });
    

    536_fehler.png

    1 Reply Last reply
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      wrote on last edited by
      #2

      @coyote:

      Seit dem Update bekomme ich Fehler im Log beim abspeichern meines Webcam Bildes

      Hier das Log und das Script dazu. Hat vorher ohne weiteres funktioniert.

      // Foto an Telegram senden, wenn geklingelt wird oder wenn von Telegram angefragt wird.
      
      var source_url = "http://XXXXXXXXXX/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=admin&pwd=XXXXXXX",
          dest_path = '/opt/iobroker/foto/'; // der Pfad 
      var Download = require('download');
      var fs = require('fs');
      
      function speichereFoto () {
          new Download({mode: '755'}).get(source_url).dest(dest_path).run(function(err, files){
                fs.rename('/opt/iobroker/foto/CGIProxy.fcgi!cmd=snapPicture2&usr=admin&pwd=XXXXXXX', '/opt/iobroker/foto/kamerabild.jpeg');  //Datei umbenennen
              if (err) log('Fehler beim Bild speichern: ' + err, 'warn');
              else log('Webcam Bild gespeichert');
              
          });
      }
      
      // Bild an telegram schicken
      function sendeFoto (pfad) {
          sendTo('telegram', pfad);
          log('Bild per telegram verschickt');
      }
      
      function aktion () {
              speichereFoto();
              setTimeout(function() {
                  sendeFoto(dest_path + 'kamerabild.jpeg'); // hier Dateinamen des abgespeicherten Bildes angeben
              }, 5 * 1000); // 5s Verzögerung
      }
      
      // ab hier den Trigger einfügen
      var idKlingel = "hm-rpc.0.MEQ00XXXXX.1.PRESS_SHORT";   //Klingelsensor
      on({id: idKlingel, val: true}, function() {
              sendTo('telegram', "Es hat geklingelt");
              aktion();
      });
      
      on("telegram.0.communicate.request", function (obj) {
         if  (obj.newState.val == "[Coyote]kamera" || obj.newState.val == "[Coyote]/kamera") {  //Telegram anfrage
              aktion();
             setState("telegram.0.communicate.request","leer");
         }
      });
      

      filename="Fehler.PNG" index="0">~~ Ich verdächtige "Download". Kann sein, dass das Packet nicht mehr da ist?

      Ich empfehle dieses verfahren zu benutzen:

      https://github.com/ioBroker/ioBroker.telegram#usage

      mit "request"

      1 Reply Last reply
      1
      • P Offline
        P Offline
        pix
        wrote on last edited by
        #3

        Hallo,

        das habe ich auch gemerkt. So wie es Bluefox oben verlinkt hat, habe ich es jetzt umgesetzt. Funktioniert einwandfrei.

        ! /* Testskript BILDSPEICHERUNG ! todo: zum Umbenennen der Datei gilp-rename nutzen ! soll bei Aktion Webcam Bild speichern und per telegram senden Skript ist normalerweise inaktiv und wird zur per ScriptEnabled ausgelöst erstellt 30.03.2016 16.04.2016 nahc Update des telegram Adapters durch Bluefox ist es jetzt einfacher, Dateien zu senden 25.05.2016 download Funktion entfernt und durch request ersetzt */ ! var source_url = 'http://IPundFOTOderKAMERA', // Kamerabild zB http://kameraserver:9090/image1.jpg dest_path = '/Users/pix/Documents/iobroker/iobroker-data/webcam/'; ! var request = require('request'); var fs = require('fs'); ! // Bild an telegram schicken (immer Dienst 3) function sendImage (pfad) { setTimeout(function() { sendTo('telegram.1', pfad); log('Webcam Bild per telegram verschickt'); }, 2 * 1000); } ! // Bild speichern function saveImage() { request.get({url: source_url, encoding: 'binary'}, function (err, response, body) { fs.writeFile(dest_path + 'image1.jpg', body, 'binary', function(err) { ! if (err) { log('Fehler beim Bild speichern: ' + err, 'warn'); } else { log('Webcam Bild gespeichert'); sendImage(dest_path + 'image1.jpg'); } }); }); } ! // bei Skriptstart ausführen saveImage(); ! // selbständig Skript wieder anhalten (nach 12s) setStateDelayed('javascript.' + instance + '.scriptEnabled.' + name.slice(10), false, 12*1000); !
        Bitte den Pfad zum Kamerabild anpassen. Der Dateiname des Fotos (hier image1.jpg), kommt weiter unten noch zweimal vor. Bitte auch anpassen.
        ! Und schließlich muss der dest_path auch noch angepasst werden, das ist nämlich oben im Skript ein Ordner auf einem OS X ioBroker Server.

        Dieses Skript ist normalerweise deaktiviert. Es wird per telegram-Befehl oder per VIS oder aus anderen Skripten über den Datenpunkt Javascript.2.scriptEnabled.SKRIPTNAME aktiviert (true/false). Im Skript ist eine Zeile (die man auch für alle anderen Skripte nutzen kann), die das Skript nach Ablauf einer Zeit wieder deaktiviert.````
        // selbständig Skript wieder anhalten (nach 12s)
        setStateDelayed('javascript.' + instance + '.scriptEnabled.' + name.slice(10), false, 12*1000);

        So werden alle Aktionen im Skript nur ausgeführt, wenn es aktiv ist. Dieses Vorgehen umgeht die on-Funktion. Das ist vielleicht für manche zu Beginn einfacher.
        
        Gruß
        
        Pix

        ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

        1 Reply Last reply
        1
        • coyoteC Offline
          coyoteC Offline
          coyote
          Most Active
          wrote on last edited by
          #4

          Danke euch beiden.

          Nutze jetzt das Script von pix, funktioniert tadelos, danke Dir

          1 Reply Last reply
          0
          • M Offline
            M Offline
            Michmu
            wrote on last edited by
            #5

            Wie bekomme ich den Script denn über einen Script gestartet ?Hab was getestet aber so wie ich es gemacht habe geht es nicht.

            var idKlingel = "hm-rpc.0.Mxxxxx.1.PRESS_SHORT"/Klingelsensor.PRESS_SHORT/; // Homematic Klingelsensor

            on({id: idKlingel, val: true}, function() // on lauscht auf Klingelsignal

            on Javascript.0.scriptEnabled.Skript3 true) ;

            1 Reply Last reply
            0
            • G Offline
              G Offline
              galferiz
              wrote on last edited by
              #6

              Hi Leute,

              Brauch mal ne schnell Script Hilfe für:

              var idKlingel = "hm-rpc.0.NEQ1111072.1.STATE"; // Homematic Klingelsensor
              
              on({id: idKlingel, val: true}, function() 
              on javascript.0.scriptEnabled.Test.Telegram_Bild_2 true );
              

              Geht leider nicht bei mir:

              Fehler ist:````
              error script.js.Test.Telegram_Bild2_starten compile failed: SyntaxError: Unexpected identifier

              
              Wo ist der Syntax Fehler? Er scheint die Klammer zu vermissen, aber die steht ja hinter dem Datenpunkt des Scripts?

              Nach Weihnachten ist vor Weihnachten

              1 Reply Last reply
              0
              • G Offline
                G Offline
                galferiz
                wrote on last edited by
                #7

                Lösung:

                var idKlingel = "hm-rpc.0.NEQ11xxxx.1.STATE"; // Homematic Klingelsensor
                var idSkript = 'javascript.0.scriptEnabled.Test.TelegramBild2'; // Skript, dass aktiviert werden soll
                
                on({id: idKlingel, val: true}, 
                function(obj) { // on lauscht auf Klingelsignal, also ist der TRIGGER / AUSLÖSER
                    setState(idSkript, true);
                });
                

                Nach Weihnachten ist vor Weihnachten

                1 Reply Last reply
                0
                • C Offline
                  C Offline
                  CBeck
                  wrote on last edited by
                  #8

                  Ich verstehe es nicht und ich habe schon ziemlich viel ausprobiert. Aber das Script von pix scheint bei mir keine Bilder abzuspeichern. Es wird zwar immer eine Datei angelegt, aber sie ist immer nur 351B groß.

                  Als Verzeichnis habe ich /tmp und /cam versucht.

                  Als Links habe ich dies versucht (Aufgerufen im Browser sehe ich ein Bild!):

                  var source_url = 'http://admin:pwd@192.168.2.118:8080/mjp … .cgi?chn=0',

                  var source_url = 'http://192.168.2.118:8080/mjpeg/snap.cgi?chn=0',

                  var source_url = 'http://192.168.2.118:8080/mjpeg/snap.cgi', (auch mit user und pwd)

                  Hat jemand eine Idee? Ich denke, es bestimmt ein typischer Anfängerfehler...

                  Danke!!

                  1 Reply Last reply
                  0
                  Reply
                  • Reply as topic
                  Log in to reply
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  440

                  Online

                  32.4k

                  Users

                  81.4k

                  Topics

                  1.3m

                  Posts
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  ioBroker Community 2014-2025
                  logo
                  • Login

                  • Don't have an account? Register

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Recent
                  • Tags
                  • Unread 0
                  • Categories
                  • Unreplied
                  • Popular
                  • GitHub
                  • Docu
                  • Hilfe