[gelöst] DOIF Sonos Sleeptimer - Einzelwert eines Readings als Trigger

Begonnen von mark79, 26 Juli 2019, 16:48:51

Vorheriges Thema - Nächstes Thema

mark79

Hallo,

kann mir bitte jemand behilflich sein, ich komme nicht weiter.

Ich möchte das wenn ich auf der Sonos ein Podcast starte, das ein Sleeptimer gesetzt wird.
Allerdings enthält die Zeile "infoSummarize2" vom Sonos Device, worauf ich triggern will, mehrere Wörter und ich möchte darin nur auf 'Einschlafen' triggern.
Aber das krieg ich irgendwie nicht gebacken. Habe schon nach beispielen gesucht und einiges durchprobiert, aber das funktioniert einfach nicht.

Das Event:
2019-07-26 15:40:55 SONOSPLAYER Sonos_Schlafzimmer infoSummarize2: PLAYING => (EP 444 ~ Brot backen und Kant) 'Einschlafen'

DOIF:
define Sonos_Schlafzimmer_DOIF_1 DOIF ([Sonos_Schlafzimmer:"^infoSummarize2:^.'Einschlafen'$"]) (set Sonos_Schlafzimmer SleepTimer [Sonos_Schlafzimmer:currentTrackDuration])


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Ellert

In der Befehlsreferenz gibt es einen Abschnitt Teilausdrücke abfragen.

mark79

Das habe ich mir auch angeschaut, aber so richtig werde ich daraus nicht schlau.

Ich habe das auch schon so probiert:
([Sonos_Schlafzimmer:"^infoSummarize2:^.'Einschlafen$'"])
([Sonos_Schlafzimmer:"^infoSummarize2:*.'Einschlafen'$'"])

Durch die Semilkon erhalte ich ein DOIF Fehler:

2019-07-26 16:53:50 DOIF Sonos_Einschlafen_Sleeptimer error: condition c01: Bad name after Einschlafen', line 1.

Lass ich die Semilkom im Einschlafen weg, taucht der Fehler nicht auf.

([Sonos_Schlafzimmer:"^infoSummarize2:^.Einschlafen$"])
([Sonos_Schlafzimmer:"^infoSummarize2:*.Einschlafen'$"])
([Sonos_Schlafzimmer:"^infoSummarize2] =~ "Einschlafen")

Aber funktionieren tut es trotzdem nicht.


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

amenomade

Also.... Regex Syntax
define Sonos_Schlafzimmer_DOIF_1 DOIF ([Sonos_Schlafzimmer:"^infoSummarize2:^.'Einschlafen'$"])

Device = Sonos_Schlafzimmer, bisher alles OK
^infoSummarize2:^.'Einschlafen'$

Event ist dann:
infoSummarize2: PLAYING => (EP 444 ~ Brot backen und Kant) 'Einschlafen'

Da musst Du eine Regex haben, die damit matcht.

^infoSummarize2: ist noch ok
aber danach, wie sollte es dann wieder mit einem ^ Zeichen kommen? Der war schon am Anfang des Dings
Das Zeichen ^ steht für "Anfang des Strings"
Das Zeichen . steht für beliebige Zeichen
Das Zeichen * ist ein Wiederholungszeichen = beliebige Wiederholungen vom vorherigen Zeichen. ":*" bedeutet z.B. beliebige WIederholung von ":", wie z.B. ::::::::

Mach einfach
[Sonos_Schlafzimmer:"^infoSummarize2.*Einschlafen.$"]

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

mark79

#4
Hey amenomade, erstmal vielen Dank für die Hilfe und die Erklärung noch dazu! Mit dem Regex tue ich mich noch schwer.
Ich habe es eingebunden und es funktioniert jetzt endlich, ich saß schon seit ein paar Tagen dran...  ::)

Noch mal zum Verständnis, das "$" Zeichen heißt Zeichenfolgeende.

Wenn angenommen das 'Einschlafen' in der Mitte liegen würde, wäre das dann so richtig:
[Sonos_Schlafzimmer:"^infoSummarize2.*Einschlafen.*"]


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus