Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. js-controller 2.0 ab sofort im Latest Repo

    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

    js-controller 2.0 ab sofort im Latest Repo

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

      @apollon77
      Hi,
      Du hattest bei den FAQs geschrieben:

      "Aus Sicherheitsgründen wird der ioBroker-eigene Storage jetzt etwas strickter behandelt. Nut offiziell in ioBroker bekannte Verzeichnisse dürfen genutzt werden und nur offizielle Wege die Datei rein zu kopieren. Am besten die Upload-Tools nutzen von Adaptern wie vis oder iqontrol. ALternativ gibt es CLI kommandos."
      So weit, so gut, ich habe meine eigenen Bilder mit dem Upload-Tool vom vis-Adapter hochladen können.

      Allerdings muss ich noch die neuen Links in meinen Views anpassen.
      Kann man das evtl. in "einem Rutsch" erledigen, ohne jedes Bild/Grafik mit dem vis-Editor einzeln anzufassen?
      Vielleicht automatisch z.B. mit Notepad++ in den vis-views.json von jedem view den jetzigen Pfad "src": "/vis durch den neuen Pfad "src": "/vis.0 ersetzen lassen?

      Allerdings habe ich ein größeres Problem mit der strickteren Behandlung:
      Ich habe bisher 2 Snapshots von meiner Eingangs-Cam (Postbote hat Post eingeworfen, Jemand hat an der Haustür geklingelt) von einem Windows-Rechner automatisch in einen freigegebenen Ordner auf den ioBroker-Raspi gespeichert.
      Via JS wurden diese beiden Bilder dann per exec in einen anderen Ordner unterhalb von iobroker-data\files\vis...kopiert:

      exec('bash /home/pi/klingelbild_kopieren.sh');
      exec('bash /home/pi/postbotebild_kopieren.sh');
      

      Hier die beiden Shell-Kopier-Befehle:

      cp /home/pi/SPY/eingang.jpg /opt/iobroker/iobroker-data/files/vis.0/klingelbild/klingler.jpg
      cp /home/pi/SPY/eingang.jpg /opt/iobroker/iobroker-data/files/vis.0/klingelbild/postistda.jpg
      

      Im vis konnte ich die Bilder dann auch sehen.

      Das Kopieren in die neuen Ordner unterhalb von vis.0 funktioniert zwar weiterhin, aber im vis werden die Bilder nicht mehr aktualisiert, da jetzt ja "nur offizielle Wege die Datei rein zu kopieren" funktionieren.

      Frage:
      Was kann ich tun, damit die Bilder wieder automatisiert kopiert und angezeigt werden?
      Gibt es irgendeinen JS-Befehl, der das evtl. wieder richten kann?

      Gruß
      Jörg

      apollon77 1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 @joergeli last edited by

        @joergeli zu 1.) ja das kann gehen. ioBroker beenden. File auf Platte manuell editieren, wieder hochfahren. Vorher Backup ist eine gute Idee,

        zu 2.) Liess mal die FAQ im dritten post oben, da ist ein Link zu einem anderen Thread mit genau der Lösung dafür. Musst DU nur auf dich "umbasteln"

        joergeli SBorg 2 Replies Last reply Reply Quote 0
        • joergeli
          joergeli @apollon77 last edited by

          @apollon77
          Prima, das mit dem writeFile werde ich mal testen.

          Danke
          Jörg

          Chaot 1 Reply Last reply Reply Quote 0
          • MathiasJ
            MathiasJ last edited by

            Was mir auch aufgefallen ist,
            nach dem Update auf den JS-Controller 2.0 habe ich wesentlich mehr Störungen des Slaves.
            Ich glaube, den muß ich mittlerweile jetzt 3 mal am Tag neu starten, weil er nicht mehr erreichbar ist.
            In der Version 1.x ist er wochenlang durchgerannt.
            nur im log finde ich nur die Meldung, dass der Raspberry Pi 3B+ nicht mehr erreichbar ist. Das merke ich auch so.....
            Der Slave läuft seit ca 6 Monaten über WLAN.

            apollon77 AlCalzone 2 Replies Last reply Reply Quote 0
            • Chaot
              Chaot @joergeli last edited by

              @joergeli Kleiner Tip noch: Für das writeFile musst du ein kleines Delay einbauen weil sonst das Bild noch nicht auf der Platte liegt wenn das File schon geschrieben wird.

              apollon77 joergeli 2 Replies Last reply Reply Quote 0
              • apollon77
                apollon77 @MathiasJ last edited by

                @MathiasJ bist Du auf 2.0.33 oder 34? Wenn nicht updaten! Dann bitte neu beobachten.

                Und bitte log vom Slave von so einem Zeitpunkt wenn er stehenbleibt.

                MathiasJ 2 Replies Last reply Reply Quote 0
                • apollon77
                  apollon77 @Chaot last edited by

                  @Chaot naja ihr müsst abwarten bis das exec durch ist. Hat das vllt nen callback der erst dann ausgeführt wird? Hab’s grad nicht im Kopf.

                  Chaot 1 Reply Last reply Reply Quote 0
                  • Chaot
                    Chaot @apollon77 last edited by

                    @apollon77
                    Ja, das habe ich auch gemerkt.
                    Ich habe normalerweise nach dem exec ein kleines Delay bevor ich die Bilder per mail versende. Aber ich habe mich wohl um zwei Zeilen vertan und deshalb kam es zu dem Fehler. 😕

                    apollon77 1 Reply Last reply Reply Quote 0
                    • apollon77
                      apollon77 @Chaot last edited by

                      @Chaot Jupp exec hat nen callback ... https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#exec---execute-some-os-command-like-cp-file1-file2

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

                        @MathiasJ sagte in js-controller 2.0 ab sofort im Latest Repo:

                        Ich glaube, den muß ich mittlerweile jetzt 3 mal am Tag neu starten, weil er nicht mehr erreichbar ist.

                        Das ist aber nicht der Slave, von dem du kürzlich den Log gepostet hast, in dem steht dass die Platte voll ist? Dann ist es kein Wunder, dass der ständig abstürzt.

                        1 Reply Last reply Reply Quote 0
                        • SBorg
                          SBorg Forum Testing Most Active @apollon77 last edited by SBorg

                          @apollon77 sagte in js-controller 2.0 ab sofort im Latest Repo:

                          @joergeli zu 1.) ja das kann gehen. ioBroker beenden. File auf Platte manuell editieren, wieder hochfahren. Vorher Backup ist eine gute Idee,

                          ...oder Views exportieren, mit Notepad++ oä. dann "suchen+ersetzen", View wieder importieren 🙂

                          34 lüppt bisher problemlos.

                          joergeli 1 Reply Last reply Reply Quote 0
                          • coyote
                            coyote Most Active last edited by

                            @apollon77
                            34er installiert, sieht soweit gut aus. Paar Adapter blieben rot, von Hand neu gestartet ohne Error. Laufen jetzt alle.
                            Jetzt ist mir noch was aufgefallen, weiß aber nicht ob es mit dem Controller zu tun hat.

                            vis.JPG

                            Die Icons sind weg, jetzt hab ich alle vis Zusatz Adapter neu geuploaded, danach waren alle Icons wieder da. Dann nochmal vis Adpater upload gemacht, Icons wieder weg 🤔

                            apollon77 1 Reply Last reply Reply Quote 0
                            • apollon77
                              apollon77 @coyote last edited by

                              @coyote Was für ein System hast Du ? redis/redis/ oder Objekte noch in "file"? sollte an sich so nicht passieren.

                              Von den Adaptern die "rot" geblieben sind ... gabs was im Log?

                              coyote 1 Reply Last reply Reply Quote 0
                              • coyote
                                coyote Most Active @apollon77 last edited by coyote

                                @apollon77 redis/redis

                                Nee, hab im Log nix gesehen. Vorhin aber nochmal komplett durchgestartet, alle Adapter grün ohne Probleme. Hatte nur nochmal paar warn Meldungen, dass Redis busy ist. Hat sich aber alles gefangen 👍

                                EDIT: Log gerade nochmal etwas durchforstet, schätze manche Adapter blieben rot, wegen den Redis busy Warnings.
                                Aber wie gesagt, beim zweiten Anlauf kamen zwar auch Redis Busy Warnings, jedoch alles Adapter ok.

                                1 Reply Last reply Reply Quote 0
                                • joergeli
                                  joergeli @SBorg last edited by

                                  @SBorg @apollon77
                                  Hat funktioniert 👍
                                  Views exportiert, entzippt, mit Notepad ++ dann in der entspr. vis-views.json alle "vis" durch "vis.0" ersetzt.
                                  ( Es wurden ca. 3500 "vis" ersetzt )

                                  Danke
                                  Jörg

                                  apollon77 1 Reply Last reply Reply Quote 0
                                  • joergeli
                                    joergeli @Chaot last edited by

                                    @apollon77 @Chaot
                                    Danke für den Tip.
                                    Es funktioniert jetzt (mit meinem JavaScript-Halbwissen) bei mir so:

                                    
                                    //==================================== 
                                    // Cam-Bild(er) nach iobroker kopieren
                                    //==================================== 
                                    
                                    var fs = require('fs'); 
                                    
                                    const klingel = 'Datenpunkte.0.Türklingel.Klingel-Zeit';    // Datenpunkt-ID von Klingel
                                    const postda  = 'hm-rega.0.15463';                          // Datenpunkt-ID "Post ist da"
                                    
                                    // Pruefen, ob jemand klingelt
                                    on({id: klingel, change: "ne"},function(obj) {
                                        log ('___ Haustürklingel wurde betätigt ___');
                                        klingeling() ;
                                    });
                                    
                                    // Pruefen, ob Post da ist
                                    on({id: postda, change: 'gt'},function(obj) {
                                        log ('___ Post ist da ___');
                                        postistda() ;
                                    });
                                    
                                    // Cam-Bild von /home/pi/SPY/eingang.jpg
                                    // nach /opt/iobroker/iobroker-data/files/vis.0/klingelbild/klingler.jpg kopieren
                                    //_______________________________________________________________________________
                                    function klingeling() {
                                        const picture= fs.readFileSync('/home/pi/SPY/eingang.jpg'); //liest Cam-Bild aus linux-datei-system
                                        setTimeout(function(){
                                            writeFile('vis.0','/klingelbild/klingler.jpg', picture, function (error) { });
                                            //log ('__ Klingel-Bild wurde kopiert __');
                                        }, 500);
                                    }
                                    
                                    // Cam-Bild von /home/pi/SPY/eingang.jpg
                                    // nach /opt/iobroker/iobroker-data/files/vis.0/klingelbild/postistda.jpg kopieren
                                    //_______________________________________________________________________________
                                    function postistda() {
                                        const picture= fs.readFileSync('/home/pi/SPY/eingang.jpg'); //liest Cam-Bild aus linux-datei-system
                                        setTimeout(function(){
                                            writeFile('vis.0','/klingelbild/postistda.jpg', picture, function (error) { });
                                            //log ('__ Post-Bild wurde kopiert __');
                                        }, 500);
                                    }
                                    

                                    Gruß und Danke
                                    Jörg

                                    apollon77 1 Reply Last reply Reply Quote 1
                                    • apollon77
                                      apollon77 @joergeli last edited by

                                      @joergeli ich hoffe du hattest kein vis.0 vorher drin dann wäre das jetzt vis.0.0 😉

                                      joergeli 1 Reply Last reply Reply Quote 0
                                      • apollon77
                                        apollon77 @joergeli last edited by

                                        @joergeli Also nach readFileSync und writeFile ist normalerweise keinerlei Timeout oder Verzögerung nötig. AUch nicht wenn du exec mit dem Callback nutzt ...

                                        joergeli 1 Reply Last reply Reply Quote 0
                                        • joergeli
                                          joergeli @apollon77 last edited by

                                          @apollon77
                                          Nee, nee, ich habe mich oben nicht korrekt ausgedrückt, hatte natürlich nach /vis/ (also mit den Slashes) suchen und durch /vis.0/ ersetzen lassen

                                          1 Reply Last reply Reply Quote 0
                                          • joergeli
                                            joergeli @apollon77 last edited by

                                            @apollon77
                                            OK, nehme ich wieder raus, hatte das nur gemacht, weil Chaot meinte, daß das Bild evtl. noch nicht auf der Platte liegen könnte, wenn das File schon geschrieben wird.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            434
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            js-controller
                                            89
                                            1052
                                            294908
                                            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