NEWS
[Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe
-
@gogohome sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
Konnte aber bisher nur den "false" Fall testen,
Das klappt im true Fall auch, ich hab mir ja für alle Varianten hier virtuelle Batterien angelegt wo ich die Werte einfach reinschreibe. Gibt noch nen kleinen Bug bei der Lastmessage (wird in bestimmten Fällen nicht gelöscht) aber das is morgen dann auch gefixt.
-
Hallo Pittini,
ich wollte heute mal dein Bat.Script ausprobieren.
Bekommen folgende Fehler:
javascript.0 2020-04-18 21:47:16.205 error (7021) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2020-04-18 21:47:16.204 error (7021) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49) javascript.0 2020-04-18 21:47:16.204 error (7021) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23) javascript.0 2020-04-18 21:47:16.204 error (7021) at client.(anonymous function) (/opt/iobroker/node_modules/iobroker.objects-redis/index.js:1:83661) javascript.0 2020-04-18 21:47:16.203 error (7021) at /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1964:42 javascript.0 2020-04-18 21:47:16.203 error (7021) at Object.<anonymous> (script.js.common.Batterienauswertung:82:13) javascript.0 2020-04-18 21:47:16.202 error (7021) at main (script.js.common.Batterienauswertung:187:5) javascript.0 2020-04-18 21:47:16.202 error (7021) at CheckNextLowBatt (script.js.common.Batterienauswertung:224:116) javascript.0 2020-04-18 21:47:16.202 error (7021) at GetRoom (script.js.common.Batterienauswertung:281:17) javascript.0 2020-04-18 21:47:16.201 error (7021) Error in callback: TypeError: Cannot read property 'replace' of undefined
Was mache ich falsch?
Danke und Grüße
-
@Saschag sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
Was mache ich falsch?
Mach mal nen Screenshot von irgendeinem Batteriedatenpunkt wo Du die Funktion gesetzt hast. Also den aufgeklappten Channel.
Und zeig mal Deine Einstellungen im Skript. -
ich war zu schnell
habe dem falschen HM-Gerät das Gewerk "Aufzählung" zugeteilt
Sorry und trotzdem vielen Dank!!!!!
-
@Pittini
Hi,Danke für das Script und drumherum. Ich erhalte beim Start des Scripts allerdings eine Fehlermeldung:
javascript.0 2020-04-26 13:32:16.493 error (29690) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2020-04-26 13:32:16.493 error (29690) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49) javascript.0 2020-04-26 13:32:16.492 error (29690) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23) javascript.0 2020-04-26 13:32:16.492 error (29690) at (anonymous function).(anonymous function) (/opt/iobroker/node_modules/iobroker.objects-redis/index.js:17:71697) javascript.0 2020-04-26 13:32:16.492 error (29690) at /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1964:42 javascript.0 2020-04-26 13:32:16.492 error (29690) at Object.<anonymous> (script.js.common.BatterieUeberwachung:82:13) javascript.0 2020-04-26 13:32:16.492 error (29690) at main (script.js.common.BatterieUeberwachung:188:5) javascript.0 2020-04-26 13:32:16.492 error (29690) at MakeTable (script.js.common.BatterieUeberwachung:371:81) javascript.0 2020-04-26 13:32:16.492 error (29690) Error in callback: TypeError: Cannot read property 'toFixed' of undefined javascript.0 2020-04-26 13:32:16.490 info (29690) script.js.common.BatterieUeberwachung: Reaching Mytable
Was hat es mit dem 'toFixed' auf sich, und wie kann ich das beheben?
Die Datenpunkte werden alle korrekt aufgebaut und auch gefüllt, nur die OverviewTable bleibt leer.
Gruss, Jürgen
-
@Wildbill sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
Was hat es mit dem 'toFixed' auf sich, und wie kann ich das beheben?
Die Datenpunkte werden alle korrekt aufgebaut und auch gefüllt, nur die OverviewTable bleibt leer.toFixed macht aus ner Nummer nen String mit ner bestimmten Zahl Nachkommastellen. Das ist nicht das Problem, sondern das Wörtchen undefined danach. Da hast Du vermutlich irgendwas falsch konfiguriert, wenn an der Stelle ein Fehler im Skript wäre, würde es bei niemanden funktionieren.
Zeig mal Deine Skripteinstellungen und einen Datenpunkt aus der Objektliste wo ich sehen kann wie Du die Funktionszuweisung gemacht hast. Und das komplette log das das Skript ausgibt. -
Hi,
hier mal das Log:
Kann es sein, dass es Probleme gibt, wenn einem Datenpunkt zwei Räume oder Funktionen zugeordnet sind? Von FHEM habe ich ein paar Geräte, die haben einmal iobroker und dann eben den Raum selbst als Raum. in FHEM werden so die Datenpunkte markiert, die zu iobroker gehen sollen.
Ebenfalls habe ich ein paar Datenpunkte, die zwei Funktionen zugewiesen haben, einmal den neuen fürs Script und einen anderen. Und ein Raum heisst "Hinterer Raum" ohne die ". Kann das Leerzeichen hier Probleme machen?Gruss, Jürgen
-
@Pittini
Ich habe mal bei allen Geräte bis auf je eines aus jedem Spannungsbereich wieder die Funktion BatterieSpannung_XXXX entfernt und dabei darauf geachtet, dass bei Raum und Funktion je nur eines steht und schon läuft es. Werde nun mal die "fragwürdigen" Geräte nach und nach zuordnen und sehe ja dann, bei welchem es hakt. Gebe dann Bescheid.Blöd nur, dass ich anscheinend wirklich jedes Mal den javascript-Adapter neu starten muss, damit er die Änderungen erkennt...
Gruss, Jürgen
-
@Wildbill sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
Kann es sein, dass es Probleme gibt, wenn einem Datenpunkt zwei Räume oder Funktionen zugeordnet sind? Von FHEM habe ich ein paar Geräte, die haben einmal iobroker und dann eben den Raum selbst als Raum. in FHEM werden so die Datenpunkte markiert, die zu iobroker gehen sollen.
Zwei Räume sind eigentlich nicht vorgesehen weil von der Logik her ein Gerät nur in einem Raum sein kann, das wär auch nicht zuzuordnen, woher soll das Skript wissen welchen Raum es jetzt melden soll? Sollte es trotzdem zwei Räume geben wird der erste Raum der Aufzählung genommen.
Ebenfalls habe ich ein paar Datenpunkte, die zwei Funktionen zugewiesen haben, einmal den neuen fürs Script und einen anderen.
Mehrere Funktionen sind möglich und vorgesehen. Das Skript sucht sich "seine" Funktion da raus.
Und ein Raum heisst "Hinterer Raum" ohne die ". Kann das Leerzeichen hier Probleme machen?
Ich vermeide es grundsätzlich bei iwelchen Bezeichnungen die keine reinen Bezeichnungstexte sind, Leerstellen oder Umlaute zu verwenden, ich verwende da immer _ und für Umlaut ae usw, deswegen kann ich Dir das nicht sicher sagen. Das Skript wandelt sowas sogar bei Ausgaben in "schöne" Texte um, Vermutlich gehts weil sonst schon andere gejammert hätten, aber ohne Garantie.
-
@Pittini
Ich habe mal getestet. Es liegt wohl nicht daran, dass die Datenpunkte in FHEM zwei Räume haben, sondern an den Datenpunkten an sich. Ich habe bei einem den Raum "iobroker" entfernt. Wenn ich ihn weglassen startet das Skript ganz normal, wenn ihm die Funktion BatterieSpannung_30 zuweise, kommt es gleich zu obiger Fehlermeldung. So sieht der Datenpunkt aus, wie er aus dem FHEM-Adapter kommt:Gruss, Jürgen
EDIT: Kann es sein, dass sich das Script daran stört, dass der Datenpunkt als Wert ok hat?
-
@Wildbill sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
EDIT: Kann es sein, dass sich das Script daran stört, dass der Datenpunkt als Wert ok hat?
Das vermute ich auch grad (gabs bisher noch nie und hat noch keiner gebraucht), ich schau mir das grad mal genauer an, gib mir paar Minuten.
Edit: Jap daran liegts, was meldet er denn wenn nicht ok? Dann bau ich das mit rein.
Edit2: Hab neue Version auf Git, alles was Text ist und nicht Status ok hat wird als leer gesehen, ok als voll. Bitte mal testen obs so klappt.
-
@Pittini
Die neue Version hole ich mir gleich. Aktuell grüble ich bei einem weiteren komischen Effekt. Warum wird mir der Bewegungsmelder im Bild als der mit der leersten Batterie angezeigt? Sowohl die Spannung als auch der prozentuale Wert liegt höher, als bei anderen:So sehen die Datenpunkte in iobroker aus:
Gruss, Jürgen
-
Und der Test mit der aktuellen Version schlug leider dennoch fehl. Habe einen der FHEM-Datenpunkte dazu genommen, extra den zweiten Raum iobroker entfernt, aber es kommt dennoch die Fehlermeldung wie am Anfang. So sieht der Datenpunkt aus:
Wenn die Batterie leer wird meldet er AFAIK lowbat.
Gruss, Jürgen -
@Wildbill sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
Die neue Version hole ich mir gleich. Aktuell grüble ich bei einem weiteren komischen Effekt. Warum wird mir der Bewegungsmelder im Bild als der mit der leersten Batterie angezeigt? Sowohl die Spannung als auch der prozentuale Wert liegt höher, als bei anderen:
Stell mal Testweise Zeile 18 auf false. Es gibt nämlich dummerweise 2 Varianten was die % bedeuten können, die einen Adapter sagen die reine Batteriekapazität an, Also bei 3V Soll und Anzeige 50% hat die Batterie 1,5V. Die andere Variante rechnet intern das aufs Gerät um, also wieder 3V Soll, Anzeige 50%, (Gerät würde unter 2,6Volt ausfallen) ergibt dann ne Batteriespannung von 2,8V.
-
@Pittini
Wenn ich das auf false stelle, dann muss ich plötzlich viele Batterien tauschen:Das mit FHEM kann ich auch anders lösen. Ich erstelle mir eigene Datenpunkte die ich dann per Skript auf true/false schalte. Die paar FHEM-Geräte sind eh nur noch Altlasten, die ich nach und nach ersetze. Wegen mir brauchst Du da keine große Energie rein stecken. Das mit der Anzeige verwirrt mich gerade mehr.
Gruss, Jürgen
-
@Wildbill sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
Und der Test mit der aktuellen Version schlug leider dennoch fehl.
Hm, das ist aber sehr seltsam. Klick doch bitte bei dem Datenpunkt mal auf das Bleistiftsymbol, dann auf Raw und mach mir nen Screenshot davon.
-
@Pittini
So sieht das RAW aus:Das mit den Prozentwerten überlege ich gerade. In Phoscon werden mir bei dem gelben Gerät auch 87% angezeigt, bei den anderen auch die unter %bat angezeigten Werte. Wenn die 87% in Phoscon bedeuten, dass 13% der Batterie "fehlen", dann wären die Spannungen unter Uist ja doch korrekt (wenn es linear wäre) und entspräche den Tatsachen. Dann müsste ich entweder Umin runter setzten oder wirklich tauschen gehen. Da es aber CR2032 sind, die recht tief runter gehen, werde ich wohl eher Umin runter nehmen. Oder liege ich da nun falsch?
Gruss, Jürgen
-
Nein, mit ProzMeansLive = true; muss es richtig sein. Sonst zeigt es mir bei neuen Geräten mit neuen Batterien ja 0% Uist und -400% abgelaufene Lebensdauer an, was nicht sein kann. Also, warum denkt er, dass 2.48Volt weniger als 2.40 Volt sind?
Gruss, Jürgen
-
@Wildbill sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
Und der Test mit der aktuellen Version schlug leider dennoch fehl.
Also ich hab mir jetzt grad extra ne "virtuelle" Testbatterie gebaut, entsprechend Deinen Rawdaten und der den Status ok verpasst.
und die nimmt er jetzt einwandfrei mit dem update:
Zeig mir bitte nochmal das Log vom Skript.
-
@Wildbill Du könntest doch über "alias" die Datenpunkte die "ok" zurückmelden auf "true/false" konvertieren?!