NEWS
[Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe
-
@pittini Vielen Dank für die Erklärung.
Ich habe noch nie einen Alias Datenpunkt erstellt. Geht das über den Alias-Adapter?
Danach erstellt man die neuen Datenpunkte unter Alias.0. oder? Wie sage ich dann deinem Script das er diese Datenpunkte überwachen soll? Denen muss ich ja eine Funktion zuweisen, oder? -
Nimm den Alias Manager, damit geht das sehr einfach. Es lohnt sich übrigens alle Datenpunkte, die du irgendwie brauchst, also nicht nur für dieses Skript, als Alias zu erstellen. Somit brauchst du, wenn du mal etwas austauscht, nur die Alias ändern, also die Datenpunkte im Alias nur neu zuweisen, und alles funktioniert weiterhin.
Wenn du das erstellst hast, folgst du einfach den Anweisungen von Pittini in seiner Erklärung.
-
Ich bekomme folgenden Log von dem Skript:
avascript.0 2022-02-08 18:50:48.543 info script.js.common.Auswertung_Batterien: Reaching Meldung(), msg=Batteriestand (2.29 V) unter Limit (2.32 V) im EG Diele bei Gerät EG_Diele Heizkörper
Problem an der Sache ist, der Batteriestand ist 2,4V, das wird auch in der Tabelle richtig erkannt:
Hast du eine Idee was das Problem sein könnte?
-
Ich denke ich habe den Alias Adapter erfolgreich eingerichtet und ein Testdevice sieht jetzt so aus:
Ich habe LowBatt nach lowbat umbenannt und die Funktion BatterieSpannung_30 hinzugefügt. Wenn ich jetzt das Script von Pittini neustarte bekomme ich folgende Fehlermeldungen:
2022-02-08 20:45:41.094 - warn: javascript.0 (18309) getState "alias.0.TEST.lowBatt" not found (3) 2022-02-08 20:45:41.095 - warn: javascript.0 (18309) at Init (script.js.common.BatterienÜberwachung:160:31) 2022-02-08 20:45:41.095 - warn: javascript.0 (18309) at main (script.js.common.BatterienÜberwachung:261:5) 2022-02-08 20:45:41.096 - warn: javascript.0 (18309) at Object. (script.js.common.BatterienÜberwachung:126:13) 2022-02-08 20:45:41.096 - warn: javascript.0 (18309) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1988:38) 2022-02-08 20:45:41.096 - warn: javascript.0 (18309) at processImmediate (internal/timers.js:463:21) 2022-02-08 20:45:41.109 - error: javascript.0 (18309) Error in callback: TypeError: Cannot read property 'toFixed' of undefined 2022-02-08 20:45:41.109 - error: javascript.0 (18309) at MakeTable (script.js.common.BatterienÜberwachung:610:75) 2022-02-08 20:45:41.109 - error: javascript.0 (18309) at main (script.js.common.BatterienÜberwachung:266:5) 2022-02-08 20:45:41.109 - error: javascript.0 (18309) at Object. (script.js.common.BatterienÜberwachung:126:13) 2022-02-08 20:45:41.109 - error: javascript.0 (18309) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1988:38) 2022-02-08 20:45:41.110 - error: javascript.0 (18309) at processImmediate (internal/timers.js:463:21)
Dieses "getState "alias.0.TEST.lowBatt" not found" ist wohl das Problem. Ich hab dann aber auch noch lowbat wieder nach lowBatt zurückbenannt, aber immer noch die gleichen Fehler.
Was mache ich falsch?
-
@dominik-f Würde ich mal loggen welche Werte da auftreten, irgendwoher muß das Skript die 2,29 Volt aus der Meldung ja herhaben.
-
@tobi81 Nach jeder Änderung an Aufzählungen MUß der JS Adapter neu gestartet werden, sonst kriegt das System davon nix mit. Und jedes Skript welche die geänderten Aufzählungen nutzt muß auch neugestartet werden, damit die Trigger aktualisiert werden.
-
Du hattest recht....aus irgendeinem Grund springt der Batteriestate immer mal wieder kurz nach unten.
-
@pittini hast du das mitbekommen mit den neuen Änderungen für die xiaomi Batterie Geräte.
https://github.com/Koenkk/zigbee2mqtt/issues/8499#issuecomment-1032422285
Sie haben jetzt andere voltanpassungen durchgeführt, sollte man da dein Script auch eventuell angleichen?
-
@babl 3V sind 3V, wie oder woher die berechnet werden is mir egal. sehe hier keinerlei Anpassungsnotwendigkeit.
-
@pittini aber bei 2.85V werden die bei zigbee bereits mit 0% gelistet
-
@babl Wieviel Prozent zigbee da angibt, ist doch egal solange Du dem Skript den Spannungsdatenpunkt gibst und nicht den mit den Prozenten. Dann errechnet das Skript das selber. Und all meine Xiaomis liefern beides.
-
@pittini das stimmt schon, nur hat man jetzt 2 verschiedene anzeigen.
bei dir im script steht er bei 98% Batterieleistung
und im Zigbee steht er mit 47% Batterieleistung
Das ist halt auch etwas blöd.
-
gelöscht
-
Habe seit heute auch paar Probleme mit dem Script, kann mir jemand weiterhelfen?
Das Script bringt folgende Fehler:14:44:46.922 info javascript.0 (35201) script.js.common.Batterieueberwachung: CheckDeadBatt() State for 19 doesnt exists 14:44:46.929 error javascript.0 (35201) at MakeTable (script.js.common.Batterieueberwachung:610:75) 14:44:46.929 error javascript.0 (35201) at CheckDeadBatt (script.js.common.Batterieueberwachung:366:13) 14:44:46.929 error javascript.0 (35201) at CheckBatterys (script.js.common.Batterieueberwachung:465:5) 14:44:46.929 error javascript.0 (35201) at Object.<anonymous> (script.js.common.Batterieueberwachung:726:13)
-
@nightfly1983 Naja, steht ja fast im Klartext da
State for 19 doesnt exists
Keine Ahnung was "19" ist, aber ich würde vermuten Du hast ein Gerät gelöscht, oder iwas geändert? Ohne zu wissen was Du gemacht hast oder ausführliches Log, kann ich nur raten.
-
@pittini Na das hat mir doch schon voll geholfen
Ein Sensor hat keinen Wert bei der Spannung geliefert und damit kam es zustande.
Brauchte nur den Denkanstoß, danke dir -
Hallo, wenn ein Gerät ausfällt und somit DeadDeviceCount>0 ist, wird AllBatterysOK nicht auf False gesetzt. Ich hätte gerne einen Datenpunkt der meldet wenn irgendein Gerät ein Problem hat, und nicht nur wenn der Batteriestand zu niedrig ist.
-
@dog-rgb Mach bitte ein Issue auf Git damits nicht vergessen wird. Wird aber auf jeden Fall dauern, ich hab grad null Zeit.
-
-
Fehler aus dem Log javascript.0 2022-05-10 23:56:08.511 error (803) at processImmediate (internal/timers.js:466:21) javascript.0 2022-05-10 23:56:08.511 error (803) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1986:38) javascript.0 2022-05-10 23:56:08.510 error (803) at Object.<anonymous> (script.js.common.System.Baterieüberwachung_:126:13) javascript.0 2022-05-10 23:56:08.509 error (803) at main (script.js.common.System.Baterieüberwachung_:265:5) javascript.0 2022-05-10 23:56:08.509 error (803) at CheckNextLowBatt (script.js.common.System.Baterieüberwachung_:395:91) javascript.0 2022-05-10 23:56:08.508 error (803) Error in callback: TypeError: Cannot read property 'value' of undefined javascript.0 2022-05-10 23:56:08.484 info (803) script.js.common.System.Baterieüberwachung_: registered 0 subscriptions and 0 schedules javascript.0 2022-05-10 23:56:08.482 info (803) script.js.common.System.Baterieüberwachung_: starting Batterieüberwachung V.1.8.5 javascript.0 2022-05-10 23:56:08.468 info (803) Start javascript script.js.common.System.Baterieüberwachung_ javascript.0 2022-05-10 23:56:07.066 info (803) Stop script script.js.common.System.Baterieüberwachung_