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); -
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); -
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'
-
@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?
-
@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
-
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 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.
-
@albi_63
Was steht denn im Datenpunkt komplett drin?Wo kommt dieses Battery percent her, das da am Anfang steht?
-
@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 -
@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.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden