Hallo,
ich bin hier etwas am verzweifeln...
Ich habe in den letzten beiden Tagen versucht mit einem DOIF auf ein Event zu reagieren, welches vom Spotify-Modul ausgelöst wird.
Folgende Aufgabenstellung:
Anzeige eines dynamischen Albumcovers während der Spielzeit und automatische Aktualisierung bei Songwechsel.
Albumcoveranzeige funktioniert soweit nur die automatische Aktualisierung bekomme ich einfach nicht hin...
ich möchte mit einem DOIF auf das Event "track_name" die Webseite aktualisieren - z.B:
([spoFhemSpotify:track_name] = .*) (trigger WEB JS:location.reload())
oder
([spoFhemSpotify:track_name] eq ".*") (trigger WEB JS:location.reload())
Die Variante
([spoFhemSpotify:""]) (trigger WEB JS:location.reload())
funktioniert zwar - hier wird aber alle 10 Sekunden aktualisiert, da die progresstime alle 10 sekunden ein event feuert...
auch die Variante
([spoFhemSpotify:progress_ms] <8000) (trigger WEB JS:location.reload())
funktioniert - nur wenn innerhalb der ersten 6-8 Sekunden ein neuer Song aufgerufen wird, wird nicht erneut getriggert und das Cover wechselt nicht.
Der commandTeil des DOIF funktioniert - nur leider wird dieser nicht getriggert...
Ich habe schon zig Schreibweisen ausprobiert in den letzten zwei Tagen - Ergebnis immer negativ...
Das Reading "track_name" ist auf EventOnChangeReading gestellt.
Das Event wird gefeuert:
Zitat2018-01-01 17:57:43 Spotify spoFhemSpotify progress_ms: 920
2018-01-01 17:57:43 Spotify spoFhemSpotify progress: 00:00:00
2018-01-01 17:57:43 Spotify spoFhemSpotify track_name: Carry on Wayward Son
2018-01-01 17:57:43 Spotify spoFhemSpotify track_uri: spotify:track:4DMKwE2E2iYDKY01C335Uw
2018-01-01 17:57:43 Spotify spoFhemSpotify track_popularity: 73
2018-01-01 17:57:43 Spotify spoFhemSpotify track_duration_ms: 323000
2018-01-01 17:57:43 Spotify spoFhemSpotify track_artist_name: Kansas
Auch die Tatsache, dass es hier Tonnen an Informationen zum Thema triggern gibt hat mir nicht weitergeholfen...
Wie schreibe ich die Syntax so, dass auf das Event "track_name" bei Änderung des Inhaltes getriggert wird?
Viele Grüße
Stefan
Das einfachste wäre wohl am Spotify-Device dafür zu sorgen, dass ein Event nur kommt, wenn sich am Inhalt etwas ändern - Stichwort event-on...
Das mit dem eventOn hatte ich überlesen
Dann brauchst Du doch nur einen trigger auf track_name zu machen
z.B.:
([spoFhemSpotify:"track_name"]) (trigger WEB JS:location.reload())
Hallo Viegener,
So in der Form hatte ich das schon probiert, allerdings ohne die "" beim Reading.
Wieso muss ich das in Anfpührungszeichen setzen, das hab ich in der Doku nicht gesehen?
Werde ich gleich testen - Danke!
Vielen Dank - hat natürlich funktioniert.
Warum die Anführungszeichen beim Reading würde mich aber schon interessieren...
Gruß Stefan
Die Anführungszeichen stehen für einen Teile eines Events (nicht eines Readings), also das Doif triggert jetzt immer wenn ein Event von Spotify... kommt, der track_name enthält (also hat es gar nichts direkt mit dem Reading zu tunt, allerdings kommt der Name des Readings im Event vor und solange Du keine anderen Events hast, die das enthalten bist Du sicher)
--> Beschrieben ist das bei DOIF unter
ZitatEreignissteuerung über Auswertung von Events
[<devicename>:"<regex>"]