NEWS
[Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe
-
über das Widget JsonTable
-
ja, aber was trage ich dort ein?
-
ich hab bei mir die Standardeinstellungen gelassen. Ist wie bei allen anderen Widgets auch. Du erstellst ein Gerät das die JsonTabelle beinhaltet wie bei deinen States auch und erstellst dann ein Widget JsonTable und wählst es dort aus.
Wenn du die Tabelle irgendwie anders formatiert angezeigt bekommen möchtest, dann stell die Fragen dazu am Besten im Jarvis Thread. Das hat ja nichts mit dem Skript hier zutun. -
Da hast Du recht, ich hatte wohl ein großes Brett vorm Kopf!!
Vielen Dank!
-
@pittini
Obwohl das script immer funktioniert hat, bekommen ich jetzt immer diese Fehlermeldungen:16:15:23.711 error javascript.0 (3163) at MakeTable (script.js.common.BattUeberwachung:610:75) 16:15:23.711 error javascript.0 (3163) at main (script.js.common.BattUeberwachung:266:5) 16:15:23.712 error javascript.0 (3163) at Object.<anonymous> (script.js.common.BattUeberwachung:126:13)
An was könnte das denn liegen?
-
@reindeer-web Mit den wenigen Infos ist das Glaskugelraten. Hast was geändert oder neues hinzugefügt? Hast iwelche updates eingespielt, wenn ja welche? Hast Geräte welche einen null Wert haben? Hast logging mal im Skript aktiviert und geguggt was das sagt?
-
@pittini
Vielen Dank! Der Hinweis auf den null Wert hat mir sehr geholfen.
Ich habe eine Homematic IP Schlüsselbundfernbedienung, die öfters für längere Zeit (Tage, Wochen) außer Reichweite ist. Wieso die plötzlich einen null Wert hat ist mir nicht ganz klar.
Auf jeden Fall habe ich jetzt die Überwachung dafür herausgenommen und es funktioniert wieder alles bestens. -
Guten Abend!
Ich weiß nicht ob ich zu blöd bin. Habe das Skript mit "BatterieSpannung_33" laufen.
Jetzt versuche ich noch weitere Spannungen zu überwachen.Ich habe eine zweite Zeile hinzugefügt:
const FunktionBaseName = "BatterieSpannung_33"; //Name der Funktion welche für die Batterieüberwachung genutzt wird const FunktionBaseName = "BatterieSpannung_100"; //Name der Funktion welche für die Batterieüberwachung genutzt wird
Das hat nicht funktioniert und das Skript folgende Meldung ausgegeben:
javascript.0 (6407) script.js.common.BatterieUeberwachung compile failed: at script.js.common.BatterieUeberwachung:13
Also hab ich in der gleichen Zeile einfach eine weitere Spannung hinzugefügt:
const FunktionBaseName = "BatterieSpannung_33";"BatterieSpannung_100"; //Name der Funktion welche für die Batterieüberwachung genutzt wird
Hier bekomme ich auch keine fehlermeldung.
Aber unter den Datenpunkten hab ich weiterhin nur einmal den Datenpunkt BatteryMinLimit_
Kann so also keine zwei getrennten Werte bei unterschreiten der jeweiligen Spannung einstellen.Was mache ich hier falsch?
Javaskript Adapter wurde schon neu gestartet....Danke!
-
Du hast dir einfach nur die Anleitung nicht genau genug durchgelesen
Im Skript musst du das nicht anpassen, also bitte wieder in den Ursprung bringen:const FunktionBaseName = "BatterieSpannung_"; //Name der Funktion welche für die Batterieüberwachung genutzt wird
Dann nach Anleitung bitte die Aufzählungen anlegen. In deinem Fall BatterieSpannung_33 und BatterieSpannung_100.
Den beiden Aufzählungen dann die entsprechenden Datenpunkte zuweisen.Hier nochmal der Link zur Anleitung:
https://github.com/Pittini/iobroker-BatterienauswertungEs ist wichtig, dass du die Punkte unter Installation sehr genau befolgst, da sonst genau das passiert, was bei dir passiert ist
-
Ahh jetzt ja! Oh man...bin ich blöd
Die Aufzählung hatte ich ja angelegt, aber ich bei Punkt 5 "Nun Zeile 8-24 kontrollieren und bei Bedarf anpassen, wofür die einzelnen Zeilen gut sind, steht jeweils im Kommentar rechts daneben."
habe ich so verstanden, dass dort ebenfalls pro zu überwachende Spannung ein Eintrag rein muss.Vielen Dank, nun passen die Datenpunkte!
Und @Pittini vielen Dank für das Klasse Skript! -
javascript.0 Zeit debug Nachricht javascript.0 2023-03-16 14:51:14.668 error at processImmediate (node:internal/timers:468:21) javascript.0 2023-03-16 14:51:14.668 error at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2443:38) javascript.0 2023-03-16 14:51:14.668 error at Object.<anonymous> (script.js.System_.Batterieüberwachung:126:13) javascript.0 2023-03-16 14:51:14.668 error at main (script.js.System_.Batterieüberwachung:265:5) javascript.0 2023-03-16 14:51:14.668 error at CheckNextLowBatt (script.js.System_.Batterieüberwachung:395:91) javascript.0 2023-03-16 14:51:14.667 error Error in callback: TypeError: Cannot read properties of undefined (reading 'value') javascript.0 2023-03-16 14:51:14.612 info script.js.System_.Batterieüberwachung: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 2023-03-16 14:51:14.608 info script.js.System_.Batterieüberwachung: starting Batterieüberwachung V.1.8.5 javascript.0 2023-03-16 14:51:14.567 info Start javascript script.js.System_.Batterieüberwachung javascript.0 2023-03-16 14:51:12.628 info Stop script script.js.System_.Batterieüberwachung
zeigt leider nix an und bekomme fehler meldung
-
Zeig mal bitte die ersten 40 Zeilen des Skriptes, ich tippe darauf, dass du falsche Einstellungen hast UND/ODER die Funktion falsch hast
-
@dominik-f sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
Zeig mal bitte die ersten 40 Zeilen des Skriptes, ich tippe darauf, dass du falsche Einstellungen hast UND/ODER die Funktion falsch hast
const Version = "1.8.5"; // Batterieüberwachungsskript Stand 06.12.2021 - Git: https://github.com/Pittini/iobroker-Batterienauswertung - Forum: https://forum.iobroker.net/topic/31676/vorlage-generische-batteriestandsüberwachung-vis-ausgabe //Überwacht Batteriespannungen beliebig vieler Geräte log("starting Batterieüberwachung V." + Version); //WICHTIG!!! //Vorraussetzungen: Den Gerätechannels müssen Räume, sowie die Funktion "BatterieSpannung_xx" für jeden entsprechenden Batteriespannungs Datenpunkt zugewiesen sein. //Bitte unbedingt Anleitung beachten // Nach der Zuweisung unbedingt den JS Adpter neu starten! //Grund Einstellungen const praefix = "javascript.0.BatterieUeberwachung."; //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 den DeadCheck genutzt wird const WhichEnumCategoryToUse = "functions"; // Legt fest in welcher Kategorie sich die Aufzählungen befinden! Nur ändern wer weis was er tut! const UseMail = false; // Sollen Nachrichten via Mail gesendet werden? 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 "tote" Geräte gemeldet werden? const NotifyWarnDevices = true;//Sollen Geräte unter Limit gemeldet werden? const DeconzNameFromDP = false; //Nimmt für Deconz den Namen aus dem Datenpunkt statt aus dem übergeordnetem Channel //Variablen für Alexa const UseAlexa = false; // Sollen Nachrichten via Alexa ausgegeben werden? const AlexaInstance = "alexa2.0"; const AlexaId = ""; // Die Alexa Seriennummer const AlexaVolume = "50"; // Lautstärke der Nachrichten. Wert von 1 bis 100 //Variablen für Pushover const UsePushover = false; //Sollen Nachrichten via Pushover versendet werden? const PushoverDevice = 'All'; //Welches Gerät soll die Nachricht bekommen const PushoverInstance = "pushover.0"; //Pushoverinstanz welche genutzt werden soll angeben const PushOverTitle = 'Batterien überprüfen'; //Variablen für Telegram const UseTelegram = false; // Sollen Nachrichten via Telegram gesendet werden? const TelegramInstance = "telegram.1"; //Telegraminstanz welche genutzt werden soll angeben const TelegramUser = ''; //Welche User sollen die Nachricht bekommen? Leer lassen für alle User. Mehrere User getrennt durch Komma.
-
@horst-böttcher
Hallo,
die Nummer hinter der Funktion ist ist falsch. Im Script wird der Teil hinter dem "_" abgetrennt und in eine float gewandelt mit 1 Nachkommastelle
Funktionsname: BatterieSpannung_15 (für 1,5V)
Funktionsname: BatterieSpannung_30 (für 3V)
Funktionsname: BatterieSpannung_120 (sollte dann 12V ergeben) -
Kann das sein, dass du den falschen Datenpunkt ausgewählt hast? LowBat gibt ja nur true/false aus.
Versuch mal
hm-rpc.2.0007DA49992A68.0.OPERATING_VOLTAGE
-
@dominik-f
hab jetzt mal nur hue genommen
und trotzdem
javascript.0 2023-03-17 21:06:20.880 error at processImmediate (node:internal/timers:468:21) javascript.0 2023-03-17 21:06:20.880 error at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2443:38) javascript.0 2023-03-17 21:06:20.879 error at Object.<anonymous> (script.js.System_.Batterieüberwachung:126:13) javascript.0 2023-03-17 21:06:20.879 error at main (script.js.System_.Batterieüberwachung:265:5) javascript.0 2023-03-17 21:06:20.878 error at CheckNextLowBatt (script.js.System_.Batterieüberwachung:395:91) javascript.0 2023-03-17 21:06:20.877 error Error in callback: TypeError: Cannot read properties of undefined (reading 'value')
-
Ich hab da ne Idee. Deine Funktion heisst BatterieSpannung 1,5V. Nenn sie mal bitte Batteriespannung_15
-
@dominik-f sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
nung_15
Ja danke genau das ist die lösung gewesen
-
Guten Morgen,
wo finde ich denn das Script? Der Link bei Githup batterienauswertung-V1.7.0.js führt ins leere.
Gruß Johannes
Hat sich erledigt, habs ganz oben bei Github gefunden, hatte es übersehen. Sorry.
-
Hallo zusammen! Kann man diesen Skript auch zu Überwachung von Shellys benutzen. Da sind ja meistens die Akkus verbaut. Wie kann man diesen Fall überwachen?