Alarm auslösen wenn kein Schalter betätigt wurde

Begonnen von lestremm, 29 Dezember 2013, 17:45:40

Vorheriges Thema - Nächstes Thema

lestremm

Hallo zusammen,

ich hab heute nach folgender Anleitung:

http://www.fhemwiki.de/wiki/Zuhause-Status

und über den FS20 Funkschalter die Home-Status erfolgreich im fhm implementiert. Jetzt habe ich noch einen HMS100TFK, mit dem ich gerne folgendes realisieren würden:

1. Wenn die Tür aufgeht, setze den HomeStatus = 5
2. Wenn innerhalb von 10 Sekunden kein anderer HomeStatus gesetzt wird, löse Alarm aus

Das ganze Stelle ich mir dann so vor, dass man beim Betreten der Wohnung innerhalb von 10 Sekunden einen Schalter am FS20 betätigen muss, sonst gibt es Alarm.

1. Klappt ohne Problem, mit 2. Komme ich nicht so richtig weiter. Definiert habe ich:

define DoorOpen notify Haustuer_K:Switch.*on set HomeStatus 5
define SetAlarm notify HomeStatus { sleep 10 ;; if ( % eq "5" ) { fhem("set HomeStatus 6") }}

Das Problem ist, dass das sleep 10 nicht berücksichtigt wird sondern der Status sofort auf 6 gesetzt wird. Weiterhin bin ich mir auch nicht sicher, ob sleep wirklich erst nach den 10 Sekunden auf die Variable guckt oder die Variable im Notify-Event mit übergeben wird und nicht durch den FS20 überschrieben werden kann.

Wäre super, wenn ihr mir da etwas auf die Sprünge helfen würdet.

Vielen Dank!
Sebastian

Puschel74

Hallo,

versuchs mal so:
define SetAlarm notify HomeStatus {
  if ($EVENT == "5" ) {
    fhem("define status_setzen at +00:00:10 set HomeStatus 6") if (Value("status_setzen") eq "");
  }
  elsif ($EVENT <= "4) {
    fhem("delete status_setzen") if(Value("status_setzen") ne "");
  }
}

Kompliziert und umständlich aber sollte so klappen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

lestremm

Hi,

vielen Dank für deine Antwort! Habe es mit dem Beitrag von hier:

http://www.fhemwiki.de/wiki/Alarmanlage

zusammenfassend so gelöst:


define act_on_ANLAGE_SCHARF_on notify ANLAGE_SCHARF:1 { if ( Value("ANLAGE_STATUS") ne "60sec" && Value("ANLAGE_STATUS") ne "scharf") { fhem("set ANLAGE_STATUS 60sec;; set ALARM_STATUS bereit;; de\
fine verzoegert_scharf at +00:01:00 set ANLAGE_STATUS scharf;;") }}

define act_on_ANLAGE_SCHARF_off notify ANLAGE_SCHARF:0 { if ( Value("ANLAGE_STATUS") eq "60sec" || Value("ANLAGE_STATUS") eq "scharf") { fhem("set ANLAGE_STATUS unscharf;; set ALARM_STATUS offline\
;; delete verzoegert_scharf ;; delete alarm_ausloesen") }}

define DoorOpen notify Haustuer_K:Switch.*on {if ( Value("ANLAGE_STATUS") eq "scharf") {fhem ("define alarm_ausloesen at +00:00:15 set HomeStatus 5")}}


Korrekterweise müsste ich


set HomeStatus 5


noch durch


set ALARM_STATUS alarm


ersetzen. Da ich aber eh ein Konsolenkommando auslösen wollte, wird das komplett ersetzt.

eine Frage noch: Warum umständlich? Weil es erst definiert wird mit Trigger? Geht es denn auch eleganter? Das mit dem löschen innerhalb des Zeitraums funktioniert jedenfalls und war ja auch im FHEMWiki so beschrieben.

Viele Grüße
Sebastian