Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    2.8k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    4.8k

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    4.1k

Automatischer View Wechsel / zwei unterschiedliche Geräte

Geplant Angeheftet Gesperrt Verschoben Blockly
26 Beiträge 3 Kommentatoren 2.8k Aufrufe 4 Beobachtet
  • Ä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

              Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

              Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

              Mit deinem Input könnte dieser Beitrag noch besser werden 💗

              Registrieren Anmelden
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              246

              Online

              33.0k

              Benutzer

              83.4k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2026
              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