Seite 1 von 1

Optimierung von Benachrichtigungen

Verfasst: 30. Nov 2016 08:27
von seppy
Moin Zusammen,

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
...
In der Regel für den Batteriecheck nutze ich jetzt den Transformmechanismus.
transform("MAP","devices.map",t.name)
Für die Netatmo Elemente musste ich noch eine besondere Behandlung einbauen:

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

Re: Optimierung von Benachrichtigungen

Verfasst: 4. Dez 2016 10:31
von Cyrelian
Hi Seppy,

ich glaube das ist schon eine sehr schlaue Lösung :D . Ich habe das ähnlich für den "Urlaubsmodus".

Code: Alles auswählen

EGWohnzimmerTuersensor=Wohnzimmer Terrassentuer
EGBadezimmerFenstersensor=Badezimmerfenster
EGEingangHaustuersensor=Haustuer
EGSchlafzimmerTuersensor=Schlafzimmer Terrassentuer 
EGKuecheFenstersensor=Kuechenfenster
EGKinderzimmerFenstersensor=Kinderzimmerfenster rechts
OGSchlafzimmerTuersensor=OGSchlafzimmer Terrassentuer
GarageTorsensor=Garagentor
-=-Fehler bei der Initialisierung-
CU
Cyrelian