Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. 2 Views automatisch wechseln

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

2 Views automatisch wechseln

Geplant Angeheftet Gesperrt Verschoben Visualisierung
21 Beiträge 7 Kommentatoren 7.6k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • K Offline
    K Offline
    Knusterus
    schrieb am zuletzt editiert von
    #6

    hallo zusammen

    Vielen Dank für Eure Hilfe,aber leider komme ich nicht weiter.Ich habe das Programm von peoüles geändert in

    function seitenwechsel(){
                setState('vis.0.control.instance', 'FFFFFFFF');
                setState('vis.0.control.data', 'Status');            // view2 steht für den Namen der View die du anzeigen willst wenn was passiert
                setState('vis.0.control.command', 'changeView');
    }
    // Abfragen des gewünschen Sensors bspw. Fensterkontakt
    // wenn der Status auf true wechselt wird die view2 angezeigt
    on("hm-rpc.0.NEQ0634584.1", function(dp) { if(dp.state.val) seitenwechsel(); });
    
    

    So hatte ich gehofft, das wenn der Fensterkontakt geöffnet wird ,der View "Status" angezeigt wird.nur leider funktioniert es nicht.

    Was habe ich falsch gemacht??

    So habe es hinbekommen hier der richtige Code

    function seitenwechsel(){
                setState('vis.0.control.instance', 'FFFFFFFF');
                setState('vis.0.control.data', 'Status');            // view2 steht für den Namen der View die du anzeigen willst wenn was passiert
                setState('vis.0.control.command', 'changeView');
    }
    // Abfragen des gewünschen Sensors bspw. Fensterkontakt
    // wenn der Status auf true wechselt wird die view2 angezeigt
    on("hm-rpc.0.NEQ0634584.1.STATE", function(dp) { if(dp.state.val) seitenwechsel(); });
    

    Funktioniert Prima.Vielen Dank

    Allerdings möchte ich jetzt noch das zeitgesteuerte zurückschalten auf den View "Info" .Wie kann ich das realiesieren.

    Jetzt noch eine Frage .Wenn der obere Code nicht nur auf den Fensterkontakt sondern auch auf eine Systemvariable (Briefkasten voll) reagieren soll wie müsste der Code dann ausssehen.??

    Danke

    Volker

    Danke schon mal

    Volker

    1 Antwort Letzte Antwort
    0
    • PeoplesP Offline
      PeoplesP Offline
      Peoples
      schrieb am zuletzt editiert von
      #7

      Hi Volker,

      hier mal die Ergänzung mit dem automatischen Seitenwechsel wie ich es verwende.

      Ich habe die Komentare direkt in das Script geschrieben, sollten dennoch Fragen vorhanden sein helfe ich gerne weiter.

      ! ````
      var instanz = 'javascript.0'; instanz = instanz + '.'; // Javascript instanz

      var pfad0 = 'Automation'; pfad0 = pfad0 + '.'; // Pfad innerhalb der instanz

      ! var SwZeit = 180; // Zeit bis automatischer Seitenwechsel
      ! //Hier erstelle ich einen Datenpunkt der als Timer verwendet wird
      //diesen lasse ich mir in vis anzeigen als "counter"
      createState(pfad0 + 'Seitenwechsel_countdown', {def: '0',type: 'number',name: 'Seitenwechsel Counter'});
      ! // Funktion zum automatischen Seitenwechsel nach Timerablauf
      function autoseitenwechsel() {

      var Zeit = setTimeout(function () {
          var timer = getState(pfad0 + 'Seitenwechsel_countdown').val || SwZeit;
          if (timer > 1) {
              setState(pfad0 + 'Seitenwechsel_countdown', timer - 1);
              autoseitenwechsel();
          }
          else{
              setState(pfad0 + 'Seitenwechsel_countdown', 0);
              setState('vis.0.control.instance', 'FFFFFFFF'); 
              setState('vis.0.control.data', 'Home');             // gewünschte Standardseite
              setState('vis.0.control.command', 'changeView');
          }
      }, 1000);
      

      }

      ! // Hier frage ich den Namen der aufgerufenen View ab, wenn die View bspw. Fenster oder Strom ist
      // wird der Timer aufgerufen, solange bis der Timerwert 0 ist,
      // dann wird auf die Standardseite umgeleitet
      ! on("vis.0.control.data", function (dp){/Data for control vis/
      if( getState("vis.0.control.data").val == "Wandtablet/Fenster" ||
      getState("vis.0.control.data").val == "Wandtablet/Strom" ){

          if(getState(instanz + pfad0 + 'Seitenwechsel_countdown').val > 0) {
              setState(instanz + pfad0 + 'Seitenwechsel_countdown', SwZeit);
          }
          else{
                  autoseitenwechsel();
          }
      }
      if( getState("vis.0.control.data").val == "Wandtablet/Home"){
          setState(pfad0 + 'Seitenwechsel_countdown', 0);
      }
      

      });

      ! //---------------------- Hast du bereits -----------------------------------------
      ! // Funktion zum normalen Seitenwechsel
      function seitenwechsel(){
      setState('vis.0.control.instance', 'FFFFFFFF');
      setState('vis.0.control.data', 'Status'); // view2 steht für den Namen der View die du anzeigen willst wenn was passiert
      setState('vis.0.control.command', 'changeView');
      }
      // Abfragen des gewünschen Sensors bspw. Fensterkontakt
      // wenn der Status auf true wechselt wird die view2 angezeigt
      on("hm-rpc.0.NEQ0634584.1.STATE", function(dp) { if(dp.state.val) seitenwechsel(); });

      
      Wegen deinem Briefkasten sollte genauso funktionieren nur fragst du hier eben deinen Javascriptdatenpunkt ab:
      

      // Je nach dem wie du den Datenpunkt genannt hast und was der Status ist (true/false):
      on("javascript.0.Briefkasten.Briefkastenstatus", function(dp) { if(dp.state.val) seitenwechsel(); });

      // oder wenn der Status bspw. "voll" und "leer" heißt so:
      on("javascript.0.Briefkasten.Briefkastenstatus", function(dp) { if(dp.state.val == 'voll' ) seitenwechsel(); });

      
      Hoffe es ist verständlich
      
      Gruß
      
      Peoples

      Ich beantworte keine Fragen zu Themen via PN

      1 Antwort Letzte Antwort
      0
      • K Offline
        K Offline
        Knusterus
        schrieb am zuletzt editiert von
        #8

        Hi Peoples

        Vielen Dank für deine Hilfe

        Ich habe alles gelöst und es funktioniert prima.Da der Status Briefkasten voll und leer über Mikroschalter am Briefkasten abgfragt wird, habe ich die Abfrage auch für den Viewwechsel genutzt.

        Jetzt bleibt der Statusview solange angezeigt bis der Briefkasten geleert wird.

        Das ist der Code für den Briefkasten voll

        function seitenwechsel(){
                    setState('vis.0.control.instance', 'FFFFFFFF');
                    setState('vis.0.control.data', 'Status');            // view2 steht für den Namen der View die du anzeigen willst wenn was passiert
                    setState('vis.0.control.command', 'changeView');
        }
        // Abfragen des gewünschen Sensors bspw. Fensterkontakt
        // wenn der Status auf true wechselt wird die view2 angezeigt
        on("hm-rpc.0.NEQ0530536.1.STATE", function(dp) { if(dp.state.val) seitenwechsel();});
        

        Das der Code für leer

        function seitenwechsel(){
                    setState('vis.0.control.instance', 'FFFFFFFF');
                    setState('vis.0.control.data', 'Info');            // view2 steht für den Namen der View die du anzeigen willst wenn was passiert
                    setState('vis.0.control.command', 'changeView');
        }
        // Abfragen des gewünschen Sensors bspw. Fensterkontakt
        // wenn der Status auf true wechselt wird die view2 angezeigt
        on("hm-rpc.0.NEQ0530536.2.STATE", function(dp) { if(dp.state.val) seitenwechsel();});
        

        So und hier nochmal der Fensterkontakt mit Zeit

        function seitenwechsel(){
                    setState('vis.0.control.instance', 'FFFFFFFF');
                    setState('vis.0.control.data', 'Status');            // view2 steht für den Namen der View die du anzeigen willst wenn was passiert
                    setState('vis.0.control.command', 'changeView');
        }
        // Abfragen des gewünschen Sensors bspw. Fensterkontakt
        // wenn der Status auf true wechselt wird die view2 angezeigt
        on("hm-rpc.0.NEQ0634584.1.STATE", function(dp) { if(dp.state.val) seitenwechsel();
        setTimeout(function () {
                              setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Info"}');
                   }, 10000);
        });
        

        Funktioniert alles prima vielen Dank für die Hilfe.

        Eine Kleinigkeit habe ich noch

        Ich nutze zur Visualisierung ein Tablet mit der Iobroker App.

        Da kann man ja über einen Code die Views über wischen wechseln.

        Gibt es auch einen Code wo die Views automatisch nach einer bestimmte Zeit wechseln?

        Danke nochmal für die Hilfe

        Volker

        1 Antwort Letzte Antwort
        0
        • PeoplesP Offline
          PeoplesP Offline
          Peoples
          schrieb am zuletzt editiert von
          #9

          Möchtest du die Views einfach wechseln oder mit diesem "wisch effeckt" wechseln?

          Ich beantworte keine Fragen zu Themen via PN

          1 Antwort Letzte Antwort
          0
          • K Offline
            K Offline
            Knusterus
            schrieb am zuletzt editiert von
            #10

            Die Views sollen einfach durchlaufen ,wie eine Slideshow. Nur die Zeit sollte einstelbar sein.

            Volker

            1 Antwort Letzte Antwort
            0
            • PeoplesP Offline
              PeoplesP Offline
              Peoples
              schrieb am zuletzt editiert von
              #11

              @Knusterus:

              Die Views sollen einfach durchlaufen ,wie eine Slideshow. Nur die Zeit sollte einstelbar sein.

              Volker `

              Naja du könntest die verschiedenen Views, die du durchlaufen lassen möchtest in einem Array auflisten und das dann halt immer wieder durchlaufen lassen.

              Ich beantworte keine Fragen zu Themen via PN

              1 Antwort Letzte Antwort
              0
              • WebrangerW Offline
                WebrangerW Offline
                Webranger
                schrieb am zuletzt editiert von
                #12

                @peoples:

                Naja du könntest die verschiedenen Views, die du durchlaufen lassen möchtest in einem Array auflisten und das dann halt immer wieder durchlaufen lassen. `

                Könntest Du erklären wie das geht?

                Gruss

                Intel NUC Celeron, Xiaomi Gateway, Fritzbox 7590, XS1

                1 Antwort Letzte Antwort
                0
                • PeoplesP Offline
                  PeoplesP Offline
                  Peoples
                  schrieb am zuletzt editiert von
                  #13

                  @ringdingringding:

                  @peoples:

                  Naja du könntest die verschiedenen Views, die du durchlaufen lassen möchtest in einem Array auflisten und das dann halt immer wieder durchlaufen lassen. `

                  Könntest Du erklären wie das geht?

                  Gruss `

                  var View = [];                                     
                  
                      View[0] = "Seite1"; //Name der ersten View die angezeigt werden soll 
                      View[1] = "Seite2"; //Name der zweiten View die angezeigt werden soll
                      View[2] = "Seite3"; //Name der dritten View die angezeigt werden soll
                      View[3] = "Seite4"; //Name der vierten View die angezeigt werden soll
                  // ...
                  
                  function viewWechsel(number) {
                      time=setTimeout(function () {
                  
                          setState('vis.0.control.instance', 'FFFFFFFF');
                          setState('vis.0.control.data', View[number]);            
                          setState('vis.0.control.command', 'changeView');
                  
                          log(View[number]);
                          number = number +1;
                  
                          if(number== View.length) {
                              viewWechsel(0);
                          } else {
                              viewWechsel(number);
                          }
                      }, 5000); // Zeit solange eine View angezeigt werden soll in Millisekunden
                  
                  }
                  viewWechsel(0);
                  

                  Mal schnell zusammengetippt. Bei den Namen musst du exakt den aus Vis angeben. Habe zwar nur geprüft ob der Log richtig durchläuft aber sollte funktionieren. Wenn nicht sag Bescheid dann schau ich mir das nochmal an.

                  Ich beantworte keine Fragen zu Themen via PN

                  U 1 Antwort Letzte Antwort
                  1
                  • WebrangerW Offline
                    WebrangerW Offline
                    Webranger
                    schrieb am zuletzt editiert von
                    #14

                    Klappt nicht!

                    Hab das script eingetragen in VIS/Eigenschaften/script

                    2958_bildschirmfoto_2018-07-26_um_18.22.28.png

                    das Projekt heist Küche, muss ich das auch eintragen oder weis es das?

                    ` > var View = [];

                    View[0] = "Kueche1"; //Name der ersten View die angezeigt werden soll

                    View[1] = "Kueche2"; //Name der zweiten View die angezeigt werden soll

                    // …

                    function viewWechsel(number) {

                    time=setTimeout(function () {

                    setState('vis.0.control.instance', 'FFFFFFFF');

                    setState('vis.0.control.data', View[number]);

                    setState('vis.0.control.command', 'changeView');

                    log(View[number]);

                    number = number +1;

                    if(number== View.length) {

                    viewWechsel(0);

                    } else {

                    viewWechsel(number);

                    }

                    }, 5000); // Zeit solange eine View angezeigt werden soll in Millisekunden

                    }

                    viewWechsel(0); `

                    Intel NUC Celeron, Xiaomi Gateway, Fritzbox 7590, XS1

                    1 Antwort Letzte Antwort
                    0
                    • PeoplesP Offline
                      PeoplesP Offline
                      Peoples
                      schrieb am zuletzt editiert von
                      #15

                      Nicht in vis sondern unter scripte (dort wo deine Sonstigen Javascript bzw blockys liegen)

                      Und es muss dann eine View geben die kueche1 und kueche2 heißt

                      Ich beantworte keine Fragen zu Themen via PN

                      1 Antwort Letzte Antwort
                      0
                      • WebrangerW Offline
                        WebrangerW Offline
                        Webranger
                        schrieb am zuletzt editiert von
                        #16

                        Ah ok das gehts und wechselt zwischen Kueche1 und Kueche2

                        Habe für die beiden views extra ein neues Projekt mit Namen Küche.

                        und für mein Tablet im Flur Projekt main.

                        Wenn ich das script von dir jetzt starte tut sich auch was auf dem Tablet im Flur was es ja eigentlich nicht sollte.

                        Muss ich in dem script noch irgendwo das Projekt eintragen damit sich die beiden nicht in die Quere kommen?

                        Gruss Danyel

                        Intel NUC Celeron, Xiaomi Gateway, Fritzbox 7590, XS1

                        1 Antwort Letzte Antwort
                        0
                        • wendy2702W Online
                          wendy2702W Online
                          wendy2702
                          schrieb am zuletzt editiert von
                          #17

                          Du musst im Script das „FFFFFFF“ gegen die Browser Instanz des Tablets austauschen von dem Tablet das den View wechseln soll.

                          Um die raus zu bekommen gibt es ein „resolution“ Widget das neben der Auflösung auch die Instanz anzeigt. Einfach in einen View einfügen, Instanz Nummer aufschreiben und Widget danach wieder löschen.

                          Bitte keine Fragen per PN, die gehören ins Forum!

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          1 Antwort Letzte Antwort
                          0
                          • WebrangerW Offline
                            WebrangerW Offline
                            Webranger
                            schrieb am zuletzt editiert von
                            #18

                            Danke an alle.

                            Genau das war es und es läuft.

                            Super Forum und Community

                            Weiter so

                            Gruß Danyel

                            Intel NUC Celeron, Xiaomi Gateway, Fritzbox 7590, XS1

                            1 Antwort Letzte Antwort
                            0
                            • G Offline
                              G Offline
                              gfrene
                              schrieb am zuletzt editiert von gfrene
                              #19

                              Moin zusammen :-) Das Script läuft ... aber wie kann ich das umsetzen.

                              Ich bin in meiner Cam View
                              Unbenannt.png

                              so wie man sehen kann sieht man rechts weitere 4 Cam`s.

                              Nun möchte ich das nur hier (IP-CAM) das Script greift und wenn jetzt wieder auf Home gehe oder eben anderen TAB soll das script nichts machen.
                              Wenn ich jetzt wieder auf IP-Cam gehe soll das script wieder die weiteren 4 Cams durchlaufen.

                              Geht das ?

                              Gruß und danke für die hilfe

                              PeoplesP 1 Antwort Letzte Antwort
                              0
                              • PeoplesP Peoples

                                @ringdingringding:

                                @peoples:

                                Naja du könntest die verschiedenen Views, die du durchlaufen lassen möchtest in einem Array auflisten und das dann halt immer wieder durchlaufen lassen. `

                                Könntest Du erklären wie das geht?

                                Gruss `

                                var View = [];                                     
                                
                                    View[0] = "Seite1"; //Name der ersten View die angezeigt werden soll 
                                    View[1] = "Seite2"; //Name der zweiten View die angezeigt werden soll
                                    View[2] = "Seite3"; //Name der dritten View die angezeigt werden soll
                                    View[3] = "Seite4"; //Name der vierten View die angezeigt werden soll
                                // ...
                                
                                function viewWechsel(number) {
                                    time=setTimeout(function () {
                                
                                        setState('vis.0.control.instance', 'FFFFFFFF');
                                        setState('vis.0.control.data', View[number]);            
                                        setState('vis.0.control.command', 'changeView');
                                
                                        log(View[number]);
                                        number = number +1;
                                
                                        if(number== View.length) {
                                            viewWechsel(0);
                                        } else {
                                            viewWechsel(number);
                                        }
                                    }, 5000); // Zeit solange eine View angezeigt werden soll in Millisekunden
                                
                                }
                                viewWechsel(0);
                                

                                Mal schnell zusammengetippt. Bei den Namen musst du exakt den aus Vis angeben. Habe zwar nur geprüft ob der Log richtig durchläuft aber sollte funktionieren. Wenn nicht sag Bescheid dann schau ich mir das nochmal an.

                                U Offline
                                U Offline
                                uhoffmann
                                schrieb am zuletzt editiert von
                                #20

                                @peoples Ich muss mal kurz ein großes DANKE loswerden. Das Script hat bei mir auch super funktioniert und ich finde es klasse, dass Du das mal eben aus dem Ärmel geschüttelt hattest.

                                Vielen herzlichen Dank auch von mir.

                                Uli

                                1 Antwort Letzte Antwort
                                0
                                • G gfrene

                                  Moin zusammen :-) Das Script läuft ... aber wie kann ich das umsetzen.

                                  Ich bin in meiner Cam View
                                  Unbenannt.png

                                  so wie man sehen kann sieht man rechts weitere 4 Cam`s.

                                  Nun möchte ich das nur hier (IP-CAM) das Script greift und wenn jetzt wieder auf Home gehe oder eben anderen TAB soll das script nichts machen.
                                  Wenn ich jetzt wieder auf IP-Cam gehe soll das script wieder die weiteren 4 Cams durchlaufen.

                                  Geht das ?

                                  Gruß und danke für die hilfe

                                  PeoplesP Offline
                                  PeoplesP Offline
                                  Peoples
                                  schrieb am zuletzt editiert von
                                  #21

                                  @gfrene
                                  Es kommt drauf an was in dem Datenpunkt der View steht. Wenn das immer der gleiche Name ist, reagiert auch das Script immer. Die Unterscheidung wird rein über den Namen gemacht.

                                  Ich beantworte keine Fragen zu Themen via PN

                                  1 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  660

                                  Online

                                  32.5k

                                  Benutzer

                                  81.7k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe