Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread)

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread)

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      Adnim @da_Woody last edited by

      @da_woody nö es gibt keine skripts dazu. kann auch vom controller sein k.a irgendwo muss ich ja anfangen zu fragen^^

      dslraser da_Woody 2 Replies Last reply Reply Quote 0
      • dslraser
        dslraser Forum Testing Most Active @Adnim last edited by

        @adnim sagte in Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread):

        @da_woody nö es gibt keine skripts dazu. kann auch vom controller sein k.a irgendwo muss ich ja anfangen zu fragen^^

        Cannot write file /htmlvoucher.html:
        

        sieht aber so aus wie ein Script ? Unifi ?

        1 Reply Last reply Reply Quote 1
        • da_Woody
          da_Woody @Adnim last edited by

          @adnim hehe, dagegen ist ja auch nichts zu sagen. aber, wenn du die fehlermeldung ansiehst, javascript, diverse .html. deswegen meine frage...

          1 Reply Last reply Reply Quote 1
          • s.bormann
            s.bormann Most Active @Adnim last edited by

            @adnim Hi, denke auch, dass das nicht von iQontrol kommt. Denke eher, dass ein Script etwas in den - jetzt gelöschten - iQontrol-Meta-Ordner schreiben will - und da Du den gelöscht hast, gibts den Fehler.

            1 Reply Last reply Reply Quote 1
            • A
              Adnim last edited by

              @dslraser sagte in Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread):

              sieht aber so aus wie ein Script ? Unifi ?

              Ah das war der entscheidende Hinweis Danke!! Im Unifiy Skript werden diese DP gesetzt; hatte ich gar nicht auf dem Schirm 🙂

              1 Reply Last reply Reply Quote 0
              • M
                meerkat last edited by meerkat

                Guten Abend zusammen,
                basierend auf der Idee von @muuulle (Beitrag 7024) habe ich mal ein Script geschrieben. Durch das Script braucht man nur "ein" Wigdet zur Anzeige des Ergebnisses. Ich habe an jedem Knopf in der Eigenschaft Background_URL das eigentliche Widget hinterlegt, bei mir DeviceCounter. Dann habe ich ein Widget, dass die Informationen aus der Background_URL aufnimmt. Bei @muuulle hatte ich pro Knopf ein Widget.
                Drückt man nun auf einen Knopf, wird der Wert in eine Hilfsvariable geschrieben und dann mit dem Script die Background_URL ermittelt und dann das "Ergebnis"-Wigdet aktiviert und die Background_Url in das Widget geschrieben.

                //Steuerung von Widgets mit Knöpfen in iQontrol, basierend auf der Idee von muuulle Beitrag 7024
                
                //Variable fürs zwischenspeichern der Views aus iQontrol 
                //(beim Start von JavasCript einmalig ausführen)
                var DpSysAdapterIqontrolViews = getObject('system.adapter.iqontrol.0').native.views;
                
                //Variable die zur Suche der entsprechenden view in iQontrol dient
                var DpView = '0_userdata.0.iQontrol_Widgets.iQontrolSearchView1';
                
                //Variable, in der der Suchbegriff für das Ergebnis-Widget steht, sollte immer der Name des
                //Buttons sein. Dieser enthält in der Background_URL das Widget.
                //Wenn der Wert in der Variable 0 ist, dann ist das Ergebnis-Widget inaktiv
                var DpButton = '0_userdata.0.iQontrol_Widgets.iQontrolSearchButton1';
                
                //Variable in der das Ergebnis der Background_URL aus dem SearchButton geschrieben wird
                var DpWidget = '0_userdata.0.iQontrol_Widgets.iQontrolResultWidget1';
                
                //Aktualisieren der Variable sys_Adapter_iQon nach jedem speichern und 
                //neustart der iQontrol-Instanz
                on({id:'system.adapter.iqontrol.0.alive', change: "ne"}, async function (obj) {
                    if(obj.state.val == true){
                        log("Aktualisierung der Variable für die Views");
                        DpSysAdapterIqontrolViews = getObject('system.adapter.iqontrol.0').native.views;
                    }
                });
                
                //Ermitteln und schreiben der Background_URL für das ErgebnisWidget
                on({id:DpButton, change: "ne"}, async function (obj) {
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
                    setStateDelayed(obj.id, (obj.state ? obj.state.val : ""), true, parseInt(((0) || "").toString(), 10), false);
                    if (value != 0){
                        DpSysAdapterIqontrolViews.forEach(function(view) {
                            if (view.commonName == getState(DpView).val){
                                view.devices.forEach(function(device){
                                    if (device.commonName == getState(DpButton).val){
                                        log(getState(DpButton).val);
                                        device.states.forEach(function(devState){
                                            if (devState.state == "BACKGROUND_URL"){
                                                log(devState.value);
                                                setStateDelayed(DpWidget, devState.value, true, parseInt(((0) || "").toString(), 10), false);
                                            }
                                        });
                                    }
                                });
                            }
                        });
                    
                        //Datenpunkte nach 60 Sekunden resetten
                        setStateDelayed(DpWidget, "", true, 60000, false);    
                        setStateDelayed(DpButton, "0", true, 60000, true);
                    }
                });
                
                

                YouCut_20220317_212646007.mp4
                Screen_Recording_20220317-205559_Chrome.mp4

                da_Woody dslraser 3 Replies Last reply Reply Quote 5
                • da_Woody
                  da_Woody @meerkat last edited by

                  @meerkat beeindruckend auf welche ideas ihr so kommt... 🙂
                  btw: hab gesehn, daß du das WIFI dingens benutzt. da für mich orange auf fehler hindeutet, hab ich das mal auf grün umgemodelt... ist zwar nicht ganz sauber, aber bei der größe sieht man's nicht.
                  wifi.png

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    meerkat @da_Woody last edited by

                    @da_woody danke, werde ich h mal abändern

                    da_Woody 1 Reply Last reply Reply Quote 1
                    • da_Woody
                      da_Woody @meerkat last edited by

                      @meerkat gerne! mir gefällts halt besser wenn online grün ist. 😄

                      1 Reply Last reply Reply Quote 0
                      • dslraser
                        dslraser Forum Testing Most Active @meerkat last edited by

                        @meerkat sagte in Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread):

                                                                                                                                                    //Steuerung von Widgets mit Knöpfen in iQontrol, basierend auf der Idee von muuulle Beitrag 7024                                                                                                                                                                                                                                                                                                                                                         //Variable fürs zwischenspeichern der Views aus iQontrol                                                                                                                                                                             //(beim Start von JavasCript einmalig ausführen)                                                                                                                                                                            var DpSysAdapterIqontrolViews = getObject('system.adapter.iqontrol.0').native.views;                                                                                                                                                                                                                                                                                                                                                         //Variable die zur Suche der entsprechenden view in iQontrol dient                                                                                                                                                                            var DpView = '0_userdata.0.iQontrol_Widgets.iQontrolSearchView1';                                                                                                                                                                                                                                                                                                                                                         //Variable, in der der Suchbegriff für das Ergebnis-Widget steht, sollte immer der Name des                                                                                                                                                                            //Buttons sein. Dieser enthält in der Background_URL das Widget.                                                                                                                                                                            //Wenn der Wert in der Variable 0 ist, dann ist das Ergebnis-Widget inaktiv                                                                                                                                                                            var DpButton = '0_userdata.0.iQontrol_Widgets.iQontrolSearchButton1';                                                                                                                                                                                                                                                                                                                                                         //Variable in der das Ergebnis der Background_URL aus dem SearchButton geschrieben wird                                                                                                                                                                            var DpWidget = '0_userdata.0.iQontrol_Widgets.iQontrolResultWidget1';                                                                                                                                                                                                                                                                                                                                                         //Aktualisieren der Variable sys_Adapter_iQon nach jedem speichern und                                                                                                                                                                             //neustart der iQontrol-Instanz                                                                                                                                                                            on({id:'system.adapter.iqontrol.0.alive', change: "ne"}, async function (obj) {                                                                                                                                                                                if(obj.state.val == true){                                                                                                                                                                                    log("Aktualisierung der Variable für die Views");                                                                                                                                                                                    DpSysAdapterIqontrolViews = getObject('system.adapter.iqontrol.0').native.views;                                                                                                                                                                                }                                                                                                                                                                            });                                                                                                                                                                                                                                                                                                                                                         //Ermitteln und schreiben der Background_URL für das ErgebnisWidget                                                                                                                                                                            on({id:DpButton, change: "ne"}, async function (obj) {                                                                                                                                                                                var value = obj.state.val;                                                                                                                                                                                var oldValue = obj.oldState.val;                                                                                                                                                                                setStateDelayed(obj.id, (obj.state ? obj.state.val : ""), true, parseInt(((0) || "").toString(), 10), false);                                                                                                                                                                                if (value != 0){                                                                                                                                                                                    DpSysAdapterIqontrolViews.forEach(function(view) {                                                                                                                                                                                        if (view.commonName == getState(DpView).val){                                                                                                                                                                                            view.devices.forEach(function(device){                                                                                                                                                                                                if (device.commonName == getState(DpButton).val){                                                                                                                                                                                                    log(getState(DpButton).val);                                                                                                                                                                                                    device.states.forEach(function(devState){                                                                                                                                                                                                        if (devState.state == "BACKGROUND_URL"){                                                                                                                                                                                                            log(devState.value);                                                                                                                                                                                                            setStateDelayed(DpWidget, devState.value, true, parseInt(((0) || "").toString(), 10), false);                                                                                                                                                                                                        }                                                                                                                                                                                                    });                                                                                                                                                                                                }                                                                                                                                                                                            });                                                                                                                                                                                        }                                                                                                                                                                                    });                                                                                                                                                                                                                                                                                                                                                                    //Datenpunkte nach 60 Sekunden resetten                                                                                                                                                                                    setStateDelayed(DpWidget, "", true, 60000, false);                                                                                                                                                                                        setStateDelayed(DpButton, "0", true, 60000, true);                                                                                                                                                                                }                                                                                                                                                                            });                                                                                                                                                                                                                         
                        

                        Tolle Idee.
                        Eigene Datenpunkte werden dann drei benötigt ? Als was sind die Datenpunkte erstellt ? (also type und role ?)

                        M 1 Reply Last reply Reply Quote 0
                        • D
                          Daniel81 last edited by

                          Hallo zusammen,
                          ich verwende seit heute das erste mal Iqcontrol und muss sagen, diese Anwendung gefällt mir sehr gut.! großes Lob an den Entwickler!

                          Leider habe ich jedoch das Problem, das mir keinerlei Icons in der Vorauswahl angezeigt werden! Was muss ich ändern, damit diese bei mir korrekt angezeigt werden?

                          Ich hoffe, Ihr könnt mir hier weiterhelfen!

                          iqcontrol.png
                          iq2.png

                          C 1 Reply Last reply Reply Quote 0
                          • C
                            CBeck @Daniel81 last edited by

                            @daniel81 Guck mal nicht unter 'Ansichten' sondern z.B. unter Toolbar. Dort kann man Icon hinterlegen, da müsste dann auch eine Auswahl vorhanden sein.
                            Oder unter 'Geräte' mit dem 'Stift' ein Gerät öffnen. Dort findet sich weiter unten auch 'Icons'.

                            D 1 Reply Last reply Reply Quote 0
                            • D
                              Daniel81 @CBeck last edited by

                              @cbeck das habe ich alles schon probiert, aber leider bekomme ich in keiner Auswahl eine Vorschau der Bilder. Auch wenn ich eigende Fotos hinzufüge, werden mit diese nicht als Vorschau zur Verfügung gestellt.neu4.png

                              M 1 Reply Last reply Reply Quote 0
                              • M
                                meerkat @dslraser last edited by

                                @dslraser Hi, habe sie alle mit role "state" und Type "string" angelegt

                                1 Reply Last reply Reply Quote 1
                                • M
                                  meerkat @Daniel81 last edited by

                                  Hi @daniel81, das hatte ich auch mal. Hast du ioBroker direkt auf nen Pi? Wenn du Docker nutzt, dann musst du mit den Ports etwas aufpassen. Hatte damals auch ne Portweiterleitung drin und habe dann keine Bilder in der Vorschau gehabt. Erst als ich auf den Originalen Port gewechselt hatte, habe ich die Bilder auch wieder gesehen.

                                  D 1 Reply Last reply Reply Quote 0
                                  • D
                                    Daniel81 @meerkat last edited by

                                    @meerkat ne bei mir läuft alles auf einem NUC unter Proxmox.
                                    Ich habe es jetzt aber zum laufen bekommen, musste hierzu alles Einstellungen in Chrome aktivieren, anscheinend wurde hier etwas aus Sicherheitsgründen geblockt.

                                    1 Reply Last reply Reply Quote 0
                                    • dslraser
                                      dslraser Forum Testing Most Active @meerkat last edited by

                                      @meerkat
                                      Mahlzeit,
                                      ich muss nochmal nachfragen. Ich habe diese drei Datenpunkte erstellt.

                                      Bildschirmfoto 2022-03-19 um 11.59.21.png

                                      Dann habe ich mir eine Testseite eingerichtet und dort einen Knopf und ein Widget angelegt. Wenn ich den Knopf betätige, dann wird auch brav z.B. Licht in den Datenpunkt geschrieben. Bei den anderen beiden Datenpunkten tut sich leider gar nichts.
                                      Wenn Licht im Datenpunkt steht und ich von Hand meine URL in 0_userdata.0.iQontrol_Widgets.iQontrolResultWidget1 kopiere, dann wird auch mein Widget angezeigt, also scheint die Übergabe an den Datenpunkt nicht zu klappen. Ich habe Dein Script 1:1 kopiert und die Datenpunkte auch 1:1 so genannt wie im Script.
                                      Was ich nicht verstehe, getObject('system.adapter.iqontrol.0').native.views;.....

                                      native.views finde ich in den Objekten gar nicht ? (oder sind die in den Objekten nicht zu sehen ?)

                                      In Deinem Video ist auch leider nicht zu sehen, welcher Datenpunkt wo verlinkt ist (in der Video Ansicht ist es abgeschnitten, also der Pfad) Kannst Du das bitte beschreiben ?
                                      Es wäre schön wenn Du helfen könntest. Danke schon mal.

                                      M 1 Reply Last reply Reply Quote 0
                                      • M
                                        meerkat @dslraser last edited by

                                        Hi @dslraser, in dem Datenpunkt view musst du noch den Namen der view (Seite) eintragen, wodas Script danach suchen soll. Die Angaben....native.views kann man so nicht finden

                                        dslraser 1 Reply Last reply Reply Quote 1
                                        • dslraser
                                          dslraser Forum Testing Most Active @meerkat last edited by

                                          @meerkat sagte in Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread):

                                          Hi @dslraser, in dem Datenpunkt view musst du noch den Namen der view (Seite) eintragen, wodas Script danach suchen soll. Die Angaben....native.views kann man so nicht finden

                                          Danke, damit funktioniert es.

                                          M 1 Reply Last reply Reply Quote 0
                                          • M
                                            meerkat @dslraser last edited by

                                            @dslraser freut mich. Werde in der nächsten Woche noch ein paar Verbesserungen machen und dann auch mal eine detaillierte Anleitung schreiben

                                            dslraser 1 Reply Last reply Reply Quote 2
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            760
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            app dark-mode iqontrol responsive vis visualisierung visualization widget
                                            295
                                            7633
                                            5533838
                                            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