Allgemein
Das AudioMax Modul der IPSLibrary stellt ein API Interface zur Ansteuerung der AudioMax Multiroom Steuerung des Herstellers eService-Online zur Verfügung.
Es ist dadurch möglich das AudioMax System wie jedes andere nativ in IP-Symcon eingebundene Gerät zu anzusteuern.
Das AudioMax Gerät bietet 4 unabhängige Ausgänge über RJ45 (AudioBus) oder Cinch, die wahlweise mit den 4 Eingängen (Cinch) verbunden werden können.
Foldende Funktionen stehen über IPS zur Verfügung:
- MainPower – Audio Server Ein/Ausschalten
- RoomPower – Einzelne Räume Ein/Auschalten
- InputSelect – Auswahl des Eingangs
- InputGain – Eingangsverstärkung
- Muting – Muting Funktionalität
- Volume – Lautstärkeregelung für Ausgang
- Treble – Einstellung der Höhen
- Middle – Einstellung der Mitten
- Bass – Einstellung des Bass
AudioMax Systemübersicht
Download und Installation
Die Installation gliedert sich wie für alle IPSLibrary Module in 3 Teile:
- Download
- Konfiguration
- Installation
Download und Installation können entweder manuell mit dem IPSModuleManager gemacht werden oder man verwendet das Modul IPSModuleManagerGUI
Konfiguration:
Im File AudioMax_Configuration.inc.php kann das Kommuinkations Port und die Namen der Ein- bzw. Ausgänge definiert werden (Details siehe auch weiter unten).
Erweiterungen
Das AudioMax System kann auch mit anderen Modulen erweitert werden
- NetPlayer – Module zum Abspielen von MP3 Files und Internet Radio Stationen
- Entertainment Steuerung (vordefiniertes Konfigurations Script ist im Example Ordner vorhanden)
Ein komplettes Installations Script zur Installation von AudioMax+NetPlayer+Entertainment findet sich im Downloadbereich des Herstellers.
Hinweis:
Alle Module sind modular aufgebaut, es ist also ohne weiteres möglich, die AudioMax Steuerung auch ohne NetPlayer und Entertainment Steuerung zu betreiben. In der Minimal Variante braucht die AudioMax Steuerung auch nur ca. 15 Variablen um die volle Funktionalität zur Verfügung zu stellen.
Konfiguration
Folgende Parameter können konfiguriert werden:
AM_CONFIG_COM_PORT – Serielle Port der zur Kommunikation verwendet wird.
AM_CONFIG_ROOM_COUNT – Anzahl verwendeten Räume des AudioMax Systems
AM_CONFIG_INPUTNAME1 – Name Eingang 1
AM_CONFIG_INPUTNAME2 – Name Eingang 2
AM_CONFIG_INPUTNAME3 – Name Eingang 3
AM_CONFIG_INPUTNAME4 – Name Eingang 4
AM_CONFIG_ROOMNAME1 – Name Raum 1
AM_CONFIG_ROOMNAME2 – Name Raum 2
AM_CONFIG_ROOMNAME3 – Name Raum 3
AM_CONFIG_ROOMNAME4 – Name Raum 4
Das Konfiguratons File ist im folgendem Pfad zu finden „…/IP-Symcon/scripts/IPSLibrary/config/hardware/AudioMax/AudioMax_Configuration.inc.php“
Weiterführende Links
API Funktionen
Durch das Inkludieren der AudioMax API Scripts stehen alle Funktionen des AudioMax Systems zur Verfügung:
IPSUtils_Include ('AudioMax.inc.php', 'IPSLibrary::app::hardware::AudioMax');
API Funktionen
- function AudioMax_SetMainPower($instanceId, $value)
- function AudioMax_GetMainPower($instanceId)
- function AudioMax_SetRoomPower($instanceId, $roomId, $value)
- function AudioMax_GetRoomPower($instanceId, $roomId)
- function AudioMax_SetInputSelect($instanceId, $roomId, $value)
- function AudioMax_GetInputSelect($instanceId, $roomId)
- function AudioMax_SetInputGain($instanceId, $roomId, $value)
- function AudioMax_GetInputGain($instanceId, $roomId)
- function AudioMax_SetVolume($instanceId, $roomId, $value)
- function AudioMax_GetVolume($instanceId, $roomId)
- function AudioMax_SetMute($instanceId, $roomId, $value)
- function AudioMax_GetMute($instanceId, $roomId)
- function AudioMax_SetBalance($instanceId, $roomId, $value)
- function AudioMax_GetBalance($instanceId, $roomId)
- function AudioMax_SetTreble($instanceId, $roomId, $value)
- function AudioMax_GetTreble($instanceId, $roomId)
- function AudioMax_SetMiddle($instanceId, $roomId, $value)
- function AudioMax_GetMiddle($instanceId, $roomId)
- function AudioMax_SetBass($instanceId, $roomId, $value)
- function AudioMax_GetBass($instanceId, $roomId)
- function AudioMax_SetMode($instanceId, $mode, $value)
- function AudioMax_GetMode($instanceId, $mode)
- function AudioMax_SetText($instanceId, $text1, $text2=null, $text3=null)
- function AudioMax_GetServer($instanceId)
Genauere Beschreibung der einzelnen Funktionen findet sich im Include File des AudioMax Systems (zu finden unter „…/IP-Symcon/scripts/IPSLibrary/app/hardware/AudioMax/AudioMax.inc.php“)
Achtung: Veränderung der AudioMax Variablen ohne dabei die API Funktionen zu benützen, hat keinen Effekt. Es müssen immer die API Funktionen zur Ansteuerung verwendet werden (Vergleich zu anderen Instanzen in IP-Symcon – auch dort ist ein direktes Schreiben auf Variablen der diverser Instanzen nicht möglich).
Einschalten des Servers
Mit folgendem Code wird der Server und der erste Raum eingeschaltet (Räume werden mit 0 – 3 angesprochen).
IPSUtils_Include ('AudioMax.inc.php', 'IPSLibrary::app::hardware::AudioMax'); AudioMax_SetMainPower(null, true); AudioMax_SetRoomPower(null, 0, true);
Ausschalten des Servers
Mit folgendem Code wird der Server ausgeschaltet
IPSUtils_Include ('AudioMax.inc.php', 'IPSLibrary::app::hardware::AudioMax'); AudioMax_SetMainPower(null, false);
Auswahl eines Einganges
Mit folgendem Code wird im Raum 0 der Eingang 1 ausgewählt (Eingänge haben einen Wertebereich von 0 bis 3).
IPSUtils_Include ('AudioMax.inc.php', 'IPSLibrary::app::hardware::AudioMax'); AudioMax_SetInputSelect(null, 0, 1);
Setzen der Lautstärke
Mit folgendem Code wird die Lautstärke im Raum 0 auf 20 gesetzt (enspricht 50%, Wertebereich geht hier von 0 bis 40).
IPSUtils_Include ('AudioMax.inc.php', 'IPSLibrary::app::hardware::AudioMax'); AudioMax_SetVolume(null, 0, 20);
GUI
AudioMax Server GUI
Das AudioMax System bietet eine kleine GUI zur Visualisierung der Server und Raum Instanz Variablen.
AudioMax Entertainment Steuerung
Optional ist auch noch die Installation der Entertainment Steuerung und des NetPlayer möglich:
AudioMax Protokol
Im folgendem Abschnitt findet sich eine Protokoll Beschreibung des AudioMax Servers. Eine detailierte Beschreibung aller Befehle findet man auf Hersteller Homepage.
Allgemeiner Befehlsaufbau
Prinzipieller Aufbau der Kommunikation CommandType „SVR“ Command [Room] [Audio] Value
Jeder Kommando Teil wird durch einen Separator (Semikolon) voneinander getrennt. Terminiert wird jedes Kommando von einem CR.
Allgemeine Protokoll Spezifikation
- Alle Befehle können in Groß- oder Kleinbuchstaben geschrieben werden.
- Die einzelnen Befehlsteile sind durch ein Semikolon voneinander getrennt.
- Alle Befehle werden mit „Carriage Return“ („CR“, Dezimal 13) beendet
- Das System gibt auf jeden Befehl eine Bestätigung
- Der AudioServer sendet alle 60 Sekunden eine „Keep Alive“ Meldung
- Der AudioMax Server erwartet alle 60 Sekunden eine „Keep Alive“ Meldung vom Kommunikations Partner.
- Es können Texte auf dem LCD Display ausgegeben werden (Geräte mit Display)
Grundsätzlich gibt es vier verschiedene Befehlsarten
- SET: Setzen von Werten im AudioMax
- GET: Abfrage von Serverwerten
- EVT: Nachrichten die vom AudioMax selbsttätig gesendet werden
Beispiele
set;svr;pwr;1<cr> AudioMax Server Ein
evt;svr;kal;0<cr> Keep alive Message vom Server
set;svr;roo;00;1<cr> Raumverstärker in Raum 1 einschalten
set;svr;aud;00;inp;1<cr> Eingang 2 in Raum 1 selektieren
set;svr;aud;02;vol;08<cr> Lautstärke in Raum 3 auf 8
set;svr;aud;03;bas;14<cr> Bass in Raum 4 auf 14
Übersicht Protokol Kommandos
Folgende Befehle können an den Server gesendet werden:
- SET SVR AUD [RAUMNUMMER] [AUDIO] [VALUE]
VOL = Volume (40–0, 40 = Mute)
INP = Input Analog Signal (0-3)
GAI = Gain, Verstärkung (0-15, 0 = 0dB Verstärkung)
BAL = Balance (0-15, 15 = Rechts)
BAS = Bass (0-15, 15 = +14dB)
MID = Middle (0-15, 15 = +14dB)
TRE = Treble (0-15, 15 = +14dB)
- SET SVR ROO [RAUMNUMMER] [VALUE] Steuerung Raumverstärker (0 – 3)
- SET SVR PWR [STATUS] AudioMax Server Ein/Aus, (1=On 0=Off)
- SET SVR TEX [TEXT1] [TEXT2] [TEXT3] Textausgabe auf LCD Display, max 20 Zeichen pro Zeile, TEXT1 = 2.Zeile, TEXT2 = 3.Zeile, TEXT3 = 4.Zeile
- SET SVR KAL 0 “Keep Alive” Signal an PC
- SET SVR MOD [MODE] [VALUE] Setzen von Betriebsarten (0 = Acknowledge, 1 = Debug On/Off, 2 = Button Room Amp, 3 = KAL von PC)
Werte von AudioMax Server abholen
- GET SVR AUD [RAUMNUMMER] [AUDIO] Werte der Audioeinstellungen
- GET SVR ROO [RAUMNUMMER] Status der Raumverstärker
- GET SVR PWR Status des Servers
- GET SVR VER Ausgabe der Firmwareversion
- GET SVR MOD [TYP] Ausgabe AudioMax Version (S404, S408, ..)
- GET SVR HAR Hardware Version, Herstelljahr
AudioMax Events
Der AudioMax Server sendet selbständig Statusmeldungen
- EVT SRV [COMMAND] [ROOM] [AUDIO] [VALUE] Statusmeldungen nach Power On
- EVT SVR KAL [STATUS] “Keep Alive“ Meldung an PC, 0=Standby, 1=Server On
- EVT SVR ROO [ROOM] 1 Taste des Raumverstärkers [NUMMER] betätigt (1 = betätigt)
Betriebsarten
Mit diesen Befehlen können verschiedene Betriebsarten für den AudioServer gesetzt werden
SET SRV MOD [MODE] [STATUS]
- MODE 0 Acknowledge (Default = 0, 0= Acknowledge 0 bis 5, 1 = Echo des Befehls)
- MODE 1 Debug Ausgaben (Default = 0, 0 = keine Debug Ausgaben, 1 = Debug Ausgaben)
- MODE 2 Tasterfunktion Raumverstärker (Default = 0, 0 = nur Meldung an PC, 1 = Der Raumverstärker wird direkt geschalten + Meldung an PC)
- MODE 3 KAL von PC aktiviert/deaktiviert (Default = 0, 0 = KAL von PC erwartet, 1 = keine KAL Meldung von PC erwartet)
Acknowledge
Der AudioMax Server bestätigt jeden Befehl mit einer Acknowledge Meldung, das genaue Format dieser Meldung ist vom „Mode 0“ Einstellungen abhängig.
Acknowledge Code:
MODE0=0: „0“ => Befehl erkannt
MODE0=1: Bei erkanntem Befehl wird der gesendete Befehl als Echo ausgegeben.
Im Fehlerfall werden folgende Codes gesendet:
„1“ => Error 1, Command Array 1, Unknown Command => Fehler im 1. Befehlsteil
„2“ => Error 2, Command Array 2, Unknown Command => Fehler im 2. Befehlsteil
„3“ => Error 3, Command Array 3, Unknown Command => Fehler im 3. Befehlsteil
„4“ => Error 4, Command Array 4, Out Of Range => Fehler im 4. Befehlsteil
„5“ => Error 5, Command Array 5, Out Of Range => Fehler im 5. Befehlsteil