NEWS
Batteriestatus
-
Hy Leute
Ich habe hier ein Batteriescript, welches mir die Anzahl Geräte, Anzahl Batterie schwach sowie die Geräte auflisten sollte.
Und genau der letzte Punkt funktioniert nicht. Es wäre toll wenn man sehen könnte welches Gerät eine schwache Batterie hat.
Wo muss ich am script was ändern damit das funktioniert? Ich verstehe nichts von Java.....createState('Batteriescript.Anzahl_Geräte', 0, {type: 'number'}); createState('Batteriescript.Batterie_schwach', 0, {type: 'number'}); createState('Batteriescript.Gerät', " ", {type: 'string'}); const mihome = $('mihome.0*.percent'); const ble = $('ble.0*.battery'); const zigbee = $('zigbee.0*.battery'); const loggen = true; var arrLOWBAT; function lowbat(id) { var obj = getObject(id); arrLOWBAT.push(obj.common.name); if(loggen) log("Gerät: " + obj.common.name); } function countLowbat() { var moeglicheLOWBAT = 0; arrLOWBAT = []; mihome.each(function (id, i) { if(getState(id).val < 30) lowbat(id); ++moeglicheLOWBAT; }); ble.each(function (id, i) { if(getState(id).val < 30) lowbat(id); ++moeglicheLOWBAT; }); zigbee.each(function (id, i) { if(getState(id).val < 30) lowbat(id); ++moeglicheLOWBAT; }); if(loggen) log("Text: " + arrLOWBAT.join(', ')); if(loggen) log("Anzahl Geräte: " + moeglicheLOWBAT + " // davon mit schwacher Batterie: " + arrLOWBAT.length); setState("Batteriescript.Gerät", arrLOWBAT.join(',<br>')); setState("Batteriescript.Batterie_schwach", arrLOWBAT.length); setState("Batteriescript.Anzahl_Geräte", moeglicheLOWBAT); } countLowbat(); schedule("*/60 * * * *", countLowbat);
-
-
@albi_63 fehlt dir nicht ein Punkt zwischen 0 und *
So wäre es richtig'mihome.0.devices.*.percent'
-
@crunchip
Hy,
Es ändert sich nichts wenn ich den Punkt hinter dem Stern setzte. Das Ergebnis bleibt das gleiche...
Ich bekomme keine Namen der LowBatt Geräte
const ble = $('ble.0.*.battery'); -
@albi_63
Was steht denn im Datenpunkt komplett drin?Wo kommt dieses Battery percent her, das da am Anfang steht?
-
@Homoran vom mihome Adapter, habs oben korrigiert
-
@albi_63 sagte:
der letzte Punkt funktioniert nicht.
var obj = getObject(id); arrLOWBAT.push(obj.common.name);
Es werden die Datenpunktnamen in das Array geschrieben - nicht die Gerätenamen. Versuche es mal so:
function lowbat(id) { id = id.substring(0, id.lastIndexOf('.')); var obj = getObject(id); arrLOWBAT.push(obj.common.name);
Es setzt voraus, dass zu allen Datenpunkt-Objekten ein Parent-Objekt existiert und das einen sinnvollen Namen hat.
-
@Homoran
Hy
Die Batterie percent kommt vom mihome adapter
Im datenpunkt "Gerät" steht nur : Battery percent,>br>Batterie -
@albi_63 sagte in Batteriestatus:
Die Batterie percent kommt vom mihome adapter
dann sind wir jetzt genau da was @paul53 prophezeit hat
Das ist der Datenpunkt Name -
@paul53
Hy Paul
Danke für dein Feedback.
Jetzt bekomme ich die entsprechenden Werte:Temp.-Kühlschrank,<br>Temp.-Aussenwand-nord
Jetzt muss ich noch schauen wie ich das in den iQontrol via Popup oder so bringe.
Ne Idee?
Danke dir