einstellbare Temperaturalarmierung aufs Handy

Begonnen von tbals, 10 Dezember 2014, 15:47:39

Vorheriges Thema - Nächstes Thema

tbals

Hallo,

ich habe im Hause mehrere LaCrosse Temperatur-Sensoren, die per JeeLink am FHEM hängen. Damit man beim lüften nicht vergisst, die Fenster irgendwann wieder zu schliessen, habe ich mir eine Alarmfunktion gebaut, die ab einer einstellbaren Temperatur eine Meldung per pushover auf mein Handy schickt. Ausserdem soll diese Meldung nur alle 15 Minuten wiederholt werden.
So sieht das aus:

define is_tempalarmTH1 dummy
set is_tempalarmTH1 0

define clear_tempalarmTH1 at +*00:15:00 {\
        fhem("set is_tempalarmTH1 0");;\
}

define alarmlevelTH1 dummy
attr alarmlevelTH1 room Wohnzimmer
attr alarmlevelTH1 setList state:slider,10,1,30
attr alarmlevelTH1 webCmd state
set alarmlevelTH1 16

define tempalarmTH1 notify TH1:temperature.* {\
        my $th1lvl=ReadingsVal("alarmlevelTH1","state","0");;\
        if ($EVTPART1 <=$th1lvl && Value("is_tempalarmTH1") == "0") {\
                fhem("set is_tempalarmTH1 1");;\
                fhem("set pushmsg msg 'Wohnzimmer' 'Es ist zu kalt: $EVTPART1 Grad' '' 0 ''");;\
        }\
}


Nach dem FHEM reststart wird der Alarmlevel auf 16 Grad gesetzt und kann dann über den Slider nach Bedarf verändert werden.
1x JeeLink am ODROID C1 (FHEM2FHEM) für diverse LaCrosse Sensoren,  HMLAN für diverse Homematic Aktoren,
Haupt-FHEM auf Asus EeeBox und als DBlog-Server

jnewton957

#1
Hallo,

habe das Coding ausprobiert. Läuft wunderbar.

Habe es nun versucht, an mehreren Temeratorsensoren (Kühlschrank, Dachboden etc) zu kopieren. Dabei habe ich jeweils andere defines und $thXlvl  verwendet. $EVTPART1 bleibt ja dann bei allen Kopien auch $EVTPART1.

define is_tempalarmTH1 dummy

define clear_tempalarmTH1 at +*02:00:00 {\
        fhem("set is_tempalarmTH1 0");;\
}
define alarmlevelTH1 dummy
attr alarmlevelTH1 room 14_Steuerung
attr alarmlevelTH1 setList state:slider,1,1,20
attr alarmlevelTH1 webCmd state

define tempalarmTH1 notify netatmo_xxxxxx:temperature.* {\
        my $th1lvl=ReadingsVal("alarmlevelTH1","state","0");;\
        if ($EVTPART1 <=$th1lvl && Value("is_tempalarmTH1") == "0") {\
                fhem("set is_tempalarmTH1 1");;\
                fhem("set pushmsg message Aussentemperatur Es friert : $EVTPART1 Grad '' 0 ''");;\
        }\
}


#----------------------------------------------------------------------
#Frostwarnung Dachboden
#----------------------------------------------------------------------

define is_tempalarmDB1 dummy

define clear_tempalarmDB1 at +*02:09:00 {\
        fhem("set is_tempalarmDB1 0");;\
}
define alarmlevelDB1 dummy
attr alarmlevelDB1 alias Frostalarm Dachboden
attr alarmlevelDB1 room 14_Steuerung
attr alarmlevelDB1 setList state:slider,1,1,20
attr alarmlevelDB1 webCmd state

define tempalarmDB1 notify CUL_TX_1:temperature.* {\
        my $th12vl=ReadingsVal("alarmlevelDB1","state","0");;\
        if ($EVTPART1 <=$th12vl && Value("is_tempalarmDB1") == "0") {\
                fhem("set is_tempalarmDB1 1");;\
                fhem("set pushmsg message Dachbodentemperatur Es friert: $EVTPART1 Grad '' 0 ''");;\
        }\
}

#----------------------------------------------------------------------
#Frostwarnung Kuehlschrank
#----------------------------------------------------------------------

define is_tempalarmKS1 dummy

define clear_tempalarmKS1 at +*02:05:00 {\
        fhem("set is_tempalarmKS1 0");;\
}
define alarmlevelKS1 dummy
attr alarmlevelKS1 alias Temperaturalarm Kuehlschrank
attr alarmlevelKS1 room 14_Steuerung
attr alarmlevelKS1 setList state:slider,1,1,20
attr alarmlevelKS1 webCmd state

define tempalarmKS1 notify CUL_TX_2:temperature.* {\
        my $th13vl=ReadingsVal("alarmlevelKS1","state","0");;\
        if ($EVTPART1 >=$th13vl && Value("is_tempalarmKS1") == "0") {\
                fhem("set is_tempalarmKS1 1");;\
         


Allerdings wird nur die 1. Temerpaturalarmierung (Aussentemperatur) auch versendet. Wenn die anderen Sensoren eigentlich einen Alarm auslösen sollten, klappt es nicht.

Jemand eine Idee meines Fehlers ??
FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP