Pittini/iobroker-Batterienauswertung

Fehler im Log...

MichaelSchaaf999 opened this issue · 28 comments

...die ich mir natürlich nicht erklären kann, sonst würde ich nicht fragen:

javascript.0 2021-03-23 08:23:02.354 error (21433) at processTicksAndRejections (internal/process/task_queues.js:97:5)
javascript.0 2021-03-23 08:23:02.354 error (21433) at runMicrotasks ()
javascript.0 2021-03-23 08:23:02.354 error (21433) at /opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49
javascript.0 2021-03-23 08:23:02.354 error (21433) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
javascript.0 2021-03-23 08:23:02.353 error (21433) at /opt/iobroker/node_modules/iobroker.objects-redis/index.js:1:93703
javascript.0 2021-03-23 08:23:02.353 error (21433) at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2870:21
javascript.0 2021-03-23 08:23:02.353 error (21433) at /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1971:38
javascript.0 2021-03-23 08:23:02.352 error (21433) at Object. (script.js.common.BattUeberwachung01:121:13)
javascript.0 2021-03-23 08:23:02.352 error (21433) at main (script.js.common.BattUeberwachung01:248:5)
javascript.0 2021-03-23 08:23:02.352 error (21433) at CheckNextLowBatt (script.js.common.BattUeberwachung01:382:94)
javascript.0 2021-03-23 08:23:02.351 error (21433) Error in callback: TypeError: Cannot read property 'toFixed' of undefined

Ist sicher mein Fehler: Aber wie entnehme ich das dem Log hier, was falsch ist?

LG
Michael

Irgendwo ist ein leeres Feld was nicht leer sein dürfte. Um das genauer zu bestimmen, bitte logging im Skript aktivieren und mir ein komplettes startlog posten.

okay, aber schon beim Speichern kommen diese Zeilen:

10:06:06.195 info javascript.0 (21433) script.js.common.BattUeberwachung01: registered 0 subscriptions and 0 schedules
10:06:06.202 error javascript.0 (21433) at CheckNextLowBatt (script.js.common.BattUeberwachung01:382:94)
10:06:06.203 error javascript.0 (21433) at main (script.js.common.BattUeberwachung01:248:5)
10:06:06.203 error javascript.0 (21433) at Object. (script.js.common.BattUeberwachung01:121:13)

Wie finde ich ggfls diese Zeilen?

Logging wäre diese Zeile:
11 const logging = false; //Logging aktivieren?
Wohin schreibt er dann bitte das Logfile?

Ja, wäre diese Zeile. Das Log erscheint da wo es jetzt auch ist, kommt halt nur mehr.
Ach ja, zeig mal bitte auch Deine Einstellungen im Skript.

Skript:
//Grund Einstellungen
const praefix = "javascript.0.BatterieUeberwachung01."; //Grundpfad für Script DPs
const logging = false; //Logging aktivieren?
const FunktionBaseName = "BatterieSpannung_"; //Name der Funktion welche für die Batterieüberwachung genutzt wird
const DeadFunktionName = "DeadCheck"; //Name der Funktion welche für die Batterieüberwachung genutzt wird
const UseTelegram = true; // Sollen Nachrichten via Telegram gesendet werden?
const UseMail = false; // Sollen Nachrichten via Mail gesendet werden?
const UseAlexa = false; // Sollen Nachrichten via Alexa ausgegeben werden?
const AlexaId = ""; // Die Alexa Seriennummer
const UseSay = false; // Sollen Nachrichten via Say ausgegeben werden? Funktion des Authors, sollte bei Anwendern auf false gesetzt werden.
const UseEventLog = false; // Sollen Nachrichten ins Eventlog geschreiben werden? Funktion des Authors, sollte bei Anwendern auf false gesetzt werden.
const UsePopUp = false // Soll PopUp angezeigt werden? Funktion des Authors, sollte bei Anwendern auf false gesetzt werden.
const ProzMeansLive = true; //Zeigen Prozentwerte des Gerätedatenpunktes Batteriekapazität oder restliche Lebensdauer?
let DeadIsAfter = 360; // In Minuten - Zeit nach der ein Gerät als "tot" gewertet wird wenn keine Statusänderung (ts) erfolgte.
const NotifyDeadDevices = true; //Sollen auch "tote" Geräte gemeldet werden?
const DeconzNameFromDP = false; //Nimmt für Deconz den Namen aus dem Datenpunkt statt aus dem übergeordnetem Channel

Log miot Logging=true:

javascript.0 2021-03-23 14:37:26.053 info (4084) script.js.Benachrichtigungen.A: registered 1 subscription and 0 schedules
javascript.0 2021-03-23 14:37:26.052 info (4084) script.js.Benachrichtigungen.A: subscribe: {"pattern":{"id":"deconz.0.Lights.8.on","change":"ne","q":0},"name":"script.js.Benachrichtigungen.A"}
javascript.0 2021-03-23 14:37:26.024 info (4084) Start javascript script.js.Benachrichtigungen.A
javascript.0 2021-03-23 14:37:19.741 info (4084) Stop script script.js.common.BattUeberwachung01

Schaust Du Dir eigentlich auch an was Du hier postest? Was soll ich mit Logs ohne Inhalt? Die wichtige Spalte fehlt.

ja, Mist, sehe es: Wusste nur nicht, wie ich richtig rauskopiere...

javascript.0 | 2021-03-23 14:40:45.191 | error | (4084) at processTicksAndRejections (internal/process/task_queues.js:97:5)
javascript.0 | 2021-03-23 14:40:45.191 | error | (4084) at runMicrotasks ()
javascript.0 | 2021-03-23 14:40:45.191 | error | (4084) at /opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49
javascript.0 | 2021-03-23 14:40:45.191 | error | (4084) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
javascript.0 | 2021-03-23 14:40:45.190 | error | (4084) at /opt/iobroker/node_modules/iobroker.objects-redis/index.js:1:93703
javascript.0 | 2021-03-23 14:40:45.190 | error | (4084) at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2870:21
javascript.0 | 2021-03-23 14:40:45.190 | error | (4084) at /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1976:38
javascript.0 | 2021-03-23 14:40:45.190 | error | (4084) at Object. (script.js.common.BattUeberwachung01:121:13)
javascript.0 | 2021-03-23 14:40:45.189 | error | (4084) at main (script.js.common.BattUeberwachung01:248:5)
javascript.0 | 2021-03-23 14:40:45.189 | error | (4084) at CheckNextLowBatt (script.js.common.BattUeberwachung01:382:94)
javascript.0 | 2021-03-23 14:40:45.188 | error | (4084) Error in callback: TypeError: Cannot read property 'toFixed' of undefined

Beim Save des JS:

18:45:43.417 error javascript.0 (4084) at CheckNextLowBatt (script.js.common.BattUeberwachung01:382:94)
18:45:43.417 error javascript.0 (4084) at main (script.js.common.BattUeberwachung01:248:5)
18:45:43.417 error javascript.0 (4084) at Object. (script.js.common.BattUeberwachung01:121:13)

Und ich hab immer noch kein startlog. Das is lang und fängt an mit:

18:55:16.715 | info | javascript.0 (1314) Start javascript script.js.common.BatterieUeberwachung
-- | -- | --
18:55:16.725 | info | javascript.0 (1314) script.js.common.BatterieUeberwachung: starting Batterieüberwachung V.1.7.3
18:55:16.726 | info | javascript.0 (1314) script.js.common.BatterieUeberwachung: Reaching FillWelcheFunktionVerwenden
18:55:16.726 | info | javascript.0 (1314) script.js.common.BatterieUeberwachung: Found Function BatterieSpannung_30
18:55:16.726 | info | javascript.0 (1314) script.js.common.BatterieUeberwachung: Found Function BatterieSpannung_72
18:55:16.726 | info | javascript.0 (1314) script.js.common.BatterieUeberwachung: InitialSpannung 0 gesetzt auf 80%= 2.4
18:55:16.726 | info | javascript.0 (1314) script.js.common.BatterieUeberwachung: InitialSpannung 1 gesetzt auf 80%= 5.760000000000001
18:55:16.727 | info | javascript.0 (1314) script.js.common.BatterieUeberwachung: registered 1 subscription and 0 schedules
18:55:16.771 | info | javascript.0 (1314) script.js.common.BatterieUeberwachung: CreateStates fertig!
18:55:16.772 | info | javascript.0 (1314) script.js.common.BatterieUeberwachung: Reaching main()
18:55:16.772 | info | javascript.0 (1314) script.js.common.BatterieUeberwachung: Reaching init()
18:55:16.772 | info | javascript.0 (1314) script.js.common.BatterieUeberwachung: BattMinLimit Value conversion - success
18:55:16.772 | info | javascript.0 (1314) script.js.common.BatterieUeberwachung: existsState(Sensor[counter])=true typeof (getState(Sensor[counter]).val)=number getState(Sensor[counter]).val=2.9

Startlog? Dies...

web.0 2021-03-23 19:44:17.927 info (1770) ==>Connected system.user.admin from ::ffff:192.168.178.152
web.0 2021-03-23 19:44:16.953 info (1770) <==Disconnect system.user.admin from ::ffff:192.168.178.152 vis.0
web.0 2021-03-23 19:44:12.049 info (1770) ==>Connected system.user.admin from ::ffff:192.168.178.108
host.raspberrypi 2021-03-23 19:44:06.102 info instance system.adapter.mobile-alerts.0 terminated with code 0 (NO_ERROR)
web.0 2021-03-23 19:43:13.867 info (1770) <==Disconnect system.user.admin from ::ffff:192.168.178.108 vis.0
host.raspberrypi 2021-03-23 19:42:00.048 info instance system.adapter.mobile-alerts.0 started with pid 16587
web.0 2021-03-23 19:41:52.162 info (1770) ==>Connected system.user.admin from ::ffff:192.168.178.108
web.0 2021-03-23 19:41:52.162 info (1770) ==>Connected system.user.admin from ::ffff:192.168.178.108
web.0 2021-03-23 19:41:52.160 info (1770) ==>Connected system.user.admin from ::ffff:192.168.178.108
web.0 2021-03-23 19:41:42.073 info (1770) <==Disconnect system.user.admin from ::ffff:192.168.178.108 vis.0
web.0 2021-03-23 19:41:42.063 info (1770) <==Disconnect system.user.admin from ::ffff:192.168.178.108 vis.0
web.0 2021-03-23 19:41:42.060 info (1770) <==Disconnect system.user.admin from ::ffff:192.168.178.108 vis.0
web.0 2021-03-23 19:40:56.799 info (1770) ==>Connected system.user.admin from ::ffff:192.168.178.80
web.0 2021-03-23 19:40:55.624 info (1770) <==Disconnect system.user.admin from ::ffff:192.168.178.80 vis.0
web.0 2021-03-23 19:40:43.495 info (1770) ==>Connected system.user.admin from ::ffff:192.168.178.108
web.0 2021-03-23 19:40:33.425 info (1770) <==Disconnect system.user.admin from ::ffff:192.168.178.108 vis.0
host.raspberrypi 2021-03-23 19:40:08.393 info instance system.adapter.dwd.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
dwd.0 2021-03-23 19:40:07.840 info (16504) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
dwd.0 2021-03-23 19:40:02.114 info (16504) starting. Version 2.7.5 in /opt/iobroker/node_modules/iobroker.dwd, node: v12.20.0, js-controller: 3.1.6
host.raspberrypi 2021-03-23 19:40:00.077 info instance system.adapter.dwd.0 started with pid 16504
web.0 2021-03-23 19:38:17.608 info (1770) ==>Connected system.user.admin from ::ffff:192.168.178.152
web.0 2021-03-23 19:38:16.865 info (1770) <==Disconnect system.user.admin from ::ffff:192.168.178.152 vis.0
web.0 2021-03-23 19:36:02.928 info (1770) ==>Connected system.user.admin from ::ffff:192.168.178.108
web.0 2021-03-23 19:36:02.172 info (1770) <==Disconnect system.user.admin from ::ffff:192.168.178.108 vis.0
host.raspberrypi 2021-03-23 19:35:45.828 info instance system.adapter.mobile-alerts.0 terminated with code 0 (NO_ERROR)
host.raspberrypi 2021-03-23 19:35:00.087 info instance system.adapter.mobile-alerts.0 started with pid 16317
web.0 2021-03-23 19:34:56.469 info (1770) ==>Connected system.user.admin from ::ffff:192.168.178.80
web.0 2021-03-23 19:34:55.501 info (1770) <==Disconnect system.user.admin from ::ffff:192.168.178.80 vis.0
web.0 2021-03-23 19:32:20.150 info (1770) <==Disconnect system.user.admin from ::ffff:192.168.178.108 vis.0
web.0 2021-03-23 19:32:17.595 info (1770) ==>Connected system.user.admin from ::ffff:192.168.178.152
web.0 2021-03-23 19:32:16.756 info (1770) <==Disconnect system.user.admin from ::ffff:192.168.178.152 vis.0
javascript.0 2021-03-23 19:32:07.941 error (4084) at processTicksAndRejections (internal/process/task_queues.js:97:5)
javascript.0 2021-03-23 19:32:07.941 error (4084) at runMicrotasks ()
javascript.0 2021-03-23 19:32:07.941 error (4084) at /opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49
javascript.0 2021-03-23 19:32:07.940 error (4084) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
javascript.0 2021-03-23 19:32:07.939 error (4084) at /opt/iobroker/node_modules/iobroker.objects-redis/index.js:1:93703
javascript.0 2021-03-23 19:32:07.939 error (4084) at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2870:21
javascript.0 2021-03-23 19:32:07.938 error (4084) at /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1976:38
javascript.0 2021-03-23 19:32:07.937 error (4084) at Object. (script.js.common.BattUeberwachung01:121:13)
javascript.0 2021-03-23 19:32:07.937 error (4084) at main (script.js.common.BattUeberwachung01:248:5)
javascript.0 2021-03-23 19:32:07.936 error (4084) at CheckNextLowBatt (script.js.common.BattUeberwachung01:382:94)
javascript.0 2021-03-23 19:32:07.935 error (4084) Error in callback: TypeError: Cannot read property 'toFixed' of undefined
javascript.0 2021-03-23 19:32:07.932 info (4084) script.js.common.BattUeberwachung01: Reaching CheckNextLowBatt()
javascript.0 2021-03-23 19:32:07.931 info (4084) script.js.common.BattUeberwachung01: Alle Batterien ok, Lastmessage gelöscht
javascript.0 2021-03-23 19:32:07.930 info (4084) script.js.common.BattUeberwachung01: Reaching CheckAllBatterysOk - Lastmessage=
javascript.0 2021-03-23 19:32:07.929 info (4084) script.js.common.BattUeberwachung01: Reaching CheckAllBatterys() found 0 Devices
javascript.0 2021-03-23 19:32:07.929 info (4084) script.js.common.BattUeberwachung01: Reaching CheckDeadBatt()
javascript.0 2021-03-23 19:32:07.928 info (4084) script.js.common.BattUeberwachung01: Reaching init()
javascript.0 2021-03-23 19:32:07.927 info (4084) script.js.common.BattUeberwachung01: Reaching main()
javascript.0 2021-03-23 19:32:07.927 info (4084) script.js.common.BattUeberwachung01: CreateStates fertig!
javascript.0 2021-03-23 19:32:07.921 info (4084) script.js.common.BattUeberwachung01: registered 0 subscriptions and 0 schedules
javascript.0 2021-03-23 19:32:07.920 info (4084) script.js.common.BattUeberwachung01: Reaching FillWelcheFunktionVerwenden
javascript.0 2021-03-23 19:32:07.919 info (4084) script.js.common.BattUeberwachung01: starting Batterieüberwachung V.1.7.0
javascript.0 2021-03-23 19:32:07.890 info (4084) Start javascript script.js.common.BattUeberwachung01

Zeig mir mal nen Screenshot von der Objektliste wie und wo Du die Funktion eingetragen hast und die Raumzuordung dazu. Laut Log hast Du weder eine Funktion definiert, noch gesetzt.

Mit Funktion eingetragen meinst Du diese Stelle?

grafik

Und mit Raumzuordnung meinst Du diese Stelle?

grafik

Sorry für meine unbeholfene Art, aber ich bin nicht so der JS Entwickler.

Sorry für meine unbeholfene Art, aber ich bin nicht so der JS Entwickler.

Musst Du auch nicht sein, es würde genügen sich an die Anleitung zu halten. Was soll die Funktion "checkbattery" sein? Wo ist die Funktion mit der Batteriespannung deklariert? Warum zeigst Du mir die Deklarationen, aber nicht die Zuordnung derselben in der Objektliste wie erbeten?
Sorry, was die Objektliste ist, wie man ein Log postet, etc. sollte man schon wissen, sonst wirds echt zäh.

// was die Objektliste ist,
ja, bestätigt, weiß ich

// wie man ein Log postet
weiß ich nicht so genau: Und dass da die wichtigste Spalte fehlte, hab ich in der Eile übersehen. Ich dachte "markieren und dann mit copy und paste einfügen" würde reichen. Mein Fehler.

// Wo ist die Funktion mit der Batteriespannung deklariert?
Mit Funktionen steh ich - noch - auf Kriegsfuß: Wo muss sie denn deklariert werden bitte?

// nicht die Zuordnung derselben in der Objektliste wie erbeten
Dann meinst Du dieses?
grafik
Sorry, dass ich so konfus bin.

Was muss denn da in die Columns Raum und Funktion eingetragen werden?
Wenn ich EIN Beispiel mal richtig habe, dann kann ich das ja verstehen und dann auch auf andere Objekte übertragen.

Sorry, ich mach jetzt hier dicht. Es steht alles ganz genau in der Anleitung, inkl. Screenshots. Lies die Anleitung. Dann lies die Anleitung nochmal. Dann mach was drinsteht. Klappts dann immer noch nicht, kannste Dich gern nochmal melden.

Schwere Geburt.
Deine Anleitung ist schon nicht schlecht, aber doch stellenweise noch verbesserungsfähig. Wenn Du magst, schreib ich Dir mal eine, die nix auslässt.

Nun bin ich seeeehr viel weiter, es ergeben sich nur noch wenige Fragen:

grafik

zu 1: Warum steht da "null"?
zu 2: Das ist quasi der "Header" der ID. Hinter "...Sensors" kommt ja noch bspw "10" und "SmokeSensor02".
Wie kann man das bitte in der Tabelle zeigen? Siehe auch "zu 3:".
zu 3: Diese Column heisst "Sensor Name", sagt aber leider nur "information" - dieser Begriff steht so gar
nicht in der Objektliste. Was kann man tun? Muss ich die Spalten breiter machen - IN Deinem Script?
Feintuning, ich weiß.
zu 4: Wenn man Sensor Name hätte, dann könnte man auch schauen, welches Objekt keinem Raum zugewiesen ist.
zu 5: Ich habe gar keine Eigenschaften betreffend Spannung bzw "Volt". Habe da meine "value.battery" der Funktion
"BatterieSpannung_30" zugewiesen, bei mir ist das aber "%". So stehen meine "87%" bei (7) in diesem Objekt in
Deiner Spalte "% live". Schön, Frage nur: Rechnest Du das mehr oder weniger automatisch um?
Ja, Deine Umrechnungserläuterungen in der Anleitung habe ich gelesen.
Da ich aber meinen Datenpunkt mit den 87% der Funktion "BatterieSpannung_30" zugewiesen habe, grübele
ich gerade, wie Du damit umgehen kannst.

  1. Weil Du evtl. den Skriptpfad geändert, das Vis aber nicht dementsprechend angepasst hast?
  2. Skript Zeile 22
  3. siehe .2
  4. siehe .2
  5. Das Skript erkennt % anhand der Unit % und geht von lowbat aus wenn boolsche Werte (true/false) kommen. Alles andere wird als Spannung gewertet, somit sind alle Varianten abgedeckt. Und ja, es wird dann entsprechend rückwärts gerechnet bei % und bei lowbat wird nur zwischen 0 und 100% unterschieden.

Zu 1: Nicht den Pfad nicht angepasst, war einfach ein "falscher" Datenpunkt
Zu 2: Danke: Ich nehme mal an, Du meintest Skript Zeile "24":
"24 const DeconzNameFromDP = true; //Nimmt für Deconz den Namen aus dem Datenpunkt statt aus dem
übergeordnetem Channel" - hab ich jetzt auf "true" gesetzt.
Zu 3: Wie kann ich Spalten breiter machen? Da finde ich nirgends eine Info.
Zu 4: Erl.
Zu 5: Danke!

grafik

Wie oft läuft das Script? Oder ist das Event-getriggert? Auf die Batterie-Spannungen oder %e beispielsweise?

  1. Die Spalten sollten sich autom. anpassen sobald Du das ganze Widget verbreiterst.

Das Skript läuft Eventgetriggert was die Batts angeht. DeadCheck läuft minütlich.

Danke sehr!
Ja, sobald man das Widget verbreitert, werden auch die Spalten breiter. Ungewöhnlich, finde ich: Automatische Spaltenbreiten, die sich nicht am Inhalt orientieren oder keine Möglichkeit der Spaltenbreiten-Definition - aber gut so.

Bei "DeadCheck" hab ich leider noch nicht verstanden, Du schreibst "hiermit könnt Ihr EINEN anderen Datenpunkt innerhalb der gleichen Channelroot zur Ausfallüberwachung hinzufügen" - was verstehst Du hier bitte unter "gleiche Channelroot"? Ich HABE die Meldung, dass mein SmartSwitch02 "dead" sein soll, der erfreut sich aber bester Gesundheit.

grafik

Bei den meisten Geräten wird der Batteriedatenpunkt alle x Stunden mal aktualisiert, somit kann man daraus ableiten ob das Gerät lebt oder nicht. Einige, speziell HM Geräte, aktualisieren den Batt DP aber so selten dass das Skript annimmt sie wären tot. Deswegen gibts den 2ten "DeadCheck", damit kannst Du einen anderen Datenpunkt des Geräts für den DeadCheck bestimmen, z.B. Buttonpressed, dann wird da nochmal geguggt ob der auch nicht aktualisiert wurde und erst dann "tot" gemeldet.

Danke für die Erläuterung zum 2ten DeadCheck.
Aber: Bei "DeadCheck" hab ich leider noch ein Gedankenproblem mit "hiermit könnt Ihr EINEN anderen Datenpunkt innerhalb der gleichen Channelroot zur Ausfallüberwachung hinzufügen" - was verstehst Du hier bitte unter "gleiche Channelroot"?
Und: Wenn ich hier den indicator.reachable mit der Funktion DeadCheck belege wie im Bild, ist das erstmal richtig? Und dann müsste ich für den 2ten DeadCheck bspw den Punkt sensor.motion mit DeadCheck belegen (ist ein Bewegungsmelder)? Welchen Punkt nimmt denn dann die Funktion als ersten und welchen als zweiten?

grafik

Also ich habe das so verstanden:
"gleiche Channelroot" -> In deinem Beispiel sind alle Objekt im Ordner 6 innerhalb einer Channelroot. Heißt du kannst die Deadcheck funktion z. B. auf reachable legen, wie du es auch gemacht hast. Einfach ein Datenpunkt auswählen, das öfters mal aktualisiert wird. Wenn du mit der Maus über den Wert ganz rechts fährst siehst du ja, wann der Punkt das letzte mal aktualisiert wurde. Bei meinen HomeMatic Geräten gibt es z. B. Datenpunkte innerhalb eines Gerätes, die seit Monaten nicht aktualisiert wurden. Die eignen sich natürlich nicht für den DeadCheck.

Du brauchst den DeadCheck nicht 2x belegen, 1x wie in deinem Beispiel reicht aus. Die Funktion BatterieSpannung_30 prüft ja und als 2. Prüfung hast du die Funktion DeadDeck beim Datenpunkt reachable.

Zusammenfassung: Nimm für den DeadDeck einen Datenpunkt, der möglichst aktuell ist und auch aktuell gehalten wird.

Danke, dann sollte soweit alles gut sein - exzellenter Service!
Zwei Fragen noch: Gibt es eine Variable oder einen Datenpunkt, die oder den ich mit anzeigen könnte, um zu sehen, wann das Script zuletzt gearbeitet hat? Oder müsste ich die oder den selber einbauen?
Und: "Bei meinen HomeMatic Geräten gibt es z. B. Datenpunkte innerhalb eines Gerätes, die seit Monaten nicht aktualisiert wurden" - verstanden, mein SmartSwitch02 sieht so aus:
grafik
Batterie ist okay, aber dies Gerät fällt unter "He's dead, Jim": Letzte Aktualisierung (und somit Benutzung dieses Switch" war 2021-03-27T20:51:08.542Z. Also gestern Abend.
Welche Zeitspanne nimmst Du, um Geräte im DeadCheck durchfallen zu lassen? Dieser Switch ist dann für den DeadCheck wohl eher ungeeignet, richtig?
grafik

Danke, dann sollte soweit alles gut sein - exzellenter Service!
Zwei Fragen noch: Gibt es eine Variable oder einen Datenpunkt, die oder den ich mit anzeigen könnte, um zu sehen, wann das Script zuletzt gearbeitet hat? Oder müsste ich die oder den selber einbauen?
Und: "Bei meinen HomeMatic Geräten gibt es z. B. Datenpunkte innerhalb eines Gerätes, die seit Monaten nicht aktualisiert wurden" - verstanden, mein SmartSwitch02 sieht so aus:
grafik
Batterie ist okay, aber dies Gerät fällt unter "He's dead, Jim": Letzte Aktualisierung (und somit Benutzung dieses Switch" war 2021-03-27T20:51:08.542Z. Also gestern Abend.
Welche Zeitspanne nimmst Du, um Geräte im DeadCheck durchfallen zu lassen? Dieser Switch ist dann für den DeadCheck wohl eher ungeeignet, richtig?
grafik

Danke :) Schau mal auf die Datenounkt Javascript->BatterieUeberwachung->AllBatterysOk der ist bei mir immer recht aktuell. Wäre doch ein guter Indikator die Aktualisierung von diesem zu nehmen.

Ich habe die Zeitspanne vom Deadcheck hoch gesetzt, der Standard war mir "zu knapp". Im Script, Zeile 20 (angegeben in Minuten, in meinem Fall 2 Tage):
let DeadIsAfter = 2880;

ICH habe zu danken.
Datenpunkt AllBatterysOk: Das ist aber ein State, kein Datum...
grafik
Ich hab den dann aber jetzt mal auf DeadCheck gesetzt - so hattest Du das gemeint?

Zeitspanne vom DeadCheck hoch gesetzt: Da hab ich dann jetzt Deinen Wert von 2880 eingetragen.
Vielen Dank!

p.s.: Ist das so richtig? Zwei DeadChecks?
grafik
Der bislang als "He's dead, Jim" erkannte SmartSwitch02 lastupdated ist jetzt nicht mehr Dead.
grafik

Ok, du hast da jetzt was ganz falsch verstanden. Deine Frage war

Gibt es eine Variable oder einen Datenpunkt, die oder den ich mit anzeigen könnte, um zu sehen, wann das Script zuletzt gearbeitet hat? Oder müsste ich die oder den selber einbauen?

Darauf kam meine Antwort mit der Aktualisierung vom Datenpunkt AllBatterysOK als Indikator, wann das Script gelaufen ist. Ich weiß ja nicht, wofür du den Zeitpunkt brauchst. Aber da bitte nicht den DeadCheck drauf legen. Nur den DeadCheck benutzen, wie ich es oben geschrieben habe :)

Datenpunkt AllBatterysOk: Das ist aber ein State, kein Datum...

Fahr mal bei diesem Datenpunkt ganz rechts mit der Maus über den Wert, lass die Maus los und warte. Dann öffnet sich so ein kleines Fenster, da die anzeigt, wann der Datenpunkt geändert und aktualisiert wurde.

Bei dir ist doch soweit nun alles in Ordnung, es läuft alles, mach dir keinen Kopf :)

DeadCheck bei AllBatterysOK ist nun entfernt, danke für den Hinweis.

Aktualisierung, "Ich weiß ja nicht, wofür du den Zeitpunkt brauchst": Nun, so ein wenig bin ich ja Kontrollfreak.
Und wenn ich den Zeitpunkt mit anzeigen kann, dann hat man ja auch einen Hinweis darauf, ob das Script auch läuft und nicht vielleicht aus Versehen auch gestoppt und nicht wieder gestartet wurde.
grafik
Und dafür nehm ich dann den AllBatterysOK.