Hi,
weniger eine Frage als eine Anmerkung: für FHEM gibt es eine Definition der Standardfunktionen für Multimedia Geräte:https://wiki.fhem.de/wiki/DevelopmentGuidelinesAV (https://wiki.fhem.de/wiki/DevelopmentGuidelinesAV)
Das Device SONOSPLAYER hält sich leider nicht daran, was die Umsetzung von Gruppen Aktionen unnötig erschwert. Wäre es möglich, dem SONSOPLAYER diese Standard set Kommandos und Readings beizubringen?
Anwendungsfälle als Beispiel:
- bei eine eingehenden Telefonanruf sollen alle Musikplayer im Haus leiser gemacht werden. Bei Squeezebox, Kodi etc. kann man hierzu das Reading volume auslesen, sich merken und das Kommando set volumestraight 25 aufrufen. Bei Ende des Anrufes kann man dann wieder set volumeUp setzen.
- bei zu Bett gehen sollen alle Player ausgeschaltet werden. man kann bei allen Playern set <device> stop aufrufen. Nur beim SONOSPLAYER heißt das set <device> Stop
Somit muß man bei solchen Gruppenaufrufen aus eigenem Code heraus immer erstmal den Typ auslesen und falls es ein SONOSPLAYER ist dann eine andere Funktion aufrufen
Du könntest dir (falls sich modulseitig nichts ändern wird) per cmdalias ein normalisiertes stop Kommando (myStop/universalStop/normalizedStop oder was dir auch immer als Name einfällt) für alle Devices erzeugen. Hier dann eben einmalig die Fallunterscheidung einprogrammieren.
Damit müsstest du das nicht in jedem Notify oder jeder MyUtils Funktion erledigen.
Readings über verschiedene Hardwarevarianten hinweg normalisiere ich über Userreadings.