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. Skripten / Logik
  4. Blockly
  5. Automatischer View Wechsel / zwei unterschiedliche Geräte

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

Automatischer View Wechsel / zwei unterschiedliche Geräte

Geplant Angeheftet Gesperrt Verschoben Blockly
26 Beiträge 3 Kommentatoren 1.9k Aufrufe 4 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.
  • M m0uh

    @liv-in-sky also so leid es mir tut aber ich bekomm es nicht zum laufen.

    So hab ich den Script drin:

     /*SCHALTET ZURÜCK AUF VIEW DES ZIMMERS 1*/
     
    var remindSwitchTab1=false;
    var mySwitchTime1=30000;
    var myTabPort1="8083";
    var myURL1="http://192.168.178.67:8083/vis/index.html#Wohnung"
     
    /*für reload page*/
    if (location.port==myTabPort1) {
       
        setTimeout(function() {
        if (!remindSwitchTab1)  window.location.href = myURL1;
           console.log("wait");
       }, mySwitchTime1)
    }
     
    /*nach klick wieder reaktiviert*/
    $(window).click(function(e) {
       if (!remindSwitchTab1 && location.port==myTabPort1){
           remindSwitchTab1=true;
            console.log("in href change 1 timer "+mySwitchTime1+" sek");
        setTimeout(function() {
           window.location.href = myURL1;
           console.log("finished for href change 1");
           remindSwitchTab1=false;
           
       }, mySwitchTime1)
       
       }
    });
     
    /*ENDE ----- SCHALTET ZURÜCK AUF VIEW DES ZIMMERS/TABLETS2*/
     
    /*SCHALTET ZURÜCK AUF VIEW DES ZIMMERS 2*/
     
    var remindSwitchTab2=false;
    var mySwitchTime2=10000;
    var myTabPort2="8084";
    var myURL2="http://192.168.178.67:8084/vis/index.html#Dachgeschoss"
     
    /*für reload page*/
    if (location.port==myTabPort2) {
       
        setTimeout(function() {
         if (!remindSwitchTab2)  window.location.href = myURL2;
           console.log("wait");
       }, mySwitchTime2)
    }
     
    /*nach klick wieder reaktiviert*/
    $(window).click(function(e) {
       if (!remindSwitchTab2 && location.port==myTabPort2){
           remindSwitchTab2=true;
           console.log("in href change 2 timer "+mySwitchTime2+" sek");
        setTimeout(function() {
          window.location.href = myURL2;
           console.log("finished for href change 2");
           remindSwitchTab2=false;
           
       }, mySwitchTime2)
     
       }
    });
    

    FullyBrowser beide bei v1.46 & es ist jeweils
    http://192.168.178.67:8083/vis/index.html#Wohnung
    http://192.168.178.67:8084/vis/index.html#Dachgeschoss
    eingetragen

    es wird auf keine anderen Gerät zum selben Zeitpunkt irgendeine VIS Instanz ausgeführt. (auf keinen der 3 Ports)

    Zeit ist auf 30 & 10 Sekunden. OHNE ERFOLG :(

    WENN ich aber in Chrome im selben Browser 2 Tabs mit den dazugehörigen Ports öffne funktioniert es (auch wenn Sie noch im Fully geöffnet sind).
    Also irgendwas passt nicht... scheint ja irgend eine Einstellung im Fully zu sein.

    liv-in-skyL Offline
    liv-in-skyL Offline
    liv-in-sky
    schrieb am zuletzt editiert von liv-in-sky
    #21

    @m0uh

    NEUER VERSUCH:

    erstes script wie gehabt im vis script tab:

    
    
    
    
    
    
    /*SCHALTET ZURÜCK AUF VIEW DES ZIMMERS 1*/
    
    
    var myTabPort1="8072";
    var myURL1="http://192.168.178.59:8072/vis/index.html?speedy3#dives"
    
    /*für reload page*/
    if (location.port==myTabPort1) {
    
       setInterval(function() {
        	var Self = this;
    Self.servConn.getStates('0_userdata.0.vis.visSchaltenTablet1', (error, states) => {  console.log(states['0_userdata.0.vis.visSchaltenTablet1'].val);
          if(!states['0_userdata.0.vis.visSchaltenTablet1'].val) window.location.href = myURL1;
    } );
      
        
    }, 10000); 
       
       
    }
    
    /*nach klick wieder reaktiviert*/
    $(window).click(function(e) {
        if ( location.port==myTabPort1){
        vis.setValue('0_userdata.0.vis.visSchaltenTablet1',true);
        vis.setValue('0_userdata.0.vis.visTablet1Port',location.port);
        }
       
    
    });
    
    /*ENDE ----- SCHALTET ZURÜCK AUF VIEW DES ZIMMERS/TABLETS2*/
    
    /*SCHALTET ZURÜCK AUF VIEW DES ZIMMERS 2*/
    
    
    var myTabPort2="8082";
    var myURL2="http://192.168.178.59:8082/vis/index.html?speedy3#111"
    
    /*für reload page*/
    if (location.port==myTabPort2) {
       
        setInterval(function() {
        	var Self = this;
    Self.servConn.getStates('0_userdata.0.vis.visSchaltenTablet2', (error, states) => {  console.log(states['0_userdata.0.vis.visSchaltenTablet2'].val);
          if(!states['0_userdata.0.vis.visSchaltenTablet2'].val) window.location.href = myURL2;
    } );
      
        
    }, 10000);
    }
    
    /*nach klick wieder reaktiviert*/
    $(window).click(function(e) {
        if ( location.port==myTabPort2){
       vis.setValue('0_userdata.0.vis.visSchaltenTablet2',true);
       vis.setValue('0_userdata.0.vis.visTablet2Port',location.port);
        }
    });
    
    /*ENDE ----- SCHALTET ZURÜCK AUF VIEW DES ZIMMERS/TABLETS2*/
    
    
    

    zweites script ist ein blockly:

    • diesmal ist es wichtig, dass eine seite in nur einem browser läuft !!!! paralleles testen mit pc und tablet ist nicht möglich - also möglich schon, bringt aber das system durcheinander
    • legt dp unter 0_userdata.0.vis... an - beim ersten start gibt es warnungen im log - dann ist's aber ok
    • im blockly stellst du die zeit ein, wie lange es brauchen soll, bis umgeschaltet wird (+/- 10 sekunden (das liegt daran, dass die vis längstens 10 sek braucht, um den dp zu scannen - macht aber nix, da du ja im alltäglichen gebrauch, eine längere zeit hast, bis zurückgeschaltet wird

    <xml xmlns="https://developers.google.com/blockly/xml">
     <block type="control" id="jiT=5gzt@D{jw:lQ/sRj" x="138" y="62">
       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
       <field name="OID">0_userdata.0.vis.visSchaltenTablet1</field>
       <field name="WITH_DELAY">FALSE</field>
       <value name="VALUE">
         <block type="logic_boolean" id="f6V4kE:Sv(lQq6?b/OXY">
           <field name="BOOL">FALSE</field>
         </block>
       </value>
       <next>
         <block type="on" id="47Vgt73D7f*NJ?fzqZ)=">
           <field name="OID">0_userdata.0.vis.visSchaltenTablet1</field>
           <field name="CONDITION">true</field>
           <field name="ACK_CONDITION"></field>
           <statement name="STATEMENT">
             <block type="control" id="r=v=$LZ_)hp*[k2~.E?+">
               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
               <field name="OID">0_userdata.0.vis.visSchaltenTablet1</field>
               <field name="WITH_DELAY">TRUE</field>
               <field name="DELAY_MS">20</field>
               <field name="UNIT">sec</field>
               <field name="CLEAR_RUNNING">TRUE</field>
               <value name="VALUE">
                 <block type="logic_boolean" id="60cF{d0.+g+1R-it_}b7">
                   <field name="BOOL">FALSE</field>
                 </block>
               </value>
             </block>
           </statement>
         </block>
       </next>
     </block>
     <block type="control" id="$%;Pi^,ag:.sGy?9Y_*u" x="863" y="63">
       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
       <field name="OID">0_userdata.0.vis.visSchaltenTablet2</field>
       <field name="WITH_DELAY">FALSE</field>
       <value name="VALUE">
         <block type="logic_boolean" id="Tf}*u!bzB$c5x)cj,gE/">
           <field name="BOOL">FALSE</field>
         </block>
       </value>
       <next>
         <block type="on" id="XK~S*oR`-3UsKv8}:.gO">
           <field name="OID">0_userdata.0.vis.visSchaltenTablet2</field>
           <field name="CONDITION">true</field>
           <field name="ACK_CONDITION"></field>
           <statement name="STATEMENT">
             <block type="control" id="Yb3L,,bJRIk:~%63O3b2">
               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
               <field name="OID">0_userdata.0.vis.visSchaltenTablet2</field>
               <field name="WITH_DELAY">TRUE</field>
               <field name="DELAY_MS">15</field>
               <field name="UNIT">sec</field>
               <field name="CLEAR_RUNNING">TRUE</field>
               <value name="VALUE">
                 <block type="logic_boolean" id="rpb$-Bot}hJhz3dF~53u">
                   <field name="BOOL">FALSE</field>
                 </block>
               </value>
             </block>
           </statement>
         </block>
       </next>
     </block>
     <block type="create" id="HgG4/Uci^Q[F7JzyWH2r" x="112" y="388">
       <field name="NAME">0_userdata.0.vis.visSchaltenTablet1</field>
       <value name="VALUE">
         <block type="logic_boolean" id="Q=U*Oe.0!2h5.$/_z`d(">
           <field name="BOOL">FALSE</field>
         </block>
       </value>
       <value name="COMMON">
         <block type="text" id="5xS7/sF`Eu`$+05,%xs~">
           <field name="TEXT">{     "name": "visSchaltenTablet1",     "role": "",     "type": "boolean",     "desc": "Manuell erzeugt",     "read": true,     "write": true,     "def": false   }</field>
         </block>
       </value>
       <next>
         <block type="create" id="k,#JlL_@Nk5.mCKE_1]d">
           <field name="NAME">0_userdata.0.vis.visTablet1Port</field>
           <value name="VALUE">
             <block type="text" id="Z?^1C.(4OIS`#cK3Xyhl">
               <field name="TEXT"></field>
             </block>
           </value>
           <value name="COMMON">
             <block type="text" id="b/AWg*F,.u3QRJ0VV{vO">
               <field name="TEXT">{     "name": "visTablet1Port",     "role": "",     "type": "string",     "read": true,     "write": true,     "desc": "Manuell erzeugt",     "def": ""   }</field>
             </block>
           </value>
         </block>
       </next>
     </block>
     <block type="create" id=".RM4[Jv28cn@Pbq1|9@H" x="837" y="363">
       <field name="NAME">0_userdata.0.vis.visSchaltenTablet2</field>
       <value name="VALUE">
         <block type="logic_boolean" id="o7kvz#@SSDlT2q463d|r">
           <field name="BOOL">FALSE</field>
         </block>
       </value>
       <value name="COMMON">
         <block type="text" id="ptK02b+_x56Z=%kPz1h/">
           <field name="TEXT">{     "name": "visSchaltenTablet2",     "role": "",     "type": "boolean",     "desc": "Manuell erzeugt",     "read": true,     "write": true,     "def": false   }</field>
         </block>
       </value>
       <next>
         <block type="create" id="by8cqSkHx~yLSS=MZ)z8">
           <field name="NAME">0_userdata.0.vis.visTablet2Port</field>
           <value name="VALUE">
             <block type="text" id="cQG;Lj`1x1-rGM`Io%*}">
               <field name="TEXT"></field>
             </block>
           </value>
           <value name="COMMON">
             <block type="text" id="3atbKpSXAs6tM+s=or!S">
               <field name="TEXT">{     "name": "visTablet2Port",     "role": "",     "type": "string",     "read": true,     "write": true,     "desc": "Manuell erzeugt",     "def": ""   }</field>
             </block>
           </value>
         </block>
       </next>
     </block>
    </xml>
    

    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

    1 Antwort Letzte Antwort
    0
    • M m0uh

      @liv-in-sky also so leid es mir tut aber ich bekomm es nicht zum laufen.

      So hab ich den Script drin:

       /*SCHALTET ZURÜCK AUF VIEW DES ZIMMERS 1*/
       
      var remindSwitchTab1=false;
      var mySwitchTime1=30000;
      var myTabPort1="8083";
      var myURL1="http://192.168.178.67:8083/vis/index.html#Wohnung"
       
      /*für reload page*/
      if (location.port==myTabPort1) {
         
          setTimeout(function() {
          if (!remindSwitchTab1)  window.location.href = myURL1;
             console.log("wait");
         }, mySwitchTime1)
      }
       
      /*nach klick wieder reaktiviert*/
      $(window).click(function(e) {
         if (!remindSwitchTab1 && location.port==myTabPort1){
             remindSwitchTab1=true;
              console.log("in href change 1 timer "+mySwitchTime1+" sek");
          setTimeout(function() {
             window.location.href = myURL1;
             console.log("finished for href change 1");
             remindSwitchTab1=false;
             
         }, mySwitchTime1)
         
         }
      });
       
      /*ENDE ----- SCHALTET ZURÜCK AUF VIEW DES ZIMMERS/TABLETS2*/
       
      /*SCHALTET ZURÜCK AUF VIEW DES ZIMMERS 2*/
       
      var remindSwitchTab2=false;
      var mySwitchTime2=10000;
      var myTabPort2="8084";
      var myURL2="http://192.168.178.67:8084/vis/index.html#Dachgeschoss"
       
      /*für reload page*/
      if (location.port==myTabPort2) {
         
          setTimeout(function() {
           if (!remindSwitchTab2)  window.location.href = myURL2;
             console.log("wait");
         }, mySwitchTime2)
      }
       
      /*nach klick wieder reaktiviert*/
      $(window).click(function(e) {
         if (!remindSwitchTab2 && location.port==myTabPort2){
             remindSwitchTab2=true;
             console.log("in href change 2 timer "+mySwitchTime2+" sek");
          setTimeout(function() {
            window.location.href = myURL2;
             console.log("finished for href change 2");
             remindSwitchTab2=false;
             
         }, mySwitchTime2)
       
         }
      });
      

      FullyBrowser beide bei v1.46 & es ist jeweils
      http://192.168.178.67:8083/vis/index.html#Wohnung
      http://192.168.178.67:8084/vis/index.html#Dachgeschoss
      eingetragen

      es wird auf keine anderen Gerät zum selben Zeitpunkt irgendeine VIS Instanz ausgeführt. (auf keinen der 3 Ports)

      Zeit ist auf 30 & 10 Sekunden. OHNE ERFOLG :(

      WENN ich aber in Chrome im selben Browser 2 Tabs mit den dazugehörigen Ports öffne funktioniert es (auch wenn Sie noch im Fully geöffnet sind).
      Also irgendwas passt nicht... scheint ja irgend eine Einstellung im Fully zu sein.

      liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      schrieb am zuletzt editiert von
      #22

      @m0uh läuft bei mir bis jetzt stabil

      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

      M 1 Antwort Letzte Antwort
      0
      • liv-in-skyL liv-in-sky

        @m0uh läuft bei mir bis jetzt stabil

        M Offline
        M Offline
        m0uh
        schrieb am zuletzt editiert von
        #23

        @liv-in-sky Sorry war leider bisschen beschäftigt... werde das ganze die Woche mal testen und mich bei dir melden!

        DANKE schon mal!

        liv-in-skyL 1 Antwort Letzte Antwort
        0
        • M m0uh

          @liv-in-sky Sorry war leider bisschen beschäftigt... werde das ganze die Woche mal testen und mich bei dir melden!

          DANKE schon mal!

          liv-in-skyL Offline
          liv-in-skyL Offline
          liv-in-sky
          schrieb am zuletzt editiert von
          #24

          @m0uh dachte schon, du hast keine lust mehr :-)

          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

          M 1 Antwort Letzte Antwort
          0
          • liv-in-skyL liv-in-sky

            @m0uh dachte schon, du hast keine lust mehr :-)

            M Offline
            M Offline
            m0uh
            schrieb am zuletzt editiert von
            #25

            @liv-in-sky ganz im Gegenteil aber bin derzeit geschäftlich unterwegs und das wird sich jetzt die nächsten 7 Wochen nicht ändern.... ich hoffe du gibst mich bis dahin nicht auf :P ich melde mich definitiv wenn ich das ganze mal in Ruhe getestet habe!

            liv-in-skyL 1 Antwort Letzte Antwort
            0
            • M m0uh

              @liv-in-sky ganz im Gegenteil aber bin derzeit geschäftlich unterwegs und das wird sich jetzt die nächsten 7 Wochen nicht ändern.... ich hoffe du gibst mich bis dahin nicht auf :P ich melde mich definitiv wenn ich das ganze mal in Ruhe getestet habe!

              liv-in-skyL Offline
              liv-in-skyL Offline
              liv-in-sky
              schrieb am zuletzt editiert von
              #26

              @m0uh hoffentlich vergesse ich bis dahin nicht alles :)

              bei mir funktioniert es mit dem beiden neuen scripten - du meldest dicheinfach , wenn du wieder zeit hast

              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

              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

              749

              Online

              32.4k

              Benutzer

              81.5k

              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