NEWS
[Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe
-
Ich bekomme auch Fehlermeldungen beim Start des Scripts...
2023-11-06 22:19:29.619 error at processImmediate (node:internal/timers:476:21) 2023-11-06 22:19:29.619 error at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:492:42) 2023-11-06 22:19:29.618 error at Object.<anonymous> (script.js.common.000_System.020_Events.050_Batterie_Status:126:13) 2023-11-06 22:19:29.618 error at main (script.js.common.000_System.020_Events.050_Batterie_Status:265:5) 2023-11-06 22:19:29.618 error at CheckNextLowBatt (script.js.common.000_System.020_Events.050_Batterie_Status:395:91) 2023-11-06 22:19:29.617 error Error in callback: TypeError: Cannot read properties of undefined (reading 'value') 2023-11-06 22:19:28.947 info script.js.common.000_System.020_Events.050_Batterie_Status: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 2023-11-06 22:19:28.945 info script.js.common.000_System.020_Events.050_Batterie_Status: starting Batterieüberwachung V.1.8.5 2023-11-06 22:19:28.937 info Start javascript script.js.common.000_System.020_Events.050_Batterie_Status -
Moin,
ich habe beim durchscrollen des Threads kein ähnliches Problem gefunden. Ich habe das Skript entsprechend der Anleitung implementiert, allerdings sieht die Tabelle so aus:

Die SensorId ist unvollständig und die Sensornamen falsch.
Spannend ist auch, dass der Deadcheck 441 beträgt, obwohl ich diesen nur bei 21 Geräten eingetragen habe.

Hier mal ein Beispiel meiner Konfiguration:

wo liegt da der Fehler? Das Skript ist die aktuellste Version.
-
Generisches Script um die Batteriestände beliebig vieler Geräte, auch mit unterschiedlichen Spannungen und LowLimit, zu überwachen
Features
- Kann beliebig viele Geräte überwachen welche einen Datenpunkt mit der Batteriespannung, eine Prozentangabe oder zumindest Lowbat zur Verfügung stellen.
- Es können simultan Geräte mit unterschiedlichen Spannungen überwacht werden, z.B. 1,5V und 3V, auch Geräte welche nur LowBat true/false bereitstellen können berücksichtigt werden ebenso wie Prozentwerte in zwei Varianten.
- Möglichkeit eine Meldung/Ansage via Log/Mail/Alexa/Telegram bei unterschreiten einer einstellbaren Limitspannung auszugeben.
- permanente Anzeige des Gerätes mit der niedrigsten Spannung (außer Lowbat, da hier die Info nicht verfügbar ist).
- Kleines Set aus vordefinierten Standart Vis Widgets (Basic-String, Basic-Bool, Html) zur leichteren Integration, bzw. als Beispiel für eigene Vis Projekte.
- Einfache, dynamisch erstellte Html Übersichtstabelle mit einstellmöglichkeit welche Spalten angezeigt werden sollen
- Nach Installation keine Skriptänderungen mehr nötig um neue Geräte hinzuzufügen.
Genaueres beim Projekt auf Git

Ich möchte mich ganz Herzlich bei dir, für deine Arbeit und das zur Verfügung stellen, bedanken.
Das ist das erste mal, dass ich im Bereich iobroker Adapter/Skripte usw. etwas von jemanden übernommen habe, was so gut Dokumentiert ist.
Bis auf ein paar Kleinigkeiten hat alles perfekt und auf Anhieb geklappt. Ich habe es in VIS 2 eingebunden und auch da läuft alles wie es soll.
Ich bin von deiner Arbeit total begeistert.
Vielen Dank und VG
-
Ich möchte mich ganz Herzlich bei dir, für deine Arbeit und das zur Verfügung stellen, bedanken.
Das ist das erste mal, dass ich im Bereich iobroker Adapter/Skripte usw. etwas von jemanden übernommen habe, was so gut Dokumentiert ist.
Bis auf ein paar Kleinigkeiten hat alles perfekt und auf Anhieb geklappt. Ich habe es in VIS 2 eingebunden und auch da läuft alles wie es soll.
Ich bin von deiner Arbeit total begeistert.
Vielen Dank und VG
Tolle Arbeit. Ich komme leider nicht weiter.
Ich habe die Kategorien und Objektfunktionen nach Anleitung angelegt. Das Skript habe ich auch installiert und beim ersten Mal hat er auch genau 7 Geräte aufgeführt, wobei es deutlich mehr sein müssten.
Bei meinen weiteren Versuchen bleibt nun sowohl das "javascript.0.BatterieUeberwachung.OverviewTable" sowie auch "javascript.0.BatterieUeberwachung.JSONTable"
leer.
Gezählt werden 16 Geräte..
Beim Start des skripts kommen folgende Fehlermeldungen:javascript.0 17:31:26.408 error at GetName (script.js.common.BatterieUeberwachung:509:66) javascript.0 17:31:26.408 error at MakeTable (script.js.common.BatterieUeberwachung:602:59) javascript.0 17:31:26.409 error at main (script.js.common.BatterieUeberwachung:267:5) javascript.0 17:31:26.409 error at Object.<anonymous> (script.js.common.BatterieUeberwachung:127:13)Mit der Fehlermeldung komme ich leider nicht weiter, da ich da doch eher blutiger Anfänger bin.`

Was kann ich tun? -
Tolle Arbeit. Ich komme leider nicht weiter.
Ich habe die Kategorien und Objektfunktionen nach Anleitung angelegt. Das Skript habe ich auch installiert und beim ersten Mal hat er auch genau 7 Geräte aufgeführt, wobei es deutlich mehr sein müssten.
Bei meinen weiteren Versuchen bleibt nun sowohl das "javascript.0.BatterieUeberwachung.OverviewTable" sowie auch "javascript.0.BatterieUeberwachung.JSONTable"
leer.
Gezählt werden 16 Geräte..
Beim Start des skripts kommen folgende Fehlermeldungen:javascript.0 17:31:26.408 error at GetName (script.js.common.BatterieUeberwachung:509:66) javascript.0 17:31:26.408 error at MakeTable (script.js.common.BatterieUeberwachung:602:59) javascript.0 17:31:26.409 error at main (script.js.common.BatterieUeberwachung:267:5) javascript.0 17:31:26.409 error at Object.<anonymous> (script.js.common.BatterieUeberwachung:127:13)Mit der Fehlermeldung komme ich leider nicht weiter, da ich da doch eher blutiger Anfänger bin.`

Was kann ich tun?@joestick007 Würde vermuten, dass die DPs falsch zugeordnet sind. Hab das Script nicht im Einsatz.

Der DP müsste.batteryenthalten
Bei Batteriespannung_50 sind mehrere Geräte ohnebatterydrin -
@joestick007 Würde vermuten, dass die DPs falsch zugeordnet sind. Hab das Script nicht im Einsatz.

Der DP müsste.batteryenthalten
Bei Batteriespannung_50 sind mehrere Geräte ohnebatterydrin@mcu Habe die betreffenden Geräte mal herausgenommen. Leider keine Änderung
-
@mcu Habe die betreffenden Geräte mal herausgenommen. Leider keine Änderung
@joestick007 Was steht denn bei Dir in den Zeilen
127
267
509
602 -
@joestick007 Was steht denn bei Dir in den Zeilen
127
267
509
602@mcu Die hatte ich mir auch schon angeschaut. Wurde aber leider nicht schlau draus:
127: };
267: MakeJSONTable(); //JSON Tabelle erzeugen
509_ if (typeof tempName == "object") tempName = tempName.de;
602: };``` -
@mcu Die hatte ich mir auch schon angeschaut. Wurde aber leider nicht schlau draus:
127: };
267: MakeJSONTable(); //JSON Tabelle erzeugen
509_ if (typeof tempName == "object") tempName = tempName.de;
602: };```@joestick007 Zur Ergänzung habe ich hier noch die Warnmeldungen vor den "errorMeldungen"```
avascript.0 07:24:46.023 warn at Init (script.js.common.BatterieUeberwachung:161:31) javascript.0 07:24:46.023 warn at main (script.js.common.BatterieUeberwachung:262:5) javascript.0 07:24:46.024 warn at Object.<anonymous> (script.js.common.BatterieUeberwachung:127:13) javascript.0 07:24:46.032 warn script.js.common.BatterieUeberwachung: Object "zigbee.0" does not exist -
@joestick007 Zur Ergänzung habe ich hier noch die Warnmeldungen vor den "errorMeldungen"```
avascript.0 07:24:46.023 warn at Init (script.js.common.BatterieUeberwachung:161:31) javascript.0 07:24:46.023 warn at main (script.js.common.BatterieUeberwachung:262:5) javascript.0 07:24:46.024 warn at Object.<anonymous> (script.js.common.BatterieUeberwachung:127:13) javascript.0 07:24:46.032 warn script.js.common.BatterieUeberwachung: Object "zigbee.0" does not existHier noch die Fehlermeldung vom Javascript-Adapter:
2024-10-11 07:24:46.034 - error: javascript.0 (2143) Error in callback: TypeError: Cannot read properties of null (reading 'common') 2024-10-11 07:24:46.035 - error: javascript.0 (2143) at GetName (script.js.common.BatterieUeberwachung:509:66) 2024-10-11 07:24:46.035 - error: javascript.0 (2143) at MakeTable (script.js.common.BatterieUeberwachung:602:59) 2024-10-11 07:24:46.036 - error: javascript.0 (2143) at main (script.js.common.BatterieUeberwachung:267:5) 2024-10-11 07:24:46.036 - error: javascript.0 (2143) at Object. (script.js.common.BatterieUeberwachung:127:13) 2024-10-11 07:24:46.036 - error: javascript.0 (2143) at createState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2987:34)``` code_text -
@joestick007 Jetzt gebe ich mir mal selbst die Antwort. Ich glaube, dass ich den Fehler gefunden habe:
Ich habe diverse ikea Tradfry Rollos über Zigbee in Betrieb. Bis auf ein Rollo zeigen auch alle einen korrekten Batterieladezustand an.
Bei dem fehlerhaften wird nichts angezeigt und in den Objektdaten davon steht: "(null)".
Wenn ich diesen aus den Kategorien lösche, wird alles korrekt angezeigt.:blush: