Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Bei Event ein Bild aktualisieren

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Bei Event ein Bild aktualisieren

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

      Moin
      Danke nochmal. Nun hat es klick gemacht.
      @ttheoc: Man muss die Logik hinter den Sicherheitsbedenken erst einmal kennen, um das zu verstehen.

      • Es darf nur in bestimmte Ordner geschrieben werden.
      • Einer ist vis.0
      • Einer ist 0_userdata.0 (Sollte dieser nicht sichtbar sein, so wird er das, wenn das erste File reinkopiert wurde.
      • Ein beschreiben dieser beiden Ordner ist nicht so einfach möglich.
      • Möglich ist z.B. ein Upload mit dem Dateimanager
      • Was aber NICHT möglich ist, ist der Upload direkt aus der Kamera in diese Ordner. Die Bilder kommen zwar an, werden aber nicht mehr von Widgets lesbar.

      Wie sieht also die Lösung aus? Naja, in meinen Augen etwas umständlich:

      • Das Kamerabild wird erstmal in ein z.B Temp (tmp) gespeichert.
      • Dann wird das Bild mit einem writeFile Befehl in das 0_userdata.0 Verzeichnis kopiert.
        Der writeFile Befehl ermöglicht es, das die Widgets das Bild dann sehen können und damit auch anfassen können.

      Mein Code für ein Bild speichern und kopieren sieht nun so aus:

      var sperre = false;  //verhindert das doppeltes Drücken das Script stoppt
      
      var timeout1, timeout2, timeout3;
      var fs = require('fs');
       
      on({id: '0_userdata.0.Klingelstatus', val: true}, function (obj) {
      
        if(!sperre) {
      
          sperre = true;
      
           // Speichert das Bild beim Klingeln
      
          exec('wget --output-document /tmp/HaustuerKlingel.jpg \'http://192.168.7.163/api/v1/snap.cgi?chn=0\'');
      
          // Es wird 2000ms gewartet um das Speichern auszuführen
      
          timeout1 = setTimeout(function () {
      
       
          }, 2000);
      
          }
       
          timeout2 = setTimeout(function() {
      
             sperre = false;
      
          }, 5000); //Zeit für Klingelsperre 1.Zeile
      
          timeout3 = setTimeout(function () {
      
               const bild1 = fs.readFileSync('/tmp/HaustuerKlingel.jpg');
      
               writeFile('0_userdata.0','HaustuerKlingel.jpg', bild1);
      
          }, 2000); 
      
      });
      

      Ich hoffe meine Schilderung war nicht zu laienhaft.
      Gruß
      Björn

      Glasfaser 1 Reply Last reply Reply Quote 0
      • Glasfaser
        Glasfaser @Bjoern77 last edited by

        @Bjoern77

        oder so , was ich nutze :

             // Bilder werden nach vis gespeichert
            timeout7 = setTimeout(function () {
        
                 const bild1 = fs.readFileSync('/tmp/haustuer1.jpg');
        
                 writeFile('vis.0','/klingelbild/haustuer1.jpg', bild1);
        
                 const bild2 = fs.readFileSync('/tmp/haustuer2.jpg');
        
                 writeFile('vis.0','/klingelbild/haustuer2.jpg', bild2);
        
                 const bild3 = fs.readFileSync('/tmp/haustuer3.jpg');
        
                 writeFile('vis.0','/klingelbild/haustuer3.jpg', bild3);
        
                 const bild4 = fs.readFileSync('/tmp/haustuer4.jpg');
        
                 writeFile('vis.0','/klingelbild/haustuer4.jpg', bild4);
        
            }, 20000); 
        
        });
        
        haselchen 1 Reply Last reply Reply Quote 0
        • haselchen
          haselchen Most Active @Glasfaser last edited by haselchen

          @Glasfaser
          @Chaot
          @crunchip

          Ich benutze auch das Skript um mir ein Bild nach dem Klingeln anzuzeigen.
          Im VIS.0 Ordner ist das Bild aktuell. In der Vis wird mir aber immer das Bild von VORHER angezeigt.
          Aufzeichnen.PNG

          Siehe Auslöser und Zeit im Bild.
          Hat diesen "Fehler"niemand (bemerkt)?

          Glasfaser 1 Reply Last reply Reply Quote 0
          • Glasfaser
            Glasfaser @haselchen last edited by Glasfaser

            @haselchen sagte in Bei Event ein Bild aktualisieren:

            Hat diesen "Fehler"niemand (bemerkt)?

            ........…alles OK !

            Habe zwei Skript´s sogar laufen , 4 x Bilder (versetzt) von vorne und von hinten jeweils der Eingangstür .

            Alle Bilder werden auch im VIS aktualisiert . ( Speicherort vis.0/klingelbild/haustuer4.jpg....usw..) wie auch im Code Schnipsel oben angegeben !

            haselchen 1 Reply Last reply Reply Quote 0
            • haselchen
              haselchen Most Active @Glasfaser last edited by haselchen

              @Glasfaser

              Hm und wo hakt es dann bei mir?
              Ich lasse das Bild alle 10sek aktualisieren in der VIS

              Glasfaser 1 Reply Last reply Reply Quote 0
              • Glasfaser
                Glasfaser @haselchen last edited by Glasfaser

                @haselchen

                Was passiert wenn du ein Refresh der Seite machst …. ?!

                Gib mir mal dein Widget zum Testen !

                haselchen 1 Reply Last reply Reply Quote 0
                • haselchen
                  haselchen Most Active @Glasfaser last edited by

                  @Glasfaser

                  [{"tpl":"tplImage","data":{"g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":true,"refreshInterval":"10000","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"src":"/vis.0/alarm1.jpg","refreshOnViewChange":true,"stretch":true,"refreshOnWakeUp":true,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","lc-type":"timestamp","lc-is-interval":false,"lc-is-moment":false,"lc-format":"DD.MM.YYYY hh:mm:ss","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":"-23","lc-offset-horz":"-125","lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"transparent","lc-color":"white","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"lc-oid":"hm-rpc.1.001498A9987394.1.PRESS_SHORT","refreshWithNoQuery":false},"style":{"left":"4px","top":"303px","width":"309px","height":"228px","z-index":"5"},"widgetSet":"basic"}]
                  
                  Glasfaser 1 Reply Last reply Reply Quote 0
                  • Glasfaser
                    Glasfaser @haselchen last edited by Glasfaser

                    @haselchen

                    Funktioniert , auch mit Zeitstempel ..... habe es in meinen VIS gelegt wo auch die anderen Bilder sind .

                    Habe höchstens den Haken bei " Strecken " rausgeholt " sah ein bischen komisch aus 🙂

                    EDIT : Bild entfernt ....

                    haselchen 1 Reply Last reply Reply Quote 0
                    • haselchen
                      haselchen Most Active @Glasfaser last edited by

                      @Glasfaser

                      Magst du dann mal über das Skript gucken?

                      Glasfaser 1 Reply Last reply Reply Quote 0
                      • Glasfaser
                        Glasfaser @haselchen last edited by

                        @haselchen

                        Dann gib mal her ... aber im Spoiler setzen ...

                        haselchen 1 Reply Last reply Reply Quote 0
                        • haselchen
                          haselchen Most Active @Glasfaser last edited by haselchen

                          @Glasfaser

                          var timeout, timeout1, timeout2;
                          var fs = require('fs');
                          
                          
                          on({id: 'hm-rpc.XXX.PRESS_SHORT', change: "any"}, function (obj) {
                            var value = obj.state.val;
                            var oldValue = obj.oldState.val;
                            timeout = setTimeout(function () {
                              exec('wget --output-document /opt/iobroker/Klingelbild/alarm.jpg \'http://192.XXX.XXX.XXX:XXX/picture/1/current/\'');
                             }, 1000);
                            timeout1 = setTimeout(function () {
                             const bild = fs.readFileSync('/opt/iobroker/Klingelbild/alarm.jpg');
                          	     writeFile('vis.0','alarm.jpg', bild);
                             }, 1500);
                            timeout2 = setTimeout(function () {
                              sendTo("telegram.1", "send", {
                                  text: '/opt/iobroker/Klingelbild/alarm.jpg'
                              });
                            }, 5000);
                            // ab hier so oft wiederholen wie man es möchte
                          });
                          
                          Glasfaser 1 Reply Last reply Reply Quote 0
                          • Glasfaser
                            Glasfaser @haselchen last edited by

                            @haselchen

                            Könntest du das noch in den " Code "setzen 😉

                            1.JPG

                            haselchen 1 Reply Last reply Reply Quote 0
                            • haselchen
                              haselchen Most Active @Glasfaser last edited by

                              @Glasfaser

                              var timeout, timeout1, timeout2;
                              var fs = require('fs');
                              
                              
                              on({id: 'hm-rpc.XXX.PRESS_SHORT', change: "any"}, function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                timeout = setTimeout(function () {
                                  exec('wget --output-document /opt/iobroker/Klingelbild/alarm.jpg \'http://XXXX/picture/1/current/\'');
                                 }, 1000);
                                timeout1 = setTimeout(function () {
                                 const bild = fs.readFileSync('/opt/iobroker/Klingelbild/alarm.jpg');
                              	     writeFile('vis.0','alarm.jpg', bild);
                                 }, 1500);
                                timeout2 = setTimeout(function () {
                                  sendTo("telegram.1", "send", {
                                      text: '/opt/iobroker/Klingelbild/alarm.jpg'
                                  });
                                }, 5000);
                                // ab hier so oft wiederholen wie man es möchte
                              });
                              
                              Glasfaser 1 Reply Last reply Reply Quote 0
                              • Glasfaser
                                Glasfaser @haselchen last edited by Glasfaser

                                @haselchen

                                Habe es geändert ... teste mal bitte

                                var timeout, timeout1, timeout2;
                                
                                var fs = require('fs');
                                
                                
                                
                                
                                
                                on({id: 'javascript.0.Datenpunkt.DP1', change: "any"}, function (obj) {
                                
                                 var value = obj.state.val;
                                
                                 var oldValue = obj.oldState.val;
                                
                                 timeout = setTimeout(function () {
                                
                                   exec('wget --output-document /tmp/alarm.jpg \'http://xxxxxxxxxx@192.168.178.53/streaming/channels/101/picture\'');
                                
                                  }, 1000);
                                
                                 timeout1 = setTimeout(function () {
                                
                                    const bild = fs.readFileSync('/tmp/alarm.jpg');
                                
                                    writeFile('vis.0','alarm.jpg', bild);
                                
                                  }, 1500);
                                
                                 timeout2 = setTimeout(function () {
                                
                                   sendTo("telegram.1", "send", {
                                
                                       text: '/tmp/alarm.jpg'
                                
                                   });
                                
                                 }, 5000);
                                
                                 // ab hier so oft wiederholen wie man es möchte
                                
                                });
                                

                                haselchen 1 Reply Last reply Reply Quote 0
                                • haselchen
                                  haselchen Most Active @Glasfaser last edited by

                                  @Glasfaser

                                  Nun kommt gar kein Bild mehr.
                                  Container neu gestartet
                                  Browser refreshed
                                  Alles probiert 😞

                                  Glasfaser 1 Reply Last reply Reply Quote 0
                                  • Glasfaser
                                    Glasfaser @haselchen last edited by Glasfaser

                                    @haselchen

                                    ???
                                    das Skript mit dem Einzelbild funktioniert bei mir .
                                    Habe nur den Speicherort geändert !

                                    Auch kein Telegram ?

                                    haselchen 1 Reply Last reply Reply Quote 0
                                    • haselchen
                                      haselchen Most Active @Glasfaser last edited by

                                      @Glasfaser

                                      Dein Script hat den letzten Denkanstoss gegeben 🙂
                                      Ich habe die Pfade anpassen müssen da ich docker benutze.
                                      Und die Timeouts. Jetzt passt es.
                                      Deine Idee mit dem TMP Ordner hat die Lösung gebracht.
                                      Danke!!!

                                      Glasfaser 1 Reply Last reply Reply Quote 0
                                      • Glasfaser
                                        Glasfaser @haselchen last edited by

                                        @haselchen

                                        Dann tausche noch die Sparlampe am Eingang gegen eine hellere Lampe … dann ist alles Perfekt 😉 😎

                                        haselchen 1 Reply Last reply Reply Quote 0
                                        • haselchen
                                          haselchen Most Active @Glasfaser last edited by haselchen

                                          @Glasfaser

                                          Hahahahahaha, der war gut 🙂 🙂 🙂
                                          Ist nur so als Test gedacht. Ne 5 Euro TTGO Kamera aus China. Die hat auch keine IR Leds für Nachtsicht.
                                          Wenn ich weiss wie das alles so technisch funktioniert kommt da ne Dome Camera hin.

                                          Glasfaser 1 Reply Last reply Reply Quote 0
                                          • Glasfaser
                                            Glasfaser @haselchen last edited by

                                            @haselchen

                                            Ok …. dann Bau die Kamera im Sommer auf dein Mähroboter 😂

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            538
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly monitoring multimedia
                                            7
                                            37
                                            2974
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo