Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Refresh des Browsers nötig um Bild anzuzeigen.

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Refresh des Browsers nötig um Bild anzuzeigen.

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

      @navino:

      Momentan habe ich noch keine Java-Scripte verwendet. ` Das wusste ich nicht.@navino:

      Kannst du mir noch sagen, wie ich in meine View einbaue ` Du legst ein neues Skript an im Javascript Adapter (bitte in die Doku schauen, wenn du Hilfe brauchst). Dann kopierst du den obigen Code in das Skript, änderst die Zeile 9 und passt die HM-Seriennummer deines Aktors (der das Tablet schaltet) an. Dann Skript speichern und aktivieren. Wenn der Aktor nun auf true geht, werden alle Views in allen Browsern neu geladen. In VIS brauchst du vorerst gar nichts zu tun.

      Gruß

      Pix

      1 Reply Last reply Reply Quote 0
      • N
        navino last edited by

        @pix:

        Du legst ein neues Skript an im Javascript Adapter (bitte in die Doku schauen, wenn du Hilfe brauchst). Dann kopierst du den obigen Code in das Skript, änderst die Zeile 9 und passt die HM-Seriennummer deines Aktors (der das Tablet schaltet) an. Dann Skript speichern und aktivieren. Wenn der Aktor nun auf true geht, werden alle Views in allen Browsern neu geladen. In VIS brauchst du vorerst gar nichts zu tun. `

        Also der Apapter ist installiert und aktiviert und ein Script habe ich angelegt. Irgendwas mache ich noch falsch… Zwei Fragen zu dem Script:

        on("hm-rpc.0.TabletSteckdose:1.STATE", function(obj) { // Wenn Schaltaktor true
            if (obj.newState.val) {
                setTimeout(function (){
                    reload_views("FFFFFFFF"); // alle Browser, später nur Wandtablet
                    log('Aktor eingeschaltet, Vis-View wird aktualisiert');
                }, 5000); // 5s Verzögerung, damit das Gerät auch eingeschaltet ist, wenn der Reload Befehl kommt.
            }else{
                 log('Aktor ausgeschaltet, Vis-View wird aktualisiert');
            }   
        });
        

        Mein Aktor der Zwischenstecker heißt in der Homematic CCU, so habe ich das auch im script geändert, ist das richtig ?

        In der Zeile:

        if (obj.newState.val) {
        

        wird doch hier nach true abgefragt (also ist der Schalter eingeschaltet) , oder ?

        Ich schalte ja über den Bewegungsmelder die Steckdose aus, damit das Tablet an geht.

        Muß ich das hier dan abändern?

        Gruß

        navino
        639_tabletsteckdose.jpg

        1 Reply Last reply Reply Quote 0
        • N
          navino last edited by

          @pix:

          Du legst ein neues Skript an im Javascript Adapter (bitte in die Doku schauen, wenn du Hilfe brauchst). Dann kopierst du den obigen Code in das Skript, änderst die Zeile 9 und passt die HM-Seriennummer deines Aktors (der das Tablet schaltet) an. Dann Skript speichern und aktivieren. Wenn der Aktor nun auf true geht, werden alle Views in allen Browsern neu geladen. In VIS brauchst du vorerst gar nichts zu tun. `

          Hallo Pix,

          mein erstes Script will nicht laufen, woran könnte das liegen?? Ich habe das if geändert, da ich den Aktor ausschalte (ist das richtig??)

          Gruß

          navino
          639_script.jpg

          1 Reply Last reply Reply Quote 0
          • P
            pix last edited by

            @navino:

            Ich habe das if geändert, da ich den Aktor ausschalte (ist das richtig??) `
            Ich glaube, an dieser Stelle (Zeile 10) ist die Abkürzung nicht so gut (in Verbindung mit newState.val).

            Versuche mal lieber:

            if (obj.newState.val =="false" || obj.newState.val === false) {
                setTimeout(function (){
                        reload_views("FFFFFFFF"); // alle Browser, später nur Wandtablet
                        log('Aktor eingeschaltet, Vis-View wird aktualisiert');
                    }, 5000); // 5s Verzögerung, damit das Gerät auch eingeschaltet ist, wenn der Reload Befehl kommt.
            } else ...
            

            Gruß

            Pix

            1 Reply Last reply Reply Quote 0
            • N
              navino last edited by

              Hallo,

              der refresh klappt leider nicht, auch die Ausgabe steht nicht im log.

              Was kann denn jetzt noch falsch sein?

              Gruß

              navino
              639_eins.jpg
              639_zwei.jpg
              2094_photo5366069798628337898.jpg

              1 Reply Last reply Reply Quote 0
              • Bluefox
                Bluefox last edited by

                Warum steht bei dir ":" in dem ID? Ich habe z.B. kein Objekt mit ":".

                Versuche mal:

                
                on("hm-rpc.0.LEQ1068415.1.STATE", function (obj) {
                   console.log(obj.newState.val);
                });
                
                
                1 Reply Last reply Reply Quote 0
                • N
                  navino last edited by

                  Habe die Steckdose jetzt einen Namen ohne : gegeben.

                  Hatte das mal bei den Kanälen der Geräte gemacht (laut Bestpractise bei HM)

                  geht aber leider immer noch nicht.

                  Ich habe das Script jetzt auch auf Global gesetzt, macht aber auch keinen Unterschied….

                  Bin jetzt fast am verzweifeln...

                  Gruß

                  navino

                  1 Reply Last reply Reply Quote 0
                  • P
                    pix last edited by

                    Hallo navino,

                    poste bitte nochmal Deinen Code (bitte keinen Screenshot, sondern Copy/Paste zwischen die Code-Tags), wir kriegen das schon hin.

                    Gruß,

                    Pix

                    1 Reply Last reply Reply Quote 0
                    • N
                      navino last edited by

                      Hallo,

                      ich würde mal gerne so ein Hello World ins log schreiben, damit ich überhaupt mal ein erfolgserlebnis habe!!

                      also das ist hier das Script:

                      // Refresh: wenn keine Instanz angegeben, dann auf allen Browsern
                      function reload_views(instanz) {
                          if (!instanz) instanz = "FFFFFFFF";
                          setState("vis.0.control.command", '{"instance": "' + instanz + '", "command": "refresh"}');
                          log('Vis Views im Browser ' + instanz + ' per control.command aktualisiert');
                      }
                      
                      // Aktor überwachen
                      on("hm-rpc.0.LEQ1068415.1.STATE", function(obj) { // Wenn Schaltaktor true
                         if (obj.newState.val =="false" || obj.newState.val === false) {
                              setTimeout(function (){
                                  reload_views("FFFFFFFF"); // alle Browser, später nur Wandtablet
                                  log('Aktor ausgeschalter, Vis-View wird aktualisiert');
                              }, 5000); // 5s Verzögerung, damit das Gerät auch eingeschaltet ist, wenn der Reload Befehl kommt.
                          }   
                      });
                      
                      

                      Gruß

                      navino

                      1 Reply Last reply Reply Quote 0
                      • P
                        pix last edited by

                        Hallo navino,

                        @navino:

                        Habe die Steckdose jetzt einen Namen ohne : gegeben.

                        Hatte das mal bei den Kanälen der Geräte gemacht (laut Bestpractise bei HM) `

                        ich glaube, das meinte bluefox nicht. Die Kanäle werde in den ioBroker Admin Objekten eh immer als .1 dargestellt.

                        __Adapter.Instanz.Gerät.Kanal.Status

                        hm-rpc.0.LEQ1068415.1.STATE__

                        Die Mühe des Umbennens hättest du dir sparen können.

                        @navino:

                        wird doch hier nach true abgefragt (also ist der Schalter eingeschaltet) , oder ?

                        Ich schalte ja über den Bewegungsmelder die Steckdose aus, damit das Tablet an geht.

                        Muß ich das hier dan abändern? `
                        Stimmt die Seriennummer des Schaltaktors?

                        LEQ1068415

                        Probier erstmal das (Test ohne die Views zu laden):

                        // Aktor überwachen
                        on("hm-rpc.0.LEQ1068415.1.STATE", function(obj) { 
                           if (obj.newState.val === false) {
                                log('Aktor ausgeschaltet');
                            } else {
                                log('Aktor eingeschaltet');
                            }
                        });
                        

                        Gruß

                        Pix

                        1 Reply Last reply Reply Quote 0
                        • N
                          navino last edited by

                          Hallo,

                          habe das Script jetzt angepasst, die Seriennummer stimmt!

                          Leider finde ich nichts im log.

                          So sieht das jetzt aus:

                          Gruß

                          navino
                          639_script1.jpg

                          1 Reply Last reply Reply Quote 0
                          • N
                            navino last edited by

                            Nachtrag:

                            habe mal den Enginetyp auf Coffeescript geändert:

                            Danach stand im Log:

                            javascript-0 2015-11-07 11:03:08 info Stop script script.js.MyGlobalFunctions_global

                            Habe wenn ich die Schalter schalte kein Eintrag.

                            1 Reply Last reply Reply Quote 0
                            • P
                              pix last edited by

                              Hallo, nimm mal den Haken bei Global raus; ein solches Skript muss nicht global sein.

                              Dann in der Liste, wo alle Skripts stehen, nochmal nachsehen, ob das Skript aktiviert ist

                              Gruß

                              Pix

                              Gesendet von meinem iPhone mit Tapatalk

                              1 Reply Last reply Reply Quote 0
                              • N
                                navino last edited by

                                Hallo,

                                ja ohne den Haken Global habe ich Fehlermeldungen im log bekommen:

                                Jetzt habe ich die engine noch auf Javascript geändert, und es FUNKTIONIERT!!

                                Super, der log kommt schonmal.

                                Jetzt werde ich den Refresh einbauen.

                                Für was sind denn die globalen Scripte gedacht?

                                Gruß

                                navino

                                1 Reply Last reply Reply Quote 0
                                • P
                                  pix last edited by

                                  Wenn du eine Funktion in verschiedenen Skripten immer wieder benutzt, kannst du sie in ein globales Skript packen und dann aus jedem Skript wie einen normalen JavaScript Befehl aufrufen.

                                  Beispiel: Uhrzeit und Datum im deutschen Format. Man legt den ganzen Code (get Date …) in eine Funktion in einem globalen Skript und ruft die Funktion einfach zB mit deutscheZeit() in den anderen Skripten auf.

                                  Pix

                                  Gesendet von meinem iPhone mit Tapatalk

                                  1 Reply Last reply Reply Quote 0
                                  • N
                                    navino last edited by

                                    @pix:

                                    Wenn du eine Funktion in verschiedenen Skripten immer wieder benutzt, kannst du sie in ein globales Skript packen und dann aus jedem Skript wie einen normalen JavaScript Befehl aufrufen.

                                    Beispiel: Uhrzeit und Datum im deutschen Format. Man legt den ganzen Code (get Date …) in eine Funktion in einem globalen Skript und ruft die Funktion einfach zB mit deutscheZeit() in den anderen Skripten auf. `

                                    ja, leuchtet ein.

                                    Refresh klappt jetzt auch!!

                                    Der refresh dauert auf dem Tablet leider ein ganze weile. Ob ich mit der Lösung auf dauer klar komme….. weiß ich noch nicht.

                                    Noch besser wäre wenn man nur das eine Bild refreshen könnte...

                                    Kann man nicht in einer View, eine weitere Einbauen und evtl. nur die eingebaute aktualisieren?

                                    Wäre sowas denkbar?

                                    Gruß

                                    navino

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      pix last edited by

                                      Alle Views eines Projektes werden gemeinsam geladen (Deshalb der Ladebalken). Da nützt eine Verschachtelung nix. Man kann beim iFrame Widget und beim img Widget refresh Zeiten in ms angeben. Man müsste testen, ob das Sinn man in einem iFrame ein neues Vis Projekt laufen zu lassen. Ich vermute aber nicht.

                                      Wenn der refresh zu lange dauert ist das Projekt zu groß. Es hat wohl viele Views mit vielen Widgets?

                                      Pix

                                      Gesendet von meinem iPhone mit Tapatalk

                                      1 Reply Last reply Reply Quote 0
                                      • N
                                        navino last edited by

                                        Hallo,

                                        ich habe eine ÜbersichtsView mit ca. 40 Widgets und noch 4 kleine für das Handy mit jeweils etwa 10.

                                        Keine Ahnung, ob das jetzt ein großes Projekt ist.

                                        Auf einem Rechner ist das aktualiseren der View deutlich schneller, das Samsung Tab 1 ist wohl auch nicht das schnellste…

                                        Gruß

                                        navino

                                        D 1 Reply Last reply Reply Quote 0
                                        • D
                                          dos1973 @navino last edited by dos1973

                                          Oh mann, ich habe ein 7 jahre altes Problem ausgegraben… 😞

                                          Gibts inzwischen dafür ggfs. eine Idee

                                          Edit: ipad
                                          Ob safari browser oder iobroker App, gleiches Verhalten

                                          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

                                          537
                                          Online

                                          32.0k
                                          Users

                                          80.4k
                                          Topics

                                          1.3m
                                          Posts

                                          7
                                          33
                                          4205
                                          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