ioBroker / ioBroker.vis-2

Next generation visualisation for ioBroker platform.
Other
28 stars 4 forks source link

[bug]: JS-Code in einem HTML-Widget in VIS2 nicht ausführbar #434

Open neverdream opened 4 months ago

neverdream commented 4 months ago

No existing issues.

Describe the bug

Hallo, hatte mein Glück schon im Forum versucht aber keine Antwort erhalten. Vorweg: Ich habe den gesamten HTML+JS-Code 1:1 aus meiner Visu aus VIS1 kopiert. VIS1 läuft aktuell parallel fehlerfrei. In VIS2 wird jedoch kein Script ausgeführt. Sei es als externe Datei, direkt im HTML-Widget im Head-Bereich, noch im Script-Reiter im VIS2-Editor. Es kommen massenweise Fehlermeldungen, VIS2-Editor hängt sich auf, VIS2-Runtime lädt ewig lange, Browser meldet "Der Tab reagiert nicht mehr".

########################################################################### Nachfolgend mal ein wenig JS-Code von mir - exakt das läuft in VIS1 (nachwievor) seit zwei Jahren fehlerfrei: Anfangs erfolgt die Definition.

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};

// 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);}

In der Browser-Console kommt die Meldung, dass die Funktion nicht gefunden werden kann bzw. nicht definiert ist. Hierzu gehört noch folgender Code: /////////////////////////////////////////////////////////////////////////////////////// // Küche - Hauptlicht - Statusanzeige /////////////////////////////////////////////////////////////////////////////////////// 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 == 25) { document.getElementById("Kuche_Hauptlicht_25").className += "--primary:active"; } 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"; }

###########################################################################

To Reproduce

Siehe oben.

Expected behavior

Es sollte in VIS2 exakt so funktionieren wie in VIS1.

Screenshots & Logfiles

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

######################################################## Nach genauerer Betrachtung habe ich noch das hier im Log entdecken können: 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. (/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. (/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. (/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. (/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. (/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. (/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)

Page or affected widget

No response

Adapter version

2.9.32

js-controller version

5.0.19

Node version

18.20.2

Operating system

Docker buanet

Additional context

No response

oweitman commented 3 months ago

für diese fehlerbeschreibung findest du die Lösung im folgenden Post. https://forum.iobroker.net/topic/74496/vis2-invalid-pattern-on-subscribe-vis1-l%C3%A4uft-problemlos/4?_=1718304101016 daher bitte schließen. Wenn Folgefehler, dann bitte Forum oder wenn evtl doch noch ein vis2-Fehler, dann wieder Issue hier.