Hallo
Möchte mir mit hilfe von doif ein kleine Alarmanlage für den Keller in fhem anlegen
Mein Problem ist sobald bei diesen Code hier alle Bewohner abwesend sind
ich einen daueralarm habe obwohl unten im Keller überhaupt nichts passiert.
Was ist falsch an diesen Code? Er soll nur auslösen wenn eine Tür geöffnet oder eine
Bewegung stattfindet.
Internals:
DEF ([rr_andre] eq "absent" and [rr_gabi] eq "absent" and (["^tuerkontakt_:"motion"] or [fensterkontakt_keller] eq "open" or ["^MYSENSOR_:tripped1"] ne "off")) (set Pushover1 msg 'Externer Alarm' 'Keller Tuer wurde geoeffnet ["^tuerkontakt_:state"] $DEVICE' '' 2 'persistent' 60 1000 {(localtime)})(set Tuer.GongMP3 playTone 023)({fhem ("get keller_ip image")})(set andrefhem image /opt/fhem/FHEM/keller_ip_snapshot.jpg)(set pushbullet_andre message Es wurde im Keller eine der Türen unbefugt geöffnet $DEVICE {(localtime)})((msg audio @Sonos_Schlafzimmer |Hint| Bewegung im Keller festgestellt Einbrecher im Haus Verschwinden Sie aus diesen Haus sofort Alarm ausgelöst O[{"VOLUME":"90"}]))
NAME tuerkontakt_haus
NR 238
NTFY_ORDER 50-tuerkontakt_haus
STATE cmd_1
TYPE DOIF
Helper:
Dblog:
Error:
Logdb:
TIME 1465468841.19337
VALUE set Pushover1 msg 'Externer Alarm' 'Keller Tuer wurde geoeffnet "^tuerkontakt_:state" rr_andre' '' 2 'persistent' 60 1000 Thu Jun 9 12:40:41 2016: Syntax: Pushover1 msg ['<title>'] '<msg>' ['<device>' <priority> '<sound>' [<retry> <expire> ['<url_title>' '<action>']]]
Readings:
2016-06-09 12:40:46 Device rr_gabi
2016-06-09 12:40:48 cmd 1.6
2016-06-09 12:40:48 cmd_event rr_andre
2016-06-09 12:40:48 cmd_nr 1
2016-06-09 12:40:48 cmd_seqnr 6
2016-06-09 12:40:40 e_rr_andre_STATE absent
2016-06-09 12:40:46 e_rr_gabi_STATE absent
2016-06-09 12:40:48 state cmd_1
2016-06-09 12:40:48 wait_timer no timer
Condition:
0 InternalDoIf($hash,'rr_andre','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "absent" and InternalDoIf($hash,'rr_gabi','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "absent" and (EventDoIf('^tuerkontakt_',$hash,'"motion',0) or InternalDoIf($hash,'fensterkontakt_keller','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "open" or EventDoIf('^MYSENSOR_',$hash,'tripped1',0) ne "off")
Devices:
0 rr_andre rr_gabi fensterkontakt_keller
all rr_andre rr_gabi fensterkontakt_keller
Do:
0:
0 set Pushover1 msg 'Externer Alarm' 'Keller Tuer wurde geoeffnet ["^tuerkontakt_:state"] $DEVICE' '' 2 'persistent' 60 1000 {(localtime)}
1 set Tuer.GongMP3 playTone 023
2 {fhem ("get keller_ip image")}
3 set andrefhem image /opt/fhem/FHEM/keller_ip_snapshot.jpg
4 set pushbullet_andre message Es wurde im Keller eine der Türen unbefugt geöffnet $DEVICE {(localtime)}
5 (msg audio @Sonos_Schlafzimmer |Hint| Bewegung im Keller festgestellt Einbrecher im Haus Verschwinden Sie aus diesen Haus sofort Alarm ausgelöst O[{"VOLUME":"90"}])
1:
Helper:
event durTimerAbsence_cr: 11,durTimerAbsence: 00:11:00
globalinit 1
last_timer 0
sleepdevice rr_andre
sleepsubtimer -1
sleeptimer -1
timerdev rr_gabi
timerevent durTimerAbsence_cr: 11,durTimerAbsence: 00:11:00
triggerDev rr_gabi
timerevents:
durTimerAbsence_cr: 11
durTimerAbsence: 00:11:00
timereventsState:
durTimerAbsence_cr: 11
durTimerAbsence: 00:11:00
triggerEvents:
durTimerAbsence_cr: 11
durTimerAbsence: 00:11:00
triggerEventsState:
durTimerAbsence_cr: 11
durTimerAbsence: 00:11:00
Internals:
0 rr_andre:STATE rr_gabi:STATE fensterkontakt_keller:STATE
all rr_andre:STATE rr_gabi:STATE fensterkontakt_keller:STATE
Itimer:
Readings:
Regexp:
0:
0 ^tuerkontakt_:"motion
1 ^MYSENSOR_:tripped1
All:
0 ^tuerkontakt_:"motion
1 ^MYSENSOR_:tripped1
State:
Trigger:
Attributes:
do always
icon fts_door_slide_2w_open_r
room AliRF,Status
wait 1,1,2,2,2
([?rr_andre] eq "absent" and [?rr_gabi] eq "absent" and (["^tuerkontakt_:"motion"] or [fensterkontakt_keller] eq "open" or ["^MYSENSOR_:tripped1"] ne "off")) (set Pushover1 msg 'Externer Alarm' 'Keller Tuer wurde geoeffnet ["^tuerkontakt_:state"] $DEVICE' '' 2 'persistent' 60 1000 {(localtime)})(set Tuer.GongMP3 playTone 023)({fhem ("get keller_ip image")})(set andrefhem image /opt/fhem/FHEM/keller_ip_snapshot.jpg)(set pushbullet_andre message Es wurde im Keller eine der Türen unbefugt geöffnet $DEVICE {(localtime)})((msg audio @Sonos_Schlafzimmer |Hint| Bewegung im Keller festgestellt Einbrecher im Haus Verschwinden Sie aus diesen Haus sofort Alarm ausgelöst O[{"VOLUME":"90"}]))
Du kannst aber auch
([?RESIDENTS] eq "absent" and (["^tuerkontakt_:"motion"] or [fensterkontakt_keller] eq "open" or ["^MYSENSOR_:tripped1"] ne "off")) (set Pushover1 msg 'Externer Alarm' 'Keller Tuer wurde geoeffnet ["^tuerkontakt_:state"] $DEVICE' '' 2 'persistent' 60 1000 {(localtime)})(set Tuer.GongMP3 playTone 023)({fhem ("get keller_ip image")})(set andrefhem image /opt/fhem/FHEM/keller_ip_snapshot.jpg)(set pushbullet_andre message Es wurde im Keller eine der Türen unbefugt geöffnet $DEVICE {(localtime)})((msg audio @Sonos_Schlafzimmer |Hint| Bewegung im Keller festgestellt Einbrecher im Haus Verschwinden Sie aus diesen Haus sofort Alarm ausgelöst O[{"VOLUME":"90"}]))
Und einen zweiten Zweig machen.
Geht leider nicht da ich in Residents noch 3 ibeacons
zur raumortung mit integriert habe.
Hatte das alles vorher mit mehreren doifs realisiert
wollte halt der Übersicht wegen alles etwas verkürzen :(
Nur fehlen mir bisher die Kenntnisse wo denn hier
mein Fehler liegt oder warum das nicht funktioniert wie
es soll
Hast Du Dir denn angeschaut was ich geändert habe. Deine Roommates haben Fragezeichen verpasst bekommen. Das sorgt darauf das auf die nicht getriggert wird sondern nur eine Bedingungsabfrage erfolgt.
ah glatt übersehen werde das mal so testen danke für die Hilfe