NEWS
UNSOLVED Script Xiaomi Battery leer ?
-
@Glasfaser
Der Datenpunkt ist ein Homematic Schaltaktor. Der hat, wie andere Geräte auch, keinen Batteriestatus. Warum stört sich das Skript daran?
Darüber hinaus funktioniert die Bedingung ( == true) nicht. Es werden schlussendlich alle Homematicgeräte mit LOWBAT gelistet, auch die die false sind... -
Sieht es nicht bei dir so aus !?
-
Nein, wie gesagt das Gerät ist eine Steckdose. Diese hat keine Batterie und daher auch keinen Batteriestatus...
-
Sorry ...mit der Angabe " Homematic Schaltaktor " konnte ich leider nicht erlesen , das es sich um eine Steckdose handelt .
-
-
@Glasfaser
Muss mich entschuldigen. Ich habe mich im Gerät geirrt. Du hattest völlig recht:Scheint als hat de Fernbedienung keinen Empfang und sendet daher weder true noch false.
-
Richtig … kein Empfang ….
-
@passuff sagte in Script Xiaomi Battery leer ?:
Darüber hinaus funktioniert die Bedingung ( == true) nicht. Es werden schlussendlich alle Homematicgeräte mit LOWBAT gelistet, auch die die false sind...
Das erschließt sich mir allerdings immer noch nicht...
-
Kann leider nicht testen , da ich gerade keine leere Batterie habe , aber dein Script läuft ohne Fehler bei mir im LOG .
-
Ich habe auch keine leere Batterie. Dennoch habe ich im erzeugten Datenpunkt alle HM Geräte gelistet..
-
Habe mal den Wert Lowbat händisch auf true gesetzt .
Und die gleiche Fehlermeldungen wie bei Dir !!! -
@passuff sagte:
warn getState "hm-rpc.0.PEQ0508233.0.LOWBAT" not found (3) states[id]=null
Anscheinend hat das Objekt noch keinen Zustand ? Dann gib mal manuell den Wert false ein.
-
Das führt lediglich dazu, dass die Fehlermeldungen verschwinden. Die Bedingung wird immer noch falsch ausgewertet bzw alle Sensoren werden als lowbat = true erkannt.
-
@passuff sagte:
alle Sensoren werden als lowbat = true erkannt.
Wie sieht das Log aus, wenn in Zeile 10 ein zusätzliches Log eingefügt wird ?
batt.each(function (id, i) { log(id + ': ' + getState(id).val);
-
@paul53 sagte in Script Xiaomi Battery leer ?:
log(id + ': ' + getState(id).val);
"23:57:50.014 info javascript.0 script.js.common.Batteriestatus.Batteriestatus_Homematic: hm-rpc.0.OEQ0708741.0.LOWBAT: true"
-
@passuff
Es liefern zwar viele, aber nicht alle LOWBAT true. Es liegt nicht am Skript. Hast Du mal die JS-Instanz neu gestartet ? -
@paul53
Js, iobroker und auch die VM... -
@passuff
Und trotzdem weicht die Log-Ausgabe so stark von den angezeigten Werten im Reiter "Objekte" (auch in der Statusansicht) ab ? Dann bin ich mit meinem Latein am Ende -
@paul53 genau so ist es.
Ich schau.mir das heute Abend noch mal an. Ich glaube es konnte am nodejs update liegen. (10.16.1) -
@passuff sagte:
Was ist "hm-rpc.0.OEQ0672249" für ein Gerät, das in den Kanälen 0 bis 5 ein LOWBAT hat ? Hat es wirklich mehrere Batterien ?
Außerdem gibt es mehrere Geräte mit Kanal 0.LOWBAT = true und Kanal 1.LOWBAT = false. Welche Geräte sind das ?