Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. jarvis v3.0.0 - just another remarkable vis

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    jarvis v3.0.0 - just another remarkable vis

    This topic has been deleted. Only users with topic management privileges can see it.
    • U
      uwe72 @MCU last edited by

      @mcu ja, ich ziehe es schon selber. Aber es "rastet" ja nur in bestimmten Bereichen ein. Kann es nicht Pixel genau festlegen. Richtig?

      M 1 Reply Last reply Reply Quote 0
      • M
        MCU @uwe72 last edited by

        @uwe72 Korrekt. Dies soll bald einstellbar sein.

        1 Reply Last reply Reply Quote 0
        • S
          SlipKoRn_DH88 @uwe72 last edited by

          @uwe72 said in jarvis v3.0.0 - just another remarkable vis:

          @slipkorn_dh88 sieht klasse aus!!

          BIn auch grad dran es zu visualisieren, das mein aktueller Stand:

          4cedd954-1dac-4c25-95f6-8dc8dd83ec2d-image.png

          Das ist nicht von mir, sondern die Vorlage von @RkcCorian
          Ich bekomme das Script leider nicht bei mir zum laufen und hatte daher nach einer Anleitung zum Anpassen gefragt.

          M 1 Reply Last reply Reply Quote 0
          • M
            MCU @SlipKoRn_DH88 last edited by

            @slipkorn_dh88 Anleitung gibt es noch nicht, das dauert noch. Erstmal als Hinweis:
            Das "Script" gehört in die zugehörige VIS und hat nichts mit javascript-Script oder mit jarvis direkt zu tun.
            18ccc64a-4bba-47d5-997e-7917cc840741-image.png

            S 1 Reply Last reply Reply Quote 0
            • S
              SlipKoRn_DH88 @MCU last edited by

              @mcu
              Das Script habe ich bei mir in der passenden VIS und die Nummern der Widgets auf meine Widgets angepasst. Dann warte ich auf die kommende Anleitung👍

              M 1 Reply Last reply Reply Quote 0
              • M
                MCU @SlipKoRn_DH88 last edited by

                @slipkorn_dh88 Dann zeig mal Dein Script und Deine VIS-Einstellungen. Vielleicht sind es ja Kleinigkeiten, die nicht passen?

                S 1 Reply Last reply Reply Quote 0
                • S
                  SlipKoRn_DH88 @MCU last edited by

                  @mcu
                  Danke schon einmal für`s drauf schauen

                  VIS EG.jpg

                  // Initialisiere Konstanten
                  /* ======================================================== */
                  var debug = false;
                   
                  var spaceSurroundingMin = 20;
                  var spaceSurroundingScreensizeDependent = 20;
                  var spaceSurroundingScreensizeDependentFactor = 600;
                   
                  var widgetNameGrundriss = "#w00025";
                  
                   
                  // Warten bis Element geladen wurde
                  /* ======================================================== */
                  function waitForElement(parent, elementPath, wid, widgetName, callBack, counter = 0, debug = false)
                  {
                      if (counter < 10000)
                      {
                          setTimeout(function ()
                          {
                              if (parent.find(elementPath).length > 0)
                              {
                                  if (debug) console.log(`[${widgetName} ${wid}] it took ${counter}ms to wait for the element '${elementPath}'`);
                                  callBack();
                              } else
                              {
                                  if (debug) console.log(`[${widgetName} ${wid}] wait for element '${elementPath}'`);
                                  counter++;
                                  waitForElement(parent, elementPath, wid, widgetName, callBack, counter, debug);
                              }
                          }, 1);
                      } else
                      {
                          console.warn(`[${widgetName} ${wid}] stop waiting after ${counter} retries`);
                          callBack();
                      }
                  }
                   
                   
                  // Erkennen auf welchem Gerät die VIS läuft
                  /* ======================================================== */
                  function getDevice(debug = false)
                  {
                      if(window.navigator.userAgent.match(/Mobile/i)
                      || window.navigator.userAgent.match(/iPhone/i)
                      || window.navigator.userAgent.match(/iPod/i)
                      || window.navigator.userAgent.match(/IEMobile/i)
                      || window.navigator.userAgent.match(/Windows Phone/i)
                      || window.navigator.userAgent.match(/Android/i)
                      || window.navigator.userAgent.match(/BlackBerry/i)
                      || window.navigator.userAgent.match(/webOS/i))
                      {
                          statusMobile = true;
                      } 
                      else
                      {
                          statusMobile = false;
                      }
                      if(window.navigator.userAgent.match(/Tablet/i)
                      || window.navigator.userAgent.match(/iPad/i)
                      || window.navigator.userAgent.match(/Nexus 7/i)
                      || window.navigator.userAgent.match(/Nexus 10/i)
                      || window.navigator.userAgent.match(/SM-T500/i)
                      || window.navigator.userAgent.match(/KFAPWI/i))
                      {
                          statusTablet = true;
                      } 
                      else
                      {
                          statusTablet = false;
                      }
                    
                      if ((statusMobile === true) && (statusTablet === true))
                      {
                          device = "tablet";
                      }
                      else if ((statusMobile === true) && (statusTablet === false))
                      {
                          device = "mobilePhone";    
                      }
                      else
                      {
                          device = "pc";    
                      }
                   
                      if (debug === true)
                      {
                          console.log("Navigator User Agent: " + navigator.userAgent);
                          console.log("Erkanntes Gerät: " + device);
                      }
                  }
                   
                   
                  // Initialisiere Werte für die Skalierung der Wohnungselemente
                  /* ======================================================== */
                  function initResizeApartment(debug = false)
                  
                      // Größe Grundriss
                      grundrissStyle = window.getComputedStyle(document.querySelector('#w00025'));
                      grundrissLeft = (grundrissStyle.left).replace("px", "");
                      grundrissTop = (grundrissStyle.top).replace("px", "");
                      grundrissWidth = $(widgetNameGrundriss).width();
                      grundrissHeigth = $(widgetNameGrundriss).height(); 
                      grundrissFactor = grundrissWidth / grundrissHeigth;
                   
                      if (debug === true)
                      {
                          console.log("GrundrissLeft: " + grundrissLeft);
                          console.log("GrundrissTop: " + grundrissTop);
                      }
                      
                      /* Größe Wohnung
                      linkWohnungStyle = window.getComputedStyle(document.querySelector('#w00012'));
                      linkWohnungLeft = (linkWohnungStyle.left).replace("px", "") - grundrissLeft;
                      linkWohnungTop = (linkWohnungStyle.top).replace("px", "") - grundrissTop;
                      linkWohnungFactorLeft = grundrissWidth / linkWohnungLeft;
                      linkWohnungFactorTop = grundrissHeigth / linkWohnungTop;
                      linkWohnungFactorWidth = grundrissWidth / ($(widgetNameLinkWohnung).width());
                      linkWohnungFactorHeigth = grundrissHeigth/ ($(widgetNameLinkWohnung).height());
                      
                      symbolWohnungStyle = window.getComputedStyle(document.querySelector('#w00017'));
                      symbolWohnungLeft = (symbolWohnungStyle.left).replace("px", "") - grundrissLeft;
                      symbolWohnungTop = (symbolWohnungStyle.top).replace("px", "") - grundrissTop;
                      symbolWohnungFactorLeft = grundrissWidth / symbolWohnungLeft;
                      symbolWohnungFactorTop = grundrissHeigth / symbolWohnungTop;
                      symbolWohnungFactorWidth = grundrissWidth / ($(widgetNameSymbolWohnung).width());
                      symbolWohnungFactorHeigth = grundrissHeigth/ ($(widgetNameSymbolWohnung).height());
                   
                      // Größe Wohnzimmer
                      linkWohnzimmerStyle = window.getComputedStyle(document.querySelector('#w00001'));
                      linkWohnzimmerLeft = (linkWohnzimmerStyle.left).replace("px", "") - grundrissLeft;
                      linkWohnzimmerTop = (linkWohnzimmerStyle.top).replace("px", "") - grundrissTop;
                      linkWohnzimmerFactorLeft = grundrissWidth / linkWohnzimmerLeft;
                      linkWohnzimmerFactorTop = grundrissHeigth / linkWohnzimmerTop;
                      linkWohnzimmerFactorWidth = grundrissWidth / ($(widgetNameLinkWohnzimmer).width());
                      linkWohnzimmerFactorHeigth = grundrissHeigth/ ($(widgetNameLinkWohnzimmer).height());
                      
                      symbolWohnzimmerStyle = window.getComputedStyle(document.querySelector('#w00013'));
                      symbolWohnzimmerLeft = (symbolWohnzimmerStyle.left).replace("px", "") - grundrissLeft;
                      symbolWohnzimmerTop = (symbolWohnzimmerStyle.top).replace("px", "") - grundrissTop;
                      symbolWohnzimmerFactorLeft = grundrissWidth / symbolWohnzimmerLeft;
                      symbolWohnzimmerFactorTop = grundrissHeigth / symbolWohnzimmerTop;
                      symbolWohnzimmerFactorWidth = grundrissWidth / ($(widgetNameSymbolWohnzimmer).width());
                      symbolWohnzimmerFactorHeigth = grundrissHeigth/ ($(widgetNameSymbolWohnzimmer).height()); 
                   
                      // Größe Küche
                      linkKuecheStyle = window.getComputedStyle(document.querySelector('#w00003'));
                      linkKuecheLeft = (linkKuecheStyle.left).replace("px", "") - grundrissLeft;
                      linkKuecheTop = (linkKuecheStyle.top).replace("px", "") - grundrissTop;
                      linkKuecheFactorLeft = grundrissWidth / linkKuecheLeft;
                      linkKuecheFactorTop = grundrissHeigth / linkKuecheTop;
                      linkKuecheFactorWidth = grundrissWidth / ($(widgetNameLinkKueche).width());
                      linkKuecheFactorHeigth = grundrissHeigth/ ($(widgetNameLinkKueche).height());
                      
                      symbolKuecheStyle = window.getComputedStyle(document.querySelector('#w00014'));
                      symbolKuecheLeft = (symbolKuecheStyle.left).replace("px", "") - grundrissLeft;
                      symbolKuecheTop = (symbolKuecheStyle.top).replace("px", "") - grundrissTop;
                      symbolKuecheFactorLeft = grundrissWidth / symbolKuecheLeft;
                      symbolKuecheFactorTop = grundrissHeigth / symbolKuecheTop;
                      symbolKuecheFactorWidth = grundrissWidth / ($(widgetNameSymbolKueche).width());
                      symbolKuecheFactorHeigth = grundrissHeigth/ ($(widgetNameSymbolKueche).height());
                      
                      // Größe Esszimmer
                      linkEsszimmerStyle = window.getComputedStyle(document.querySelector('#w00011'));
                      linkEsszimmerLeft = (linkEsszimmerStyle.left).replace("px", "") - grundrissLeft;
                      linkEsszimmerTop = (linkEsszimmerStyle.top).replace("px", "") - grundrissTop;
                      linkEsszimmerFactorLeft = grundrissWidth / linkEsszimmerLeft;
                      linkEsszimmerFactorTop = grundrissHeigth / linkEsszimmerTop;
                      linkEsszimmerFactorWidth = grundrissWidth / ($(widgetNameLinkEsszimmer).width());
                      linkEsszimmerFactorHeigth = grundrissHeigth/ ($(widgetNameLinkEsszimmer).height());
                      
                      symbolEsszimmerStyle = window.getComputedStyle(document.querySelector('#w00015'));
                      symbolEsszimmerLeft = (symbolEsszimmerStyle.left).replace("px", "") - grundrissLeft;
                      symbolEsszimmerTop = (symbolEsszimmerStyle.top).replace("px", "") - grundrissTop;
                      symbolEsszimmerFactorLeft = grundrissWidth / symbolEsszimmerLeft;
                      symbolEsszimmerFactorTop = grundrissHeigth / symbolEsszimmerTop;
                      symbolEsszimmerFactorWidth = grundrissWidth / ($(widgetNameSymbolEsszimmer).width());
                      symbolEsszimmerFactorHeigth = grundrissHeigth/ ($(widgetNameSymbolEsszimmer).height());
                   
                      // Größe Flur
                      linkFlur1Style = window.getComputedStyle(document.querySelector('#w00010'));
                      linkFlur1Left = (linkFlur1Style.left).replace("px", "") - grundrissLeft;
                      linkFlur1Top = (linkFlur1Style.top).replace("px", "") - grundrissTop;
                      linkFlur1FactorLeft = grundrissWidth / linkFlur1Left;
                      linkFlur1FactorTop = grundrissHeigth / linkFlur1Top;
                      linkFlur1FactorWidth = grundrissWidth / ($(widgetNameLinkFlur1).width());
                      linkFlur1FactorHeigth = grundrissHeigth/ ($(widgetNameLinkFlur1).height()); 
                   
                      linkFlur2Style = window.getComputedStyle(document.querySelector('#w00009'));
                      linkFlur2Left = (linkFlur2Style.left).replace("px", "") - grundrissLeft;
                      linkFlur2Top = (linkFlur2Style.top).replace("px", "") - grundrissTop;
                      linkFlur2FactorLeft = grundrissWidth / linkFlur2Left;
                      linkFlur2FactorTop = grundrissHeigth / linkFlur2Top;
                      linkFlur2FactorWidth = grundrissWidth / ($(widgetNameLinkFlur2).width());
                      linkFlur2FactorHeigth = grundrissHeigth/ ($(widgetNameLinkFlur2).height());
                      
                      symbolFlurStyle = window.getComputedStyle(document.querySelector('#w00016'));
                      symbolFlurLeft = (symbolFlurStyle.left).replace("px", "") - grundrissLeft;
                      symbolFlurTop = (symbolFlurStyle.top).replace("px", "") - grundrissTop;
                      symbolFlurFactorLeft = grundrissWidth / symbolFlurLeft;
                      symbolFlurFactorTop = grundrissHeigth / symbolFlurTop;
                      symbolFlurFactorWidth = grundrissWidth / ($(widgetNameSymbolFlur).width());
                      symbolFlurFactorHeigth = grundrissHeigth/ ($(widgetNameSymbolFlur).height());
                   
                      // Größe Schlafzimmer
                      linkSchlafzimmerStyle = window.getComputedStyle(document.querySelector('#w00004'));
                      linkSchlafzimmerLeft = (linkSchlafzimmerStyle.left).replace("px", "") - grundrissLeft;
                      linkSchlafzimmerTop = (linkSchlafzimmerStyle.top).replace("px", "") - grundrissTop;
                      linkSchlafzimmerFactorLeft = grundrissWidth / linkSchlafzimmerLeft;
                      linkSchlafzimmerFactorTop = grundrissHeigth / linkSchlafzimmerTop;
                      linkSchlafzimmerFactorWidth = grundrissWidth / ($(widgetNameLinkSchlafzimmer).width());
                      linkSchlafzimmerFactorHeigth = grundrissHeigth/ ($(widgetNameLinkSchlafzimmer).height());
                      
                      symbolSchlafzimmerStyle = window.getComputedStyle(document.querySelector('#w00018'));
                      symbolSchlafzimmerLeft = (symbolSchlafzimmerStyle.left).replace("px", "") - grundrissLeft;
                      symbolSchlafzimmerTop = (symbolSchlafzimmerStyle.top).replace("px", "") - grundrissTop;
                      symbolSchlafzimmerFactorLeft = grundrissWidth / symbolSchlafzimmerLeft;
                      symbolSchlafzimmerFactorTop = grundrissHeigth / symbolSchlafzimmerTop;
                      symbolSchlafzimmerFactorWidth = grundrissWidth / ($(widgetNameSymbolSchlafzimmer).width());
                      symbolSchlafzimmerFactorHeigth = grundrissHeigth/ ($(widgetNameSymbolSchlafzimmer).height());
                   
                      // Größe Kinderzimmer
                      linkKinderzimmerStyle = window.getComputedStyle(document.querySelector('#w00005'));
                      linkKinderzimmerLeft = (linkKinderzimmerStyle.left).replace("px", "") - grundrissLeft;
                      linkKinderzimmerTop = (linkKinderzimmerStyle.top).replace("px", "") - grundrissTop;
                      linkKinderzimmerFactorLeft = grundrissWidth / linkKinderzimmerLeft;
                      linkKinderzimmerFactorTop = grundrissHeigth / linkKinderzimmerTop;
                      linkKinderzimmerFactorWidth = grundrissWidth / ($(widgetNameLinkKinderzimmer).width());
                      linkKinderzimmerFactorHeigth = grundrissHeigth/ ($(widgetNameLinkKinderzimmer).height());
                      
                      symbolKinderzimmerStyle = window.getComputedStyle(document.querySelector('#w00019'));
                      symbolKinderzimmerLeft = (symbolKinderzimmerStyle.left).replace("px", "") - grundrissLeft;
                      symbolKinderzimmerTop = (symbolKinderzimmerStyle.top).replace("px", "") - grundrissTop;
                      symbolKinderzimmerFactorLeft = grundrissWidth / symbolKinderzimmerLeft;
                      symbolKinderzimmerFactorTop = grundrissHeigth / symbolKinderzimmerTop;
                      symbolKinderzimmerFactorWidth = grundrissWidth / ($(widgetNameSymbolKinderzimmer).width());
                      symbolKinderzimmerFactorHeigth = grundrissHeigth/ ($(widgetNameSymbolKinderzimmer).height());
                   
                      // Größe Badezimmer
                      linkBadezimmerStyle = window.getComputedStyle(document.querySelector('#w00006'));
                      linkBadezimmerLeft = (linkBadezimmerStyle.left).replace("px", "") - grundrissLeft;
                      linkBadezimmerTop = (linkBadezimmerStyle.top).replace("px", "") - grundrissTop;
                      linkBadezimmerFactorLeft = grundrissWidth / linkBadezimmerLeft;
                      linkBadezimmerFactorTop = grundrissHeigth / linkBadezimmerTop;
                      linkBadezimmerFactorWidth = grundrissWidth / ($(widgetNameLinkBadezimmer).width());
                      linkBadezimmerFactorHeigth = grundrissHeigth/ ($(widgetNameLinkBadezimmer).height());
                      
                      symbolBadezimmerStyle = window.getComputedStyle(document.querySelector('#w00020'));
                      symbolBadezimmerLeft = (symbolBadezimmerStyle.left).replace("px", "") - grundrissLeft;
                      symbolBadezimmerTop = (symbolBadezimmerStyle.top).replace("px", "") - grundrissTop;
                      symbolBadezimmerFactorLeft = grundrissWidth / symbolBadezimmerLeft;
                      symbolBadezimmerFactorTop = grundrissHeigth / symbolBadezimmerTop;
                      symbolBadezimmerFactorWidth = grundrissWidth / ($(widgetNameSymbolBadezimmer).width());
                      symbolBadezimmerFactorHeigth = grundrissHeigth/ ($(widgetNameSymbolBadezimmer).height());
                   
                      // Größe Gäste-WC
                      linkGaesteWcStyle = window.getComputedStyle(document.querySelector('#w00007'));
                      linkGaesteWcLeft = (linkGaesteWcStyle.left).replace("px", "") - grundrissLeft;
                      linkGaesteWcTop = (linkGaesteWcStyle.top).replace("px", "") - grundrissTop;
                      linkGaesteWcFactorLeft = grundrissWidth / linkGaesteWcLeft;
                      linkGaesteWcFactorTop = grundrissHeigth / linkGaesteWcTop;
                      linkGaesteWcFactorWidth = grundrissWidth / ($(widgetNameLinkGaesteWc).width());
                      linkGaesteWcFactorHeigth = grundrissHeigth/ ($(widgetNameLinkGaesteWc).height());
                      
                      symbolGaesteWcStyle = window.getComputedStyle(document.querySelector('#w00021'));
                      symbolGaesteWcLeft = (symbolGaesteWcStyle.left).replace("px", "") - grundrissLeft;
                      symbolGaesteWcTop = (symbolGaesteWcStyle.top).replace("px", "") - grundrissTop;
                      symbolGaesteWcFactorLeft = grundrissWidth / symbolGaesteWcLeft;
                      symbolGaesteWcFactorTop = grundrissHeigth / symbolGaesteWcTop;
                      symbolGaesteWcFactorWidth = grundrissWidth / ($(widgetNameSymbolGaesteWc).width());
                      symbolGaesteWcFactorHeigth = grundrissHeigth/ ($(widgetNameSymbolGaesteWc).height());
                   
                      // Größe Abstellraum
                      linkAbstellraumStyle = window.getComputedStyle(document.querySelector('#w00008'));
                      linkAbstellraumLeft = (linkAbstellraumStyle.left).replace("px", "") - grundrissLeft;
                      linkAbstellraumTop = (linkAbstellraumStyle.top).replace("px", "") - grundrissTop;
                      linkAbstellraumFactorLeft = grundrissWidth / linkAbstellraumLeft;
                      linkAbstellraumFactorTop = grundrissHeigth / linkAbstellraumTop;
                      linkAbstellraumFactorWidth = grundrissWidth / ($(widgetNameLinkAbstellraum).width());
                      linkAbstellraumFactorHeigth = grundrissHeigth/ ($(widgetNameLinkAbstellraum).height());
                      
                      symbolAbstellraumStyle = window.getComputedStyle(document.querySelector('#w00022'));
                      symbolAbstellraumLeft = (symbolAbstellraumStyle.left).replace("px", "") - grundrissLeft;
                      symbolAbstellraumTop = (symbolAbstellraumStyle.top).replace("px", "") - grundrissTop;
                      symbolAbstellraumFactorLeft = grundrissWidth / symbolAbstellraumLeft;
                      symbolAbstellraumFactorTop = grundrissHeigth / symbolAbstellraumTop;
                      symbolAbstellraumFactorWidth = grundrissWidth / ($(widgetNameSymbolAbstellraum).width());
                      symbolAbstellraumFactorHeigth = grundrissHeigth/ ($(widgetNameSymbolAbstellraum).height());
                   
                  }
                   
                   
                  /* Skalierung des umliegenden Abstands
                  /* ======================================================== */
                  function setResizeSpace(windowWidth, windowHeigth, debug = false)
                  {
                      if (windowWidth < windowHeigth)
                      {
                          // Fensterbreite maßgeblich
                          windowMinSize = windowWidth; 
                      } else
                      {
                          // Fensterhöhe maßgeblich
                          windowMinSize = windowHeigth;
                      }
                      
                      if (device === "mobilePhone")
                      {
                          spaceSurrounding = spaceSurroundingMin;
                      }
                      else
                      {
                          spaceSurrounding = spaceSurroundingMin + spaceSurroundingScreensizeDependent * (windowMinSize / spaceSurroundingScreensizeDependentFactor);  
                      }
                      
                  }
                   
                   
                  // Skalierung der Wohnungselemente
                  /* ======================================================== */
                  function setResizeElement(element, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, elementFactorLeft, elementFactorTop, elementFactorWidth, elementFactorHeigth, debug = false)
                  {
                      $(element).css({"left": (grundrissLeft) + (grundrissWidth/elementFactorLeft), "top": (grundrissTop) + (grundrissHeigth/elementFactorTop), "width": (grundrissWidth/elementFactorWidth), "height": (grundrissHeigth/elementFactorHeigth)});
                   
                  }
                   
                   
                  /* Skalierung der Symbolgrößen
                  /* ======================================================== */
                  /*function setResizeSymbol(debug = false)
                  {
                      if (device === "mobilePhone")
                      {
                          symbolHeigth = 43;
                      }
                      else
                      {
                          symbolHeigth = 65;  
                      }
                      $(".symbolGrundrissRaume .vis-inventwo-img").css({"height": symbolHeigth+"px"});
                   
                  }
                  */ 
                   
                  // Skalierung der Wohnung
                  /* ======================================================== */
                  function setResizeApartment(debug = false)
                  {
                      
                      // Fenstergröße
                      windowWidth = $(window).width();
                      windowHeigth = $(window).height();    
                      windowFactor = windowWidth / windowHeigth; 
                      
                      // Abstand dynamisch an Fenstergröße anpassen
                      setResizeSpace(windowWidth, windowHeigth, debug);
                      
                      // Fenstergröße und -faktor mit Abstand
                      if ((windowWidth > (spaceSurrounding * 2))
                         && (windowHeigth > (spaceSurrounding * 2)))
                      {
                          windowSpaceWidth = windowWidth - (spaceSurrounding * 2);
                          windowSpaceHeigth = windowHeigth - (spaceSurrounding * 2); 
                          windowSpaceFactor = windowSpaceWidth / windowSpaceHeigth;        
                      }
                      else
                      {
                          windowSpaceWidth = 0;
                          windowSpaceHeigth = 0; 
                          windowSpaceFactor = 0;  
                      }
                      
                      // Grundrissgröße
                      if (windowSpaceFactor < grundrissFactor)
                      {
                          // Fensterbreite maßgeblich
                          
                          // Grundriss mittig zentrieren
                          grundrissWidth = (windowSpaceWidth);
                          grundrissHeigth = (windowSpaceWidth) / grundrissFactor;
                          grundrissLeft = spaceSurrounding;
                          grundrissTop = spaceSurrounding + ((windowSpaceHeigth - grundrissHeigth) / 2);
                          
                          if (debug === true)
                          {
                              console.log("Fensterbreite maßgeblich");
                          }
                      } else
                      {
                          // Fensterhöhe maßgeblich
                          
                          // Grundriss mittig zentrieren
                          grundrissHeigth = (windowSpaceHeigth);
                          grundrissWidth = (windowSpaceHeigth) * grundrissFactor;
                          grundrissLeft = spaceSurrounding + (windowSpaceWidth - grundrissWidth) / 2;
                          grundrissTop = spaceSurrounding; 
                          
                          if (debug === true)
                          {
                              console.log("Fensterhöhe maßgeblich");
                          }
                      }
                      
                      // Größe und Position Grundriss anpassen
                      $(widgetNameGrundriss).css({"left": grundrissLeft, "top": grundrissTop, "width": grundrissWidth,"height": grundrissHeigth});
                   
                      // Grundrissgröße nach Anpassung und Referenz für alle folgenden Elemente
                      grundrissWidth = $(widgetNameGrundriss).width();
                      grundrissHeigth = $(widgetNameGrundriss).height();
                      
                      // Position und -größe skalieren Wohnung
                      setResizeElement(widgetNameLinkWohnung, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, linkWohnungFactorLeft, linkWohnungFactorTop, linkWohnungFactorWidth, linkWohnungFactorHeigth, debug);
                      
                      setResizeElement(widgetNameSymbolWohnung, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, symbolWohnungFactorLeft, symbolWohnungFactorTop, symbolWohnungFactorWidth, symbolWohnungFactorHeigth, debug);
                      
                      /*Position und -größe skalieren Wohnzimmer
                      setResizeElement(widgetNameLinkWohnzimmer, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, linkWohnzimmerFactorLeft, linkWohnzimmerFactorTop, linkWohnzimmerFactorWidth, linkWohnzimmerFactorHeigth, debug);
                      
                      setResizeElement(widgetNameSymbolWohnzimmer, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, symbolWohnzimmerFactorLeft, symbolWohnzimmerFactorTop, symbolWohnzimmerFactorWidth, symbolWohnzimmerFactorHeigth, debug);
                      
                      // Position und -größe skalieren Küche
                      setResizeElement(widgetNameLinkKueche, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, linkKuecheFactorLeft, linkKuecheFactorTop, linkKuecheFactorWidth, linkKuecheFactorHeigth, debug);
                      
                      setResizeElement(widgetNameSymbolKueche, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, symbolKuecheFactorLeft, symbolKuecheFactorTop, symbolKuecheFactorWidth, symbolKuecheFactorHeigth, debug);
                      
                      // Position und -größe skalieren Esszimmer
                      setResizeElement(widgetNameLinkEsszimmer, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, linkEsszimmerFactorLeft, linkEsszimmerFactorTop, linkEsszimmerFactorWidth, linkEsszimmerFactorHeigth, debug);
                      
                      setResizeElement(widgetNameSymbolEsszimmer, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, symbolEsszimmerFactorLeft, symbolEsszimmerFactorTop, symbolEsszimmerFactorWidth, symbolEsszimmerFactorHeigth, debug);
                      
                      // Position und -größe skalieren Flur
                      setResizeElement(widgetNameLinkFlur1, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, linkFlur1FactorLeft, linkFlur1FactorTop, linkFlur1FactorWidth, linkFlur1FactorHeigth, debug);
                   
                      setResizeElement(widgetNameLinkFlur2, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, linkFlur2FactorLeft, linkFlur2FactorTop, linkFlur2FactorWidth, linkFlur2FactorHeigth, debug);
                      
                      setResizeElement(widgetNameSymbolFlur, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, symbolFlurFactorLeft, symbolFlurFactorTop, symbolFlurFactorWidth, symbolFlurFactorHeigth, debug);
                   
                      // Position und -größe skalieren Schlafzimmer
                      setResizeElement(widgetNameLinkSchlafzimmer, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, linkSchlafzimmerFactorLeft, linkSchlafzimmerFactorTop, linkSchlafzimmerFactorWidth, linkSchlafzimmerFactorHeigth, debug);
                      
                      setResizeElement(widgetNameSymbolSchlafzimmer, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, symbolSchlafzimmerFactorLeft, symbolSchlafzimmerFactorTop, symbolSchlafzimmerFactorWidth, symbolSchlafzimmerFactorHeigth, debug);
                   
                      // Position und -größe skalieren Kinderzimmer
                      setResizeElement(widgetNameLinkKinderzimmer, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, linkKinderzimmerFactorLeft, linkKinderzimmerFactorTop, linkKinderzimmerFactorWidth, linkKinderzimmerFactorHeigth, debug);
                      
                      setResizeElement(widgetNameSymbolKinderzimmer, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, symbolKinderzimmerFactorLeft, symbolKinderzimmerFactorTop, symbolKinderzimmerFactorWidth, symbolKinderzimmerFactorHeigth, debug);
                   
                      // Position und -größe skalieren Badezimmer
                      setResizeElement(widgetNameLinkBadezimmer, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, linkBadezimmerFactorLeft, linkBadezimmerFactorTop, linkBadezimmerFactorWidth, linkBadezimmerFactorHeigth, debug);
                      
                      setResizeElement(widgetNameSymbolBadezimmer, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, symbolBadezimmerFactorLeft, symbolBadezimmerFactorTop, symbolBadezimmerFactorWidth, symbolBadezimmerFactorHeigth, debug);
                   
                      // Position und -größe skalieren Gäste-WC
                      setResizeElement(widgetNameLinkGaesteWc, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, linkGaesteWcFactorLeft, linkGaesteWcFactorTop, linkGaesteWcFactorWidth, linkGaesteWcFactorHeigth, debug);
                      
                      setResizeElement(widgetNameSymbolGaesteWc, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, symbolGaesteWcFactorLeft, symbolGaesteWcFactorTop, symbolGaesteWcFactorWidth, symbolGaesteWcFactorHeigth, debug);
                      
                      // Position und -größe skalieren Abstellraum
                      setResizeElement(widgetNameLinkAbstellraum, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, linkAbstellraumFactorLeft, linkAbstellraumFactorTop, linkAbstellraumFactorWidth, linkAbstellraumFactorHeigth, debug);
                      
                      setResizeElement(widgetNameSymbolAbstellraum, grundrissLeft, grundrissTop, grundrissWidth, grundrissHeigth, symbolAbstellraumFactorLeft, symbolAbstellraumFactorTop, symbolAbstellraumFactorWidth, symbolAbstellraumFactorHeigth, debug);
                   */
                      if (debug === true)
                      {
                          console.log("Umgebender Abstand: " + spaceSurrounding);
                          
                          console.log("Fensterbreite: " + windowWidth);
                          console.log("Fensterhöhe: " + windowHeigth);
                          console.log("windowFactor: " + windowFactor);
                                  
                          console.log("Grundrissbreite: " + grundrissWidth);
                          console.log("Grundrisshöhe: " + grundrissHeigth);
                          console.log("grundrissFactor: " + grundrissFactor); 
                      }
                   
                  }
                   
                   
                  // Skriptstart
                  /* ======================================================== */
                  waitForElement($('body'),'.grundriss', 'dummy', 'dummy', function () {
                      // Widget ist vollständig geladen, wir können irgendwas damit machen
                      
                      // Erkennen auf welchem Gerät die VIS läuft
                      getDevice(debug);
                      
                      // Initialisiere Skalierung
                      initResizeApartment(debug);
                      
                      // Initiale Skalierung
                      setResizeApartment(debug);
                      
                      // Symbolgröße skalieren
                      setResizeSymbol(debug);
                      
                      // Event registrieren bei Fenstergrößenänderung
                      $(window).resize(function () 
                      {
                          // Skalierung anpassen
                          setResizeApartment(debug);
                   
                      });
                  }, 0, debug);
                  
                  M 1 Reply Last reply Reply Quote 0
                  • M
                    MCU @SlipKoRn_DH88 last edited by

                    @slipkorn_dh88 Funktion ist keine: -> liefert immer 1?
                    f673fc76-127b-4a9a-8efe-dc772090c96e-image.png
                    bis dahin müsste sie mindestens gehen:
                    59969801-bed3-4908-9af3-d0a627bd82b2-image.png
                    Wo sind der Link und das Symbol für den Link definiert?

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      SlipKoRn_DH88 @MCU last edited by SlipKoRn_DH88

                      @mcu
                      Da wo bei dir im gescreenshoteten Script die 1 steht, wird im Script in VIS das hier gezeigt: (Zeile 96)

                      Frage.jpg

                      Ich glaube das ist ein Kopier/Formatierungsfehler, wenn man den Code aus dem Vis Script hier im Forum einbindet.

                      f673fc76-127b-4a9a-8efe-dc772090c96e-image.png
                      bis dahin müsste sie mindestens gehen:

                      Das habe ich nun bis dahin wieder aktiviert.

                      Wo sind der Link und das Symbol für den Link definiert?

                      Dazu habe ich bisher keine Widgets angelegt, da ich es erst einmal nur mit dem Bild des Grundrisses ohne weitere Widgets versuchen wollte.

                      Mit der Änderung tat sich nichts.

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        MCU @SlipKoRn_DH88 last edited by

                        @slipkorn_dh88 Was soll sich denn jetzt tun?

                        U S Dominik F. 3 Replies Last reply Reply Quote 0
                        • U
                          uwe72 @MCU last edited by uwe72

                          @mcu

                          Meine Jarvis-Visualisierungen lassen sich ohne Probleme über den Browser anzeigen.

                          Über das Handy bekomme ich keinen Zugriff:
                          fc0597b2-923b-4293-883d-63c1561c19f6-image.png

                          ioBroker läuft im docker.

                          Hat jemand eine Idee?

                          So weit komme ich noch:
                          da6e5e39-0d03-4e3f-9f1f-ab08f4ca793a-image.png

                          U 1 Reply Last reply Reply Quote 0
                          • S
                            SlipKoRn_DH88 @MCU last edited by

                            @mcu Das Script soll doch dafür sorgen, dass die Grundriss VIS responsive wird. Das tut sie aber nicht. Ich habe lediglich das Script von @RkcCorian kopiert, die ID des Grundriss Widgets auf meine ID angepasst und alles, für mich noch nicht nötige, ausgeklammert.

                            Ich möchte einfach erst einmal meinen Grundriss responsiv machen.

                            Die Symbole und passenden Links zu den Jarvis Tabs konnte ich problemlos erstellen, aber das kommt später.

                            In erster Linie geht es um responsive, da ich responsive dann auch auf meine anderen in Jarvis per iFrame eingebundenen VIS Seiten anwenden kann.

                            U 1 Reply Last reply Reply Quote 0
                            • U
                              uwe72 @SlipKoRn_DH88 last edited by

                              @slipkorn_dh88

                              Es geht mich zwar nichts an. Aber es hat nicht wirklich was mit Jarvis zu tun.

                              Warum muss es denn überhuapt responsive sein? Läuft dies auf unterschiedlichen Devices?

                              Ich habe mit SweetHome3D die Bilder exakt (auf den Pixel genau) so groß gemacht wie ich sie hier in der VIS benötige. Das mit dem Script ist meiner Meinung nach doch viel zu tricky.......

                              R 1 Reply Last reply Reply Quote 0
                              • U
                                uwe72 @uwe72 last edited by

                                @uwe72 said in jarvis v3.0.0 - just another remarkable vis:

                                @mcu

                                Meine Jarvis-Visualisierungen lassen sich ohne Probleme über den Browser anzeigen.

                                Über das Handy bekomme ich keinen Zugriff:
                                fc0597b2-923b-4293-883d-63c1561c19f6-image.png

                                ioBroker läuft im docker.

                                Hat jemand eine Idee?

                                So weit komme ich noch:
                                da6e5e39-0d03-4e3f-9f1f-ab08f4ca793a-image.png

                                @MCU

                                Mensch, ich müsste viel mehr deine hervorragende Doku lesen!!!!
                                https://mcuiobroker.gitbook.io/jarvis-infos/jarvis/besonderheiten-v3/allgemein/verbindungsaufbau

                                Funktioniert nun!

                                1 Reply Last reply Reply Quote 2
                                • R
                                  RkcCorian @uwe72 last edited by RkcCorian

                                  @uwe72 Moin Zusammen!
                                  Ich spreche mal für mich, kann für Andere aber anders sein...
                                  In meinem Fall nutze ich JARVIS auf PC, Tablet, sowie verschiedenen Handys der Familie mit jeweils unterschiedlichen Bildschirmen > Eine Visualisierung und alle können es mit einem Gerät der Wahl bedienen, auch von unterwegs. Da ich manches "nur" in VIS machen konnte, wie bspw. den Grundriss habe ich es in VIS gelöst und in JARVIS als iFrame eingebunden. Mir ist es zuviel Aufwand eine VIS "nur" für eine Bildschirmgröße zu machen, da in meinem Fall verschiedene Geräte genutzt werden. Auch wenn ich nur ein Gerät hätte wäre es mir zuviel Aufwand wenn mein Tablet mal kaputt geht und ich ein anderes einbaue die VIS nachzujustieren.
                                  Ein anderes Beispiel als mein Grundriss ist eine FireTV Fernbedienung, welche nach dem gleichen Prinzip funktioniert (Vgl. auch meine Veröffentlichung vor ein paar Tagen weiter oben)...
                                  0011.jpg

                                  Vgl. auch https://mcuiobroker.gitbook.io/jarvis-infos/jarvis/vis-grundriss-rkccorian, Mcu hat ganz unten auch ein PDF meiner gesamte Veröffentlichung bereit gestellt
                                  @Mcu: Vielen Dank dafür nochmal!!!

                                  @SlipKoRn_DH88

                                  1. Bzgl. Deiner "1"... die ist weder in meinem Skript, noch in der Mcu-Doku, noch in dem ursprünglichen Post drin. Hast Du hier evtl. einen Fehler gemacht?!
                                  2. Das Skript funktioniert derart, dass beim Aufstarten die Widget Größe und Position bezogen auf den Grundriss beim Aufstarten ermittelt wird. Die einmal ermittelten Infos werden dann beim Erstmaligen Laden an die Bildschirmgröße angepasst und bei Änderung der Bildschirmgröße (am PC) erneut angepasst. Damit also was passiert musst Du die Widgets, welche Skaliert werden sollen manuell im Skript einbauen, vgl. auch meine dort hinterlegten Widgets. Es reicht nicht das Skript reinzukopieren
                                  Dominik F. 1 Reply Last reply Reply Quote 1
                                  • Dominik F.
                                    Dominik F. @RkcCorian last edited by

                                    @rkccorian

                                    Ich habe die letzten Beiträge nicht befolgt, mir ist nur etwas in deinem Beitrag aufgefallen. Ich bin zwar auch von Vis auf Jarvis umgestiegen, jedoch ist es nicht richtig eine Vis für jede Bildschirmgröße machen zu müssen. Vis lässt sich genauso responsiv einstellen, wie es in Jarvis der Fall ist. Jarvis arbeitet ja viel mit CSS und genauso ist es in Vis auch möglich mittels CSS das ganze responsive zu gestalten.

                                    R 1 Reply Last reply Reply Quote 0
                                    • R
                                      RkcCorian @Dominik F. last edited by RkcCorian

                                      @dominik-f Jup, richtig.
                                      Ich schrieb von Visualisierung, damit ist nicht VIS alleine gemeint, sondern jegliche Visualisierung, egal welche.
                                      Ich habe darauf geantwortet, warum man überhaupt eine VIS responsiv machen möchte (wie geschrieben, muss nicht sein, bei mir war es wichtig). VIS ist von sich aus m.W. erstmal nicht responsiv. Du kannst CSS einsetzen, damit bin ich aber schnell an Grenzen gekommen (oder war zu doof 🙈), daher die Lösung über Skript. Damit bekommst Du wie geschrieben auch die VIS responsiv. DAS (CSS und/oder Skript) muss man aber halt (leider manuell) machen.

                                      Dominik F. 1 Reply Last reply Reply Quote 0
                                      • Dominik F.
                                        Dominik F. @RkcCorian last edited by

                                        @rkccorian

                                        Ah okay, hatte die letzten Beiträge nicht verfolgt und dachte du meinst damit Vis und hab angenommen, dass du wegen responsive von Vis auf Jarvis gewechselt bist.
                                        Ich bin zu Jarvis gewechselt, weil das CSS was ich genutzt habe leider nicht mehr weiterentwickelt wurde bzw der ersteller nicht mehr aktiv ist. Jarvis hatte für mich die Aussicht das es auf Jahre weiterentwickelt wird, das war für mich entscheident.

                                        R 1 Reply Last reply Reply Quote 0
                                        • R
                                          RkcCorian @Dominik F. last edited by

                                          @dominik-f Soweit auch meine Hoffnung 😃👍

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

                                            Hallo,

                                            erst einmal vielen Dank für den tollen Adapter. Ich bin gerade dabei mir ein Wand-Tablet (Fire HD10) mit Jarvis 3.0.11 einzurichten und arbeite mich gerade ein wenig in die Thematik ein.

                                            Aktuell versuche ich Jarvis mit dem Fully Kiosk Browser 1.46-fire ans Laufen zu bekommen und habe aktuell das Problem, dass im Fully Browser alle Datenpunkte leer sind:

                                            33638b01-c4cb-400f-8568-5f117eb5c466-image.png

                                            Nutze ich Firefox Klar wird mir alles angezeigt:

                                            9ba3a053-65d5-40cd-8233-c5ccd2825993-image.png

                                            Hat jemand ein gleiches Problem bzw. könnt ihr mir sagen, ob es jetzt am Fully oder Jarvis liegt?

                                            M 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            jarvis material material ui materialdesign vis visualisierung visualization
                                            252
                                            4481
                                            2248565
                                            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