Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Fehler im Script

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Fehler im Script

Geplant Angeheftet Gesperrt Verschoben JavaScript
18 Beiträge 5 Kommentatoren 1.2k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ChaotC Offline
    ChaotC Offline
    Chaot
    schrieb am zuletzt editiert von
    #1

    Ich habe ein Script vor einiger Zeit erstellt. Aber seit ein Bekannter von mir das verändert hat während ich weg war hat das Ding einen Fehler, den ich nicht richtig zuordnen kann.
    Es wäre nett wenn mir da jemand etwas zur Hand gehen könnte.
    Die Fehlermeldung:

    
    javascript.0 2024-07-07 10:24:14.691	error	at processImmediate (node:internal/timers:478:21)
    javascript.0 2024-07-07 10:24:14.691	error	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11200:62)
    javascript.0 2024-07-07 10:24:14.691	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:644:29)
    javascript.0 2024-07-07 10:24:14.690	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1427:38)
    javascript.0 2024-07-07 10:24:14.690	error	at Object.<anonymous> (script.js.Klingel.Klingelsequenz:32:26)
    javascript.0 2024-07-07 10:24:14.689	error	at ErstelleBildsequenz (script.js.Klingel.Klingelsequenz:39:5)
    javascript.0 2024-07-07 10:24:14.676	error	Error in callback: ReferenceError: request is not defined
    

    Das Script

    // Klingelscript
    // mit Alexa Routinenaufruf, Bilder erfassen, Versand an 2 Empfänger
    // Stand 06-2023
    
    const debug = false;
    //const cam_img = "http://192.168.xxxx:1984/api/frame.jpeg?src=door";
    const cam_img = "http://192.168.xxxx:8095/192_168_8_90_80"
    const img_path = '/opt/iobroker/iobroker-data/files/0_userdata.0';
    
    const fs = require('fs');
    
    var BildSequenz = 0;        // Sequenznummer 0:Bereit, 1: (0s) Bild1+Mail, 2: (+5s) Bild2+Mail, 3: (+10s) Bild3, 4: (+10s) Bild4
    var TBildsequenz = null;    // Timer-Objekt für die Bildsequenz
    var TVis = null;            // Timer um VIS umzuschalten
    
    
    on({id: 'sonoff.0.Eingang.POWER2', val: true}, function (obj) {
       
       // Benachrichtigung über Alexa das es geklingelt hat
       setState("alexa2.0.Echo-Devices.G2A0P30774xxxxxx.Routines.11242dac-bf4b-4ab1-9521-37fdf5dae51d", true); //Klingelt auf Echo Theke
       setState("alexa2.0.Echo-Devices.G2A0P30774xxxxxx.Routines.519a9af4-c186-4715-9e5d-cb4ac65c0c67", true); //Klingelt auf Dot Anrichte
       setState("onvif.0.192_168_8_90_80.remote.snapshot", true, false);
       setState("tr-064.0.states.ring"/*ring*/, '**610 ,20');
       // Soll jedesmal eine Bildsequenz neu gestartet werden, egal ob die vorherige Sequenz abgeschlossen ist, dann diesen Code:
       //BildSequenz = 0;
       //ErstelleBildsequenz();
       //
       // ...ODER soll das Speichern der Bildersequenz komplett abgeschlossen werden und auch ein erneuter Klingeldruck vorher keine neue
       // Sequenz auslösen dann diesen Code:
       if(debug) log("Bildsequenz: " + BildSequenz);
       if(BildSequenz == 0) ErstelleBildsequenz(); // Die Bildsequenz wird nur erstellt wenn vorherige Bildsequenz abgeschlossen ist
    });
    
    function ErstelleBildsequenz()
    {   if(BildSequenz == 0) BildSequenz=1;  // Bildsequenz
       if(debug) log("Bildsequenz: " + BildSequenz);
       // Bild von Cam holen
       request.get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
           if(err) {
               // Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten
               log('Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten: ' + err);
               BildSequenz = 0; // Die Bildsequenz zurück setzen
           } else
           {   // Bild wurde von der Kamera geladen. Jetzt speichern wir das Bild 
               fs.writeFile(img_path+'/alarm' + BildSequenz + '.jpg', body, 'binary', function(err) {
                   if (err) {
                       // Beim Speichern des Bildes ist ein Fehler aufgetreten
                       log('Fehler beim Speichern von Bild ' + img_path + '/alarm' + BildSequenz + '.jpg   Fehler:' + err, 'warn');
                       BildSequenz = 0; // Die Bildsequenz zurück setzen
                   } else {
    
                        // Bild wurde jetzt gespeichert wir können das Bild jetzt weiterverarbeiten
                       switch(BildSequenz)
                       {   case 1: // Bild 1 direkt nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                               // Vis umschalten: Setze View auf Kamerabild
                               if(debug) log(" 1 Bildsequenz: " + BildSequenz);
                               setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Tuer"}'); 
                               if(TVis) clearTimeout(TVis); // Falls noch ein Timer läuft, diesen beenden.
                               TVis = setTimeout(function () {
                                           setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Info"}');
       			                    }, 60000); // Nach 60 Sekunden, zeige wieder Start View
                               
                               // Nächstes Bild soll nach 5s aufgenommen werden
                               BildSequenz = 2;                          
                               if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                               TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 5000);
                               break;                            
                           case 2: // Bild 2, 5s nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                               // Bild per Mail verschicken
                               if(debug) log(" 2 Bildsequenz: " + BildSequenz);
                               
                               // Nächstes Bild soll nach 10s aufgenommen werden                            
                               BildSequenz = 3;
                               if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen                           
                               TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                               break;                         
                           case 3: // Bild 3 soll nach weiteren 10s gespeichert werden
                               
                               // Nächstes Bild soll nach 10s aufgenommen werden
                               if(debug) log(" 3 Bildsequenz: " + BildSequenz);                                                  
                               BildSequenz = 4;
                               if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                               TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                               break;                                                    
                           case 4: // Bild 4 soll nach weiteren 10s gespeichert werden
                               
                               // Damit ist die Sequenz beendet und die Klingel ist wieder bereit
                               if(debug) log(" 4 Bildsequenz: " + BildSequenz);
                               sendTo("email", "send", {
                                       text: '',
                                       to: 'xxxxx.com',
                                       subject: 'Klingel',
                                       attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                               sendTo("email", "send", {
                                       text: '',
                                       to: 'xxxxx@gmail.com',
                                       subject: 'Klingel',
                                       attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                               
                               BildSequenz = 0;
                               if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                            break;
                           default:
                               // Nicht bekannter Sequenzschritt bzw. es gab einen Fehler beim holen oder speichern 
                           break;
                       };
                   };
               });
           };
       });
    }
    

    ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

    haselchenH T HomoranH paul53P 4 Antworten Letzte Antwort
    0
    • ChaotC Chaot

      Ich habe ein Script vor einiger Zeit erstellt. Aber seit ein Bekannter von mir das verändert hat während ich weg war hat das Ding einen Fehler, den ich nicht richtig zuordnen kann.
      Es wäre nett wenn mir da jemand etwas zur Hand gehen könnte.
      Die Fehlermeldung:

      
      javascript.0 2024-07-07 10:24:14.691	error	at processImmediate (node:internal/timers:478:21)
      javascript.0 2024-07-07 10:24:14.691	error	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11200:62)
      javascript.0 2024-07-07 10:24:14.691	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:644:29)
      javascript.0 2024-07-07 10:24:14.690	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1427:38)
      javascript.0 2024-07-07 10:24:14.690	error	at Object.<anonymous> (script.js.Klingel.Klingelsequenz:32:26)
      javascript.0 2024-07-07 10:24:14.689	error	at ErstelleBildsequenz (script.js.Klingel.Klingelsequenz:39:5)
      javascript.0 2024-07-07 10:24:14.676	error	Error in callback: ReferenceError: request is not defined
      

      Das Script

      // Klingelscript
      // mit Alexa Routinenaufruf, Bilder erfassen, Versand an 2 Empfänger
      // Stand 06-2023
      
      const debug = false;
      //const cam_img = "http://192.168.xxxx:1984/api/frame.jpeg?src=door";
      const cam_img = "http://192.168.xxxx:8095/192_168_8_90_80"
      const img_path = '/opt/iobroker/iobroker-data/files/0_userdata.0';
      
      const fs = require('fs');
      
      var BildSequenz = 0;        // Sequenznummer 0:Bereit, 1: (0s) Bild1+Mail, 2: (+5s) Bild2+Mail, 3: (+10s) Bild3, 4: (+10s) Bild4
      var TBildsequenz = null;    // Timer-Objekt für die Bildsequenz
      var TVis = null;            // Timer um VIS umzuschalten
      
      
      on({id: 'sonoff.0.Eingang.POWER2', val: true}, function (obj) {
         
         // Benachrichtigung über Alexa das es geklingelt hat
         setState("alexa2.0.Echo-Devices.G2A0P30774xxxxxx.Routines.11242dac-bf4b-4ab1-9521-37fdf5dae51d", true); //Klingelt auf Echo Theke
         setState("alexa2.0.Echo-Devices.G2A0P30774xxxxxx.Routines.519a9af4-c186-4715-9e5d-cb4ac65c0c67", true); //Klingelt auf Dot Anrichte
         setState("onvif.0.192_168_8_90_80.remote.snapshot", true, false);
         setState("tr-064.0.states.ring"/*ring*/, '**610 ,20');
         // Soll jedesmal eine Bildsequenz neu gestartet werden, egal ob die vorherige Sequenz abgeschlossen ist, dann diesen Code:
         //BildSequenz = 0;
         //ErstelleBildsequenz();
         //
         // ...ODER soll das Speichern der Bildersequenz komplett abgeschlossen werden und auch ein erneuter Klingeldruck vorher keine neue
         // Sequenz auslösen dann diesen Code:
         if(debug) log("Bildsequenz: " + BildSequenz);
         if(BildSequenz == 0) ErstelleBildsequenz(); // Die Bildsequenz wird nur erstellt wenn vorherige Bildsequenz abgeschlossen ist
      });
      
      function ErstelleBildsequenz()
      {   if(BildSequenz == 0) BildSequenz=1;  // Bildsequenz
         if(debug) log("Bildsequenz: " + BildSequenz);
         // Bild von Cam holen
         request.get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
             if(err) {
                 // Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten
                 log('Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten: ' + err);
                 BildSequenz = 0; // Die Bildsequenz zurück setzen
             } else
             {   // Bild wurde von der Kamera geladen. Jetzt speichern wir das Bild 
                 fs.writeFile(img_path+'/alarm' + BildSequenz + '.jpg', body, 'binary', function(err) {
                     if (err) {
                         // Beim Speichern des Bildes ist ein Fehler aufgetreten
                         log('Fehler beim Speichern von Bild ' + img_path + '/alarm' + BildSequenz + '.jpg   Fehler:' + err, 'warn');
                         BildSequenz = 0; // Die Bildsequenz zurück setzen
                     } else {
      
                          // Bild wurde jetzt gespeichert wir können das Bild jetzt weiterverarbeiten
                         switch(BildSequenz)
                         {   case 1: // Bild 1 direkt nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                                 // Vis umschalten: Setze View auf Kamerabild
                                 if(debug) log(" 1 Bildsequenz: " + BildSequenz);
                                 setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Tuer"}'); 
                                 if(TVis) clearTimeout(TVis); // Falls noch ein Timer läuft, diesen beenden.
                                 TVis = setTimeout(function () {
                                             setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Info"}');
         			                    }, 60000); // Nach 60 Sekunden, zeige wieder Start View
                                 
                                 // Nächstes Bild soll nach 5s aufgenommen werden
                                 BildSequenz = 2;                          
                                 if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                 TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 5000);
                                 break;                            
                             case 2: // Bild 2, 5s nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                                 // Bild per Mail verschicken
                                 if(debug) log(" 2 Bildsequenz: " + BildSequenz);
                                 
                                 // Nächstes Bild soll nach 10s aufgenommen werden                            
                                 BildSequenz = 3;
                                 if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen                           
                                 TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                                 break;                         
                             case 3: // Bild 3 soll nach weiteren 10s gespeichert werden
                                 
                                 // Nächstes Bild soll nach 10s aufgenommen werden
                                 if(debug) log(" 3 Bildsequenz: " + BildSequenz);                                                  
                                 BildSequenz = 4;
                                 if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                 TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                                 break;                                                    
                             case 4: // Bild 4 soll nach weiteren 10s gespeichert werden
                                 
                                 // Damit ist die Sequenz beendet und die Klingel ist wieder bereit
                                 if(debug) log(" 4 Bildsequenz: " + BildSequenz);
                                 sendTo("email", "send", {
                                         text: '',
                                         to: 'xxxxx.com',
                                         subject: 'Klingel',
                                         attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                                 sendTo("email", "send", {
                                         text: '',
                                         to: 'xxxxx@gmail.com',
                                         subject: 'Klingel',
                                         attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                                 
                                 BildSequenz = 0;
                                 if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                              break;
                             default:
                                 // Nicht bekannter Sequenzschritt bzw. es gab einen Fehler beim holen oder speichern 
                             break;
                         };
                     };
                 });
             };
         });
      }
      

      haselchenH Offline
      haselchenH Offline
      haselchen
      Most Active
      schrieb am zuletzt editiert von haselchen
      #2

      @chaot

      Zeile 38 Cam URL?
      Bin überhaupt kein JS Typ, aber vielleicht hab ich ja den Fehler gefunden 😬

      Plus Zeile 6 und 7

      Davon ist eine URL ja auskommentiert

      Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

      1 Antwort Letzte Antwort
      0
      • ChaotC Chaot

        Ich habe ein Script vor einiger Zeit erstellt. Aber seit ein Bekannter von mir das verändert hat während ich weg war hat das Ding einen Fehler, den ich nicht richtig zuordnen kann.
        Es wäre nett wenn mir da jemand etwas zur Hand gehen könnte.
        Die Fehlermeldung:

        
        javascript.0 2024-07-07 10:24:14.691	error	at processImmediate (node:internal/timers:478:21)
        javascript.0 2024-07-07 10:24:14.691	error	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11200:62)
        javascript.0 2024-07-07 10:24:14.691	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:644:29)
        javascript.0 2024-07-07 10:24:14.690	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1427:38)
        javascript.0 2024-07-07 10:24:14.690	error	at Object.<anonymous> (script.js.Klingel.Klingelsequenz:32:26)
        javascript.0 2024-07-07 10:24:14.689	error	at ErstelleBildsequenz (script.js.Klingel.Klingelsequenz:39:5)
        javascript.0 2024-07-07 10:24:14.676	error	Error in callback: ReferenceError: request is not defined
        

        Das Script

        // Klingelscript
        // mit Alexa Routinenaufruf, Bilder erfassen, Versand an 2 Empfänger
        // Stand 06-2023
        
        const debug = false;
        //const cam_img = "http://192.168.xxxx:1984/api/frame.jpeg?src=door";
        const cam_img = "http://192.168.xxxx:8095/192_168_8_90_80"
        const img_path = '/opt/iobroker/iobroker-data/files/0_userdata.0';
        
        const fs = require('fs');
        
        var BildSequenz = 0;        // Sequenznummer 0:Bereit, 1: (0s) Bild1+Mail, 2: (+5s) Bild2+Mail, 3: (+10s) Bild3, 4: (+10s) Bild4
        var TBildsequenz = null;    // Timer-Objekt für die Bildsequenz
        var TVis = null;            // Timer um VIS umzuschalten
        
        
        on({id: 'sonoff.0.Eingang.POWER2', val: true}, function (obj) {
           
           // Benachrichtigung über Alexa das es geklingelt hat
           setState("alexa2.0.Echo-Devices.G2A0P30774xxxxxx.Routines.11242dac-bf4b-4ab1-9521-37fdf5dae51d", true); //Klingelt auf Echo Theke
           setState("alexa2.0.Echo-Devices.G2A0P30774xxxxxx.Routines.519a9af4-c186-4715-9e5d-cb4ac65c0c67", true); //Klingelt auf Dot Anrichte
           setState("onvif.0.192_168_8_90_80.remote.snapshot", true, false);
           setState("tr-064.0.states.ring"/*ring*/, '**610 ,20');
           // Soll jedesmal eine Bildsequenz neu gestartet werden, egal ob die vorherige Sequenz abgeschlossen ist, dann diesen Code:
           //BildSequenz = 0;
           //ErstelleBildsequenz();
           //
           // ...ODER soll das Speichern der Bildersequenz komplett abgeschlossen werden und auch ein erneuter Klingeldruck vorher keine neue
           // Sequenz auslösen dann diesen Code:
           if(debug) log("Bildsequenz: " + BildSequenz);
           if(BildSequenz == 0) ErstelleBildsequenz(); // Die Bildsequenz wird nur erstellt wenn vorherige Bildsequenz abgeschlossen ist
        });
        
        function ErstelleBildsequenz()
        {   if(BildSequenz == 0) BildSequenz=1;  // Bildsequenz
           if(debug) log("Bildsequenz: " + BildSequenz);
           // Bild von Cam holen
           request.get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
               if(err) {
                   // Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten
                   log('Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten: ' + err);
                   BildSequenz = 0; // Die Bildsequenz zurück setzen
               } else
               {   // Bild wurde von der Kamera geladen. Jetzt speichern wir das Bild 
                   fs.writeFile(img_path+'/alarm' + BildSequenz + '.jpg', body, 'binary', function(err) {
                       if (err) {
                           // Beim Speichern des Bildes ist ein Fehler aufgetreten
                           log('Fehler beim Speichern von Bild ' + img_path + '/alarm' + BildSequenz + '.jpg   Fehler:' + err, 'warn');
                           BildSequenz = 0; // Die Bildsequenz zurück setzen
                       } else {
        
                            // Bild wurde jetzt gespeichert wir können das Bild jetzt weiterverarbeiten
                           switch(BildSequenz)
                           {   case 1: // Bild 1 direkt nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                                   // Vis umschalten: Setze View auf Kamerabild
                                   if(debug) log(" 1 Bildsequenz: " + BildSequenz);
                                   setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Tuer"}'); 
                                   if(TVis) clearTimeout(TVis); // Falls noch ein Timer läuft, diesen beenden.
                                   TVis = setTimeout(function () {
                                               setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Info"}');
           			                    }, 60000); // Nach 60 Sekunden, zeige wieder Start View
                                   
                                   // Nächstes Bild soll nach 5s aufgenommen werden
                                   BildSequenz = 2;                          
                                   if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                   TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 5000);
                                   break;                            
                               case 2: // Bild 2, 5s nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                                   // Bild per Mail verschicken
                                   if(debug) log(" 2 Bildsequenz: " + BildSequenz);
                                   
                                   // Nächstes Bild soll nach 10s aufgenommen werden                            
                                   BildSequenz = 3;
                                   if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen                           
                                   TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                                   break;                         
                               case 3: // Bild 3 soll nach weiteren 10s gespeichert werden
                                   
                                   // Nächstes Bild soll nach 10s aufgenommen werden
                                   if(debug) log(" 3 Bildsequenz: " + BildSequenz);                                                  
                                   BildSequenz = 4;
                                   if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                   TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                                   break;                                                    
                               case 4: // Bild 4 soll nach weiteren 10s gespeichert werden
                                   
                                   // Damit ist die Sequenz beendet und die Klingel ist wieder bereit
                                   if(debug) log(" 4 Bildsequenz: " + BildSequenz);
                                   sendTo("email", "send", {
                                           text: '',
                                           to: 'xxxxx.com',
                                           subject: 'Klingel',
                                           attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                                   sendTo("email", "send", {
                                           text: '',
                                           to: 'xxxxx@gmail.com',
                                           subject: 'Klingel',
                                           attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                                   
                                   BildSequenz = 0;
                                   if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                break;
                               default:
                                   // Nicht bekannter Sequenzschritt bzw. es gab einen Fehler beim holen oder speichern 
                               break;
                           };
                       };
                   });
               };
           });
        }
        

        T Offline
        T Offline
        TT-Tom
        schrieb am zuletzt editiert von TT-Tom
        #3

        @chaot

        
        Error in callback: ReferenceError: request is not defined
        
        

        request(request.get) ist nicht definiert.

        Du solltest das Script auf httpget umstellen, da request auch abgemeldet ist.

        Gruß Tom
        https://github.com/tt-tom17
        Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

        NSPanel Script Wiki
        https://github.com/joBr99/nspanel-lovelace-ui/wiki

        NSPanel Adapter Wiki
        https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

        ChaotC 1 Antwort Letzte Antwort
        0
        • T TT-Tom

          @chaot

          
          Error in callback: ReferenceError: request is not defined
          
          

          request(request.get) ist nicht definiert.

          Du solltest das Script auf httpget umstellen, da request auch abgemeldet ist.

          ChaotC Offline
          ChaotC Offline
          Chaot
          schrieb am zuletzt editiert von
          #4

          @tt-tom Danke für die Info.
          Das wollte der Kumpel eigentlich machen, weil ich das nicht kapiere wie das geht.
          Aber da scheint was schiefgelaufen zu sein.

          ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

          1 Antwort Letzte Antwort
          0
          • ChaotC Chaot

            Ich habe ein Script vor einiger Zeit erstellt. Aber seit ein Bekannter von mir das verändert hat während ich weg war hat das Ding einen Fehler, den ich nicht richtig zuordnen kann.
            Es wäre nett wenn mir da jemand etwas zur Hand gehen könnte.
            Die Fehlermeldung:

            
            javascript.0 2024-07-07 10:24:14.691	error	at processImmediate (node:internal/timers:478:21)
            javascript.0 2024-07-07 10:24:14.691	error	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11200:62)
            javascript.0 2024-07-07 10:24:14.691	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:644:29)
            javascript.0 2024-07-07 10:24:14.690	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1427:38)
            javascript.0 2024-07-07 10:24:14.690	error	at Object.<anonymous> (script.js.Klingel.Klingelsequenz:32:26)
            javascript.0 2024-07-07 10:24:14.689	error	at ErstelleBildsequenz (script.js.Klingel.Klingelsequenz:39:5)
            javascript.0 2024-07-07 10:24:14.676	error	Error in callback: ReferenceError: request is not defined
            

            Das Script

            // Klingelscript
            // mit Alexa Routinenaufruf, Bilder erfassen, Versand an 2 Empfänger
            // Stand 06-2023
            
            const debug = false;
            //const cam_img = "http://192.168.xxxx:1984/api/frame.jpeg?src=door";
            const cam_img = "http://192.168.xxxx:8095/192_168_8_90_80"
            const img_path = '/opt/iobroker/iobroker-data/files/0_userdata.0';
            
            const fs = require('fs');
            
            var BildSequenz = 0;        // Sequenznummer 0:Bereit, 1: (0s) Bild1+Mail, 2: (+5s) Bild2+Mail, 3: (+10s) Bild3, 4: (+10s) Bild4
            var TBildsequenz = null;    // Timer-Objekt für die Bildsequenz
            var TVis = null;            // Timer um VIS umzuschalten
            
            
            on({id: 'sonoff.0.Eingang.POWER2', val: true}, function (obj) {
               
               // Benachrichtigung über Alexa das es geklingelt hat
               setState("alexa2.0.Echo-Devices.G2A0P30774xxxxxx.Routines.11242dac-bf4b-4ab1-9521-37fdf5dae51d", true); //Klingelt auf Echo Theke
               setState("alexa2.0.Echo-Devices.G2A0P30774xxxxxx.Routines.519a9af4-c186-4715-9e5d-cb4ac65c0c67", true); //Klingelt auf Dot Anrichte
               setState("onvif.0.192_168_8_90_80.remote.snapshot", true, false);
               setState("tr-064.0.states.ring"/*ring*/, '**610 ,20');
               // Soll jedesmal eine Bildsequenz neu gestartet werden, egal ob die vorherige Sequenz abgeschlossen ist, dann diesen Code:
               //BildSequenz = 0;
               //ErstelleBildsequenz();
               //
               // ...ODER soll das Speichern der Bildersequenz komplett abgeschlossen werden und auch ein erneuter Klingeldruck vorher keine neue
               // Sequenz auslösen dann diesen Code:
               if(debug) log("Bildsequenz: " + BildSequenz);
               if(BildSequenz == 0) ErstelleBildsequenz(); // Die Bildsequenz wird nur erstellt wenn vorherige Bildsequenz abgeschlossen ist
            });
            
            function ErstelleBildsequenz()
            {   if(BildSequenz == 0) BildSequenz=1;  // Bildsequenz
               if(debug) log("Bildsequenz: " + BildSequenz);
               // Bild von Cam holen
               request.get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
                   if(err) {
                       // Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten
                       log('Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten: ' + err);
                       BildSequenz = 0; // Die Bildsequenz zurück setzen
                   } else
                   {   // Bild wurde von der Kamera geladen. Jetzt speichern wir das Bild 
                       fs.writeFile(img_path+'/alarm' + BildSequenz + '.jpg', body, 'binary', function(err) {
                           if (err) {
                               // Beim Speichern des Bildes ist ein Fehler aufgetreten
                               log('Fehler beim Speichern von Bild ' + img_path + '/alarm' + BildSequenz + '.jpg   Fehler:' + err, 'warn');
                               BildSequenz = 0; // Die Bildsequenz zurück setzen
                           } else {
            
                                // Bild wurde jetzt gespeichert wir können das Bild jetzt weiterverarbeiten
                               switch(BildSequenz)
                               {   case 1: // Bild 1 direkt nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                                       // Vis umschalten: Setze View auf Kamerabild
                                       if(debug) log(" 1 Bildsequenz: " + BildSequenz);
                                       setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Tuer"}'); 
                                       if(TVis) clearTimeout(TVis); // Falls noch ein Timer läuft, diesen beenden.
                                       TVis = setTimeout(function () {
                                                   setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Info"}');
               			                    }, 60000); // Nach 60 Sekunden, zeige wieder Start View
                                       
                                       // Nächstes Bild soll nach 5s aufgenommen werden
                                       BildSequenz = 2;                          
                                       if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                       TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 5000);
                                       break;                            
                                   case 2: // Bild 2, 5s nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                                       // Bild per Mail verschicken
                                       if(debug) log(" 2 Bildsequenz: " + BildSequenz);
                                       
                                       // Nächstes Bild soll nach 10s aufgenommen werden                            
                                       BildSequenz = 3;
                                       if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen                           
                                       TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                                       break;                         
                                   case 3: // Bild 3 soll nach weiteren 10s gespeichert werden
                                       
                                       // Nächstes Bild soll nach 10s aufgenommen werden
                                       if(debug) log(" 3 Bildsequenz: " + BildSequenz);                                                  
                                       BildSequenz = 4;
                                       if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                       TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                                       break;                                                    
                                   case 4: // Bild 4 soll nach weiteren 10s gespeichert werden
                                       
                                       // Damit ist die Sequenz beendet und die Klingel ist wieder bereit
                                       if(debug) log(" 4 Bildsequenz: " + BildSequenz);
                                       sendTo("email", "send", {
                                               text: '',
                                               to: 'xxxxx.com',
                                               subject: 'Klingel',
                                               attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                                       sendTo("email", "send", {
                                               text: '',
                                               to: 'xxxxx@gmail.com',
                                               subject: 'Klingel',
                                               attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                                       
                                       BildSequenz = 0;
                                       if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                    break;
                                   default:
                                       // Nicht bekannter Sequenzschritt bzw. es gab einen Fehler beim holen oder speichern 
                                   break;
                               };
                           };
                       });
                   };
               });
            }
            

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #5

            @chaot sagte in Fehler im Script:

            request.get({url: cam_img, encoding: 'b

            ist noch drin

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            1 Antwort Letzte Antwort
            0
            • ChaotC Chaot

              Ich habe ein Script vor einiger Zeit erstellt. Aber seit ein Bekannter von mir das verändert hat während ich weg war hat das Ding einen Fehler, den ich nicht richtig zuordnen kann.
              Es wäre nett wenn mir da jemand etwas zur Hand gehen könnte.
              Die Fehlermeldung:

              
              javascript.0 2024-07-07 10:24:14.691	error	at processImmediate (node:internal/timers:478:21)
              javascript.0 2024-07-07 10:24:14.691	error	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11200:62)
              javascript.0 2024-07-07 10:24:14.691	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:644:29)
              javascript.0 2024-07-07 10:24:14.690	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1427:38)
              javascript.0 2024-07-07 10:24:14.690	error	at Object.<anonymous> (script.js.Klingel.Klingelsequenz:32:26)
              javascript.0 2024-07-07 10:24:14.689	error	at ErstelleBildsequenz (script.js.Klingel.Klingelsequenz:39:5)
              javascript.0 2024-07-07 10:24:14.676	error	Error in callback: ReferenceError: request is not defined
              

              Das Script

              // Klingelscript
              // mit Alexa Routinenaufruf, Bilder erfassen, Versand an 2 Empfänger
              // Stand 06-2023
              
              const debug = false;
              //const cam_img = "http://192.168.xxxx:1984/api/frame.jpeg?src=door";
              const cam_img = "http://192.168.xxxx:8095/192_168_8_90_80"
              const img_path = '/opt/iobroker/iobroker-data/files/0_userdata.0';
              
              const fs = require('fs');
              
              var BildSequenz = 0;        // Sequenznummer 0:Bereit, 1: (0s) Bild1+Mail, 2: (+5s) Bild2+Mail, 3: (+10s) Bild3, 4: (+10s) Bild4
              var TBildsequenz = null;    // Timer-Objekt für die Bildsequenz
              var TVis = null;            // Timer um VIS umzuschalten
              
              
              on({id: 'sonoff.0.Eingang.POWER2', val: true}, function (obj) {
                 
                 // Benachrichtigung über Alexa das es geklingelt hat
                 setState("alexa2.0.Echo-Devices.G2A0P30774xxxxxx.Routines.11242dac-bf4b-4ab1-9521-37fdf5dae51d", true); //Klingelt auf Echo Theke
                 setState("alexa2.0.Echo-Devices.G2A0P30774xxxxxx.Routines.519a9af4-c186-4715-9e5d-cb4ac65c0c67", true); //Klingelt auf Dot Anrichte
                 setState("onvif.0.192_168_8_90_80.remote.snapshot", true, false);
                 setState("tr-064.0.states.ring"/*ring*/, '**610 ,20');
                 // Soll jedesmal eine Bildsequenz neu gestartet werden, egal ob die vorherige Sequenz abgeschlossen ist, dann diesen Code:
                 //BildSequenz = 0;
                 //ErstelleBildsequenz();
                 //
                 // ...ODER soll das Speichern der Bildersequenz komplett abgeschlossen werden und auch ein erneuter Klingeldruck vorher keine neue
                 // Sequenz auslösen dann diesen Code:
                 if(debug) log("Bildsequenz: " + BildSequenz);
                 if(BildSequenz == 0) ErstelleBildsequenz(); // Die Bildsequenz wird nur erstellt wenn vorherige Bildsequenz abgeschlossen ist
              });
              
              function ErstelleBildsequenz()
              {   if(BildSequenz == 0) BildSequenz=1;  // Bildsequenz
                 if(debug) log("Bildsequenz: " + BildSequenz);
                 // Bild von Cam holen
                 request.get({url: cam_img, encoding: 'binary'}, function (err, response, body) {
                     if(err) {
                         // Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten
                         log('Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten: ' + err);
                         BildSequenz = 0; // Die Bildsequenz zurück setzen
                     } else
                     {   // Bild wurde von der Kamera geladen. Jetzt speichern wir das Bild 
                         fs.writeFile(img_path+'/alarm' + BildSequenz + '.jpg', body, 'binary', function(err) {
                             if (err) {
                                 // Beim Speichern des Bildes ist ein Fehler aufgetreten
                                 log('Fehler beim Speichern von Bild ' + img_path + '/alarm' + BildSequenz + '.jpg   Fehler:' + err, 'warn');
                                 BildSequenz = 0; // Die Bildsequenz zurück setzen
                             } else {
              
                                  // Bild wurde jetzt gespeichert wir können das Bild jetzt weiterverarbeiten
                                 switch(BildSequenz)
                                 {   case 1: // Bild 1 direkt nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                                         // Vis umschalten: Setze View auf Kamerabild
                                         if(debug) log(" 1 Bildsequenz: " + BildSequenz);
                                         setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Tuer"}'); 
                                         if(TVis) clearTimeout(TVis); // Falls noch ein Timer läuft, diesen beenden.
                                         TVis = setTimeout(function () {
                                                     setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Neu/Info"}');
                 			                    }, 60000); // Nach 60 Sekunden, zeige wieder Start View
                                         
                                         // Nächstes Bild soll nach 5s aufgenommen werden
                                         BildSequenz = 2;                          
                                         if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                         TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 5000);
                                         break;                            
                                     case 2: // Bild 2, 5s nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                                         // Bild per Mail verschicken
                                         if(debug) log(" 2 Bildsequenz: " + BildSequenz);
                                         
                                         // Nächstes Bild soll nach 10s aufgenommen werden                            
                                         BildSequenz = 3;
                                         if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen                           
                                         TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                                         break;                         
                                     case 3: // Bild 3 soll nach weiteren 10s gespeichert werden
                                         
                                         // Nächstes Bild soll nach 10s aufgenommen werden
                                         if(debug) log(" 3 Bildsequenz: " + BildSequenz);                                                  
                                         BildSequenz = 4;
                                         if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                         TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                                         break;                                                    
                                     case 4: // Bild 4 soll nach weiteren 10s gespeichert werden
                                         
                                         // Damit ist die Sequenz beendet und die Klingel ist wieder bereit
                                         if(debug) log(" 4 Bildsequenz: " + BildSequenz);
                                         sendTo("email", "send", {
                                                 text: '',
                                                 to: 'xxxxx.com',
                                                 subject: 'Klingel',
                                                 attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                                         sendTo("email", "send", {
                                                 text: '',
                                                 to: 'xxxxx@gmail.com',
                                                 subject: 'Klingel',
                                                 attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                                         
                                         BildSequenz = 0;
                                         if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                      break;
                                     default:
                                         // Nicht bekannter Sequenzschritt bzw. es gab einen Fehler beim holen oder speichern 
                                     break;
                                 };
                             };
                         });
                     };
                 });
              }
              

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              @chaot sagte: request is not defined

              Oben einfügen:

              const request = require('request');
              

              oder auf httpGet() umstellen.

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • ChaotC Offline
                ChaotC Offline
                Chaot
                schrieb am zuletzt editiert von
                #7

                @paul53
                Ok, habe das jetzt scheinbar fehlerfrei auf httpget umgestellt, laufe aber in den nächsten Fehler

                // Klingelscript
                // mit Alexa Routinenaufruf, Bilder erfassen, Versand an 2 Empfänger
                // Stand 06-2023
                
                const debug = false;
                //const cam_img = "http://192.168.xxxx:1984/api/frame.jpeg?src=door";
                const cam_img = "http://192.168.xxxx:8095/192_168_8_xxxxx"
                const img_path = '/opt/iobroker/iobroker-data/files/0_userdata.0';
                
                const fs = require('fs');
                
                var BildSequenz = 0;        // Sequenznummer 0:Bereit, 1: (0s) Bild1+Mail, 2: (+5s) Bild2+Mail, 3: (+10s) Bild3, 4: (+10s) Bild4
                var TBildsequenz = null;    // Timer-Objekt für die Bildsequenz
                var TVis = null;            // Timer um VIS umzuschalten
                
                
                on({id: 'sonoff.0.Eingang.POWER2', val: true}, function (obj) {
                   
                   // Benachrichtigung über Alexa das es geklingelt hat
                   setState("alexa2.0.Echo-Devices.G2A0P3077406xxxx.Routines.11242dac-bf4b-4ab1-9521-37fdf5dae51d", true); //Klingelt auf Echo Theke
                   setState("alexa2.0.Echo-Devices.G2A0P3077406xxxx.Routines.519a9af4-c186-4715-9e5d-cb4ac65c0c67", true); //Klingelt auf Dot Anrichte
                   setState("onvif.0.192_168_8_xxxxx.remote.snapshot", true, false);
                   setState("tr-064.0.states.ring"/*ring*/, '**610 ,20');
                   // Soll jedesmal eine Bildsequenz neu gestartet werden, egal ob die vorherige Sequenz abgeschlossen ist, dann diesen Code:
                   //BildSequenz = 0;
                   //ErstelleBildsequenz();
                   //
                   // ...ODER soll das Speichern der Bildersequenz komplett abgeschlossen werden und auch ein erneuter Klingeldruck vorher keine neue
                   // Sequenz auslösen dann diesen Code:
                   if(debug) log("Bildsequenz: " + BildSequenz);
                   if(BildSequenz == 0) ErstelleBildsequenz(); // Die Bildsequenz wird nur erstellt wenn vorherige Bildsequenz abgeschlossen ist
                });
                
                function ErstelleBildsequenz()
                {   if(BildSequenz == 0) BildSequenz=1;  // Bildsequenz
                   if(debug) log("Bildsequenz: " + BildSequenz);
                   // Bild von Cam holen
                   httpGet(`http://192.168.xxxx:8095/192_168_8_xxxxx`, { responseType: 'arraybuffer' }, (err, response) => {
                   if (err) {
                           // Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten
                           log('Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten: ' + err);
                           BildSequenz = 0; // Die Bildsequenz zurück setzen
                       } else
                       {   // Bild wurde von der Kamera geladen. Jetzt speichern wir das Bild 
                           fs.writeFile(img_path+'/alarm' + BildSequenz + '.jpg', 'binary', function(err) {
                               if (err) {
                                   // Beim Speichern des Bildes ist ein Fehler aufgetreten
                                   log('Fehler beim Speichern von Bild ' + img_path + '/alarm' + BildSequenz + '.jpg   Fehler:' + err, 'warn');
                                   BildSequenz = 0; // Die Bildsequenz zurück setzen
                               } else {
                
                                    // Bild wurde jetzt gespeichert wir können das Bild jetzt weiterverarbeiten
                                   switch(BildSequenz)
                                   {   case 1: // Bild 1 direkt nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                                           // Vis umschalten: Setze View auf Kamerabild
                                           if(debug) log(" 1 Bildsequenz: " + BildSequenz);
                                           setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Touch/Tuer"}'); 
                                           if(TVis) clearTimeout(TVis); // Falls noch ein Timer läuft, diesen beenden.
                                           TVis = setTimeout(function () {
                                                       setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Touch/Info"}');
                   			                    }, 60000); // Nach 60 Sekunden, zeige wieder Start View
                                           
                                           // Nächstes Bild soll nach 5s aufgenommen werden
                                           BildSequenz = 2;                          
                                           if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                           TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 5000);
                                           break;                            
                                       case 2: // Bild 2, 5s nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                                           // Bild per Mail verschicken
                                           if(debug) log(" 2 Bildsequenz: " + BildSequenz);
                                           
                                           // Nächstes Bild soll nach 10s aufgenommen werden                            
                                           BildSequenz = 3;
                                           if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen                           
                                           TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                                           break;                         
                                       case 3: // Bild 3 soll nach weiteren 10s gespeichert werden
                                           
                                           // Nächstes Bild soll nach 10s aufgenommen werden
                                           if(debug) log(" 3 Bildsequenz: " + BildSequenz);                                                  
                                           BildSequenz = 4;
                                           if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                           TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                                           break;                                                    
                                       case 4: // Bild 4 soll nach weiteren 10s gespeichert werden
                                           
                                           // Damit ist die Sequenz beendet und die Klingel ist wieder bereit
                                           if(debug) log(" 4 Bildsequenz: " + BildSequenz);
                                           sendTo("email", "send", {
                                                   text: '',
                                                   to: 'xxxx@gmail.com',
                                                   subject: 'Klingel',
                                                   attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                                           sendTo("email", "send", {
                                                   text: '',
                                                   to: 'xxxxx@gmail.com',
                                                   subject: 'Klingel',
                                                   attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                                           
                                           BildSequenz = 0;
                                           if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                        break;
                                       default:
                                           // Nicht bekannter Sequenzschritt bzw. es gab einen Fehler beim holen oder speichern 
                                       break;
                                   };
                               };
                           });
                       };
                   });
                }
                

                javascript.0 2024-07-07 12:22:35.274	error	at processTicksAndRejections (node:internal/process/task_queues:95:5)
                javascript.0 2024-07-07 12:22:35.274	error	at /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1203:38
                javascript.0 2024-07-07 12:22:35.274	error	at Object.<anonymous> (script.js.Klingel.Klingelsequenz:46:16)
                javascript.0 2024-07-07 12:22:35.274	error	at ProtectFs.writeFile (/opt/iobroker/node_modules/iobroker.javascript/lib/protectFs.js:70:9)
                javascript.0 2024-07-07 12:22:35.273	error	at checkProtected (/opt/iobroker/node_modules/iobroker.javascript/lib/protectFs.js:21:19)
                javascript.0 2024-07-07 12:22:35.273	error	Error in callback: Error: Permission denied
                javascript.0 2024-07-07 12:22:35.265	error	May not read /opt/iobroker/iobroker-data/files/0_userdata.0/alarm1.jpg - use writeFile instead
                

                ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                paul53P 1 Antwort Letzte Antwort
                0
                • ChaotC Chaot

                  @paul53
                  Ok, habe das jetzt scheinbar fehlerfrei auf httpget umgestellt, laufe aber in den nächsten Fehler

                  // Klingelscript
                  // mit Alexa Routinenaufruf, Bilder erfassen, Versand an 2 Empfänger
                  // Stand 06-2023
                  
                  const debug = false;
                  //const cam_img = "http://192.168.xxxx:1984/api/frame.jpeg?src=door";
                  const cam_img = "http://192.168.xxxx:8095/192_168_8_xxxxx"
                  const img_path = '/opt/iobroker/iobroker-data/files/0_userdata.0';
                  
                  const fs = require('fs');
                  
                  var BildSequenz = 0;        // Sequenznummer 0:Bereit, 1: (0s) Bild1+Mail, 2: (+5s) Bild2+Mail, 3: (+10s) Bild3, 4: (+10s) Bild4
                  var TBildsequenz = null;    // Timer-Objekt für die Bildsequenz
                  var TVis = null;            // Timer um VIS umzuschalten
                  
                  
                  on({id: 'sonoff.0.Eingang.POWER2', val: true}, function (obj) {
                     
                     // Benachrichtigung über Alexa das es geklingelt hat
                     setState("alexa2.0.Echo-Devices.G2A0P3077406xxxx.Routines.11242dac-bf4b-4ab1-9521-37fdf5dae51d", true); //Klingelt auf Echo Theke
                     setState("alexa2.0.Echo-Devices.G2A0P3077406xxxx.Routines.519a9af4-c186-4715-9e5d-cb4ac65c0c67", true); //Klingelt auf Dot Anrichte
                     setState("onvif.0.192_168_8_xxxxx.remote.snapshot", true, false);
                     setState("tr-064.0.states.ring"/*ring*/, '**610 ,20');
                     // Soll jedesmal eine Bildsequenz neu gestartet werden, egal ob die vorherige Sequenz abgeschlossen ist, dann diesen Code:
                     //BildSequenz = 0;
                     //ErstelleBildsequenz();
                     //
                     // ...ODER soll das Speichern der Bildersequenz komplett abgeschlossen werden und auch ein erneuter Klingeldruck vorher keine neue
                     // Sequenz auslösen dann diesen Code:
                     if(debug) log("Bildsequenz: " + BildSequenz);
                     if(BildSequenz == 0) ErstelleBildsequenz(); // Die Bildsequenz wird nur erstellt wenn vorherige Bildsequenz abgeschlossen ist
                  });
                  
                  function ErstelleBildsequenz()
                  {   if(BildSequenz == 0) BildSequenz=1;  // Bildsequenz
                     if(debug) log("Bildsequenz: " + BildSequenz);
                     // Bild von Cam holen
                     httpGet(`http://192.168.xxxx:8095/192_168_8_xxxxx`, { responseType: 'arraybuffer' }, (err, response) => {
                     if (err) {
                             // Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten
                             log('Beim holen des Bildes von der Kamera ist ein Fehler aufgetreten: ' + err);
                             BildSequenz = 0; // Die Bildsequenz zurück setzen
                         } else
                         {   // Bild wurde von der Kamera geladen. Jetzt speichern wir das Bild 
                             fs.writeFile(img_path+'/alarm' + BildSequenz + '.jpg', 'binary', function(err) {
                                 if (err) {
                                     // Beim Speichern des Bildes ist ein Fehler aufgetreten
                                     log('Fehler beim Speichern von Bild ' + img_path + '/alarm' + BildSequenz + '.jpg   Fehler:' + err, 'warn');
                                     BildSequenz = 0; // Die Bildsequenz zurück setzen
                                 } else {
                  
                                      // Bild wurde jetzt gespeichert wir können das Bild jetzt weiterverarbeiten
                                     switch(BildSequenz)
                                     {   case 1: // Bild 1 direkt nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                                             // Vis umschalten: Setze View auf Kamerabild
                                             if(debug) log(" 1 Bildsequenz: " + BildSequenz);
                                             setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Touch/Tuer"}'); 
                                             if(TVis) clearTimeout(TVis); // Falls noch ein Timer läuft, diesen beenden.
                                             TVis = setTimeout(function () {
                                                         setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Touch/Info"}');
                     			                    }, 60000); // Nach 60 Sekunden, zeige wieder Start View
                                             
                                             // Nächstes Bild soll nach 5s aufgenommen werden
                                             BildSequenz = 2;                          
                                             if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                             TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 5000);
                                             break;                            
                                         case 2: // Bild 2, 5s nach dem drücken des Klingelknopfes aufnehmen und per Mail verschicken
                                             // Bild per Mail verschicken
                                             if(debug) log(" 2 Bildsequenz: " + BildSequenz);
                                             
                                             // Nächstes Bild soll nach 10s aufgenommen werden                            
                                             BildSequenz = 3;
                                             if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen                           
                                             TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                                             break;                         
                                         case 3: // Bild 3 soll nach weiteren 10s gespeichert werden
                                             
                                             // Nächstes Bild soll nach 10s aufgenommen werden
                                             if(debug) log(" 3 Bildsequenz: " + BildSequenz);                                                  
                                             BildSequenz = 4;
                                             if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                             TBildsequenz = setTimeout(function(){ErstelleBildsequenz();}, 10000);
                                             break;                                                    
                                         case 4: // Bild 4 soll nach weiteren 10s gespeichert werden
                                             
                                             // Damit ist die Sequenz beendet und die Klingel ist wieder bereit
                                             if(debug) log(" 4 Bildsequenz: " + BildSequenz);
                                             sendTo("email", "send", {
                                                     text: '',
                                                     to: 'xxxx@gmail.com',
                                                     subject: 'Klingel',
                                                     attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                                             sendTo("email", "send", {
                                                     text: '',
                                                     to: 'xxxxx@gmail.com',
                                                     subject: 'Klingel',
                                                     attachments:[{path: img_path + '/alarm1.jpg', cid: "file1"},{path: img_path + '/alarm2.jpg', cid: "file2"},{path: img_path + '/alarm3.jpg', cid: "file3"},{path: img_path + '/alarm4.jpg', cid: "file4"},] });
                                             
                                             BildSequenz = 0;
                                             if(TBildsequenz) clearTimeout(TBildsequenz);  // Falls es einen Timer gibt, diesen erst mal löschen
                                          break;
                                         default:
                                             // Nicht bekannter Sequenzschritt bzw. es gab einen Fehler beim holen oder speichern 
                                         break;
                                     };
                                 };
                             });
                         };
                     });
                  }
                  

                  javascript.0 2024-07-07 12:22:35.274	error	at processTicksAndRejections (node:internal/process/task_queues:95:5)
                  javascript.0 2024-07-07 12:22:35.274	error	at /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1203:38
                  javascript.0 2024-07-07 12:22:35.274	error	at Object.<anonymous> (script.js.Klingel.Klingelsequenz:46:16)
                  javascript.0 2024-07-07 12:22:35.274	error	at ProtectFs.writeFile (/opt/iobroker/node_modules/iobroker.javascript/lib/protectFs.js:70:9)
                  javascript.0 2024-07-07 12:22:35.273	error	at checkProtected (/opt/iobroker/node_modules/iobroker.javascript/lib/protectFs.js:21:19)
                  javascript.0 2024-07-07 12:22:35.273	error	Error in callback: Error: Permission denied
                  javascript.0 2024-07-07 12:22:35.265	error	May not read /opt/iobroker/iobroker-data/files/0_userdata.0/alarm1.jpg - use writeFile instead
                  
                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @chaot sagte: nächsten Fehler

                  In Zeile 45 fehlen die zu schreibenden Daten.

                             fs.writeFile(img_path+'/alarm' + BildSequenz + '.jpg', response.data, 'binary', function(err) {
                  

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  ChaotC 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @chaot sagte: nächsten Fehler

                    In Zeile 45 fehlen die zu schreibenden Daten.

                               fs.writeFile(img_path+'/alarm' + BildSequenz + '.jpg', response.data, 'binary', function(err) {
                    
                    ChaotC Offline
                    ChaotC Offline
                    Chaot
                    schrieb am zuletzt editiert von
                    #9

                    @paul53 sagte in Fehler im Script:

                    response.data,

                    Danke, das habe ich ergänzt. Aber ich denke, dass ich da irrgendein Rechteproblem habe.

                    javascript.0
                    2024-07-07 16:53:14.346	error	at processTicksAndRejections (node:internal/process/task_queues:95:5)
                    javascript.0
                    2024-07-07 16:53:14.346	error	at /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1203:38
                    javascript.0
                    2024-07-07 16:53:14.345	error	at Object.<anonymous> (script.js.Klingel.Klingelsequenz:46:16)
                    javascript.0
                    2024-07-07 16:53:14.345	error	at ProtectFs.writeFile (/opt/iobroker/node_modules/iobroker.javascript/lib/protectFs.js:70:9)
                    javascript.0
                    2024-07-07 16:53:14.344	error	at checkProtected (/opt/iobroker/node_modules/iobroker.javascript/lib/protectFs.js:21:19)
                    javascript.0
                    2024-07-07 16:53:14.343	error	Error in callback: Error: Permission denied
                    javascript.0
                    2024-07-07 16:53:14.335	error	May not read /opt/iobroker/iobroker-data/files/0_userdata.0/alarm1.jpg - use writeFile instead
                    

                    Zeile 12 "premission denied"

                    ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                    T 1 Antwort Letzte Antwort
                    0
                    • ChaotC Chaot

                      @paul53 sagte in Fehler im Script:

                      response.data,

                      Danke, das habe ich ergänzt. Aber ich denke, dass ich da irrgendein Rechteproblem habe.

                      javascript.0
                      2024-07-07 16:53:14.346	error	at processTicksAndRejections (node:internal/process/task_queues:95:5)
                      javascript.0
                      2024-07-07 16:53:14.346	error	at /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1203:38
                      javascript.0
                      2024-07-07 16:53:14.345	error	at Object.<anonymous> (script.js.Klingel.Klingelsequenz:46:16)
                      javascript.0
                      2024-07-07 16:53:14.345	error	at ProtectFs.writeFile (/opt/iobroker/node_modules/iobroker.javascript/lib/protectFs.js:70:9)
                      javascript.0
                      2024-07-07 16:53:14.344	error	at checkProtected (/opt/iobroker/node_modules/iobroker.javascript/lib/protectFs.js:21:19)
                      javascript.0
                      2024-07-07 16:53:14.343	error	Error in callback: Error: Permission denied
                      javascript.0
                      2024-07-07 16:53:14.335	error	May not read /opt/iobroker/iobroker-data/files/0_userdata.0/alarm1.jpg - use writeFile instead
                      

                      Zeile 12 "premission denied"

                      T Offline
                      T Offline
                      TT-Tom
                      schrieb am zuletzt editiert von TT-Tom
                      #10

                      @chaot

                      Ja es gibt jetzt richtige schreib- und lese- Rechte in den Verzeichnissen. Die gab es vorher auch schon, wurden nur nicht konsequent kontrolliert.

                      Mit dem neuen JavaScript Adapter ist vieles erweitert worden. Es gab hier schon Beiträge zum Schreiben in Verzeichnisse.

                      Edit. Hier was zum lesen

                      Gruß Tom
                      https://github.com/tt-tom17
                      Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                      NSPanel Script Wiki
                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

                      NSPanel Adapter Wiki
                      https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                      ChaotC 1 Antwort Letzte Antwort
                      0
                      • T TT-Tom

                        @chaot

                        Ja es gibt jetzt richtige schreib- und lese- Rechte in den Verzeichnissen. Die gab es vorher auch schon, wurden nur nicht konsequent kontrolliert.

                        Mit dem neuen JavaScript Adapter ist vieles erweitert worden. Es gab hier schon Beiträge zum Schreiben in Verzeichnisse.

                        Edit. Hier was zum lesen

                        ChaotC Offline
                        ChaotC Offline
                        Chaot
                        schrieb am zuletzt editiert von
                        #11

                        @tt-tom Hm, ok. Ich dachte, dass sich das nur auf Systemordner bezieht. In den Ordner 0_userdata.0 müsste ich doch schreiben können. Der ist doch dazu da oder verstehe ich das falsch?
                        Oder anders gefragt: Wo kann ich das hinschreiben?

                        ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                        T HomoranH 2 Antworten Letzte Antwort
                        0
                        • ChaotC Chaot

                          @tt-tom Hm, ok. Ich dachte, dass sich das nur auf Systemordner bezieht. In den Ordner 0_userdata.0 müsste ich doch schreiben können. Der ist doch dazu da oder verstehe ich das falsch?
                          Oder anders gefragt: Wo kann ich das hinschreiben?

                          T Offline
                          T Offline
                          TT-Tom
                          schrieb am zuletzt editiert von
                          #12

                          @chaot

                          Bin leider nur am Handy unterwegs. Aber soviel wie ich noch weiß, hat fs nicht alle Rechte oder schreib es nicht richtig. Es gibt aber dafür Befehle, glaube writeFile oder so. Schau mal in die Doku vom Adapter.

                          Gruß Tom
                          https://github.com/tt-tom17
                          Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                          NSPanel Script Wiki
                          https://github.com/joBr99/nspanel-lovelace-ui/wiki

                          NSPanel Adapter Wiki
                          https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                          1 Antwort Letzte Antwort
                          0
                          • ChaotC Chaot

                            @tt-tom Hm, ok. Ich dachte, dass sich das nur auf Systemordner bezieht. In den Ordner 0_userdata.0 müsste ich doch schreiben können. Der ist doch dazu da oder verstehe ich das falsch?
                            Oder anders gefragt: Wo kann ich das hinschreiben?

                            HomoranH Nicht stören
                            HomoranH Nicht stören
                            Homoran
                            Global Moderator Administrators
                            schrieb am zuletzt editiert von
                            #13

                            @chaot sagte in Fehler im Script:

                            Wo kann ich das hinschreiben?

                            nicht das wo ist das Problem sondern das wie!

                            @chaot sagte in Fehler im Script:

                            use writeFile instead

                            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                            T ChaotC 2 Antworten Letzte Antwort
                            1
                            • HomoranH Homoran

                              @chaot sagte in Fehler im Script:

                              Wo kann ich das hinschreiben?

                              nicht das wo ist das Problem sondern das wie!

                              @chaot sagte in Fehler im Script:

                              use writeFile instead

                              T Offline
                              T Offline
                              TT-Tom
                              schrieb am zuletzt editiert von
                              #14

                              @homoran sagte in Fehler im Script:

                              @chaot sagte in Fehler im Script:

                              use writeFile instead

                              Sag ich ja irgendwas war da. 😁

                              Gruß Tom
                              https://github.com/tt-tom17
                              Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                              NSPanel Script Wiki
                              https://github.com/joBr99/nspanel-lovelace-ui/wiki

                              NSPanel Adapter Wiki
                              https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                              1 Antwort Letzte Antwort
                              0
                              • HomoranH Homoran

                                @chaot sagte in Fehler im Script:

                                Wo kann ich das hinschreiben?

                                nicht das wo ist das Problem sondern das wie!

                                @chaot sagte in Fehler im Script:

                                use writeFile instead

                                ChaotC Offline
                                ChaotC Offline
                                Chaot
                                schrieb am zuletzt editiert von
                                #15

                                @homoran
                                Ist das nicht so?

                                 fs.writeFile(img_path+'/alarm' + BildSequenz + '.jpg', 'binary', function(err) {
                                

                                ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                                paul53P 1 Antwort Letzte Antwort
                                0
                                • ChaotC Chaot

                                  @homoran
                                  Ist das nicht so?

                                   fs.writeFile(img_path+'/alarm' + BildSequenz + '.jpg', 'binary', function(err) {
                                  
                                  paul53P Offline
                                  paul53P Offline
                                  paul53
                                  schrieb am zuletzt editiert von paul53
                                  #16

                                  @chaot sagte: Ist das nicht so?

                                  Es gibt inzwischen eine Funktion writeFile() des Javascript-Adapters.
                                  Außerdem fehlen in der gezeigten Zeile wieder die zu schreibenden Daten.

                                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                  ChaotC 1 Antwort Letzte Antwort
                                  1
                                  • paul53P paul53

                                    @chaot sagte: Ist das nicht so?

                                    Es gibt inzwischen eine Funktion writeFile() des Javascript-Adapters.
                                    Außerdem fehlen in der gezeigten Zeile wieder die zu schreibenden Daten.

                                    ChaotC Offline
                                    ChaotC Offline
                                    Chaot
                                    schrieb am zuletzt editiert von
                                    #17

                                    @paul53 Ach so.
                                    Kann ich das dann einfach ersetzen?
                                    aus

                                     fs.writeFile(img_path+'/alarm' + BildSequenz + '.jpg', response.data, 'binary', function(err) {
                                    

                                    wird

                                     writeFile(img_path+'/alarm' + BildSequenz + '.jpg', response.data, 'binary', function(err) {
                                    

                                    ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                                    paul53P 1 Antwort Letzte Antwort
                                    0
                                    • ChaotC Chaot

                                      @paul53 Ach so.
                                      Kann ich das dann einfach ersetzen?
                                      aus

                                       fs.writeFile(img_path+'/alarm' + BildSequenz + '.jpg', response.data, 'binary', function(err) {
                                      

                                      wird

                                       writeFile(img_path+'/alarm' + BildSequenz + '.jpg', response.data, 'binary', function(err) {
                                      
                                      paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von
                                      #18

                                      @chaot sagte: Kann ich das dann einfach ersetzen?

                                      Keine Ahnung. Ich habe die Funktion writeFile() noch nicht benutzt.

                                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                      1 Antwort Letzte Antwort
                                      0
                                      Antworten
                                      • In einem neuen Thema antworten
                                      Anmelden zum Antworten
                                      • Älteste zuerst
                                      • Neuste zuerst
                                      • Meiste Stimmen


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      333

                                      Online

                                      32.5k

                                      Benutzer

                                      81.7k

                                      Themen

                                      1.3m

                                      Beiträge
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                      ioBroker Community 2014-2025
                                      logo
                                      • Anmelden

                                      • Du hast noch kein Konto? Registrieren

                                      • Anmelden oder registrieren, um zu suchen
                                      • Erster Beitrag
                                        Letzter Beitrag
                                      0
                                      • Home
                                      • Aktuell
                                      • Tags
                                      • Ungelesen 0
                                      • Kategorien
                                      • Unreplied
                                      • Beliebt
                                      • GitHub
                                      • Docu
                                      • Hilfe