beim Umstieg von WhatsApp auf Pushover hat mich immer genervt, dass ich die Devices - die beispielsweise ein Batteriethema haben - nicht identifizeren konnte. Gelöst habe ich das ganze so:
Neues Transform File (Auszug):
Code: Alles auswählen
...
AussenVorgartenBeleuchtungUNREACH=Schalter Beleuchtung Vorgarten & Einfahrt (KEQ0170251)
AussenBodenfeuchtesensorUNREACH=Bodenfeuchtesensor (MEQ1594481)
InnenEGWohnzimmerTuersensorBattery=Bodenfeuchtesensor (MEQ1594481)
AussenBeregnungSegment1State=Beregnungssegment 1 (Vorgarten)
gAussenBeregnungSegment1=Beregnungssegment 1 (Vorgarten)
gAussenBeregnungSegment2=Beregnungssegment 2 (Garten)
AussenBeregnungSegment2State=Beregnungssegment 2 (Garten)
NetatmoOutdoorBattery=Netatmo Aussenmodul
...
Für die Netatmo Elemente musste ich noch eine besondere Behandlung einbauen:transform("MAP","devices.map",t.name)
Code: Alles auswählen
rule "Cron_BatteryCheck"
when
Time cron "0 0 8 1/1 * ? *"
//Time cron "20 * * * * ?"
then
//Netatmo Check
logInfo("HomeBox.SystemRules:Cron_BatteryCheck", "Starte Batterie Check")
//Netatmo Outdoor Modul
if(NetatmoOutdoorBatteryVP.state < 20) {
logInfo("HomeBox.SystemRules:Cron_BatteryCheck","Netatmo Outdoor Modul Batteriewarnung: " + NetatmoOutdoorBatteryVP.state + " Sending alert!")
NetatmoOutdoorBattery.postUpdate("true")
} else {
NetatmoOutdoorBattery.postUpdate("false")
}
//Netatmo Windmesser
if( NetatmoWindBatteryVP.state < 20) {
logInfo("HomeBox.SystemRules:Cron_BatteryCheck","Netatmo Wind Modul Batteriewarnung: " + NetatmoWindBatteryVP.state + " Sending alert!")
NetatmoWindBattery.postUpdate("true")
} else {
NetatmoWindBattery.postUpdate("false")
}
//Netatmo Regenmesser
if( NetatmoRainBatteryVP.state < 20) {
logInfo("HomeBox.SystemRules:Cron_BatteryCheck","Netatmo Regen Modul Batteriewarnung: " + NetatmoRainBatteryVP.state + " Sending alert!")
NetatmoRainBattery.postUpdate("true")
} else {
NetatmoRainBattery.postUpdate("false")
}
gSysBatteryState?.members.forEach[t |
if (t.state.toString() == "true"){
if (msg == null){
msg = transform("MAP","devices.map",t.name) + "\n"
} else {
msg = msg + transform("MAP","devices.map",t.name) + "\n"
}
}
logInfo("HomeBox.SystemRules:Cron_BatteryCheck", t.name + " " + t.state)
]
if (msg != null){
pushover("Batteriewarnung für die Devices:\n" + msg,1)
msg = null
}
end
Mich würde interessieren ob jemand eine andere/schlauere Lösung gebaut hat?!
Viele Grüße,
Seppy