An dieser Stelle ein kurzes Statement, wie das Problem entstanden ist. Sobald Netzwerk-Befehle Sonderzeichen enthalten, müssen diese vom Sender codiert werden. Zu Sonderzeichen zählen vor allem : / ? # [ ] @ $ & ' ( ) * + , ; =. Der Empfänger des Befehles decodiert diese Zeichen und erhält die ursprüngliche Nachricht. Erschwerend kommt hinzu, dass die Art der Codierung vom Request-Typ (GET, POST, PUT) abhängt. Außerdem halten sich manche Geräte nicht an den Standard, z.B. die HUE Bridge bei PUT, und erwarten eine uncodierte Nachricht. Schließlich kommt noch etwas hinzu. Geht eine Nachricht über mehrere Server, muss diese u.U. vom Sender auch mehrfach codiert werden. Dies ist bei Alexa der Fall, wo der Befehl nacheinander drei Server durchläuft. Als ob das noch nicht genug wäre, macht es auch noch einen Unterschied, ob der Befehl aus der Zonen-Ansicht des Web-Interfaces, aus der Szenen-Ansicht, per IR-Fernbedienung oder über eine App wie Imperihome gesendet wird. Insgesamt ergeben sich Dutzende Varianten, einen Netzwerk-Befehl zu verschicken.
Im Großen und Ganzen funktionierten die Befehle bis zur Alexa Integration einwandfrei, wobei User Nachrichten teilweise von Hand codiert hatten, indem z.B. Leerzeichen durch %20 ersetzt wurden. Dies war eigentlich nur ein Notbehelf, der nun aber zu einem Fehler führen würde. Durch die Alexa Integration wurde die Komplexität deutlich angehoben, was uns dazu zwingt, die Codierung der Netzwerk-Befehle neu zu strukturieren. Aufgrund der Vielzahl der Befehls- und Geräte-Typen sind wir dabei auf die Hilfe der User angewiesen. Das Ganze ist verständlicherweise ärgerlich, bietet auf der anderen Seite aber die Chance, die Netzwerk-Befehle auf einen sauberen Stand zu bringen, so dass es zukünftig keine bösen Überraschungen mehr dabei gibt.
Lösung
Um das Problem zu lösen, würden wir interessierte User bitten, zunächst
airStudio 8.3.4 zu installieren und die Konfiguration zu übertragen. Anschließend bitte den gewünschten Netzwerk-Befehl testen, und zwar einmal über den Test-Button in der Aktorenverwaltung, aus der Zonen-Ansicht, aus einer Szene und schließlich, sofern vorhanden, über Alexa. Das Ergebnis bitte in dieser Form posten (Beispiel):
Befehl: GET
URI:
http://xxx.xxx.xxx.xxx/?...
Test: +
Zone: +
Szene: -
Alexa: +
+ bedeutet geht, - geht nicht. Bei PUT und POST käme noch die Zeile Daten dazu. Diese bitte mit dem Button </> einfügen.
Vielen Dank!