FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Kellerkind86 am 21 Oktober 2021, 00:33:39

Titel: [gelöst] doif.wie auf events reagieren?
Beitrag von: Kellerkind86 am 21 Oktober 2021, 00:33:39
im notify kann ich ja auf alles reagieren mit .*
beispiel:
EG_Garten_Lampe:onFromCam.* set Feldkamera snap 2 3

wie mache ich das mit dem doif ?
hier mit Bewohnerstatus:
das funktioniert aber leider  nicht

([rgr_Bewohner] eq "zuhause" and [EG_Lampe_Haustuer:onFromCam.*])
(set SSCam.Haustuer snap 2 3)

hab mal versucht was zu finden aber weiß nicht wie man auf die events reagieren kann...
danke
gruß Marcell
Titel: Antw:doif.wie auf events reagieren?
Beitrag von: Kellerkind86 am 21 Oktober 2021, 00:55:14
Hab es dann doch raus bekommen wie. Wollte den thread löschen..ging nur leider nicht.
So, passt es dann:
([rgr_Bewohner] eq "zuhause" and [EG_Lampe_Haustuer:"onFromCam"])
(set SSCam.Haustuer snap 2 3)


Sorry nochmal für den Schnellschuss
Titel: Antw:[gelöst] doif.wie auf events reagieren?
Beitrag von: FHEMAN am 25 Oktober 2021, 19:40:51
Ich glaube, ein wenig sauberer und evtl. auch performanter(?) wäre die Ergänzung des "Anfangsszeichens":
([rgr_Bewohner] eq "zuhause" and [EG_Lampe_Haustuer:"^onFromCam"])
(set SSCam.Haustuer snap 2 3)
Titel: Antw:[gelöst] doif.wie auf events reagieren?
Beitrag von: Kellerkind86 am 25 Oktober 2021, 22:30:37
jap, so hatte ich es auch aufgebaut..
danke

([?rgr_Bewohner] eq "abwesend" and [EG_Lampe_Haustuer:"onFromCam"])
(set SSCam.Haustuer snap 2 3)
Titel: Antw:[gelöst] doif.wie auf events reagieren?
Beitrag von: FHEMAN am 25 Oktober 2021, 23:35:49
Das "^" meinte ich. In Codertags kann man leider nicht fett schreiben.
Titel: Antw:[gelöst] doif.wie auf events reagieren?
Beitrag von: Kellerkind86 am 25 Oktober 2021, 23:52:20
Oh okay, sorry.
Wofür steht das ^? Hab irgendwie nichts gefunden
Titel: Antw:[gelöst] doif.wie auf events reagieren?
Beitrag von: FHEMAN am 26 Oktober 2021, 00:00:55
Ohne weitere Angaben entspricht das einem "contains", triggert also auch auf blaKeksonFromCam345. Da Du notify anfangs erwähntest, wollte ich auf diese Doif Besonderheit hinweisen. Dein konkretes Beispiel wird sicher auch so funktionieren.
^ bedeutet Text muss am Satzanfang stehen, $ am Ende.

Siehe https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events (https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events)
Titel: Antw:[gelöst] doif.wie auf events reagieren?
Beitrag von: Damian am 26 Oktober 2021, 09:39:46
Im Grunde ist die Angabe in Anführungszeichen eine RegEx-Angabe und bei RegEx steht ^ für den Anfang und $ für das Ende einer Zeichenkette.

Bsp.

Beim Event:

device: 123bla568

würde

[device:"^bla"]

nicht triggern

[device:"bla"]

aber schon.
Titel: Antw:[gelöst] doif.wie auf events reagieren?
Beitrag von: Kellerkind86 am 26 Oktober 2021, 10:11:13
okay, jetzt in ich verwirrt... :o

aber ich möchte doch das  [EG_Lampe_Haustuer:"onFromCam"] triggert , oder ? versteh ich was falsch ?
Titel: Antw:[gelöst] doif.wie auf events reagieren?
Beitrag von: MadMax-FHEM am 26 Oktober 2021, 10:13:40
Wenn von "EG_Lampe_Haustuer" nur "onFromCam" und TOTAL ANDERE Events kommen ist es "egal".

Wenn aber von "EG_Lampe_Haustuer" auch "123onFromCam" o.ä. kommen würde, dann wäre es eben wichtig.

Ebenso mit dem '$' für's "Ende:
Wenn von "EG_Lampe_Haustuer" nur "onFromCam" und TOTAL ANDERE Events kommen ist es "egal".

Wenn aber von "EG_Lampe_Haustuer" auch "onFromCam123" o.ä. kommen würde, dann wäre es eben wichtig.

Wenn du genau auf NUR "onFromCam" triggern willst, dann eben '^' am Anfang und '$' am Ende... ;)


Gruß, Joachim
Titel: Antw:[gelöst] doif.wie auf events reagieren?
Beitrag von: Damian am 26 Oktober 2021, 10:18:11
Eigentlich willst du [EG_Lampe_Haustuer:"^onFromCam"], da bei dir "onFromCam" in der Mitte von irgendeinem Event nicht vorkommt, wie Joachim es bereits angemerkt hat, funktioniert deine Angabe genauso gut.
Titel: Antw:[gelöst] doif.wie auf events reagieren?
Beitrag von: Kellerkind86 am 26 Oktober 2021, 11:28:23
Ah, jetzt hab ich es verstanden. Danke 👌