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