(Gelöst) Globale Temperaturwarnung (mit Ausnahmen) per Push und TTS

Begonnen von raiderxxl, 26 November 2018, 14:08:18

Vorheriges Thema - Nächstes Thema

raiderxxl

Hallo,
ich habe ein simples DOIF notify dazu benutzt mich vor erhöhter Temperatur zu warnen:


.*:temperature.* {
if ($EVTPART1 >60) {
my $alias = AttrVal($NAME,"alias",$NAME);
fhem ("set NachtlichtPapa on-for-timer 300");
fhem ("set pushmsg msg priority=2 retry=30 expire=300 sound=siren title='Temperaturwarnung $alias' Die Temperatur beträgt $EVTPART1 °C !!!");
fhem ("defmod Temp1_Alarm at +00:00:28 set SchlafzimmerLS speak Temperaturwarnung für $alias Die Temperatur beträgt $EVTPART1 °C !");
fhem ("defmod Temp_Alarm at +00:00:13 set Wecker ttsMsg Warnung für $alias Die Temperatur beträgt $EVTPART1 °C !");
}
}



Funktioniert auch super! Aber ich habe nun ein Grillthermometer das auch über die 60 Grad geht ;)
Ich habe mir nun ein UserAttribut angelegt (TemperaturAlarm=ja/nein). Ich möchte nun eine Ausnahme formulieren das
das UserAttribut prüft.


.*:temperature.* {
if ([$EVTPART1] >60) and
([?TemperaturAlarm:$NAME] ne "nein"){
my $alias = AttrVal($NAME,"alias",$NAME);
fhem ("set Nachtlicht_Papa on-for-timer 300");
fhem ("set pushmsg msg priority=2 retry=30 expire=300 sound=siren title='Temperaturwarnung $alias' Die Temperatur beträgt $EVTPART1 °C !!!");
fhem ("defmod Temp1_Alarm at +00:00:28 set SchlafzimmerLS speak Temperaturwarnung für $alias Die Temperatur beträgt $EVTPART1 °C !");
fhem ("defmod Temp_Alarm at +00:00:13 set Wecker ttsMsg Warnung für $alias Die Temperatur beträgt $EVTPART1 °C !");
}
}


Ich bin zu Doof für dieses DOIF notify... bitte helft mir kurz vielleicht bringt es dem einen oder anderen was ;-)

Lösung von CoolTux:

defmod Temperaturwarnung notify .*:temperature.* { \
if ( $EVTPART1 >60 and AttrVal($NAME,'TemperaturAlarm','none') eq 'ja' ){\
my $alias = AttrVal($NAME,"alias",$NAME);;\
fhem ("set Nachtlicht_Papa on-for-timer 300");;\
fhem ("set pushmsg msg priority=2 retry=30 expire=300 sound=siren title='Temperaturwarnung $alias' Die Temperatur beträgt $EVTPART1 °C !!!");;\
fhem ("defmod Temp1_Alarm at +00:00:28 set SchlafzimmerLS speak Temperaturwarnung für $alias Die Temperatur beträgt $EVTPART1 °C !");;\
fhem ("defmod Temp_Alarm at +00:00:13 set Wecker ttsMsg Warnung für $alias Die Temperatur beträgt $EVTPART1 °C !");;\
}\
}



DAAAANKE CoolTux du bist mein Held des Tages!  :-*

Pascal


*EDIT* notify nicht DOIF! Kopf>Tisch!
FHEM VM Ubuntu-Server auf Intel® NUC-Kit NUC6i5SYH ESXi 6.5
FHEM auf Raspberry2 OSMC Hyperion und TTS

Homematic,TradfriHub und Lampen,WIFILight,Fritzbox,FritzDECT,NanoCul433,IT Steckdosen,Diverse Nachbar-Sensoren,XiaomiZigbee,
ESP_Signalduino,ESPEasy,Amad,HarmonyHub,WLED,MQTT,Tasmota....

CoolTux

#1

if ( $EVTPART1 >60 and AttrVal($NAME,'TemperaturAlarm','none') eq 'ja' ) {
my $alias = AttrVal($NAME,"alias",$NAME);
fhem ("set NachtlichtPapa on-for-timer 300");
        ........


Dann musst Du auf Perlebene auch Perlcode verwenden und entsprechende Routinen aufrufen.
Du hattest doch in Deiner Ursprungsversion schon eine entsprechende Abfrage
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

raiderxxl

#2
Hi,

logo ist das ein notify und KEIN DOIF...

Müsste dann so aussehen oder?


.*:temperature.* {
if ($EVTPART1 >60 && $NAME:TemperaturAlarm=ja){
my $alias = AttrVal($NAME,"alias",$NAME);
fhem ("set Nachtlicht_Papa on-for-timer 300");
fhem ("set pushmsg msg priority=2 retry=30 expire=300 sound=siren title='Temperaturwarnung $alias' Die Temperatur beträgt $EVTPART1 °C !!!");
fhem ("defmod Temp1_Alarm at +00:00:28 set SchlafzimmerLS speak Temperaturwarnung für $alias Die Temperatur beträgt $EVTPART1 °C !");
fhem ("defmod Temp_Alarm at +00:00:13 set Wecker ttsMsg Warnung für $alias Die Temperatur beträgt $EVTPART1 °C !");
}
}


Pascal

FHEM VM Ubuntu-Server auf Intel® NUC-Kit NUC6i5SYH ESXi 6.5
FHEM auf Raspberry2 OSMC Hyperion und TTS

Homematic,TradfriHub und Lampen,WIFILight,Fritzbox,FritzDECT,NanoCul433,IT Steckdosen,Diverse Nachbar-Sensoren,XiaomiZigbee,
ESP_Signalduino,ESPEasy,Amad,HarmonyHub,WLED,MQTT,Tasmota....

CoolTux

if ( $EVTPART1 >60 and AttrVal($NAME,'TemperaturAlarm','none') eq 'ja' ) {
my $alias = AttrVal($NAME,"alias",$NAME);
fhem ("set NachtlichtPapa on-for-timer 300");
        ........
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net