Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. VIS2: Invalid pattern on subscribe - VIS1 läuft problemlos

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    VIS2: Invalid pattern on subscribe - VIS1 läuft problemlos

    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      nvd126 last edited by nvd126

      Mit VIS1 hatte ich mit meinem JS-Code keine Probleme. Mit VIS2 schon.
      Was muss ich ändern, damit es wieder funktioniert?

      web.0 2024-04-28 07:33:41.935	error	Invalid pattern on subscribe: The pattern "vis.setValue(Kuche_Hauptlicht_dimmen,0)" is not a valid ID pattern
       
      web.0 2024-04-28 07:33:41.935	error	Invalid pattern on subscribe: The pattern "document.getElementById("Kuche_Steckdosen").style.backgroundColor = "#dd5800"" is not a valid ID pattern
       
      web.0 2024-04-28 07:33:41.934	error	Invalid pattern on subscribe: The pattern "document.getElementById("Kuche_Steckdosen").style.backgroundColor = "#04AA6D"" is not a valid ID pattern
       
      web.0 2024-04-28 07:33:41.934	error	Invalid pattern on subscribe: The pattern "this.servConn._socket.emit('getStates', Kuche_Steckdosen_objID, (error, states) => { this.servConn._socket.emit('setState', Kuche_Steckdosen_objID, !states[Kuche_Steckdosen_objID].val)" is not a valid ID pattern
       
      web.0 2024-04-28 07:33:41.934	error	Invalid pattern on subscribe: The pattern "document.getElementById("Spuhlmaschine").style.backgroundColor = "#dd5800"" is not a valid ID pattern
       
      web.0 2024-04-28 07:33:41.933	error	Invalid pattern on subscribe: The pattern "document.getElementById("Spuhlmaschine").style.backgroundColor = "#04AA6D"" is not a valid ID pattern
       
      web.0 2024-04-28 07:33:41.933	error	Invalid pattern on subscribe: The pattern "this.servConn._socket.emit('getStates', Kuche_Spuhlmaschine_objID, (error, states) => { this.servConn._socket.emit('setState', Kuche_Spuhlmaschine_objID, !states[Kuche_Spuhlmaschine_objID].val)" is not a valid ID pattern
       
      web.0 2024-04-28 07:33:41.933	error	Invalid pattern on subscribe: The pattern "document.getElementById("Herd_und_Backofen").style.backgroundColor = "#dd5800"" is not a valid ID pattern
       
      web.0 2024-04-28 07:33:41.932	error	Invalid pattern on subscribe: The pattern "document.getElementById("Herd_und_Backofen").style.backgroundColor = "#04AA6D"" is not a valid ID pattern
       
      web.0 2024-04-28 07:33:41.932	error	Invalid pattern on subscribe: The pattern "this.servConn._socket.emit('getStates', Kuche_Herd_objID, (error, states) => { this.servConn._socket.emit('setState', Kuche_Herd_objID, !states[Kuche_Herd_objID].val)" is not a valid ID pattern
       
      web.0 2024-04-28 07:33:41.932	error	Invalid pattern on subscribe: The pattern "document.getElementById("Kuche_Tischlicht_100").className += "--primary:active"" is not a valid ID pattern
      
      

      Zum Beispiel im Bezug auf den ersten Fehler im Log habe ich in meiner Visu bei Beleuchtung 5 Buttons. 0/25/50/75/100%. Die entsprechende JS-Funktion, welche in einem HTML-Widget ist, sah bisher so aus:

      // Hauptbeleuchtung Küche
      function Kuche_Hauptlicht_0(){vis.setValue(Kuche_Hauptlicht_dimmen,0);}
      function Kuche_Hauptlicht_25(){vis.setValue(Kuche_Hauptlicht_dimmen,25);}
      function Kuche_Hauptlicht_50(){vis.setValue(Kuche_Hauptlicht_dimmen,50);}
      function Kuche_Hauptlicht_75(){vis.setValue(Kuche_Hauptlicht_dimmen,75);}
      function Kuche_Hauptlicht_100(){vis.setValue(Kuche_Hauptlicht_dimmen,100);}
      

      Edit: Ok scheint wohl an diesen {} hier zu liegen. Warum hat VIS2 damit plötzlich ein Problem und VIS1 läuft problemlos parallel??
      Was mache ich da nun???

      Edit2: Nun wirds komisch. Ich lasse ja meine Buttons farbig erscheinen, je nach dem ob der Dimmwert aktiv ist. Wenn ich hier die {} entferne, dann wird mir weiterhin nicht der Dimmwert angezeigt (also bleibt farblos der button), aber ich kann zumindest vis.setValue ausführen...
      Außerdem war vorher bei

          var Buro_Hauptlicht_Dimmwert = {knx.0.Obergeschoss.Status.DA2_A_Buro_Dimmwert};
      

      die geschweiften Klammern. War in VIS1 so notwendig. Nun in VIS2 musste ich das auf '' ändern.

      var Kuche_Hauptlicht_Dimmwert = 'knx.0.Obergeschoss.Status.DA1_A_Kuche_Dimmwert';
      

      Hier mal der gesamte [verunstaltete] JS-Code für das Hauptlicht der Küche:

      var Kuche_Hauptlicht_dimmen = 'knx.0.Obergeschoss.Beleuchtung.DA1_A_Kuche_Licht_absolut_dimmen';
      var Kuche_Hauptlicht_Dimmwert = 'knx.0.Obergeschoss.Status.DA1_A_Kuche_Dimmwert';
      
      if (Kuche_Hauptlicht_Dimmwert == 0)
          document.getElementById("Kuche_Hauptlicht_0").className += "--primary:active";
          document.getElementById("Kuche_Hauptlicht_0").style.backgroundColor = "#04AA6D";
      if (Kuche_Hauptlicht_Dimmwert == 50)
          document.getElementById("Kuche_Hauptlicht_50").className += "--primary:active";
      if (Kuche_Hauptlicht_Dimmwert == 75)
          document.getElementById("Kuche_Hauptlicht_75").className += "--primary:active";
      if (Kuche_Hauptlicht_Dimmwert == 100)
          document.getElementById("Kuche_Hauptlicht_100").className += "--primary:active";
          
      function Kuche_Hauptlicht_0(){vis.setValue(Kuche_Hauptlicht_dimmen,0);}
      function Kuche_Hauptlicht_25(){vis.setValue(Kuche_Hauptlicht_dimmen,25);}
      function Kuche_Hauptlicht_50(){vis.setValue(Kuche_Hauptlicht_dimmen,50);}
      function Kuche_Hauptlicht_75(){vis.setValue(Kuche_Hauptlicht_dimmen,75);}
      function Kuche_Hauptlicht_100(){vis.setValue(Kuche_Hauptlicht_dimmen,100);}
      

      Also irgendwas muss in VIS2 passiert sein, weshalb auf einmal hier Probleme auftreten. Und ich kann doch nicht überall im JS-Code die geschweiften Klammern entfernen. Mag vielleicht bei ifs mit nur einer Anweisung gehen aber es kommen auch mal mehrere Vor. Hier muss doch ein Fehler vorliegen...

      Ich hoffe irgendwer kann mir hierzu was sagen.

      N 1 Reply Last reply Reply Quote 0
      • N
        nvd126 @nvd126 last edited by

        Hat keiner eine Idee? ☹️

        1 Reply Last reply Reply Quote 0
        • N
          nvd126 last edited by nvd126

          Hallo,

          gibt es wirklich niemanden (Entwickler usw.) welcher hier eine Idee hat?

          Wie gesagt. In VIS1 funktioniert es 1:1 ohne Probleme. Wenn ich den selben Code in VIS2 einfüge, bekomme ich massenweise Fehler (siehe Log), der Browser fängt an zu hängen....

          host.iobroker 2024-05-15 08:08:05.541	warn	host.iobroker-Server States 127.0.0.1:50990 Error from InMemDB: Error: The pattern "vis.setValue(Wohnzimmer_Hauptlicht_dimmen,0)" is not a valid ID pattern at Object.pattern2RegEx (/opt/iobroker/node_modules/@iobroker/js-controller-common/src/lib/common/tools.ts:2470:15) at StatesInMemoryServer.handleSubscribe (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/inMemFileDB.ts:324:59) at StatesInMemoryServer._subscribeForClient (/opt/iobroker/node_modules/@iobroker/db-states-file/src/lib/states/statesInMemFileDB.js:258:14) at RedisHandler.<anonymous> (/opt/iobroker/node_modules/@iobroker/db-states-jsonl/src/lib/states/statesInMemServerRedis.js:395:26) at RedisHandler.emit (node:events:517:28) at RedisHandler.emit (node:domain:489:12) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/redisHandler.ts:209:37) at processImmediate (node:internal/timers:476:21)
          
          host.iobroker 2024-05-15 08:08:05.539	warn	host.iobroker-Server States 127.0.0.1:50990 Error from InMemDB: Error: The pattern "vis.setValue(Schlafzimmer_Hauptlicht_dimmen,25)" is not a valid ID pattern at Object.pattern2RegEx (/opt/iobroker/node_modules/@iobroker/js-controller-common/src/lib/common/tools.ts:2470:15) at StatesInMemoryServer.handleSubscribe (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/inMemFileDB.ts:324:59) at StatesInMemoryServer._subscribeForClient (/opt/iobroker/node_modules/@iobroker/db-states-file/src/lib/states/statesInMemFileDB.js:258:14) at RedisHandler.<anonymous> (/opt/iobroker/node_modules/@iobroker/db-states-jsonl/src/lib/states/statesInMemServerRedis.js:395:26) at RedisHandler.emit (node:events:517:28) at RedisHandler.emit (node:domain:489:12) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/redisHandler.ts:209:37) at processImmediate (node:internal/timers:476:21)
          
          host.iobroker 2024-05-15 08:08:05.538	warn	host.iobroker-Server States 127.0.0.1:50990 Error from InMemDB: Error: The pattern "vis.setValue(Kuche_Tischlicht_dimmen,100)" is not a valid ID pattern at Object.pattern2RegEx (/opt/iobroker/node_modules/@iobroker/js-controller-common/src/lib/common/tools.ts:2470:15) at StatesInMemoryServer.handleSubscribe (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/inMemFileDB.ts:324:59) at StatesInMemoryServer._subscribeForClient (/opt/iobroker/node_modules/@iobroker/db-states-file/src/lib/states/statesInMemFileDB.js:258:14) at RedisHandler.<anonymous> (/opt/iobroker/node_modules/@iobroker/db-states-jsonl/src/lib/states/statesInMemServerRedis.js:395:26) at RedisHandler.emit (node:events:517:28) at RedisHandler.emit (node:domain:489:12) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/redisHandler.ts:209:37) at processImmediate (node:internal/timers:476:21)
          
          host.iobroker 2024-05-15 08:08:05.537	warn	host.iobroker-Server States 127.0.0.1:50990 Error from InMemDB: Error: The pattern "vis.setValue(Kuche_Tischlicht_dimmen,0)" is not a valid ID pattern at Object.pattern2RegEx (/opt/iobroker/node_modules/@iobroker/js-controller-common/src/lib/common/tools.ts:2470:15) at StatesInMemoryServer.handleSubscribe (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/inMemFileDB.ts:324:59) at StatesInMemoryServer._subscribeForClient (/opt/iobroker/node_modules/@iobroker/db-states-file/src/lib/states/statesInMemFileDB.js:258:14) at RedisHandler.<anonymous> (/opt/iobroker/node_modules/@iobroker/db-states-jsonl/src/lib/states/statesInMemServerRedis.js:395:26) at RedisHandler.emit (node:events:517:28) at RedisHandler.emit (node:domain:489:12) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/redisHandler.ts:209:37) at processImmediate (node:internal/timers:476:21)
          
          host.iobroker 2024-05-15 08:08:05.537	warn	host.iobroker-Server States 127.0.0.1:50990 Error from InMemDB: Error: The pattern "vis.setValue(Kuche_Hauptlicht_dimmen,25)" is not a valid ID pattern at Object.pattern2RegEx (/opt/iobroker/node_modules/@iobroker/js-controller-common/src/lib/common/tools.ts:2470:15) at StatesInMemoryServer.handleSubscribe (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/inMemFileDB.ts:324:59) at StatesInMemoryServer._subscribeForClient (/opt/iobroker/node_modules/@iobroker/db-states-file/src/lib/states/statesInMemFileDB.js:258:14) at RedisHandler.<anonymous> (/opt/iobroker/node_modules/@iobroker/db-states-jsonl/src/lib/states/statesInMemServerRedis.js:395:26) at RedisHandler.emit (node:events:517:28) at RedisHandler.emit (node:domain:489:12) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/redisHandler.ts:209:37) at processImmediate (node:internal/timers:476:21)
          
          host.iobroker 2024-05-15 08:08:05.536	warn	host.iobroker-Server States 127.0.0.1:50990 Error from InMemDB: Error: The pattern "vis.setValue(Buro_Hauptlicht_dimmen,25)" is not a valid ID pattern at Object.pattern2RegEx (/opt/iobroker/node_modules/@iobroker/js-controller-common/src/lib/common/tools.ts:2470:15) at StatesInMemoryServer.handleSubscribe (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/inMemFileDB.ts:324:59) at StatesInMemoryServer._subscribeForClient (/opt/iobroker/node_modules/@iobroker/db-states-file/src/lib/states/statesInMemFileDB.js:258:14) at RedisHandler.<anonymous> (/opt/iobroker/node_modules/@iobroker/db-states-jsonl/src/lib/states/statesInMemServerRedis.js:395:26) at RedisHandler.emit (node:events:517:28) at RedisHandler.emit (node:domain:489:12) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-base/src/lib/redisHandler.ts:209:37) at processImmediate (node:internal/timers:476:21)
          
          
          web.0 2024-05-15 08:08:21.556	error	Invalid pattern on subscribe: The pattern "vis.setValue(Wohnzimmer_Hauptlicht_dimmen,25)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:21.556	error	Invalid pattern on subscribe: The pattern "vis.setValue(Schlafzimmer_Hauptlicht_dimmen,100)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:21.555	error	Invalid pattern on subscribe: The pattern "vis.setValue(Schlafzimmer_Hauptlicht_dimmen,50)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:21.555	error	Invalid pattern on subscribe: The pattern "vis.setValue(Schlafzimmer_Hauptlicht_dimmen,0)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:21.555	error	Invalid pattern on subscribe: The pattern "vis.setValue(Kuche_Tischlicht_dimmen,75)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:21.555	error	Invalid pattern on subscribe: The pattern "vis.setValue(Kuche_Tischlicht_dimmen,25)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:21.555	error	Invalid pattern on subscribe: The pattern "vis.setValue(Kuche_Hauptlicht_dimmen,100)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:21.555	error	Invalid pattern on subscribe: The pattern "vis.setValue(Kuche_Hauptlicht_dimmen,50)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:21.555	error	Invalid pattern on subscribe: The pattern "vis.setValue(Kuche_Hauptlicht_dimmen,0)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:21.555	error	Invalid pattern on subscribe: The pattern "vis.setValue(Buro_Hauptlicht_dimmen,100)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:21.555	error	Invalid pattern on subscribe: The pattern "vis.setValue(Buro_Hauptlicht_dimmen,50)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:21.554	error	Invalid pattern on subscribe: The pattern "vis.setValue(Buro_Hauptlicht_dimmen,0)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.585	error	Cannot subscribe "vis.setValue(Wohnzimmer_Hauptlicht_dimmen,0)": Error The pattern "vis.setValue(Wohnzimmer_Hauptlicht_dimmen,0)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.584	error	Cannot subscribe "vis.setValue(Schlafzimmer_Hauptlicht_dimmen,75)": The pattern "io.vis.setValue(Schlafzimmer_Hauptlicht_dimmen,75)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.584	error	Cannot subscribe "vis.setValue(Schlafzimmer_Hauptlicht_dimmen,25)": Error The pattern "vis.setValue(Schlafzimmer_Hauptlicht_dimmen,25)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.584	error	Cannot subscribe "vis.setValue(Kuche_Tischlicht_dimmen,100)": Error The pattern "vis.setValue(Kuche_Tischlicht_dimmen,100)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.584	error	Cannot subscribe "vis.setValue(Kuche_Tischlicht_dimmen,0)": Error The pattern "vis.setValue(Kuche_Tischlicht_dimmen,0)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.584	error	Cannot subscribe "vis.setValue(Kuche_Hauptlicht_dimmen,75)": The pattern "io.vis.setValue(Kuche_Hauptlicht_dimmen,75)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.584	error	Cannot subscribe "vis.setValue(Kuche_Hauptlicht_dimmen,25)": Error The pattern "vis.setValue(Kuche_Hauptlicht_dimmen,25)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.583	error	Cannot subscribe "vis.setValue(Buro_Hauptlicht_dimmen,75)": The pattern "io.vis.setValue(Buro_Hauptlicht_dimmen,75)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.583	error	Cannot subscribe "vis.setValue(Buro_Hauptlicht_dimmen,25)": Error The pattern "vis.setValue(Buro_Hauptlicht_dimmen,25)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.532	error	Invalid pattern on subscribe: The pattern "vis.setValue(Wohnzimmer_Hauptlicht_dimmen,25)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.531	error	Invalid pattern on subscribe: The pattern "vis.setValue(Schlafzimmer_Hauptlicht_dimmen,100)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.531	error	Invalid pattern on subscribe: The pattern "vis.setValue(Schlafzimmer_Hauptlicht_dimmen,50)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.531	error	Invalid pattern on subscribe: The pattern "vis.setValue(Schlafzimmer_Hauptlicht_dimmen,0)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.531	error	Invalid pattern on subscribe: The pattern "vis.setValue(Kuche_Tischlicht_dimmen,75)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.531	error	Invalid pattern on subscribe: The pattern "vis.setValue(Kuche_Tischlicht_dimmen,25)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.530	error	Invalid pattern on subscribe: The pattern "vis.setValue(Kuche_Hauptlicht_dimmen,100)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.530	error	Invalid pattern on subscribe: The pattern "vis.setValue(Kuche_Hauptlicht_dimmen,50)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.530	error	Invalid pattern on subscribe: The pattern "vis.setValue(Kuche_Hauptlicht_dimmen,0)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.530	error	Invalid pattern on subscribe: The pattern "vis.setValue(Buro_Hauptlicht_dimmen,100)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.529	error	Invalid pattern on subscribe: The pattern "vis.setValue(Buro_Hauptlicht_dimmen,50)" is not a valid ID pattern
          
          web.0 2024-05-15 08:08:05.529	error	Invalid pattern on subscribe: The pattern "vis.setValue(Buro_Hauptlicht_dimmen,0)" is not a valid ID pattern
          
          OliverIO 1 Reply Last reply Reply Quote 0
          • OliverIO
            OliverIO @nvd126 last edited by

            @nvd126

            hallo,

            ich habe den issue dazu im github gesehen.
            ich will nicht sagen, das ich es lösen konnte, aber einen ersten grund habe ich gefunden.
            vis-2 (und eigentlich auch schon vis-1) sucht in html inhalten nach detenpunkten, die speziell notiert wurden.
            format ist
            {datenpunktbezeichnung}

            für diese zeile funktioniert das auch einwandfrei

            var Kuche_Hauptlicht_Dimmwert = {knx.0.Obergeschoss.Status.DA1_A_Kuche_Dimmwert};
            

            wenn du dir jetzt die folgende beispielzeile anschaust

            function Kuche_Hauptlicht_0(){vis.setValue(Kuche_Hauptlicht_dimmen,0);}
            

            wird es schon schwieriger. vis1/2 sucht diese stellen per regex und kann daher die beiden fälle nicht unterscheiden.
            vorschlag ist, das du diese funktion nicht komprimiert sondern ausführlich notierst

            function Kuche_Hauptlicht_0(){
                vis.setValue(Kuche_Hauptlicht_dimmen,0);
            }
            

            dadurch entgeht diese Stelle der Erkennung und führt zu keinem vis-Fehler mehr.
            Die anderen Stellen natürlich ebenfalls anpassen.

            Leider hast du nirgends den kompletten HTML-Text gepostet, daher kann ich nicht verifizieren, worauf

            document.getElementById("Kuche_Hauptlicht_0").className += "--primary:active";
            
            

            abzielt. Der Bildschirmaufbau zwischen vis1 und 2 wurde grundlegend geändert. in vis2 wird nun react verwendet. daher kann es sein, das html-elemente nicht mehr unter den gewohnten IDs erreichbar sind.

            N 1 Reply Last reply Reply Quote 1
            • N
              nvd126 @OliverIO last edited by nvd126

              @oliverio Hallo und danke für die Antwort. Etwas spät aber nun hab ich wieder Zeit für das Ganze 🙂
              Die Problematik konnte es nicht wirklich lösen.

              Ich habe hier mal den gesamten relevanten Code (mit den Änderungen) für mein Büro. Alle anderen Räume sind gleich angelegt.

              <head>
                  <script>
              // Büro
                  var Buro_Hauptlicht_dimmen = 'knx.0.Obergeschoss.Beleuchtung.DA2_A_Buro_Licht_absolut_dimmen';
                  var Buro_Hauptlicht_Dimmwert = {knx.0.Obergeschoss.Status.DA2_A_Buro_Dimmwert};
              
              ///////////////////////////////////////////////////////////////////////////////////////
              // Büro - Statusanzeige
              ///////////////////////////////////////////////////////////////////////////////////////
                          if (Buro_Hauptlicht_Dimmwert == 0) {
                              document.getElementById("Buro_Hauptlicht_0").className += ":--primary:active";
                              document.getElementById("Buro_Hauptlicht_0").style.backgroundColor = "#04AA6D";
                          } else {
                              // Dies wird für alle anderen Dimmwerte ausgeführt
                              document.getElementById("Buro_Hauptlicht_0").className += ":--primary:active";
                              document.getElementById("Buro_Hauptlicht_0").style.backgroundColor = "#04AA6D";
                          }
                          if (Buro_Hauptlicht_Dimmwert == 25) {
                              document.getElementById("Buro_Hauptlicht_25").className += "--primary:active";
                          }
                          if (Buro_Hauptlicht_Dimmwert == 50) {
                              document.getElementById("Buro_Hauptlicht_50").className += "--primary:active";
                          }
                          if (Buro_Hauptlicht_Dimmwert == 75) {
                              document.getElementById("Buro_Hauptlicht_75").className += "--primary:active";
                          }
                          if (Buro_Hauptlicht_Dimmwert == 100) {
                              document.getElementById("Buro_Hauptlicht_100").className += "--primary:active";
                          }
              ///////////////////////////////////////////////////////////////////////////////////////
              // Büro - Licht schalten
              ///////////////////////////////////////////////////////////////////////////////////////
              function Buro_Hauptlicht_0(){
              	vis.setValue(Buro_Hauptlicht_dimmen,0);
              }
              function Buro_Hauptlicht_25(){
              	vis.setValue(Buro_Hauptlicht_dimmen,25);
              }
              function Buro_Hauptlicht_50(){
              	vis.setValue(Buro_Hauptlicht_dimmen,50);
              }
              function Buro_Hauptlicht_75(){
              	vis.setValue(Buro_Hauptlicht_dimmen,75);
              }
              function Buro_Hauptlicht_100(){
              	vis.setValue(Buro_Hauptlicht_dimmen,100);
              }
              /////////////////////////////////////////////////////////////////////////////////////////
              /////////////////////////////////////////////////////////////////////////////////////////
              </script>
              </head>
              <body>
              <!-- Add icon library -->
              <div class="icon-bar">
                  <a href="#01_Home" onclick="deleteSession()"><img class="navicon" src="icon/home.png"></a>
                  <a class="active" href="#02_Haus" onclick="deleteSession()"><img class="navicon" src="icon/haus.png"></a>
              <!--  <a class="active" href="#02_Haus"><img class="navicon" src="icon/haus.png"></a> -->
                  <a href="#03_Statistik" onclick="deleteSession()"><img class="navicon" src="icon/statistik.png"></a>
                  <a href="#04_Technik" onclick="deleteSession()"><img class="navicon" src="icon/technik.png"></a>
              </div>
              <!--/////////////////////////////////////////////////////////////////////////-->
                  <div class="col">
                      <div class="tabs">
              <!--////////////////////////////////////////////////////////////////////////////
              Büro
              /////////////////////////////////////////////////////////////////////////////-->
                          <div class="tab">
                              <input type="radio" class="accordion" id="rd1" name="rd">
                              <label class="tab-label-kleiner" for="rd1">{javascript.0.Burotext}</label>
                              <div class="tab-content">
                                  <table id="tab_haus">
                                      <tr>
                                          <td colspan=2><b>Hauptbeleuchtung</b><br>
                                              <div class="button-group">
                                                  <button  id="Buro_Hauptlicht_0" type="checkbox" class="button button__outline" onClick="Buro_Hauptlicht_0(this.value)">
                                                    AUS
                                                  </button>
                                                  <button id="Buro_Hauptlicht_25" type="checkbox" class="button button__outline" onClick="Buro_Hauptlicht_25(this.value)">
                                                    25%
                                                  </button>
                                                  <button id="Buro_Hauptlicht_50" type="checkbox" class="button button__outline" onClick="Buro_Hauptlicht_50(this.value)">
                                                    50%
                                                  </button>
                                                   <button id="Buro_Hauptlicht_75" type="checkbox" class="button button__outline" onClick="Buro_Hauptlicht_75(this.value)">
                                                    75%
                                                  </button>
                                                   <button id="Buro_Hauptlicht_100" type="checkbox" class="button button__outline" onClick="Buro_Hauptlicht_100(this.value)">
                                                    EIN
                                                  </button>
                                              </div>
                                          </td>
                                      </tr>
                                  </table>
                              </div>
                          </div>
              

              Ansonsten hab ich noch ein Script drin, welches dafür sorgt, dass mir beim Reload die Akkordions nicht zuklappen.

                          // Löschen bei Seitenwechsel
                              function deleteSession(){
                                  sessionStorage.clear();
                                  console.log("Haus: Wird gelöscht bei Seitenwechsel!");
                              }
                          // Checkbox bei Reload aktivieren
                              if (sessionStorage.length == 1) {
                                  document.getElementById(sessionStorage.key(0)).checked = true;
                              }
                          // Speichern der einzelnen Accordion-Checkboxes
                              function active1(){
                                  sessionStorage.clear();
              	                var checkbox = document.getElementById("rd1");
                                  sessionStorage.setItem("rd1", checkbox.checked = true);
                                  }
              
              OliverIO 1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @nvd126 last edited by OliverIO

                @nvd126
                Gibt es Fehlermeldungen?
                Die kann man in der browserkonsole mit f12 finden
                Den head Tag entfernen und Body Tag entfernen.
                Das html widget befindet sich schon innerhalb des Body Tags der Seite
                Dann könnte es mit getElementById Schwierigkeiten geben könnte, da ja der komplette Text nach Abarbeitung von vis erst in das dom eingefügt wird und dann diese html Elemente evtl noch nicht existieren. Aber das wirst du dann in den Fehlermeldungen in der browserkonsole sehen.

                Ein paar Dinge könnte man noch optimieren

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

                  @nvd126 sagte in VIS2: Invalid pattern on subscribe - VIS1 läuft problemlos:

                  hier eine verkürzte lösung mit 2 html widgets

                  widget1

                  <style>
                      .base {
                          background-color:red;
                      }
                      .base.on {
                          background-color:green;
                      }
                  </style>
                  <table>
                      <tr>
                          <td>
                              <button class="wert00 base" onclick="vis.setValue('0_userdata.0.test',0)">AUS</button>
                          </td>
                          <td>
                              <button class="wert25 base" onclick="vis.setValue('0_userdata.0.test',25)">25</button>
                          </td>
                          <td>
                              <button class="wert50 base" onclick="vis.setValue('0_userdata.0.test',50)">50</button>
                          </td>
                      </tr>
                  </table>
                  

                  html widget 2

                  
                  <script>
                      
                      let input = {0_userdata.0.test};
                      $(".base").removeClass("on");
                      switch(input){
                          case 0:
                              $(".wert00").addClass("on");
                              break;
                          case 25:
                              $(".wert25").addClass("on");
                              break;
                          case 50:
                              $(".wert50").addClass("on");
                              break;
                      }
                  </script>
                  

                  aufgeteilt habe ich layout und script aus dem geschriebenen gründen, da sonst bei änderung des datenpunkts alle dom elemente im widget zerstört werden und neu aufgebaut werden.
                  so wird immer nur das script widget neu aufgebaut und das layout widget bleibt erhalten.
                  ausserdem hab ich jquery befehle verwendet, da das mit vis ebenfall geladen wird und ein paar dinge vereinfacht

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  652
                  Online

                  31.7k
                  Users

                  79.8k
                  Topics

                  1.3m
                  Posts

                  2
                  7
                  504
                  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