Batterie-Überwachung

Ich habe mal etwas mit der Event-Node rumgespielt, um eine Batterie-Überwachung ohne grossen Aufwand zu erzeugen. Jedes Event der Device-Variable LOWBAT wird weitergeleitet. Falls es true ist, wird eine Nachricht erzeugt. Man spart sich so die die zigfachen Variable-Nodes.

Die Logik steckt in dem function-node, der das Event-Array prüft. Es kann ganz einfach auf andere Device-Variablen angepasst werden.

$var = "LOWBAT";
$o=$message['payload'];

if ($o['type'] == 'deviceVariableEvent') 
{
    $hasVAR = false;
    foreach($o['data']['3'] as $key=>$value) 
    {
        if($value == $var) 
        {
            $hasVAR = true;
            $varval = $o['data']['4'][$key];
        }
    }
    
    if ($hasVAR) 
    {
        $message['peerId'] = $o['data']['1'];
        $message['peerName'] = $hg->getName($o['data']['1']);
        $message['variable'] = $var;
        $message['payload'] = $varval;
        return $message;
    }
}
return null;

Hier ist der gesamt Flow. Die Nachricht könnt ihr dann auf eurem gewünschten Weg ausgeben, ob Telegram, Pushover oder sonstwas ist egal.

LOWBAT.txt (1,5 KB)

Ich denke mal, das kann so ziemlich jeder gebrauchen, der Geräte mit Batterien verwendet. :wink:

3 Likes

Auf jeden Fall!

Ich haenge mich hier mal dran, ich hab eine aehnliche Loesung die nachts 1x auf Lowbat prueft.

Dazu hab ich einfach eine Gruppe Batterie angelegt und der alle batteriebetribenen Devices zugeordnet. Die Magie findet auch hier in der function-Node statt … HMIP sendet z.B. LOW_BAT und nicht LOWBAT :roll_eyes: Die ggf. tauschungswuerdigen Devices kommen dann in ein Template und werden mir per Mail geschickt. Das kann ja jeder halten wie er dann mag (TIMTOWTDI, wie die Perler gerne sagen) :wink:

lowbat.txt (2.5 KB)

Viel Spass :wink:
– Micha

3 Likes

Vielen Dank für eure Arbeit :slight_smile:

Wenn ich den Flow von Micha importiere, gibts allerdings ne Fehlermeldung, das er mail nicht kennt.
Und wie man den im nightly node-BLUE enthaltenen Mail Knoten konfiguriert ist mir bislang völlig unklar.
Man bräuchte ja so etwas wie Host, Port, Username, Passwort, TLS …