Moin zusammen,
wir sitzen gerade bei der Einrichtung, die Automation der nicht moderierten Sendungen von einem Umbeaufsichtigen Server aus zu fahren. Natürlich mit mAirList.
Nun müssen wir uns eine Fernsteuerung für gewisse Funktionen basteln, z.B das on- / offAir schalten.
Gibt es rigendwo eine Doku, wo drin steht, welche Befehle unterstützt werden? Ich würde z.B. gerne ein mAirlist Script per remote starten. Gibt es Unterschiede zwischen SOAP und Seriell, mal abgesehen vom Syntax? Ggf. würden wir eien virtuelle Serielle schnittstelle einrichten, für die Fernsteuerung. Hätte den Vorteil, dass man auch Zeiten runterzählen kann bis zum Song-Ende, für die Stream Übergabe an das nächste Sendestudio. SOAP kann ja anscheinendn nur Befehle annehmen, aber noch nichts zurück geben.
Ist im Moment alles noch in der Überlegungsphase vermutlich erfolgt die Steuerung aus einem PHP Script heraus, Webserver läuft dann mit auf dem mAirList Rechner.
Die “Dokumentation” des SOAP-Webservice liefert der Server automatisch als WSDL-Dokument, und zwar bei den Standardeinstellungen unter dieser URL: http://127.0.0.1:9300/soap?wsdl
Mit PHP und SoapClient kann man dann ganz einfach Kommandos ausführen (Methode “ExecuteCommand”).
Danke Torben!
Habe gerade keine Testmöglichkeit, werde ich aber ASAP nachholen.
Ich hab noch mal das Forum durchforstet und das hier gefunden, falls noch jemand Interesse hat.
Verstehe ich das also richtig, dass ich jeden Befehl per ExecuteCommand senden kann, den ich auch für Hotkeys definieren kann? Ich meine mal irgendwo aufgeschnappt zu haben, dass nicht alle funktionieren. Kann mich aber auch irren.
Du kannst beliebige Befehle darüber schicken, wie auch bei den anderen Fernsteuerungs-Schnittstellen. Der Befehlssatz ist überall identisch, denn die Befehler werden an eine zentrale Stelle (RemoteController) weitergeleitet und von da an die verschiedenen Objekte weiterverteilt.
Was PHP und SOAP angeht, so fehlt mir da gerade etwas der aktuelle Überblick. Wie es aussieht, ist das in PHP 5 nun alles objektorientiert: http://php.net/manual/en/book.soap.php
Vielleicht reicht schon das hier (kann gerade nicht testen):
$client = new SoapClient('http://127.0.0.1:9300/soap?wsdl');
$client->ExecuteCommand('PLAYER 1-1 START');
Gibt’s da schon näheres, weil wir eigenltich gerade auf Soap aufsetzen wollten. Das ist damit wohl hinfällig. Hast Du vielleicht ein kleines PHP beispiel, so’n 2 Zeiler wie für soap?
Gibt es eine empfohlene PHP library
Wie du am Datum siehst, arbeite ich gerade an dem Artikel.
Kommandos ausführen geht über ein POST an die URL http://127.0.0.1:9300/execute, wobei du als Parameter “command” den Befehl übergibst (IP natürlich anpassen).
Genaue Syntax für PHP müsste ich gleich mal nachschauen. Schreibe ich dann ins Wiki.
curl gibt es übrigens auch für Windows - damit ist es dann vermutlich überflüssig, ein neues mAirListCommand.exe zu schreiben, oder?
Wichtig: Das neue REST-Interface ist mit dem alten SOAP-Interface nicht kompatibel. Das bedeutet, dass mAirList 3.0 und mAirList 3.1 nicht miteinander sprechen können.
Wie du siehst, muss man den String mit dem Kommando derzeit noch selber zusammenbauen. Es gibt auch eine Variante mit CURLOPT_POSTFIELDS, wo man ein Array übergibt, dann allerdings werden die Parameter als multipart übertragen, was der in mAirList eingebaute Webserver (derzeit) nicht versteht.
WOW. Habe heute versucht mit curl zu arbeiten. Beim aufruf der Hilfefunktion kommt eine sehr, sehr lange Liste mit Möglichkeiten.
Jedoch habe ich nicht rausbekommen, wie ich einen Befehl an mAirList senden kann.
Weil ich aber im Moment noch eine Mischung mit mAirList 2.2.2 / 3.0 & 3.1 habe. Jedoch ist dies nur für den Übergang.
Wäre jedoch in der Tat wirklich einfacher :
Nun läuft alles soweit, dass ich das Script,Script heute einbauen kann