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 @uwe72 last edited by

      @uwe72 ok "Sidebar Mini Mode" abschalten scheint damit besser zu funktionieren

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

        Dafür habe ich nun eine "Lücke".

        Kann man eigentlich die Spaltenbreite "nur" in Prozent angeben oder irgendwie auch in Pixel?

        Ich weiß dies verstößt sicherlich gegen das Thema "responsive Design".

        161c9c65-3da3-40f3-b35b-cba18711e543-image.png

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

          @uwe72 Die Spaltenbreite ziehst du doch im Layout selber.
          https://mcuiobroker.gitbook.io/jarvis-infos/jarvis/besonderheiten-v3/layout
          Das ist keine Lücke, sondern ein Problem mit der Darstellung vom Videobild. Auflösung ist nicht angepasst, bzw. Seitenverhältnis passt nicht zum ausgewähltem Layoutbereich.7359b5e3-0d5e-40d8-9844-ab87627679ce-image.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            884
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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