Alex hat mir in der Zwischenzeit seine Anregungen per Mail geschickt und ich habe sie eingearbeitet. Außerdem habe ich noch die ein oder andere Erweiterung eingebaut:
- alle numerischen Werte werden nun auf die von RIO akzeptierten Werte begrenzt (Balance, Treble, Bass, TurnOnVolume, Volume)
- der Name einer Zone wird ausgelesen, Itemconfig: rus_path = c.z.name (wobei c = Controller ID und z = Zone ID), type sollte string sein
- alle Russound Kommandos, die das Plugin nicht kennt, werden per KeyRelease Nachricht versendet. Damit kann man z.B. die RIO Key Codes für das weiterschalten des Tuners implementieren. Wenn also der rus_path = 1.2.ChannelUp lautet, wird bei jeder Änderung dieses
sh.py Items (wenn enforce_updates = true gesetzt ist muss sich der Wert nichtmal ändern) für die Zone 2 des Controllers 1 ein KeyRelease mit dem Key Code "ChannelUp" gesendet.
- Quellen können auf Änderungen überwacht werden. Es gibt ein neues Item Attribut "rus_src" dem man eine Nummer der zu überwachenden Quelle setzen kann wie z.B. rus_src = 1 zum Überwachen es ersten Eingangs. Empfängt das Plugin nun eine Notification, das sich was geändert hat, wird versucht, die Änderung auf Kindelemente des Items zu mappen. Ändert sich z.B. der Channel von Quelle 1 wird geschaut, ob es ein Item mit rus_src = 1 gibt und wenn ja, ob dieses Item ein Kind namens "Channel" hat. Ist dies der Fall wird der empfangene String Wert unverblümt in dieses Kind geschrieben.
ACHTUNG: habe den aktuellen Stand unterwegs geändert und konnte diesen noch nicht testen, daher nur die Git Version auschecken, wenn man weiß was man tut