Module – AudioMax

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

AudioMax_SystemOverview

 

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

Diskussions Thread zum Modul

IPSLibrary Main Thread

IPSLibrary Diskussions Thread

Hersteller eservice-online.de

Bedienungsanleitung

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_Server
AudioMax Entertainment Steuerung

Optional ist auch noch die Installation der Entertainment Steuerung und des NetPlayer möglich:

AudioMax_Entertainment

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