Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread)

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    990

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

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

Scheduled Pinned Locked Moved Tester
appdark-modeiqontrolresponsivevisvisualisierungvisualizationwidget
7.6k Posts 296 Posters 7.2m Views 201 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • dslraserD dslraser

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

    @dslraser nene, er meint sicher die icons im text!
    9ba13575-fefc-4de5-b15a-97e0692a8228-grafik.png ec15d46f-bbe5-42e1-a0af-8b8b64e0f118-grafik.png

    @Beowolf

    jepp, das meine ich auch.....

    das untere, was hast Du da eingestellt ?

    Bildschirmfoto 2022-03-10 um 12.40.18.png

    EDIT:

    https://github.com/sbormann/ioBroker.iqontrol/wiki/JSON-Table-and-Device-Counter-Widget---Icon-Replacements#using-regular-expressions-regex

    B Offline
    B Offline
    Beowolf
    wrote on last edited by
    #7030

    @dslraser
    Asche auf mein Haupt - wo finde ich das noch mal? Habe ich schon wieder vergessen. :confounded:

    Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

    dslraserD 1 Reply Last reply
    0
    • B Beowolf

      @dslraser
      Asche auf mein Haupt - wo finde ich das noch mal? Habe ich schon wieder vergessen. :confounded:

      dslraserD Offline
      dslraserD Offline
      dslraser
      Forum Testing Most Active
      wrote on last edited by
      #7031

      @beowolf
      Du klickst im Widget rechts auf den Bleistift

      Bildschirmfoto 2022-03-10 um 17.43.48.png

      1 Reply Last reply
      0
      • H Offline
        H Offline
        heinzie
        wrote on last edited by
        #7032

        Hallo,

        ich möchte für meien Solar Anlage ein paar einfache Anzeigeelemente erstellen die nur einfach einen Zahlenwert (große Schriftart) zentriert in der Mitte der Kachel darstellen.
        Gibt es dafür eine einfache Möglichkeit oder wie macht ihr so etwas?

        Beispiel

        809c2fad-1586-4ff2-9aa6-59e6f51a4676-grafik.png

        0b54f011-725b-401e-8f77-b794f4f4935e-grafik.png

        1 Reply Last reply
        0
        • C Offline
          C Offline
          Cino
          wrote on last edited by
          #7033

          Vielleicht wäre HTML eine Lösung für dich.

          IOB@RPI4
          Shelly, Zigbee, ebus

          1 Reply Last reply
          0
          • dslraserD dslraser

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

            @dslraser nene, er meint sicher die icons im text!
            9ba13575-fefc-4de5-b15a-97e0692a8228-grafik.png ec15d46f-bbe5-42e1-a0af-8b8b64e0f118-grafik.png

            @Beowolf

            jepp, das meine ich auch.....

            das untere, was hast Du da eingestellt ?

            Bildschirmfoto 2022-03-10 um 12.40.18.png

            EDIT:

            https://github.com/sbormann/ioBroker.iqontrol/wiki/JSON-Table-and-Device-Counter-Widget---Icon-Replacements#using-regular-expressions-regex

            B Offline
            B Offline
            Beowolf
            wrote on last edited by
            #7034

            @dslraser

            Das steht dort:

            lampe.jpg

            Also muß ich dieses Zeichen ^ davor und das § dahinter einfügen, richtig?

            Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

            dslraserD 1 Reply Last reply
            0
            • B Beowolf

              @dslraser

              Das steht dort:

              lampe.jpg

              Also muß ich dieses Zeichen ^ davor und das § dahinter einfügen, richtig?

              dslraserD Offline
              dslraserD Offline
              dslraser
              Forum Testing Most Active
              wrote on last edited by dslraser
              #7035

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

              Also muß ich dieses Zeichen ^ davor und das § dahinter einfügen, richtig?

              Ich denke ja. (aber probiere es doch einfach aus) In der zweiten Zeile wird das Wort, was Du da eingibst, dem Icon hinzugefügt. Wenn Du da nichts eingibst, sondern nur in der dritten Zeile was eingibst, dann wird dieses Wort per RegEx mit dem Icon, welches Du in der ersten Zeile ausgewählt hast, ersetzt, dann hättest Du nur ein Icon.

              Edit:
              Beispiel

              Bildschirmfoto 2022-03-11 um 10.25.37.png

              Bildschirmfoto 2022-03-11 um 10.25.45.png

              Ergebnis:

              918EED62-4001-40AF-B2D4-30C936685F0A.png

              EDIT2:
              meine alias haben eine Werteliste (states), dort habe ich an und aus klein geschrieben, genau das wird dann mit einem Icon ersetzt.

              Bildschirmfoto 2022-03-11 um 10.29.59.png

              Hier mal ein Beispiel meiner alias als RAW

              {
               "type": "state",
               "common": {
                 "name": "Badezimmer links",
                 "read": true,
                 "write": true,
                 "type": "boolean",
                 "role": "switch.light",
                 "alias": {
                   "id": "hue.0.Badezimmerlampe_links.on"
                 },
                 "desc": "per Script erstellt",
                 "states": {
                   "false": "aus",
                   "true": "an"
                 },
                 "smartName": false
               },
               "native": {},
               "from": "system.adapter.javascript.0",
               "user": "system.user.admin",
               "ts": 1607784693476,
               "_id": "alias.0.Licht.Badezimmer_Licht_links",
               "acl": {
                 "object": 1636,
                 "state": 1636,
                 "owner": "system.user.admin",
                 "ownerGroup": "system.group.administrator"
               }
              }
              

              Und hier habe ich bei mir Deutsch eingestellt, sowie name

              Bildschirmfoto 2022-03-11 um 10.34.32.png

              B 1 Reply Last reply
              0
              • dslraserD dslraser

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

                Also muß ich dieses Zeichen ^ davor und das § dahinter einfügen, richtig?

                Ich denke ja. (aber probiere es doch einfach aus) In der zweiten Zeile wird das Wort, was Du da eingibst, dem Icon hinzugefügt. Wenn Du da nichts eingibst, sondern nur in der dritten Zeile was eingibst, dann wird dieses Wort per RegEx mit dem Icon, welches Du in der ersten Zeile ausgewählt hast, ersetzt, dann hättest Du nur ein Icon.

                Edit:
                Beispiel

                Bildschirmfoto 2022-03-11 um 10.25.37.png

                Bildschirmfoto 2022-03-11 um 10.25.45.png

                Ergebnis:

                918EED62-4001-40AF-B2D4-30C936685F0A.png

                EDIT2:
                meine alias haben eine Werteliste (states), dort habe ich an und aus klein geschrieben, genau das wird dann mit einem Icon ersetzt.

                Bildschirmfoto 2022-03-11 um 10.29.59.png

                Hier mal ein Beispiel meiner alias als RAW

                {
                 "type": "state",
                 "common": {
                   "name": "Badezimmer links",
                   "read": true,
                   "write": true,
                   "type": "boolean",
                   "role": "switch.light",
                   "alias": {
                     "id": "hue.0.Badezimmerlampe_links.on"
                   },
                   "desc": "per Script erstellt",
                   "states": {
                     "false": "aus",
                     "true": "an"
                   },
                   "smartName": false
                 },
                 "native": {},
                 "from": "system.adapter.javascript.0",
                 "user": "system.user.admin",
                 "ts": 1607784693476,
                 "_id": "alias.0.Licht.Badezimmer_Licht_links",
                 "acl": {
                   "object": 1636,
                   "state": 1636,
                   "owner": "system.user.admin",
                   "ownerGroup": "system.group.administrator"
                 }
                }
                

                Und hier habe ich bei mir Deutsch eingestellt, sowie name

                Bildschirmfoto 2022-03-11 um 10.34.32.png

                B Offline
                B Offline
                Beowolf
                wrote on last edited by
                #7036

                @dslraser

                Alles gut - so ist wieder alles so wie es sein soll.

                Vielen Dank für die schnelle Hilfe.

                Grüße
                Manfred

                Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                1 Reply Last reply
                0
                • s.bormannS s.bormann

                  @dslraser sagte in iQontrol Vis Support Thread:

                  @s-bormann
                  Hallo Sebastian, funktioniert. Tolle Erweiterung.
                  Aber eine Frage, ist das jetzt erstmal nur bei den Counter/Table Widget drinn ? Also noch nicht bei den „normalen“ Widget oder Geräten ?

                  Hi, ja, erst mal nur da. Wie gesagt, die Größe des Inhaltes eines iFrames kann nicht direkt ermittelt werden, sondern muss vom Widget aktiv per postMessage gemeldet werden. iQontrol kann dazu die postMessage "adjustHeight" mit der gewünschten Höhe als Wert empfangen. Im Widget muss die entsprechende Logik eingebaut werden, die die gewünschte Höhe an iQontrol meldet.

                  Beim JSON-Table-Widget sieht das so aus:

                  		//Adjust height
                  		var tableResizeObserver;
                  		var tableResizeObserverTimeout = false;
                  		var tableResizeObserverOldHeight = 0;
                  		function applyAdjustHeight(){
                  			if(adjustHeight && getUrlParameter("allowAdjustHeight") == "true"){
                  				console.log("Starting table resize observer to adjust height");
                  				if (tableResizeObserver){
                  					tableResizeObserver.disconnect();
                  				} else {
                  					tableResizeObserver = new MutationObserver(adjustHeightFunction);
                  				}
                  				tableResizeObserver.observe(document.querySelector('#jsonTableContent'), {attributes: true, attributeOldValue: true, childList: false, subtree: true});
                  				adjustHeightNow();
                  			}
                  		}
                  		function adjustHeightNow(){
                  			adjustHeightFunction([{attributeName: 'style'}]);
                  		}
                  		function adjustHeightFunction(mutationList){
                  			mutationList.forEach(function(mutation){
                  				if (mutation.attributeName === 'style' && !tableResizeObserverTimeout){
                  					tableResizeObserverTimeout = setTimeout(function(){
                  						var height = $('#jsonTableContent').innerHeight();
                  						if (tableResizeObserverOldHeight != height){
                  							console.log("adjustHeight to table: " + height);
                  							window.parent.postMessage({ command: "adjustHeight" , value: height }, "*");
                  						}
                  						tableResizeObserverOldHeight = height;
                  						tableResizeObserverTimeout = false;
                  					}, 10);
                  				}
                  			});
                  		}
                  		
                  		//send postMessages
                  		function sendPostMessage(command, stateId, value){
                  			message = { command: command, stateId: stateId, value: value };
                  			window.parent.postMessage(message, "*");
                  		}
                  

                  Auf den #jsonTableContent wird ein sog. MutationObserver angesetzt, der auf Änderungen am Styling des Elements reagiert und dann die Funktion adjustHeightFunction aufruft.
                  Da wird geprüft, ob sich die Höhe geändert hat. Wenn ja, wird das ganze (mit einem kleinen Timeout, um zu viele Meldungen in zu kurzer Zeit zu verhindern) per postMessage gemeldet.

                  Bei normalen Geräten (nicht Widgets) kann man ja die Größe des Gerätes dem STATE anpassen lassen.

                  M Offline
                  M Offline
                  meerkat
                  wrote on last edited by meerkat
                  #7037

                  Moin @s-bormann ,

                  kann man dieses auch in der Darstellung der Counter einbinden? So dass Counter mit mehreren Elementen automatisch vergrößert wird.

                  Gruß

                  EDIT: Habe es gerade selber gefunden!

                  1 Reply Last reply
                  1
                  • A Offline
                    A Offline
                    Adnim
                    wrote on last edited by
                    #7038

                    Hi,
                    hatte den Adapter installiert möchte ihn aber im moment wieder runter haben. Nach löschen des Adapters kommen aber die Fehlermeldungen unten?
                    Jemand nen Tipp wie ich das wegbekomme? oder kann ich noch infos liefern?

                    javascript.0
                    2022-03-14 16:20:47.273	error	Cannot write file /htmldisc.html: iqontrol.meta is not an object of type "meta"
                    
                    javascript.0
                    2022-03-14 16:20:47.273	error	Cannot write file /htmllan.html: iqontrol.meta is not an object of type "meta"
                    
                    javascript.0
                    2022-03-14 16:20:47.273	error	Cannot write file /htmlwlan.html: iqontrol.meta is not an object of type "meta"
                    
                    javascript.0
                    2022-03-14 16:20:47.273	error	Cannot write file /htmlclients.html: iqontrol.meta is not an object of type "meta"
                    
                    javascript.0
                    2022-03-14 16:20:47.273	error	Cannot write file /htmldisc.html: iqontrol.meta is not an object of type "meta"
                    
                    javascript.0
                    2022-03-14 16:20:47.273	error	Cannot write file /htmllan.html: iqontrol.meta is not an object of type "meta"
                    
                    javascript.0
                    2022-03-14 16:20:47.273	error	Cannot write file /htmlwlan.html: iqontrol.meta is not an object of type "meta"
                    
                    javascript.0
                    2022-03-14 16:20:47.272	error	Cannot write file /htmlinfo.html: iqontrol.meta is not an object of type "meta"
                    
                    javascript.0
                    2022-03-14 16:20:47.272	error	Cannot write file /htmlalarm.html: iqontrol.meta is not an object of type "meta"
                    
                    javascript.0
                    2022-03-14 16:20:47.272	error	Cannot write file /htmlvoucher.html: iqontrol.meta is not an object of type "meta"
                    
                    javascript.0
                    2022-03-14 16:20:47.272	error	Cannot write file /htmlclients.html: iqontrol.meta is not an object of type "meta"
                    

                    Danke für Hilfe!

                    da_WoodyD s.bormannS 2 Replies Last reply
                    0
                    • A Adnim

                      Hi,
                      hatte den Adapter installiert möchte ihn aber im moment wieder runter haben. Nach löschen des Adapters kommen aber die Fehlermeldungen unten?
                      Jemand nen Tipp wie ich das wegbekomme? oder kann ich noch infos liefern?

                      javascript.0
                      2022-03-14 16:20:47.273	error	Cannot write file /htmldisc.html: iqontrol.meta is not an object of type "meta"
                      
                      javascript.0
                      2022-03-14 16:20:47.273	error	Cannot write file /htmllan.html: iqontrol.meta is not an object of type "meta"
                      
                      javascript.0
                      2022-03-14 16:20:47.273	error	Cannot write file /htmlwlan.html: iqontrol.meta is not an object of type "meta"
                      
                      javascript.0
                      2022-03-14 16:20:47.273	error	Cannot write file /htmlclients.html: iqontrol.meta is not an object of type "meta"
                      
                      javascript.0
                      2022-03-14 16:20:47.273	error	Cannot write file /htmldisc.html: iqontrol.meta is not an object of type "meta"
                      
                      javascript.0
                      2022-03-14 16:20:47.273	error	Cannot write file /htmllan.html: iqontrol.meta is not an object of type "meta"
                      
                      javascript.0
                      2022-03-14 16:20:47.273	error	Cannot write file /htmlwlan.html: iqontrol.meta is not an object of type "meta"
                      
                      javascript.0
                      2022-03-14 16:20:47.272	error	Cannot write file /htmlinfo.html: iqontrol.meta is not an object of type "meta"
                      
                      javascript.0
                      2022-03-14 16:20:47.272	error	Cannot write file /htmlalarm.html: iqontrol.meta is not an object of type "meta"
                      
                      javascript.0
                      2022-03-14 16:20:47.272	error	Cannot write file /htmlvoucher.html: iqontrol.meta is not an object of type "meta"
                      
                      javascript.0
                      2022-03-14 16:20:47.272	error	Cannot write file /htmlclients.html: iqontrol.meta is not an object of type "meta"
                      

                      Danke für Hilfe!

                      da_WoodyD Online
                      da_WoodyD Online
                      da_Woody
                      wrote on last edited by
                      #7039

                      @adnim du meinst, das hat jetzt was mit IQ zu tun. kann sein, aber hast du da auch java sripts eingebunden gehabt? wenn du die scripts dazu nicht löscht, dann ist das logisch.

                      gruß vom Woody
                      HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                      A 1 Reply Last reply
                      0
                      • da_WoodyD da_Woody

                        @adnim du meinst, das hat jetzt was mit IQ zu tun. kann sein, aber hast du da auch java sripts eingebunden gehabt? wenn du die scripts dazu nicht löscht, dann ist das logisch.

                        A Offline
                        A Offline
                        Adnim
                        wrote on last edited by
                        #7040

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

                        dslraserD da_WoodyD 2 Replies Last reply
                        0
                        • A Adnim

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

                          dslraserD Offline
                          dslraserD Offline
                          dslraser
                          Forum Testing Most Active
                          wrote on last edited by
                          #7041

                          @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
                          1
                          • A Adnim

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

                            da_WoodyD Online
                            da_WoodyD Online
                            da_Woody
                            wrote on last edited by
                            #7042

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

                            gruß vom Woody
                            HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                            1 Reply Last reply
                            1
                            • A Adnim

                              Hi,
                              hatte den Adapter installiert möchte ihn aber im moment wieder runter haben. Nach löschen des Adapters kommen aber die Fehlermeldungen unten?
                              Jemand nen Tipp wie ich das wegbekomme? oder kann ich noch infos liefern?

                              javascript.0
                              2022-03-14 16:20:47.273	error	Cannot write file /htmldisc.html: iqontrol.meta is not an object of type "meta"
                              
                              javascript.0
                              2022-03-14 16:20:47.273	error	Cannot write file /htmllan.html: iqontrol.meta is not an object of type "meta"
                              
                              javascript.0
                              2022-03-14 16:20:47.273	error	Cannot write file /htmlwlan.html: iqontrol.meta is not an object of type "meta"
                              
                              javascript.0
                              2022-03-14 16:20:47.273	error	Cannot write file /htmlclients.html: iqontrol.meta is not an object of type "meta"
                              
                              javascript.0
                              2022-03-14 16:20:47.273	error	Cannot write file /htmldisc.html: iqontrol.meta is not an object of type "meta"
                              
                              javascript.0
                              2022-03-14 16:20:47.273	error	Cannot write file /htmllan.html: iqontrol.meta is not an object of type "meta"
                              
                              javascript.0
                              2022-03-14 16:20:47.273	error	Cannot write file /htmlwlan.html: iqontrol.meta is not an object of type "meta"
                              
                              javascript.0
                              2022-03-14 16:20:47.272	error	Cannot write file /htmlinfo.html: iqontrol.meta is not an object of type "meta"
                              
                              javascript.0
                              2022-03-14 16:20:47.272	error	Cannot write file /htmlalarm.html: iqontrol.meta is not an object of type "meta"
                              
                              javascript.0
                              2022-03-14 16:20:47.272	error	Cannot write file /htmlvoucher.html: iqontrol.meta is not an object of type "meta"
                              
                              javascript.0
                              2022-03-14 16:20:47.272	error	Cannot write file /htmlclients.html: iqontrol.meta is not an object of type "meta"
                              

                              Danke für Hilfe!

                              s.bormannS Offline
                              s.bormannS Offline
                              s.bormann
                              Most Active
                              wrote on last edited by
                              #7043

                              @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
                              1
                              • A Offline
                                A Offline
                                Adnim
                                wrote on last edited by
                                #7044

                                @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
                                0
                                • M Offline
                                  M Offline
                                  meerkat
                                  wrote on last edited by meerkat
                                  #7045

                                  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_WoodyD dslraserD 3 Replies Last reply
                                  5
                                  • M 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_WoodyD Online
                                    da_WoodyD Online
                                    da_Woody
                                    wrote on last edited by
                                    #7046

                                    @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

                                    gruß vom Woody
                                    HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                                    M 1 Reply Last reply
                                    0
                                    • da_WoodyD da_Woody

                                      @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 Offline
                                      M Offline
                                      meerkat
                                      wrote on last edited by
                                      #7047

                                      @da_woody danke, werde ich h mal abändern

                                      da_WoodyD 1 Reply Last reply
                                      1
                                      • M meerkat

                                        @da_woody danke, werde ich h mal abändern

                                        da_WoodyD Online
                                        da_WoodyD Online
                                        da_Woody
                                        wrote on last edited by
                                        #7048

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

                                        gruß vom Woody
                                        HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                                        1 Reply Last reply
                                        0
                                        • M 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

                                          dslraserD Offline
                                          dslraserD Offline
                                          dslraser
                                          Forum Testing Most Active
                                          wrote on last edited by
                                          #7049

                                          @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
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          306

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe