NEWS
[Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe
-
@dominik-f said in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
em Dat
Aus "Information" sollte es doch eigentlich kommen, resp. "Name"...
-
Du hast nicht dem gesamten Channel den Raum zugewiesen.
-
dem ganzen ordner 10, 1 ist ein anderer Raum und unter sensors sind diverse räume und sensors.. muss ich allen sensoren den gleichen raum geben?
-
Ja, ich denke das wird das Problem sein, Pittini weißt ja auch daraufhin, dass der gesamte Channel einem Raum zugewiesen sein muss.
Ich gebe dir den Tipp, Aliase zu benutzen. Hat den Vorteil, dass du, wenn du mal ein Gerät austauscht, nur den entsprechenden Alias neu zuweisen musst und keine Skripte etc ändern musst.
Ich nutze dafür den Alias Manager Adapter. Das geht damit relativ einfach.
Sieht dann so aus bei mir: -
Guck dir mal den Wert so um die Zeile 22 an:
const DeconzNameFromDP = true; //Nimmt für Deconz den Namen aus dem Datenpunkt statt aus dem übergeordnetem Channel
Damit steuerst Du das Verhalten beim Auflösen der Namen beim deconz-Adapter.
-
Hallo,
wie bekomme ich die Darstellung in Jarvis über die JSON Tabelle realisiert ?
-
ü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)