Autor Thema: wenn tür geöffnet und keine eltern da dann push nachricht  (Gelesen 774 mal)

Offline mfeske

  • Sr. Member
  • ****
  • Beiträge: 863
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
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18859
Antw:wenn tür geöffnet und keine eltern da dann push nachricht
« Antwort #1 am: 12 November 2022, 10:28:44 »
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.
  };

}
-----------------------
Mach es möglichst simpel und mach es richtig,
dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18859
Antw:wenn tür geöffnet und keine eltern da dann push nachricht
« Antwort #2 am: 12 November 2022, 10:32:31 »
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.


--
« Letzte Änderung: 12 November 2022, 10:34:10 von betateilchen »
-----------------------
Mach es möglichst simpel und mach es richtig,
dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline mfeske

  • Sr. Member
  • ****
  • Beiträge: 863
Antw:wenn tür geöffnet und keine eltern da dann push nachricht
« Antwort #3 am: 14 November 2022, 10:29:53 »
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
« Letzte Änderung: 14 November 2022, 10:31:58 von mfeske »
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Offline mfeske

  • Sr. Member
  • ****
  • Beiträge: 863
Antw:wenn tür geöffnet und keine eltern da dann push nachricht
« Antwort #4 am: 05 Dezember 2022, 12:19:34 »
Ich hab das leider noch immer nicht hinbekommen.
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Online MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 12929
  • NIVEAu ist keine Creme...
Antw:wenn tür geöffnet und keine eltern da dann push nachricht
« Antwort #5 am: 07 Dezember 2022, 12:39:37 »
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" ;)
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Offline mfeske

  • Sr. Member
  • ****
  • Beiträge: 863
Antw:wenn tür geöffnet und keine eltern da dann push nachricht
« Antwort #6 am: 08 Dezember 2022, 13:20:00 »
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
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Online MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 12929
  • NIVEAu ist keine Creme...
Antw:wenn tür geöffnet und keine eltern da dann push nachricht
« Antwort #7 am: 08 Dezember 2022, 13:26:03 »
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
« Letzte Änderung: 09 Dezember 2022, 13:36:20 von MadMax-FHEM »
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Offline juergen012

  • Full Member
  • ***
  • Beiträge: 423
Antw:wenn tür geöffnet und keine eltern da dann push nachricht
« Antwort #8 am: 08 Dezember 2022, 16:03:16 »
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.
Fhem unter Proxmox

Online MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 12929
  • NIVEAu ist keine Creme...
Antw:wenn tür geöffnet und keine eltern da dann push nachricht
« Antwort #9 am: 08 Dezember 2022, 17:12:43 »
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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Online MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 12929
  • NIVEAu ist keine Creme...
Antw:wenn tür geöffnet und keine eltern da dann push nachricht
« Antwort #10 am: 10 Dezember 2022, 11:30:51 »
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
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)