NEWS
Test Adapter mytime
-
Neue Version 1.4.2
- Das Problem bei der Berechnung der Zeitdifferenz zwischen Server und Client konnte behoben werden.
Wer das für sich genauer testen möchte, habe ich hier meine Testview mit zusätzlichen Informationen aufbereitet. Hier zum importieren
Es wird noch der Adapter timeandweather benötigt für das Uhrzeit widgetZusätzlich wird noch das folgende Blockly-Skript und der Datenpunkt 0_userdata.0.zeit vom Typ string benötigt, welches die Serverzeit als String sekündlich in den Datenpunkt schreibt
So sieht der view dann aus.
-
Hi,
gerade mal den Adapter installiert und versucht einen Countdown Timer anzulegen:
dabei koimmt dann das im log: (sorry, kann gerade nur aus dem Browser Fenster kopieren)
host.iobroker 2025-06-05 17:12:16.343 info Restart adapter system.adapter.mytime.0 because enabled host.iobroker 2025-06-05 17:12:16.343 error instance system.adapter.mytime.0 terminated with code 6 (UNCAUGHT_EXCEPTION) mytime.0 2025-06-05 17:12:15.642 warn Terminated (UNCAUGHT_EXCEPTION): Without reason mytime.0 2025-06-05 17:12:15.641 info terminating mytime.0 2025-06-05 17:12:15.641 info cleaned everything up... mytime.0 2025-06-05 17:12:15.638 error Cannot set properties of undefined (setting 'config') mytime.0 2025-06-05 17:12:15.637 error TypeError: Cannot set properties of undefined (setting 'config') at mytimeCountdown.setCountdownConfigMsg (/opt/iobroker/node_modules/iobroker.mytime/lib/mytimeCountdown.js:587:46) at mytimeCountdown.processMessages (/opt/iobroker/node_modules/iobroker.mytime/lib/mytimeCountdown.js:566:18) at mytimeclassNew.processMessages (/opt/iobroker/node_modules/iobroker.mytime/lib/mytimeserver.js:60:48) at Mytime.onMessage (/opt/iobroker/node_modules/iobroker.mytime/main.js:102:22) at Mytime.emit (node:events:524:28) at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/build/cjs/lib/adapter/adapter.js:7309:20) at Immediate.<anonymous> (file:///opt/iobroker/node_modules/@iobroker/db-states-redis/build/esm/lib/states/statesInRedisClient.js:286:37) at process.processImmediate (node:internal/timers:483:21) mytime.0 2025-06-05 17:12:15.635 error unhandled promise rejection: Cannot set properties of undefined (setting 'config') mytime.0 2025-06-05 17:12:15.635 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
Was mache ich denn falsch?
JS-Controller 7.0.7
Node v20.19.1
Admin v7.6.18
myTime 1.4.2Edit: debug log
mirko@iobroker:~$ tail -f /opt/iobroker/log/iobroker.current.log |grep mytime 2025-06-05 17:24:47.535 - debug: mytime.0 (90064) processMessages mytime 2025-06-05 17:24:47.535 - debug: mytime.0 (90064) processMessages countdown{"command":"setCountdownConfig","message":{"behavior":"timer","days":"0","hours":"0","minutes":"30","name":"30min","seconds":"0"},"from":"system.adapter.admin.0","callback":{"message":{"behavior":"timer","days":"0","hours":"0","minutes":"30","name":"30min","seconds":"0"},"id":491,"ack":false,"time":1749137087530},"_id":12576096} 2025-06-05 17:24:47.536 - debug: mytime.0 (90064) send setCountdownConfig 2025-06-05 17:24:47.536 - debug: mytime.0 (90064) setCountdownConfigMsg 2025-06-05 17:24:47.540 - error: mytime.0 (90064) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). 2025-06-05 17:24:47.540 - error: mytime.0 (90064) unhandled promise rejection: Cannot set properties of undefined (setting 'config') 2025-06-05 17:24:47.542 - error: mytime.0 (90064) TypeError: Cannot set properties of undefined (setting 'config') at mytimeCountdown.setCountdownConfigMsg (/opt/iobroker/node_modules/iobroker.mytime/lib/mytimeCountdown.js:587:46) at mytimeCountdown.processMessages (/opt/iobroker/node_modules/iobroker.mytime/lib/mytimeCountdown.js:566:18) at mytimeclassNew.processMessages (/opt/iobroker/node_modules/iobroker.mytime/lib/mytimeserver.js:60:48) at Mytime.onMessage (/opt/iobroker/node_modules/iobroker.mytime/main.js:102:22) 2025-06-05 17:24:47.543 - error: mytime.0 (90064) Cannot set properties of undefined (setting 'config') 2025-06-05 17:24:47.554 - debug: mytime.0 (90064) main onUnload try 2025-06-05 17:24:47.555 - debug: mytime.0 (90064) closeConnections 2025-06-05 17:24:47.555 - debug: mytime.0 (90064) deleteObservers 2025-06-05 17:24:47.555 - info: mytime.0 (90064) cleaned everything up... 2025-06-05 17:24:47.555 - info: mytime.0 (90064) terminating 2025-06-05 17:24:47.556 - warn: mytime.0 (90064) Terminated (UNCAUGHT_EXCEPTION): Without reason 2025-06-05 17:24:48.057 - info: mytime.0 (90064) terminating 2025-06-05 17:24:48.333 - error: host.iobroker instance system.adapter.mytime.0 terminated with code 6 (UNCAUGHT_EXCEPTION) 2025-06-05 17:24:48.333 - info: host.iobroker Restart adapter system.adapter.mytime.0 because enabled
-
Kannst du bitte den log level auf debug stellen und dann nochmal versuchen anzulegen. Da kommen ein paar mehr Zeilen mit um zu sehen wo das genau passiert ist.
-
@oliverio gerade meinen Beitrag vorher editiert.
Edit: Melde dich wenn du noch etwas benötigst! Danke für die schnelle Antwort!
Edit 2: Mit V1.4.0 sieht es genauso aus:
2025-06-05 17:31:06.188 - info: mytime.0 (90356) starting. Version 1.4.0 in /opt/iobroker/node_modules/iobroker.mytime, node: v20.19.1, js-controller: 7.0.7 2025-06-05 17:31:06.206 - debug: mytime.0 (90356) main onReady start 2025-06-05 17:31:06.207 - debug: mytime.0 (90356) main onReady open mytime 2025-06-05 17:31:06.207 - debug: mytime.0 (90356) mytime init 2025-06-05 17:31:06.208 - debug: mytime.0 (90356) setState connection: true 2025-06-05 17:31:06.210 - debug: mytime.0 (90356) mytimeCountdown init 2025-06-05 17:31:06.211 - debug: mytime.0 (90356) setCountdownInfo {} 2025-06-05 17:31:06.213 - debug: mytime.0 (90356) mytimeTimeserie init 2025-06-05 17:31:06.213 - debug: mytime.0 (90356) setTimeseriesInfo [] 2025-06-05 17:31:06.722 - debug: mytime.0 (90356) getStates * Countdowns 2025-06-05 17:31:06.724 - debug: mytime.0 (90356) getStates * Timeseries 2025-06-05 17:31:06.865 - debug: mytime.0 (90356) state mytime.0.info.connection changed: true (ack = true) 2025-06-05 17:31:31.087 - debug: mytime.0 (90356) processMessages mytime 2025-06-05 17:31:31.088 - debug: mytime.0 (90356) processMessages countdown{"command":"setCountdownConfig","message":{"behavior":"timer","days":"0","hours":"0","minutes":"30","name":"30min","seconds":"0"},"from":"system.adapter.admin.0","callback":{"message":{"behavior":"timer","days":"0","hours":"0","minutes":"30","name":"30min","seconds":"0"},"id":498,"ack":false,"time":1749137491062},"_id":12576105} 2025-06-05 17:31:31.088 - debug: mytime.0 (90356) send setCountdownConfig 2025-06-05 17:31:31.088 - debug: mytime.0 (90356) setCountdownConfigMsg 2025-06-05 17:31:31.090 - error: mytime.0 (90356) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). 2025-06-05 17:31:31.091 - error: mytime.0 (90356) unhandled promise rejection: Cannot set properties of undefined (setting 'config') 2025-06-05 17:31:31.094 - error: mytime.0 (90356) TypeError: Cannot set properties of undefined (setting 'config') at mytimeCountdown.setCountdownConfigMsg (/opt/iobroker/node_modules/iobroker.mytime/lib/mytimeCountdown.js:588:46) at mytimeCountdown.processMessages (/opt/iobroker/node_modules/iobroker.mytime/lib/mytimeCountdown.js:566:18) at mytimeclassNew.processMessages (/opt/iobroker/node_modules/iobroker.mytime/lib/mytimeserver.js:60:48) at Mytime.onMessage (/opt/iobroker/node_modules/iobroker.mytime/main.js:102:22) 2025-06-05 17:31:31.094 - error: mytime.0 (90356) Cannot set properties of undefined (setting 'config') 2025-06-05 17:31:31.108 - debug: mytime.0 (90356) main onUnload try 2025-06-05 17:31:31.109 - debug: mytime.0 (90356) closeConnections 2025-06-05 17:31:31.109 - debug: mytime.0 (90356) deleteObservers 2025-06-05 17:31:31.109 - info: mytime.0 (90356) cleaned everything up... 2025-06-05 17:31:31.110 - info: mytime.0 (90356) terminating 2025-06-05 17:31:31.112 - warn: mytime.0 (90356) Terminated (UNCAUGHT_EXCEPTION): Without reason 2025-06-05 17:31:31.614 - info: mytime.0 (90356) terminating 2025-06-05 17:31:31.936 - error: host.iobroker instance system.adapter.mytime.0 terminated with code 6 (UNCAUGHT_EXCEPTION) 2025-06-05 17:31:31.937 - info: host.iobroker Restart adapter system.adapter.mytime.0 because enabled 2025-06-05 17:31:31.937 - warn: host.iobroker Do not restart adapter system.adapter.mytime.0 because restart loop detected
-
@OliverIO : sag Bescheid wenn du ein Issue auf Github benötigst.
-
@OliverIO guten Morgen.
Hattest du schon Gelegenheit dir das log anzuschauen und vielleicht eine Idee was die Ursache sein kann?
Gibt es noch etwas das ich testen kann um den Adapter zum laufen zu bekommen falls es an meiner Installation liegt?
-
Eine Idee habe ich.
Wahrscheinlich hab ich irgendwas bei der Grund Initialisierung vergessen.
Muss das aber noch mal testen -
@oliverio OK. Wenn ich was Testen soll, geb Bescheid.
Danke für deinen Einsatz
-
ok, fehler ist identifiziert.
der neu hinzugekommene Knopf "setDP" dient eigentlich dazu, die Zeit eines bereits vorhandenen Countdown timers erneut oder gemäß Eingabe zu setzen.
Wenn du aber den Eintrag erst frisch hinzugefügt hast, dann existiert der Datenpunkt noch nicht und die Funktion geht schief.
Meine Vorstellung wäre, das dieser Knopf nur aktiv ist, wenn der Datenpunkt existiert und wenn tatsächlich was geändert wurde.
Das muss ich erst austüfteln, wie ich das im admin gestalten muss.Für dich reicht es einfach, den speichern Knopf unten zu drücken.
Dann ist der Countdown auch angelegt. -
@oliverio top.
Gleich mal testen wenn ich wieder am Rechner bin .
-
@oliverio sagte in Test Adapter mytime:
Neue Version 1.4.2
- Das Problem bei der Berechnung der Zeitdifferenz zwischen Server und Client konnte behoben werden.
Getestet und funktioniert, trotz Zeitversatz wird der Timer richtig beendet. Vielen Dank für die Anpassung!
-
Ich teste gerade mal die Widgets, mache ich bei dem "Circle" etwas falsch das sich der Sekunden Wert nicht ändert und auch der Kreis nicht?
Wie man am anderen Widget sieht läuft der Timer.
-
@wendy2702 welche version hast du?
wenn server uhr und client uhr nicht genau läuft, gab es bis v1.4.2 ein problem. also hier mal aus dem beta channel laden. -
Neue Version 1.4.3
Die Validator Regel für den SetDP Knopf in der Konfiguration wurde verbessert, so das der Knopf nur gedrückt werden kann, wenn der Datenpunkt bereits existiert.
-
@oliverio sagte in Test Adapter mytime:
@wendy2702 welche version hast du?
wenn server uhr und client uhr nicht genau läuft, gab es bis v1.4.2 ein problem. also hier mal aus dem beta channel laden.1.4.2
Ich teste nachher mit 1.4.3