Hallo zusammen,
ich habe irgendwie wieder einen Denkfehler drin. Ich möchte eine Pushnachricht bekommen, wenn eine bestimmte Tür geöffnet wird und von einer Bewohnergruppe niemand anwesend ist.
Der Türkontakt funktioniert:
Internals:
DEF ShutterContact 177c04
FUUID 5fac5458-f33f-a44f-4f71-d4c5d38e9f217277
IODev cm
LASTInputDev cm
MSGCNT 37
NAME Kontakt_Flur
NR 583
NTFY_ORDER 50-Kontakt_Flur
STATE opened
SVN 23517
TYPE MAX
addr 177c04
cm_MSGCNT 37
cm_TIME 2022-11-12 09:36:34
devtype 4
type ShutterContact
READINGS:
2022-11-10 23:19:48 IODev cm
2022-11-12 09:36:34 RSSI -70
2022-11-12 09:36:34 battery ok
2022-11-12 09:36:34 batteryState ok
2022-11-12 09:36:34 onoff 1
2022-11-12 09:36:34 peerIDs 000000
2022-11-12 09:36:34 peerList Broadcast
2022-11-12 09:36:34 rferror 0
2022-11-12 09:36:34 state opened
2022-11-12 09:36:06 windowOpen 0
helper:
io:
CUL868:
raw Z0BBF0030177C040000000002
rssi -70
time 1668242193.9885
Attributes:
IODev cm
devStateIcon opened:fts_door_open closed:fts_door:FS20.off
icon control_building_modern_s_2og_eg
model ShutterContact
room Flur
einen dummy habe ich auch angelegt:
Internals:
FUUID 5c500797-f33f-a44f-bd22-52b7c9c96f907dc2
NAME UnautorisierteTueroeffnung
NR 119
STATE off
TYPE dummy
READINGS:
2022-11-12 09:34:34 state off
Attributes:
devStateIcon on:fts_door_open off:fts_door
room Flur,Haus
sowie je ein notify für an und aus des dummys
Save config
Dashboard
icoHaus Haus
Bad_klein
Arbeitszimmer
Schlafzimmer
Bad
Kinderzimmer
Tania
Janic
Flur
Küche
Wohnzimmer
Garten
Hausapotheke
Heizungskeller
Abstellkammer
BMZ
Fremdenzimmer
Funkzentrale
Heizung Grafik
IT
Kalender
Residents
Unsorted
Wetter
gong_ansagen
icoEverything Everything
Logfile
Commandref
Remote doc
Edit files
Select style
Event monitor
restart
stop
updatecheck
update
reloadMyutils
verbose 5
cm_pairmode
Internals:
DEF Kontakt_Flur:opened.* { fhem ("set UnautorisierteTueroeffnung on") if (Value("Bewohner_Eltern") eq "absent")}
FUUID 5c500797-f33f-a44f-9286-20123cb178dd2d36
NAME UnautorisierteTueroeffnungAn
NOTIFYDEV Kontakt_Flur
NR 121
NTFY_ORDER 50-UnautorisierteTueroeffnungAn
REGEXP Kontakt_Flur:opened.*
STATE 2022-11-12 09:36:34
TRIGGERTIME 1668242194.03528
TYPE notify
READINGS:
2022-11-12 09:28:27 state active
2022-11-12 09:36:34 triggeredByDev Kontakt_Flur
2022-11-12 09:36:34 triggeredByEvent opened
Attributes:
room Flur,Haus
Internals:
DEF Kontakt_Flur:closed.* { fhem ("set UnautorisierteTueroeffnung off") if (Value(("Bewohner_Eltern") eq "absent") || ("Bewohner_Eltern") eq "gone")}
FUUID 5c500797-f33f-a44f-98fc-77eb5e386870842b
NAME UnautorisierteTueroeffnungAus
NOTIFYDEV Kontakt_Flur
NR 122
NTFY_ORDER 50-UnautorisierteTueroeffnungAus
REGEXP Kontakt_Flur:closed.*
STATE 2022-11-12 09:36:06
TRIGGERTIME 1668242166.88363
TYPE notify
READINGS:
2022-11-11 14:13:32 state active
2022-11-12 09:36:06 triggeredByDev Kontakt_Flur
2022-11-12 09:36:06 triggeredByEvent closed
Attributes:
room Flur,Haus
ein notify für den pushover habe ich auch
Internals:
DEF UnautorisierteTueroeffnung:on { system ("curl -s -F 'token=geheim' -F 'user=geheim' -F 'message=Haus\nUnautorisierte Türöffnung' https://api.pushover.net/1/messages.json")}
FUUID 5c500797-f33f-a44f-c1d5-77c7e47d60d7b9ac
NAME UnautorisierteTueroeffnungPushover
NOTIFYDEV UnautorisierteTueroeffnung
NR 124
NTFY_ORDER 50-UnautorisierteTueroeffnungPushover
REGEXP UnautorisierteTueroeffnung:on
STATE 2022-11-12 09:34:27
TRIGGERTIME 1668242067.47688
TYPE notify
READINGS:
2022-11-10 23:18:41 state active
2022-11-12 09:34:27 triggeredByDev UnautorisierteTueroeffnung
2022-11-12 09:34:27 triggeredByEvent on
Attributes:
room Haus
mit set UnautorisierteTueroeffnung on wird die pushover nachricht auch gesendet aber UnautorisierteTueroeffnungAn und UnautorisierteTueroeffnungAus schalten den dummy nicht. Laut eventmonitor arbeitet auch der Kontakt korrekt:
2022-11-12 09:50:15 MAX Kontakt_Flur closed
2022-11-12 09:50:15 MAX Kontakt_Flur RSSI: -68.5
2022-11-12 09:50:15 MAX Kontakt_Flur battery: ok
2022-11-12 09:50:15 MAX Kontakt_Flur batteryState: ok
2022-11-12 09:50:15 MAX Kontakt_Flur rferror: 0
2022-11-12 09:50:15 MAX Kontakt_Flur onoff: 0
2022-11-12 09:50:15 MAX Kontakt_Flur windowOpen: 0
2022-11-12 09:50:15 MAX Kontakt_Flur peerList: Broadcast
2022-11-12 09:50:15 MAX Kontakt_Flur peerIDs: 000000
....
2022-11-12 09:50:19 MAX Kontakt_Flur opened
2022-11-12 09:50:19 MAX Kontakt_Flur RSSI: -71.5
2022-11-12 09:50:19 MAX Kontakt_Flur battery: ok
2022-11-12 09:50:19 MAX Kontakt_Flur batteryState: ok
2022-11-12 09:50:19 MAX Kontakt_Flur rferror: 0
2022-11-12 09:50:19 MAX Kontakt_Flur onoff: 1
2022-11-12 09:50:19 MAX Kontakt_Flur peerList: Broadcast
2022-11-12 09:50:19 MAX Kontakt_Flur peerIDs: 000000
Ich muss da also irgendwo zwischen einen Fehler haben das die notifys nicht den dummy schalten :-(
Gerne nehme ich auch andere bessere schnellere zuverlässigere Ideen entgegen ;-)
Gruß
Micha
Wozu brauchst Du da eigentlich einen dummy? Und wozu ZWEI notify, die auf den dummy reagieren?
Die ganze Funktionalität und Reaktion kann man doch mit dem Türkontakt und einem notify auf den Türkontakt selbst lösen?
Prinzip:
define n_tuerkontakt notify Kontakt_Flur:(opened|closed) {} # fraglich, ob man den Trigger auf closed überhaupt für irgendwas braucht
Im Ausführungsteil ist dann zu unterscheiden, ob die Bewohnergruppe anwesend ist oder nicht.
# das ist eine Prinzipbeschreibung, syntaktisch musst Du das entsprechend ausformulieren!
{ return if "Bewohner_Eltern" eq anwesend;
# jetzt kommt der gewünschte Aktionsteil
if event = opened {
system ("curl -s -F 'token=geheim' -F 'user=geheim' -F 'message=Haus\nUnautorisierte Türöffnung' https://api.pushover.net/1/messages.json");
} else {
# hier kommt der Teil für closed hin. Aber wenn es den dummy nicht gibt, braucht man hier vermutlich gar nix tun.
};
}
An dieser Stelle
if (Value(("Bewohner_Eltern") eq "absent") || ("Bewohner_Eltern") eq "gone")
hast Du Syntaxfehler. Zum Einen fehlt das zweite Value() und zum Anderen passen die Klammern nicht:
if (Value("Bewohner_Eltern") eq "absent" || Value("Bewohner_Eltern") eq "gone")
Warum mappst Du eigentlich nicht "gone" auf "absent"? Das würde Dir eine der Abfragen einsparen.
Und das Arbeiten mit Value() ist von Haus aus gruslig, aber das ist ein anderes Thema. Solange der Unfug in der commandref steht, wird es sich nicht bessern.
--
Hallo @betateilchen,
vielen Dank für die Tipps. Den dummy wollte ich nutzen zur grafischen Darstellung und zur Kontrolle ob funktioniert was ich vorhabe.
define UnautorisierteTueroeffnung_n notify Kontakt_Flur:(opened|closed) {}
ist natürlich kürzer und vermutlich besser. ;-)
Ich wollte dann die pushover einsetzen für die Abewesenheit:
Kontakt_Flur:(opened|closed) { return if "Bewohner_Eltern" eq absent;
if event = opened {
system ("curl -s -F 'token=geheim' -F 'user=geheim' -F 'message=Haus\nUnautorisierte Türöffnung auf' https://api.pushover.net/1/messages.json");
} else {
system ("curl -s -F 'token=geheim' -F 'user=geheim' -F 'message=Haus\nUnautorisierte Türöffnung zu' https://api.pushover.net/1/messages.json");
};
}
dabei erhalte ich aber schon Fehlermeldungen :-(
syntax error at (eval 206621) line 2, near "if event "
syntax error at (eval 206621) line 4, near "} else"
syntax error at (eval 206621) line 7, near ";
}"
Bareword "absent" not allowed while "strict subs" in use at (eval 206621) line 1.
eigentlich wollte ich es sogar erweitern um
set UnautorisierteTueroeffnung on
set UnautorisierteTueroeffnung off
um es grafisch darzustellen.
Ein zusammenfassen von absent und gone wäre mir auch lieb, habe das mit dem mapping aber nicht gefunden.
Das mit dem Value ist vermutlich wirklich so drin, weil meist auf die commandref verweisen wird und ich ja meine Muster anhand der commandref baue.
Gruß
Micha
Ich hab das leider noch immer nicht hinbekommen.
Zitat von: mfeske am 05 Dezember 2022, 12:19:34
Ich hab das leider noch immer nicht hinbekommen.
Wo soll man da anfangen/weitermachen...
Schon mal versucht Perl-Anleitungen im Internet zu lesen?
if(Bedingung){Ausführung}
D.h. deine Bedingungen müssen schon mal in Runde Klammern.
event: was soll das sein? ;)
Variablen in Perl beginnen mit einem "Dollarzeichen", also mindestens mal $event...
Allerdings heißt das was du (verm.) meinst: $EVENT (also groß geschrieben).
(je nachdem wie der Inhalt von $EVENT tatsächlich aussieht kann aber auch $EVTPART1 oder $EVTPART2 usw. zutreffen)
Vergleichsoperatoren:
Zeichenketten werden mittels eq ne usw. verglichen
Zahlen mit == != < > usw.
Nur ein = wäre/ist eine Zuweisung und KEIN Vergleich.
"Bewohner_Eltern": was soll das sein? ;)
ReadingsVal("Bewohner_Eltern", "WELCHES-READING", "")
oder
ReadingsVal("WELCHES-DEVICE", "Bewohner_Eltern", "")
oder ???
(geht auch mittels "setMagic" aber das ist mir [noch zu] "suspekt ;) )
usw. usf.
Ich wollte schon einen Vorschlag posten aber es ist noch zu viel unklar, siehe z.B. "Bewohner_Eltern"...
Gruß, Joachim
@betateilchen: sorry für's "Einmischen" ;)
Hallo @MadMax-FHEM,
vielen Dank für das Einmischen ;-) und die Hinweise. PERL muss ich wirklich lernen :-(
Ich hatte jetzt folgendes versucht:
Kontakt_Flur:(opened|closed) { return if ("Bewohner_Eltern" eq absent);
if ($EVENT = opened) {
system ("curl -s -F 'token=geheim' -F 'user=geheim' -F 'message=Haus\nUnautorisierte Türöffnung auf' https://api.pushover.net/1/messages.json");
} else {
system ("curl -s -F 'token=geheim' -F 'user=geheim' -F 'message=Haus\nUnautorisierte Türöffnung zu' https://api.pushover.net/1/messages.json");
};
}
Bekomme aber weiterhin die Bareword Fehlermeldung:
Bareword "absent" not allowed while "strict subs" in use at (eval 1670342) line 1.
Bareword "opened" not allowed while "strict subs" in use at (eval 1670342) line 2.
Eltern ist die Anwesenheit wenn einer der Eltern anwesend ist
Internals:
DURATIONTIMER 1670501820.35033
FUUID 5c5007a8-f33f-a44f-5a09-6a3b70fed4c67e17
FVERSION 10_RESIDENTS.pm:0.195330/2019-06-02
NAME Eltern
NOTIFYDEV global,rr_location_dana,rr_location_michael
NR 398
NTFY_ORDER 50-Eltern
READY 1
ROOMMATES rr_location_dana,rr_location_michael
STATE absent
TYPE RESIDENTS
READINGS:
2022-12-08 13:16:00 durTimerAbsence 05:35:01
2022-12-08 13:16:00 durTimerAbsence_cr 335
2022-12-08 07:40:59 durTimerPresence 00:00:00
2022-12-08 07:40:59 durTimerPresence_cr 0
2019-02-26 18:36:37 durTimerSleep 00:00:00
2019-02-26 18:36:37 durTimerSleep_cr 0
2019-06-07 11:29:24 homealoneSubtype -
2019-06-07 11:29:24 homealoneType -
2022-12-08 07:40:59 lastActivity absent
2022-12-08 07:40:59 lastActivityBy location
2022-12-08 07:40:59 lastActivityByDev rr_location_michael
2022-12-07 20:37:08 lastArrival 2022-12-07 20:37:08
2022-12-08 07:40:59 lastDeparture 2022-12-08 07:40:59
2022-12-07 20:37:08 lastDurAbsence 00:02:06
2022-12-07 20:37:08 lastDurAbsence_cr 2
2022-12-08 07:40:59 lastDurPresence 11:03:51
2022-12-08 07:40:59 lastDurPresence_cr 664
2019-06-07 12:30:04 lastHomealoneSubtype -
2019-06-07 12:30:04 lastHomealoneType -
2022-12-08 07:40:59 lastState home
2022-12-08 07:40:59 presence absent
2022-12-08 07:40:59 residentsAbsent 1
2022-12-08 07:40:59 residentsAbsentDevs rr_location_michael
2022-12-08 07:40:59 residentsAbsentNames location
2019-02-26 18:37:13 residentsAsleep 0
2019-02-26 18:37:13 residentsAsleepDevs -
2019-02-26 18:37:13 residentsAsleepNames -
2019-02-26 18:37:13 residentsAwoken 0
2019-02-26 18:37:13 residentsAwokenDevs -
2019-02-26 18:37:13 residentsAwokenNames -
2022-11-11 17:01:45 residentsGone 1
2022-11-11 17:01:45 residentsGoneDevs rr_location_dana
2022-11-11 17:01:45 residentsGoneNames location
2019-02-26 18:37:13 residentsGotosleep 0
2019-02-26 18:37:13 residentsGotosleepDevs -
2019-02-26 18:37:13 residentsGotosleepNames -
2022-12-08 07:40:59 residentsHome 0
2022-12-08 07:40:59 residentsHomeDevs -
2022-12-08 07:40:59 residentsHomeNames -
2019-02-26 18:37:13 residentsTotal 2
2022-12-08 07:40:59 residentsTotalAbsent 2
2022-12-08 07:40:59 residentsTotalAbsentDevs rr_location_dana,rr_location_michael
2022-12-08 07:40:59 residentsTotalAbsentNames location, location
2019-02-26 18:37:13 residentsTotalGuests 0
2019-02-26 18:37:13 residentsTotalGuestsAbsent 0
2019-02-26 18:37:13 residentsTotalGuestsAbsentDevs -
2019-02-26 18:37:13 residentsTotalGuestsAbsentNames -
2019-02-26 18:37:13 residentsTotalGuestsPresent 0
2019-02-26 18:37:13 residentsTotalGuestsPresentDevs -
2019-02-26 18:37:13 residentsTotalGuestsPresentNames -
2019-06-07 11:29:24 residentsTotalPeople 2
2022-12-08 07:40:59 residentsTotalPeopleAbsent 2
2022-12-08 07:40:59 residentsTotalPeopleAbsentDevs rr_location_dana,rr_location_michael
2022-12-08 07:40:59 residentsTotalPeopleAbsentNames location, location
2022-12-08 07:40:59 residentsTotalPeoplePresent 0
2022-12-08 07:40:59 residentsTotalPeoplePresentDevs -
2022-12-08 07:40:59 residentsTotalPeoplePresentNames -
2019-06-07 11:29:24 residentsTotalPets 0
2019-06-07 11:29:24 residentsTotalPetsAbsent 0
2019-06-07 11:29:24 residentsTotalPetsAbsentDevs -
2019-06-07 11:29:24 residentsTotalPetsAbsentNames -
2019-06-07 11:29:24 residentsTotalPetsPresent 0
2019-06-07 11:29:24 residentsTotalPetsPresentDevs -
2019-06-07 11:29:24 residentsTotalPetsPresentNames -
2022-12-08 07:40:59 residentsTotalPresent 0
2022-12-08 07:40:59 residentsTotalPresentDevs -
2022-12-08 07:40:59 residentsTotalPresentNames -
2019-02-26 18:37:13 residentsTotalRoommates 2
2022-12-08 07:40:59 residentsTotalRoommatesAbsent 2
2022-12-08 07:40:59 residentsTotalRoommatesAbsentDevs rr_location_dana,rr_location_michael
2022-12-08 07:40:59 residentsTotalRoommatesAbsentNames location, location
2022-12-08 07:40:59 residentsTotalRoommatesPresent 0
2022-12-08 07:40:59 residentsTotalRoommatesPresentDevs -
2022-12-08 07:40:59 residentsTotalRoommatesPresentNames -
2019-02-26 18:37:13 residentsTotalWakeup 0
2019-02-26 18:37:13 residentsTotalWakeupDevs -
2019-02-26 18:37:13 residentsTotalWakeupNames -
2019-02-26 18:37:13 residentsTotalWayhome 0
2019-02-26 18:37:13 residentsTotalWayhomeDelayed 0
2019-02-26 18:37:13 residentsTotalWayhomeDelayedDevs -
2019-02-26 18:37:13 residentsTotalWayhomeDelayedNames -
2019-02-26 18:37:13 residentsTotalWayhomeDevs -
2019-02-26 18:37:13 residentsTotalWayhomeNames -
2022-12-08 07:40:59 state absent
TIMER:
Eltern_DurationTimer:
HASH Eltern
MODIFIER DurationTimer
NAME Eltern_DurationTimer
Attributes:
alias Eltern
devStateIcon .*home:status_available:absent .*absent:status_away_1:home .*gone:status_standby:home .*none:control_building_empty .*gotosleep:status_night:asleep .*asleep:status_night:awoken .*awoken:status_available:home .*:user_unknown:home
group Home State
icon control_building_filled
room Haus,Residents
webCmd state
Gruß
Micha
Zitat
Bareword "absent" not allowed while "strict subs" in use at (eval 1670342) line 1.
Bareword "opened" not allowed while "strict subs" in use at (eval 1670342) line 2.
Lesen solltest du ja schon...
Zeichenketten werden mit eq ne usw. verglichen:
return if ("Bewohner_Eltern" eq absent);
"Bewohner_Eltern" -> Zeichenkette (aber wohl nicht was du willst bzw. ergibt das KEINEN Sinn [für mich])
absent -> ? das ist "gar nichts" es müsste wohl "absent" heißen
Selbes hier:
if ($EVENT = opened)
opened -> ? es muss mind. "opened" heißen
Und: = ist KEIN Vergleich sondern eine Zuweisung! Wenn dann ==
Allerdings (hatte ich ja geschrieben) bei Zeichenketten eben eq ne usw.
Und noch mal: "Bewohner_Eltern" -> das ist wohl nicht was du willst/hier brauchst (denke ich stark)
Und: wenn "Bewohner_Eltern" mal absent ist (also alles mal korrekte Syntax usw. hat), dann ist bei "Abwesend" Ende, also keine weitere Bearbeitung (kann gewollt sein, wollte es nur anmerken)...
EDIT: return if ("Bewohner_Eltern" eq absent); -> beende "Auswertung/Ausführung", wenn wahr (also absent) / Vors.: die Syntax ist dann irgendwann mal korrekt (und auch "Bewohner_Eltern" sinnvoll)...
Also neben Perl lernen evtl. auch lesen/beachten was hier so geschriebn wird...
EDIT: einiges wurde ja bereits schon mal erläutert (und dennoch nicht beachtet/erneut falsch gemacht)...
Gruß, Joachim
Hallo,
ich würde das so versuchen:
define di_Kontakt_Flur DOIF ([Kontakt_Flur] eq "opened" and [Bewohner_Eltern] ne "anwesend") (set Pushover msg 'alarm' '$DEVICE geöffnet' '' 2 'persistent' 30 3600)
eventuell mit attr wait 10 verzögern..oder so.
Das habe ich aus dem DOIF Wiki für meine Fenster:
([?06:00-21:00] and ["FK:open"] and [netatmo_Aussen:temperature] <12.0) (set Pushover1 msg 'alarm' '$DEVICE seit 60 Minuten geöffnet' '' 2 'persistent' 30 3600)
DOELSE()
Gruß
Jürgen K.
Fraglich ob es "Bewohner_Eltern" gibt.
Laut list wäre eher "Eltern"?
"abwesend" kann ich jetzt auch nicht entdecken...
Laut list irgendwie doch "absent"?
Und da (mir) das noch unklar war, habe ich auch keinen Lösungsvorschlag gepostet...
Gruß, Joachim
Weil ich grad Zeit hab versuche ich auch mal einen Vorschlag (auch wenn ich denke: selber lernen und verstehen was, wie, usw. ist wichtig / schon alleine wegen "Support" und "Weiterentwicklung")...
...vorausgesetzt wenigstens einige Dinge/Infos die hier so geliefert (wenn man das so nennen kann/mag) wurden stimmen.
Kontakt_Flur:(opened|closed) {
my $presence = ReadingsVal("Eltern", "presence", "n.a.");
if ($EVENT eq "opened" && $presence eq "absent") {
system ("curl -s -F 'token=geheim' -F 'user=geheim' -F 'message=Haus\nUnautorisierte Türöffnung auf' https://api.pushover.net/1/messages.json");
} else {
system ("curl -s -F 'token=geheim' -F 'user=geheim' -F 'message=Haus\nUnautorisierte Türöffnung zu' https://api.pushover.net/1/messages.json");
}
}
Setzt (mind.) voraus, dass:
das listing (leider nicht in code-Tags) das du gepostet hast und geschrieben hast: wenn da abwesend, dann soll die Nachticht kommen (so habe ich das zusammen mit dem Thread-Titel verstanden), tatsächlich das Kriterium für "Abwesend" ist
system ("curl -s -F 'token=geheim' -F 'user=geheim' -F 'message=Haus\nUnautorisierte Türöffnung zu' https://api.pushover.net/1/messages.json") und system ("curl -s -F 'token=geheim' -F 'user=geheim' -F 'message=Haus\nUnautorisierte Türöffnung auf' https://api.pushover.net/1/messages.json") funktionieren.
(kann man/du testen, indem man die Befehle in geschweifte Klammern setzt und dann in FhemWeb eingibt)
Wobei ich da evtl. auch mal überlegen würde, ein Modul einzusetzen. Aber das musst du wissen.
So wie du es jetzt hast ist es blockierend (sofern die Gegenseite immer schnell "antwortet"/"abarbeitet" ist es nicht so dringlich / wollte es nur anmerken)...
das notify entsprechend auslöst UND in $EVENT tatsächlich "opened" drinsteht (aber das könnte schon passen, wenn der Auszug aus dem Eventmonitor so ist)
Und folgendes gewünscht ist (laut deinen if/else Dingern):
wenn die Tür aufgeht und Eltern absent ist, dann gibt es eine Meldung "Unautorisierte Türöffnung auf" (und zwar IMMER, wenn ein entsprechender Event kommt, manche Sensoren senden ja regelmässig ihren Zustand: evtl. event-on-change-reading beim Kontakt_Flur / habe ich dort nicht entdeckt, kenne aber auch das Verhalten des Sensors nicht)
IN ALLEN ANDEREN FÄLLEN kommt die Nachricht "Unautorisierte Türöffnung zu": (spätestens) hier denke ich, dass du das NICHT willst... Weil das bedeutet auch:
Tür geht auf und Eltern sind/ist "zuhause" -> Meldung zu
Tür geht zu Eltern zuhause oder nicht (ist egal) -> Meldung zu
D.h. evtl. auch noch mal nachdenken, wann tatsächlich (welche Bedingungen) welche Meldung kommen soll...
Gruß, Joachim