An diesem Thema werde ich wohl auch in Kürze arbeiten. Pronto habe ich schon „as is“ programmiert und benutzt. Nice, etwas teuer, aber sehr flexibel.
Nachteil für mich beim Pronto (über mehrere Projekte hinweg) war, dass
1.) der Code nicht portabel auf andere Devices ist und dass
2.) die Files proprietär und nicht dokumentiert sind.
3.) die „Programmierung“ bzw. „Properties-Switcherei“ mit den teilweise doch tiefen Menüs m.E. ziemlich müssig ist. Man klickt sich zu Tode.
Ins besondere, wenn man bestimmte Properties (z.B. Farbschema, Schriftart/Farbe) für einen Kunden anpassen will und der Rest der Menüs und Pages gleich bleibt. Da wäre ein wohldokumentierter XML file per global find&replace in sekunden umgestellt, beim Proto dauert das u.U. Stunden. Und man kann halt nicht alles in PNG files auslagern (auch da müsste man neue erzeugen)! Spätestens bei Schriftartwünschen und Schriftfarben wird’s ne Syssiphusarbeit.
Ich habe zu diesem „generellen Problem“ schon vor einiger Zeit die Frage an den Hersteller von IPS gestellt, mit welchen Mitteln Drittprodukte mit IPSymcon kommunizieren können. Hier wurde mir allem voran SOAP genannt.
Ich könnte mir aber auch eine Socket-Kommunikation vorstellen - probiert hab ich’s noch nicht.
Prinzipiell ist das ja dasselbe Thema wie:
-
Wie steuere ich einen UPNP Client (z.B. Hifi-Anlage, Streaming Client, TV, Satreceiver)?
-
Wie steuere ich ein beliebiges anderes „intelligentes“ Gerät im Netzwerk mit eigenem Netzwerk-Anschluss?
Bei mir stehen konkret an:
- Linn Produkte
- Squeezeserver & Squeezebox
- UPNP Controller Produkte
- Neue Kathrein Geräte
- Flatscreens der neueren Generation
Als Control-Device stelle ich mir neben den Prontos (es gibt ja noch andere als nur das 9400) jedes mit Touchpanel versehene Device vor, z.B. auch die Nokia Produkte (z.B. 810 & Nachfolger) und natürlich iPhones vor.
Der „Trick“ für mich wäre dabei, die Intelligenz der Steuerung und aller Parameter/Properties vom Device auf IPS zu verlagern, um nur eine Programmierung für viele Devices vornehmen zu müssen.
Dazu würde ich dann die Kommunikation zwischen Controller und IPS gerne kapseln bzw. auf ein „Protokoll“ setzen, das dafür geeignet ist, z.B. UPNP selbst. Damit stellt sich dann „nur“ noch die Frage, welchs UPNP Kommando ein Controller an IPS sendet und welche Antwort IPS - wieder UPNP basiert - an den Controller zurück sendet.
Das hätte den Vorteil (wenn die Performance und das Threading von IPSymcon hier ausreicht), dass die gesamte Intelligenz im IPS programmiert ist und eine hohe Portierbarkeit zwischen Controllern gewährleistet ist.
Bin aber auch sehr gespannt auf Eure Lösungsansätze!