NEWS
[Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe
-
@Pittini
So habe den Adapter neu gestartet -
@Olli77 Ok, hilft alles nix, ich brauch bitte mal ein komplettes startlog vom Skript.
-
log gelöscht und skript neu gestartet
eine Zeile fehlt da
undefined2020-10-11 12:11:02.457 - info: javascript.0 (27964) Stop script script.js.common.batterrieueberwachung -
VIELEN VIELEN DANK für das Script.
Was ich nicht verstehe:
- Einige HomeMatic Geräte haben ja extra einen Datenpunkt LOW_BAT (HomeMatic IP) und LOWBAT (HomeMatic).
HM iP
HM
Werde diese ausgewertet, wenn ja wo im Script? Ich habe nur spannungsabhängige Zähler gefunden.
- Bei Zigbee haben einige Geräte eine BatterieProzentzahl und die Voltzahl.
Kann da auch die Prozentzahl ausgewertet werden (die uU genauer ist)?
Vielleicht über eine neue Funktionsgruppe, die auf Prozentzahl geht?Nochmals Danke!
Gruß daNick
-
@Olli77 Das ist alles sehr suspekt. Ich seh dass der Fehler entsteht weil das Skript 0 Devices findet und auf ein undefined zugreifen möchte. Soweit is klar dass ein Fehler kommt. Die Frage ist, warum findet er da nix bei Dir (ich geh nicht von nem Fehler im Skript aus). Zeig bitte mal die Einstellungen vom Skript, ich hab den Verdacht das Du nen Tippfehler produziert hast. Wenn Du es in den Einstellungen nicht geändert hast, heißt die Funktion dort "BatterieSpannung_", bei Deiner Zuweisung seh ich aber "Batteriespannung_". Das würde auch erklären warum er kein min anlegt.
-
@daNick sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
Werde diese ausgewertet, wenn ja wo im Script? Ich habe nur spannungsabhängige Zähler gefunden.
Ja, wird ausgewertet, gugg mal Zeile 136.
Bei Zigbee haben einige Geräte eine BatterieProzentzahl und die Voltzahl.
Kann da auch die Prozentzahl ausgewertet werden (die uU genauer ist)?
Vielleicht über eine neue Funktionsgruppe, die auf Prozentzahl geht?Du kannst entweder % oder Spannung verwenden, es wird dann intern jeweils umgerechnet. Sinnvoll ist hier jedoch die Spannung zu nehmen, die % stimmen bei einigen Adaptern nicht wirklich.
-
OK, danke.
-
Nochmal zu HomeMatic LowBat/ Low_Bat:
Es kann also der Datenpunkt in eine BELIEBIGE Funktionsgruppe, das Script ignoriert den Spannungs-Wert aus dem Namen der Gruppe, wenn der Datenpunkt boolean ist?
ob die Gruppe (/z.b) ..._15 oder ..._150 heißt, ist ganz egal? -
Ich habe Zigbee-Sensoren, die NUR Batterie-Prozent liefern, aber keinen Spannungswert.
Auch die können in eine beliebige Funktionsgruppe?
- Ginge es, zur Wahrung der Übersichtlichekit Funktionsgruppen zu erstellen, die "BatterieSpannung_Prozent" und "BatterieSpannung_Boolean" heißen, oder käme dann (kurz- oder langfristig) etwas durcheinander?
Gruß daNick
-
-
Hallo
Ich habe mir meine HomeMatic IP und HomeMatic Sensoren angeschaut (u.a. Homematic IP Fenstersensoren (optisch)) und da sind die Batterie/Spannungs-Infos immer in Channel 0, Channel 1 enthält nur den Zustand (offen/zu).
Haben Sie schon einmal versucht, die Sensoren im HomeMatic-Adapter neu einzulesen (im Adapter "Geräte neu einlesen (einmalig)" ankreuzen)?
Vielleicht verschwinden dann die Duplikate im Channel 1.
Gruß daNick
-
@daNick sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
OK, danke.
- Nochmal zu HomeMatic LowBat/ Low_Bat:
Es kann also der Datenpunkt in eine BELIEBIGE Funktionsgruppe, das Script ignoriert den Spannungs-Wert aus dem Namen der Gruppe, wenn der Datenpunkt boolean ist?
ob die Gruppe (/z.b) ..._15 oder ..._150 heißt, ist ganz egal?
Nein, Du denkst zu kompliziert. Das Gerät hat physikalisch irgendeine Batterie drin, die hat ne Sollspannung, und die gibst Du an, z.B. "BatterieSpannung_30" für 3 Volt Knopfzelle. Alles andere macht das Skript intern, es schaut erst mal ob ne Zahl drinsteht und wenn nicht, dann guggt es nach nem Bool. Dann legt es anhand der Sollspannung der Batterie, eben bei true/false, 0V/3V an.
- Ich habe Zigbee-Sensoren, die NUR Batterie-Prozent liefern, aber keinen Spannungswert.
Auch die können in eine beliebige Funktionsgruppe?
Hier gilt das gleiche wie oben, es muß die RICHTIGE Spannung für dieses Gerät angegeben sein, dass da Prozent kommen erkennt das Skript wiederum automatisch weil dann % als Einheit im Datenpunkt stehen.
- Ginge es, zur Wahrung der Übersichtlichekit Funktionsgruppen zu erstellen, die "BatterieSpannung_Prozent" und "BatterieSpannung_Boolean" heißen, oder käme dann (kurz- oder langfristig) etwas durcheinander?
Wäre vollkommen sinnfrei, wie will ich was berechnen wenn ich keine Sollwerte hab?
- Nochmal zu HomeMatic LowBat/ Low_Bat:
-
danke das war es! Nur weil ich Batteriespannung und nicht BatterieSpannung geschrieben habe, kam der fehler. Nun nach Änderung geht es ohne Fehler.
Eine Frage habe ich aber nicht
Ich halte die Batteriemin. Wert für etwas hoch.....Kann ich das einfach ändern und wenn ja bis wie weit macht es sinn?
Ist es ausserdem normal das das alles "Rot" ist?
-
@Olli77 sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
Ich halte die Batteriemin. Wert für etwas hoch.....Kann ich das einfach ändern und wenn ja bis wie weit macht es sinn?
Ja, kannste ändern, inwieweit kann ich nicht sagen is auch bisserl von den Geräten abhängig. Am besten mal warten bis ein Device leer ist und nimmer aktualisiert, dann siehste ja am letzten Wert bei welcher Spannung es ausgestiegen ist.
Aber grundsätzlich is der Wert eher zu niedrig als zu hoch, ich hab bei mir 2,64V als LimitIst es ausserdem normal das das alles "Rot" ist?
Ja
-
@Pittini said in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
@Olli77 sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
Ich halte die Batteriemin. Wert für etwas hoch.....Kann ich das einfach ändern und wenn ja bis wie weit macht es sinn?
Ja, kannste ändern, inwieweit kann ich nicht sagen is auch bisserl von den Geräten abhängig. Am besten mal warten bis ein Device leer ist und nimmer aktualisiert, dann siehste ja am letzten Wert bei welcher Spannung es ausgestiegen ist.
Aber grundsätzlich is der Wert eher zu niedrig als zu hoch, ich hab bei mir 2,64V als LimitIst es ausserdem normal das das alles "Rot" ist?
Ja
ok danke für die hilfe
-
@Pittini Hallo , erstmal Danke für das Script. Kann es sein das hier die downloadbaren Versionen irgendwie auseinander gelaufen sind , auf der Github Seite gibt es im Changelog die Version 1.63 und als neueste die 1.65, der Download von dort liefert aber heute Morgen // Batterieüberwachungsskript Version 1.6.4 Stand 18.06.2020 - Git: https://github.com/Pittini/iobroker-Batterienauswertung. Bei mir werden dann die MAX! Sensoren, die nur true / false liefern
mit der Funktion BatterieSpannung_ ergibt es so ein Bild
oder muss hier eine andere Funktion/ Aufzählung gewählt werden ? , was ich irgendwo überlesen habe -
@Andi-Luma sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
@Pittini Hallo , erstmal Danke für das Script. Kann es sein das hier die downloadbaren Versionen irgendwie auseinander gelaufen sind , auf der Github Seite gibt es im Changelog die Version 1.63 und als neueste die 1.65, der Download von dort liefert aber heute Morgen // Batterieüberwachungsskript Version 1.6.4 Stand 18.06.2020 - Git: https://github.com/Pittini/iobroker-Batterienauswertung.
Kann schon mal vorkommen dass ich vergess iwo die Version zu aktualisieren, einfach immerdie höchste nehmen und gut.
Bei mir werden dann die MAX! Sensoren, die nur true / false liefern
mit der Funktion BatterieSpannung_ ergibt es so ein Bild
oder muss hier eine andere Funktion/ Aufzählung gewählt werden ? , was ich irgendwo überlesen habeDu hast das grundlegendste weggelassen. Anleitung .1
-
@Pittini Hallo wie kann ich mehrere verschiedene Batteriespannungen "BatterieSpannung_30" und BatterieSpannung_15 mit einem Skript abrufen.
wie muss ich das in der
const FunktionBaseName = "BatterieSpannung_30"; eintragen, mit Komma getrennt?
Bin in Javascript nicht so fit. -
@Elektronikwelt sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
@Pittini Hallo wie kann ich mehrere verschiedene Batteriespannungen "BatterieSpannung_30" und BatterieSpannung_15 mit einem Skript abrufen.
wie muss ich das in der
const FunktionBaseName = "BatterieSpannung_30"; eintragen, mit Komma getrennt?
Bin in Javascript nicht so fit.Den FunktionBaseName nicht ändern, vorallem nicht hinter dem Unterstrich. Die verschiedenen Spannungen erkennt das Skript automatisch, du willst da mehr tun als nötig.
-
@Pittini Danke. Es funktioniert.
-
Hallo, warum sind fast alle Tod?
22:49:13.027 info javascript.0 (8716) Stop script script.js.common.Batterie 22:49:13.371 info javascript.0 (8716) Start javascript script.js.common.Batterie 22:49:13.394 info javascript.0 (8716) script.js.common.Batterie: Reaching FillWelcheFunktionVerwenden 22:49:13.395 info javascript.0 (8716) script.js.common.Batterie: Found Function BatterieSpannung_15 22:49:13.395 info javascript.0 (8716) script.js.common.Batterie: Found Function BatterieSpannung_30 22:49:13.395 info javascript.0 (8716) script.js.common.Batterie: InitialSpannung 0 gesetzt auf 80%= 1.2 22:49:13.395 info javascript.0 (8716) script.js.common.Batterie: InitialSpannung 1 gesetzt auf 80%= 2.4 22:49:13.396 info javascript.0 (8716) script.js.common.Batterie: registered 0 subscriptions and 0 schedules 22:49:13.451 info javascript.0 (8716) script.js.common.Batterie: CreateStates fertig! 22:49:13.451 info javascript.0 (8716) script.js.common.Batterie: Reaching main() 22:49:13.451 info javascript.0 (8716) script.js.common.Batterie: Reaching init() 22:49:13.452 info javascript.0 (8716) script.js.common.Batterie: BattMinLimit Value conversion - success 22:49:13.452 info javascript.0 (8716) script.js.common.Batterie: BattMinLimit Value conversion - success 22:49:13.452 info javascript.0 (8716) script.js.common.Batterie: Tempval=false TempUnit=undefined TypeOf=boolean 22:49:13.452 info javascript.0 (8716) script.js.common.Batterie: 0 BatterieSpannung_30 found at hm-rpc.0.NEQ1818500.0.LOWBAT Umax= 3 BattMinLimit=2.4 Val= 3 SensorProzent= 100 22:49:13.452 info javascript.0 (8716) script.js.common.Batterie: Tempval=false TempUnit=undefined TypeOf=boolean 22:49:13.452 info javascript.0 (8716) script.js.common.Batterie: 1 BatterieSpannung_30 found at hm-rpc.0.NEQ1826414.0.LOWBAT Umax= 3 BattMinLimit=2.4 Val= 3 SensorProzent= 100 22:49:13.453 info javascript.0 (8716) script.js.common.Batterie: Tempval=false TempUnit=undefined TypeOf=boolean 22:49:13.453 info javascript.0 (8716) script.js.common.Batterie: 2 BatterieSpannung_30 found at hm-rpc.0.OEQ0655913.0.LOWBAT Umax= 3 BattMinLimit=2.4 Val= 3 SensorProzent= 100 22:49:13.453 info javascript.0 (8716) script.js.common.Batterie: Tempval=2.9 TempUnit=V TypeOf=number 22:49:13.453 info javascript.0 (8716) script.js.common.Batterie: 3 BatterieSpannung_30 found at hm-rpc.0.OEQ0655913.4.BATTERY_STATE Umax= 3 BattMinLimit=2.4 Val= 2.9 SensorProzent= 96.66666666666667 22:49:13.454 info javascript.0 (8716) script.js.common.Batterie: Reaching CheckDeadBatt() 22:49:13.455 info javascript.0 (8716) script.js.common.Batterie: Reaching Meldung() 22:49:13.455 info javascript.0 (8716) script.js.common.Batterie: Ausfall oder disconnect im Vorraum bei Gerät Haustuer 22:49:13.455 info javascript.0 (8716) script.js.common.Batterie: Reaching Meldung() 22:49:13.455 info javascript.0 (8716) script.js.common.Batterie: Ausfall oder disconnect im Esszimmer bei Gerät Terrassentuer 22:49:13.455 info javascript.0 (8716) script.js.common.Batterie: Reaching Meldung() 22:49:13.456 info javascript.0 (8716) script.js.common.Batterie: Ausfall oder disconnect im Esszimmer bei Gerät HZK Esszimmer 22:49:13.456 info javascript.0 (8716) script.js.common.Batterie: Reaching MakeTable 22:49:13.459 info javascript.0 (8716) script.js.common.Batterie: Reaching CheckAllBatterys() found 4 Devices 22:49:13.460 info javascript.0 (8716) script.js.common.Batterie: Sensor[0] = ist ausgefallen oder disconnected 22:49:13.460 info javascript.0 (8716) script.js.common.Batterie: Sensor[1] = ist ausgefallen oder disconnected 22:49:13.460 info javascript.0 (8716) script.js.common.Batterie: Sensor[2] = ist ausgefallen oder disconnected 22:49:13.460 info javascript.0 (8716) script.js.common.Batterie: Reaching Meldung() 22:49:13.470 info javascript.0 (8716) script.js.common.Batterie: Ausfall oder disconnect im Vorraum bei Gerät Haustuer<br>Ausfall oder disconnect im Esszimmer bei Gerät Terrassentuer<br>Ausfall oder disconnect im Esszimmer bei Gerät HZK Esszimmer 22:49:13.470 info javascript.0 (8716) script.js.common.Batterie: Reaching CheckAllBatterysOk - Lastmessage=Ausfall oder disconnect im Vorraum bei Gerät Haustuer<br>Ausfall oder disconnect im Esszimmer bei Gerät Terrassentuer<br>Ausfall oder disconnect im Esszimmer bei Gerät HZK Esszimmer 22:49:13.470 info javascript.0 (8716) script.js.common.Batterie: Reaching CheckNextLowBatt() 22:49:13.470 info javascript.0 (8716) script.js.common.Batterie: Aktuell niedrigster Batteriestand (2.90V): Esszimmer bei Gerät HZK Esszimmer 22:49:13.471 info javascript.0 (8716) script.js.common.Batterie: Reaching MakeTable 22:50:13.468 info javascript.0 (8716) script.js.common.Batterie: Reaching CheckDeadBatt() 22:50:13.469 info javascript.0 (8716) script.js.common.Batterie: Reaching MakeTable
Edit:
Über Nacht erledigt.
-
@Pittini heute werden meine Räume nicht mehr eingelesen. Nur noch einer wird zugewiesen. Habe JS Adapter neu gestartet Alle sind in den Objekten zugewiesen.
Woran liegt. das? -
Hi,
erstens, danke @Pittini für dieses Skript. Funktioniert super. Ich hätte einen Erweiterungsvorschlag. Es geht um HMIP Geräte und deren Namen. Dort sollte man anstatt 2 Ebenen nach oben gehen, 3 Ebenen gehen.
Hab's bei mir lokal schon in der GetParentId Funktion hinzugefügt.
Zusätzlich, bei Geräte die durch deconz gemanaged sind muss man auch 2 Ebenen nach oben gehen. Ich habe demnach die Funktion ein bisschen geändert: