Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Gelöst: Speicherpfad in Iobroker

    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

    Gelöst: Speicherpfad in Iobroker

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

      Hallo wie kann ich den Speicherpfad so ändern, dass unter js-controller 3.1 das Bild so abgelegt wird, dass es im Vis ausgewählt werden kann?

      var source_url = 'http://192.168.178.104:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=xxn&pwd=xxxg04', 
          dest_path = '/iobroker/Smarthome/iobroker-data/files/vis.0/Klingelbild/';
      
      

      Danke Michael

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

        @michihorn

        ausschlaggebend sind die Befehle fs.readFileSync und writeFile

        https://forum.iobroker.net/topic/32652/externes-bild-in-vis

        dass unter js-controller 3.1 das Bild so abgelegt wird

        das ist seit js-controller 2.0 schon so..

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

          @Glasfaser Hast evtl. noch mal das ganze Script zur Ansicht? Mit dem Ausschnitt unter https://forum.iobroker.net/topic/32652/externes-bild-in-vis, komme ich nicht klar.
          Michael

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

            @michihorn sagte in Speicherpfad in Iobroker:

            Mit dem Ausschnitt .... komme ich nicht klar.

            Öffne bei den Beiträgen von mir die Spoiler ... da sind die Scripts enthalten !

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

              @Glasfaser Hallo vielen Dank habs gleich mal ausprobiert, im Script sehe ich erstmal folgendes:
              Unbenannt.JPG
              Offenbar kann mein Java kein writefile, hast du eine Idee?

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

                @michihorn

                nicht beachten das Rote >>><>>>>>< darunter 😉

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

                  @Glasfaser Ich habe mal etwas probiert, leider klappt es bei mir nur bedingt.
                  Ich habe das mal knapp Zusammengefasst

                        var fs = require('fs');
                   exec('wget --output-document /tmp/Vorne.jpg \'http://192.168.178.xxx:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=hxxx&pwd=roadxxxxx\'');
                           const picture= fs.readFileSync('/tmp/Vorne.jpg');
                  writeFile('vis.0','/klingelbild/Vorne.jpg', picture, function (error) { });
                   });
                  

                  Offenbar ist das Dateiformat nicht lesbar.

                  Gruß
                  Michael

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

                    @michihorn
                    Dein Scriptaufbau ist falsch ....
                    Lege mal ein neues Script an und füge das ein , dann siehst du was ich meine

                    einmal starten ... dann wird auch ein Bild erzeugt inkl. Ablage in Vis .

                    var fs = require('fs');
                    
                    exec('wget --output-document /tmp/Vorne.jpg \'http://192.168.178.xxx:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=hxxx&pwd=roadxxxxx\'');
                    
                             const picture= fs.readFileSync('/tmp/Vorne.jpg');
                             writeFile('vis.0','/klingelbild/VorneTest.jpg', picture, function (error) { });
                    
                    
                    
                    M AlCalzone 2 Replies Last reply Reply Quote 0
                    • M
                      michihorn @Glasfaser last edited by

                      @Glasfaser Sorry es bleibt ein unlesbares Format

                      Glasfaser M 2 Replies Last reply Reply Quote 0
                      • Glasfaser
                        Glasfaser @michihorn last edited by

                        @michihorn

                        Ich habe es bei mir getetest ... ohne Fehler !

                        Zeige mir mal per Log die Fehlermeldung !

                        1 Reply Last reply Reply Quote 0
                        • M
                          michihorn @michihorn last edited by michihorn

                          @Glasfaser Ich habe keine Fehlermeldung...aauch im Log steht nichts
                          17:51:00.008 info javascript.3 (5376) script.js.Klingel.Skript_11: exec: wget --output-document /tmp/Vorne.jpg 'http://192.168.178.104:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=hxxn&pwd=roadki

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

                            @michihorn

                            unlesbares Format

                            und wie kommst du dann auf diese Aussage ?

                            Wie und was meinst du damit !????

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

                              @Glasfaser Ich öffne das Speicherverzeichnis, sehe die Datei ohne Vorschau. Wenn ich die Datei anklicke bekomme ich vom "Windows Fotos" die Meldung VorneTest.jpg Dieses Dateiformat wird wahrscheinlich nicht unterstützt
                              Ich habe mir gerade mal die Eigenschaften der Datei angeschaut, es ist eine 0 Bytes Datei. Also irgendwas habe ich noch falsch gemacht.
                              Im Dateimanager vom Iobroker sieht es so aus
                              Unbenannt.JPG

                              Glasfaser 2 Replies Last reply Reply Quote 0
                              • AlCalzone
                                AlCalzone Developer @Glasfaser last edited by

                                @Glasfaser @michihorn
                                exec ist asynchron, d.h. der Code darunter geht weiter, bevor der Befehl abgeschlossen ist. Alles was nach dem exec passieren soll, muss in den Callback:

                                var fs = require("fs");
                                
                                exec(
                                  "wget --output-document /tmp/Vorne.jpg 'http://192.168.178.xxx:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=hxxx&pwd=roadxxxxx'",
                                  (error, stdout, stderr) => {
                                    if (!error) {
                                      const picture = fs.readFileSync("/tmp/Vorne.jpg");
                                      writeFile("vis.0", "/klingelbild/VorneTest.jpg", picture);
                                    }
                                  }
                                );
                                

                                Da eh etwas runtergeladen werden soll, kann man den httprequest auch direkt selbst machen, ohne Umweg übers Dateisystem (ungetestet, sollte aber gehen):

                                request(
                                  {
                                    url: "http://192.168.178.xxx:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=hxxx&pwd=roadxxxxx",
                                    encoding: null,
                                  },
                                  (error, response, body) => {
                                    if (!error && body) {
                                      writeFile("vis.0", "/klingelbild/VorneTest.jpg", body);
                                    }
                                  }
                                );
                                
                                M Glasfaser 2 Replies Last reply Reply Quote 1
                                • Glasfaser
                                  Glasfaser @michihorn last edited by

                                  @michihorn

                                  nimm mal diese Widget und trage dort dein Bild ein ... :

                                  [{"tpl":"tplImage","data":{"g_fixed":false,"g_visibility":true,"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":false,"visibility-cond":"==","visibility-val":"true","visibility-groups-action":"hide","refreshInterval":"0","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,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"src":"/vis.0/klingelbild/Vorne.jpg","visibility-oid":"javascript.0.Dreambox.Dreambox_an_aus"},"style":{"left":"629px","top":"161px","z-index":"1","width":"234px","height":"150px","font-family":"Jura-DemiBold","font-size":"14px"},"widgetSet":"basic"}]
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • Glasfaser
                                    Glasfaser @michihorn last edited by

                                    @michihorn

                                    wie schon @AlCalzone braucht dein System zu lange ... deswegen 0kb bei dir

                                    
                                    var fs = require('fs');
                                    var timeout1
                                    exec('wget --output-document /tmp/Vorne.jpg \'http://xxxxxxxx@192.168.xxxxxx/streaming/channels/101/picture\'');
                                     
                                        timeout1 = setTimeout(function () {
                                           
                                             const picture= fs.readFileSync('/tmp/Vorne.jpg');
                                             writeFile('vis.0','/klingelbild/Vorneneu.jpg', picture, function (error) { });
                                    
                                        }, 20000);
                                    

                                    würde auch mit Timeout gehen ...

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      michihorn @AlCalzone last edited by

                                      @AlCalzone sagte in Speicherpfad in Iobroker:

                                      request( { url: "http://192.168.178.xxx:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=hxxx&pwd=roadxxxxx", encoding: null, }, (error, response, body) => { if (!error && body) { writeFile("vis.0", "/klingelbild/VorneTest.jpg", body); } } );

                                      Super das klappt bei mir. Danke sehr
                                      Ich bedanke mich auch bei Glasfaser

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

                                        @AlCalzone sagte in Speicherpfad in Iobroker:

                                        @Glasfaser @michihorn
                                        `
                                        Da eh etwas runtergeladen werden soll, kann man den httprequest auch direkt selbst machen, ohne Umweg übers Dateisystem (ungetestet, sollte aber gehen):

                                        request(
                                          {
                                            url: "http://192.168.178.xxx:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=hxxx&pwd=roadxxxxx",
                                            encoding: null,
                                          },
                                          (error, response, body) => {
                                            if (!error && body) {
                                              writeFile("vis.0", "/klingelbild/VorneTest.jpg", body);
                                            }
                                          }
                                        );
                                        

                                        Kannte ich noch nicht ... kann man gut gebrauchen
                                        Danke

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

                                          @AlCalzone Kannst Du mir evtl. noch zeigen wie ich eine Datei auf einem Laufwerk ins Vis bringen kann?
                                          Ich habe also einen Ordner auf C:\Test, dort werden mir regelmäßig Bilder einer Kamera per Email zugesandt, die ich dann extrahiert habe, ich möchte also immer das letzte Bild in Vis hoch laden.
                                          Gruß
                                          Michael

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          433
                                          Online

                                          31.8k
                                          Users

                                          80.0k
                                          Topics

                                          1.3m
                                          Posts

                                          javascript
                                          3
                                          19
                                          920
                                          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