FHEM > Automatisierung

wenn tür geöffnet und keine eltern da dann push nachricht

(1/3) > >>

mfeske:
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:

--- Code: ---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
--- Ende Code ---

einen dummy habe ich auch angelegt:

--- Code: ---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
--- Ende Code ---

sowie je ein notify für an und aus des dummys

--- Code: ---
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

--- Ende Code ---

ein notify für den pushover habe ich auch

--- Code: ---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
--- Ende Code ---

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:


--- Code: ---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
--- Ende Code ---

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

betateilchen:
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:


--- Code: ---define n_tuerkontakt notify Kontakt_Flur:(opened|closed) {} # fraglich, ob man den Trigger auf closed überhaupt für irgendwas braucht

--- Ende Code ---

Im Ausführungsteil ist dann zu unterscheiden, ob die Bewohnergruppe anwesend ist oder nicht.

# das ist eine Prinzipbeschreibung, syntaktisch musst Du das entsprechend ausformulieren!

--- Code: ---{ 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.
  };

}

--- Ende Code ---

betateilchen:
An dieser Stelle


--- Code: ---if (Value(("Bewohner_Eltern") eq "absent") || ("Bewohner_Eltern") eq "gone")
--- Ende Code ---

hast Du Syntaxfehler. Zum Einen fehlt das zweite Value() und zum Anderen passen die Klammern nicht:


--- Code: ---if (Value("Bewohner_Eltern") eq "absent" || Value("Bewohner_Eltern") eq "gone")
--- Ende Code ---

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.


--

mfeske:
Hallo @betateilchen,

vielen Dank für die Tipps. Den dummy wollte ich nutzen zur grafischen Darstellung und zur Kontrolle ob funktioniert was ich vorhabe.

--- Code: ---define UnautorisierteTueroeffnung_n notify Kontakt_Flur:(opened|closed) {}
--- Ende Code ---
ist natürlich kürzer und vermutlich besser. ;-)
Ich wollte dann die pushover einsetzen für die Abewesenheit:

--- Code: ---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");
  };
}
--- Ende Code ---
dabei erhalte ich aber schon Fehlermeldungen :-(

--- Code: ---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.

--- Ende Code ---
eigentlich wollte ich es sogar erweitern um

--- Code: ---set UnautorisierteTueroeffnung on
set UnautorisierteTueroeffnung off

--- Ende Code ---
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

mfeske:
Ich hab das leider noch immer nicht hinbekommen.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln