Hauptmenü

RegEx im DOIF

Begonnen von balli1187, 18 März 2020, 17:15:29

Vorheriges Thema - Nächstes Thema

balli1187

Hallo Community,

ich versuche seit einer Weile zu verstehen wie das mit den RegEx im DOIF genau funktioniert aber ich kriege s nicht gebacken. Da dieverses lesen sowie 'try&error' nichts gebracht haben, bitte ich hier mal um Hilfe.

ich habe mehrer Echos über das Modul EchoDevice in FHEM eingebunden und würde gern auf Anweisungen, die im Voice-Reading landen reagieren. Hintergrund ist, so wenig wie möglich Logik und Aktionen in der Alexa App zu hinterlegen sondern in FHEM darauf zu reagieren.

Meine Echos sind so benannt
<Raum>_Echo_<Typ>
also zum Beispiel: "Bad_Echo_Dot"

Ich möchte jetzte ein DOIF bauen, welches auf alle Echos reagiert und im Voice-Reading nach bestimmten Inhalten sucht und darauf reagiert.

Biespiel für ein Event
2020-03-18 17:04:29.872 echodevice Bad_Echo_Dot voice: alexa dies ist ein test

Über den Eventmonitor wird mir folgende Definition ausgegeben
define Bad_Echo_Dot_DOIF_1 DOIF ([Bad_Echo_Dot:"^voice:.alexa.dies.ist.ein.test$"]) ()

Wie verallgemeinere ich das jetzt richtig, so dass das DOIF
- auf alle Geräte mit "_Echo_" im Namen reagiert
- und immer dann, wenn die Wortgruppe "ein test" irgendwo im voice-Reading steht?

Grüße, Stephan
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Damian

Zitat von: balli1187 am 18 März 2020, 17:15:29
Hallo Community,

ich versuche seit einer Weile zu verstehen wie das mit den RegEx im DOIF genau funktioniert aber ich kriege s nicht gebacken. Da dieverses lesen sowie 'try&error' nichts gebracht haben, bitte ich hier mal um Hilfe.

ich habe mehrer Echos über das Modul EchoDevice in FHEM eingebunden und würde gern auf Anweisungen, die im Voice-Reading landen reagieren. Hintergrund ist, so wenig wie möglich Logik und Aktionen in der Alexa App zu hinterlegen sondern in FHEM darauf zu reagieren.

Meine Echos sind so benannt
<Raum>_Echo_<Typ>
also zum Beispiel: "Bad_Echo_Dot"

Ich möchte jetzte ein DOIF bauen, welches auf alle Echos reagiert und im Voice-Reading nach bestimmten Inhalten sucht und darauf reagiert.

Biespiel für ein Event
2020-03-18 17:04:29.872 echodevice Bad_Echo_Dot voice: alexa dies ist ein test

Über den Eventmonitor wird mir folgende Definition ausgegeben
define Bad_Echo_Dot_DOIF_1 DOIF ([Bad_Echo_Dot:"^voice:.alexa.dies.ist.ein.test$"]) ()

Wie verallgemeinere ich das jetzt richtig, so dass das DOIF
- auf alle Geräte mit "_Echo_" im Namen reagiert
- und immer dann, wenn die Wortgruppe "ein test" irgendwo im voice-Reading steht?

Grüße, Stephan

define Echo_Dot_DOIF DOIF (["_Echo_:ein test"]) ()

Wird vermutlich schon reichen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

balli1187

Zitat von: Damian am 18 März 2020, 17:19:19
define Echo_Dot_DOIF DOIF (["_Echo_:ein test"]) ()

Wird vermutlich schon reichen.
Ich geh kaput...
Du hast das ZU einfach gemacht, da kommt ja niemand drauf [emoji23]

Wenn du wüsstest wie lange ich daran schon rum knoble.

Der Vollständigkeit halber: wie würde es aussehen, wenn ich das Reading noch explizit prüfen möchte?


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Damian

Zitat von: balli1187 am 18 März 2020, 17:26:55
Ich geh kaput...
Du hast das ZU einfach gemacht, da kommt ja niemand drauf [emoji23]

Wenn du wüsstest wie lange ich daran schon rum knoble.

Der Vollständigkeit halber: wie würde es aussehen, wenn ich das Reading noch explizit prüfen möchte?


Gesendet von iPhone mit Tapatalk

define Echo_Dot_DOIF DOIF (["_Echo_:^voice.*ein test"]) ()

vermutlich aber nicht erforderlich, wenn "ein test" sonst nirgendwo vorkommt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

balli1187

Zitat von: Damian am 18 März 2020, 17:35:48
define Echo_Dot_DOIF DOIF (["_Echo_:^voice.*ein test"]) ()

vermutlich aber nicht erforderlich, wenn "ein test" sonst nirgendwo vorkommt.
In dem Fall vermutlich nicht aber für das weitere FHEM-Leben hat's mich interessiert ;-)

Der erste Schnelltest hat genaus funktioniert, wie du geschrieben hast. Sollte also erledigt sein.

Besten Dank.


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Damian

Zitat von: balli1187 am 19 März 2020, 08:33:50
In dem Fall vermutlich nicht aber für das weitere FHEM-Leben hat's mich interessiert ;-)

Der erste Schnelltest hat genaus funktioniert, wie du geschrieben hast. Sollte also erledigt sein.

Besten Dank.


Gesendet von iPhone mit Tapatalk

Für das weitere FHEM-Leben kannst du auch immer in die Commandref hineinschauen: hier https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events

ist das dritte Beispiel das, was dir viel Zeit erspart hätte :)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

balli1187

Ich hab reingeschaut und einiges versucht. Nur scheinbar hatte/hab ich's nicht verstanden - sorry


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero