so, is Zeit, mein Winter-Projektchen möchte vorstellig werden …
bastle schon seit längerer Zeit an einer Entertainment Steuerung. Nun habe ich einmal eine Version, die bereits einige Features erfüllt und auch einigermassen stabil läuft (zur Zeit ist eigentlich nur mehr etwas Finetuning an der Konfiguration angesagt). Das schöne für Euch - ich habe es geschafft, dass man die Steuerung zentral konfigurieren kann und an seine Geräte bzw. Verwendete Verkabelung anpassen kann.
Mein Ziel war es, eine Steuerung für meine vorhandenen HiFi und andere Entertainment Geräte zu schreiben, die eine Einfache Anpassung an eine geänderte Verkabelung erlaubt. (z.B. nicht 10 Scripts anpassen müssen, nur weil man einen neuen Verstärker oder Fernseher ins System nimmt).
Weiteres Ziel war eine Entertainment Steuerung zu schreiben, die auch von anderen Leuten verwendet werden kann und die man modular an die persönlichen Bedürfnisse anpassen kann. Das wiederum gibt mir die Hoffnung, das der eine oder andere eine Erweiterung der Steuerung schreibt, die wiederum ich modular einbinden kann…
Herzstück des ganzen ist wohl die Datei Entertainment_Configuration.ips.php, hier kann man die Konfiguration der Steuerung nach den eigenen Bedürfnissen anpassen. Ich habe die Konfguration eingeteilt in:
[ul]
[li]Geräte: Hier kann man alle physikalischen Geräte definieren inklusive Codes zur Steuerung (IR oder auch TCPIP)
[/li][li]Räume: Definition der Räume (Wohnzimmer, Küche, Bad, …). Über die Definition der Sourcen werden dann die jeweiligen Geräte eingeblendet.
[/li][li]Sourcen: Dient zur Definition der Verkabelung, hier kann man verschiedene Sourcen definieren für die man jeweils Input, Switch und Output definieren kann.
[/li][li]Kommunikation: Hier definiert man die Art der Kommunikation (welcher Script wird zum Senden und Empfangen von externen Signalen (Infrarot, TCPIP, …) verwendet. Zusätzlich kann man für jedes Interface alle benötigten Konfigurations-Parameter hier ablegen (IPAdresse, ID Register Variable, ID Module).
[/li][/ul]
Die Konfiguration ist zugebebenermassen noch immer recht anspruchsvoll, sollte aber von einem Senior IPS‘ler durchaus zu verstehen sein (werde auch noch die einzelnen Controls detailierter beschreiben – ich warte hier mal ab, wie groß überhaupt das Interesse an diesem Ding ist).
Einige Worte noch zur prinzipiellen Arbeitsweise:
Für die Räume und Geräte kann man verschiedene Controls definieren, für Räume noch zusätzlich den ControlType Source bzw. RoomPower, für Devices gibts noch speziell den ControlType „DevicePower“. Über eine Source-Auswahl kann man Steuren welche Input/Output Geräte gerade aktiv sind (z.B. Source1 definiert sich mit Input=VideoRecorder, Switch=Verstärker, Output=TV).
Wird nun ein Raum eingeschalten ermitteln die Steuerung über die aktuelle Source Konfiguration die Geräte Liste und schaltet alle benötigten Geräte ein. Zusätzlich kann man auch noch angeben, das Z.B bei einem Gerät auf einen bestimmten Eingang geschaltet werden soll. Wechselt man nun die Source werden die neuen Geräte eingeschalten und die unbenutzten Geräte werden abgeschalten.
Umgekehrt funktioniert das auch. Ist ein Raum gerade abgeschaltet und man schaltet den Fernseher z.B über die normale Fernbedienung ein, registriert die Steuerung das und schaltet autom. den Raum ein. Mir war an dieser Stelle wichtig, dass man die einzelnen Schaltbefehle zentral an einer Stelle definieren kann und dass die Steuerung selbstständig überprüft, ob das empfange Signal einem Control/Device zugeordnet werden kann.
ich supporte zur Zeit folgende Controls:
[ul]
[li]RoomPower: Dient zum Ein/Ausschalten eines kompletten Raumes
[/li][li]Source: Dient zur umschalten der verschiedenen Sourcen (TV, Radio, …)
[/li][li]DevicePower: Zum Ein/Ausschalten von Geräten
[/li][li]Mute: ermöglicht Stumm schalten von Geräten, wir für einen Raum die Muting Taste im Webfront gedrückt, so ermittelt die Steuerung über die aktuelle Source-Konfiguration welche der aktuell aktiven Geräte ein Muting supported und schaltet das Gerät in den Muting Mode.
[/li][li]Volume: Lautstärkeregelung mittels eines “Sliders”, Max/Min Value kann über die Konfiguration eingestellt werden. Man kann in der Konfiguration auch ein Limit angeben, auf diesen Wert ist dann die Eingabe über das Webfront limitiert (nicht so witzig wenn man spät abends versehentlich mal an 95% Marke seines durchaus „potenten“ Verstärkers tippt …).
[/li][li]RemoteControl Source: Dieser ControlType ermöglicht die Einblendung von diversen Fernbedienungen. Die Steuerung sucht sich über die aktuell aktive Source die passende Fernbedienung und blendet sie für den Raum ein. Zusätzlich kann noch ein FernbedienungsType definiert werden, über diesen ist es möglich zwischen verschiedenen Versionen der Fernbedienung für das aktuelle Geräte umzuschalten (Programmwahl, Programmierung, Guide, …).
[/li][li]RemoteControl Volume:Anstelle eines Sliders für die Lautstärkeregelung kann auch eine Fernbedienung benutzt werden, da die Anbindung eines Sliders normalerweise eine bidirekionale Kommuikation erfordert.
[/li][li]iRemoteControl Source: Hier kann man spezielle RemoteControls für mobile Engeräte definieren. Es gibt für das iFront einen eigenen „Einsprungspunkt“, für diesen ist dann die SourceControl auf diese Controls verlinkt.
[/li][li]iRemoteControl Volume: Selbiges für Volume Controls. Sollte kein passendes iControl gefunden warden, versucht die Steuerung ein normales VolumeControl zu finden.
[/li][li]Programm: Mit der Programm Umschaltung ist es möglich zwischen verschiedenene TV und Radio Programmen umzuschalten und das aktuelle Programm im Webfront anzuzeigen. Die Steuerung kann natürlich keine Wunder bewirken, wenn man den diesen ControlType für zB. Ferseher verwendet und dann das Programm über ein internes TV Menu wechselt oder die Programmtasten in einem Menue anderweitig verwendet kann die Steuerung sehr schnell aus Sync kommen. Ich verwende die Programm Steuerung zur Zeit nur für Tuner und Geräte, die ich fast ausschließlich über das Webfront steuere…
[/li][/ul]
So bin schon gespannt, ob der eine oder andere mit dem Ganzen etwas anfängt oder sogar noch weitere Verbesserungen an den RemoteControls vornimmt …
Lg
Andreas
[Update 2011-06-17] - Anpassungen an v2.4
[Update 2012-02-10] Integration in die IPSLibrary