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.
    • N
      navino last edited by

      @Fitti:

      Die läuft bei mir glücklicherweise stabil. `
      und du hast aber auch Aktualisierungsprobleme damit?

      @Fitti:

      Habe nicht die spur einer IDee, wie diese app funktioniert. Ich nehme aber an, dass diese keinen eigenen Webbrowser mitbringt. Eher, dass diese den StandardBrowser im Vollbild aufruft.

      Oder was meinst Du? `
      Ich denke ohne das genau zu wissen, das der interne Browser bzw. die engine für das interpretieren von HTML benutzt wird. Auf meinem Nexus5 habe ich letzte Zeit öfters update für die WebViewControl bekommen.
      @Fitti:

      Du wärst natürlich der Held wenn Du auf Android da noch was schaffen würdest… :mrgreen: `

      Ich will eigenlich nur eine coole Haussteuerung, nicht der Held sein 😉

      Gruß

      navino

      1 Reply Last reply Reply Quote 0
      • F
        Fitti last edited by

        @navino:

        @Fitti:

        Die läuft bei mir glücklicherweise stabil. und du hast aber auch Aktualisierungsprobleme damit?

        Leider ja. Ich habe diese aber auch mit dem normalen Browser unter Android 5.0.1.

        Mit dem Dolphin Browser kommt nur noch quark raus.

        Ehrlich gesagt - ich sehe gar keine andere Möglichkeit.

        Ich denke also, das das Refresh-Thema evtl. auch in ioBroker zu suchen ist.

        Pix's Lösung geht auc nicht bei mir. Refreshed nicht alle 60 minuten. Schade. Aber ich kann Problemlos durch den Link jetzt manuell refreshen.

        Aber noch einmal zur Verdeutlichung: Ich habe nur Probleme mit HTML Widgets, die auf einen bestimmten Refreshintervall selber refreshen sollen. Z. B. alle 20 Sekunden von der Kamera ein Bild abholen.

        Icons, Filter usw. gehen alle.

        Fitti

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

          @Fitti:

          Aber ich kann Problemlos durch den Link jetzt manuell refreshen. `
          Du kannst das auch mit Bordmitteln (Control interface) machen. Hier ein Widget, das auf klick alle offenen VIS-Views aktualisiert (auch die im Edit-Modus)

          [{"tpl":"tplBasicState","data":{"oid":"vis.0.control.command","visibility-cond":"==","visibility-val":1,"value":"{\"instance\": \"FFFFFFFF\", \"command\": \"refresh\"}","html":"[Reload]"},"style":{"left":"353px","top":"724px","width":"65px","height":"22px"},"widgetSet":"basic"}]
          

          Das kann man natürlich auch in einen Cronjob im Script packen oder an eine Aktion hängen (siehe oben, Post im Briefkasten)

          Gruß

          Pix

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

            Hallo,

            habe jetzt noch mal einige Tests gemacht, aber um es vorweg zu nehmen, ich verstehe momentan gerade nichts.

            Auf dem Tablet verwende ich momentan den Firefox.

            Ich habe mein Tablet für Testzwecke so eingestellt, das das Display nach 15 Sekunden ausgeschaltet wird (Was da noch alles passiert, weiß ich nicht).

            Wenn ich kurz später den FK betätige, dann das Tablet anmache, ist das Bild da.

            Wenn ich das Tablet aber nach 15 Minuten anmache, ist das Bild nicht da, kommt dann aber nach einiger Zeit(momentan habe ich gar kein refresh eingebaut)

            Da mein Tablet nicht das allerschnellste ist, und der Refresh echt einige Zeit in Anspruch nimmt, würde ein kompletter refresh meiner Meinung am meißten Sinn machen, wenn das Display eingeschaltet wird.

            Ich schalte das Tablet über einen Bewegungsmelder und einer Homematic-Zwischenschalter ein.

            Gruß

            navino

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

              @navino:

              Ich schalte das Tablet über einen Bewegungsmelder und einer Homematic-Zwischenschalter ein. `
              Ist bei mir eine stromlose Statusanzeige, aber das ist egal.

              // 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.ZWISCHENSTECKERSERIENNUMMER.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.
                  }    
              });
              
              

              Nicht wundern, dass ich das in zwei Funktionen gepackt habe. DIe obere ist eine globale Funktion, also eigentlich ein eigenes Skript. Die untere ist eine von mehreren Szenarien, die zum Refresh führen.

              Gruß

              Pix

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

                @pix:

                Nicht wundern, dass ich das in zwei Funktionen gepackt habe. DIe obere ist eine globale Funktion, also eigentlich ein eigenes Skript. Die untere ist eine von mehreren Szenarien, die zum Refresh führen. `

                Momentan habe ich noch keine Java-Scripte verwendet. Kannst du mir noch sagen, wie ich in meine View einbaue?

                BInschon ganz gespannt das zu Testen.

                Gruß

                navino
                6305_lueftung_hm1.png
                6305_lueftung_hm2.png
                6305_lueftung_hm3.png

                1 Reply Last reply Reply Quote 0
                • 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
                                            • First post
                                              Last post

                                            Support us

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

                                            575
                                            Online

                                            32.0k
                                            Users

                                            80.3k
                                            Topics

                                            1.3m
                                            Posts

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