FHEM Forum

FHEM => Automatisierung => Thema gestartet von: raiderxxl am 26 November 2018, 14:08:18

Titel: (Gelöst) Globale Temperaturwarnung (mit Ausnahmen) per Push und TTS
Beitrag von: raiderxxl am 26 November 2018, 14:08:18
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!
Titel: Antw:Globale Temperaturwarnung (mit Ausnahmen) per Push und TTS
Beitrag von: CoolTux am 26 November 2018, 14:17:24

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
Titel: Antw:Globale Temperaturwarnung (mit Ausnahmen) per Push und TTS
Beitrag von: raiderxxl am 26 November 2018, 14:29:39
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

Titel: Antw:Globale Temperaturwarnung (mit Ausnahmen) per Push und TTS
Beitrag von: CoolTux am 26 November 2018, 14:37:28
if ( $EVTPART1 >60 and AttrVal($NAME,'TemperaturAlarm','none') eq 'ja' ) {
my $alias = AttrVal($NAME,"alias",$NAME);
fhem ("set NachtlichtPapa on-for-timer 300");
        ........