Diese Beitrag ist von unsrem User "MagicSven", Danke dafür 👍️
So,
nachdem ich es leid war, jede Woche die Batteriestände meiner Tür/Fenster/Heizkörperkontakte manuell abzufragen gibt es hier ein Script,
mit dem Automatisch eure Batteriebetriebenen Geräte abgefragt werden und bei einem Stand <20% ein entsprechender Datenpunkt gesetzt wird
inkl. Namentlicher Aufzählung, welche Geräte betroffen sind.
Einfach unter Scripte ein Javascript anlegen. Datenpunkte werden automatisch erstellt.
createState('Batteriescript.Anzahl_Geräte', 0, {type: 'number'});
createState('Batteriescript.Batterie_schwach', 0, {type: 'number'});
createState('Batteriescript.Gerät', " ", {type: 'string'});
const fritzdect = $('fritzdect.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 = [];
fritzdect.each(function (id, i) {
if(getState(id).val < 20) lowbat(id);
++moeglicheLOWBAT;
});
zigbee.each(function (id, i) {
if(getState(id).val < 20) 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);