Terminal-Befehle für Audiosteuerung

Guten morgen,

ich möchte mich noch einmal um mein größtes Problem bei der Hochzeit IPS - LCN und ReVox kümmern.

Kann mir jemand dabei behilflich sein einen Terminal Befehl an eine IP Adresse abzusetzen???

Nehme ich z.B. Hyperterminal und setze dort an die IP 192.168.0.51 den Text:

22:SET:VOLUME:30, so wird in

Raum 6 der Zone 3 wird die Lautstärke auf den wert 30 (von 40) gesetzt!

Kann mir jemand bei einem MusterButton helfen?? Ich krieg es nicht hin.

Für Wissenshungrige habe ich die komplette Doku des ReVox M-Text angehängt.

DANKE!

LG aus Isernhagen

Martin

DE_BA_Mtext_1-02.pdf (146 KB)

<?
//sendet*’'perDosBox
$output*=*shell_exec('Hier kommt dein Terminal Befehl ');

?>

Wenn du garnicht weiterkommst kannst du gerne zum Stammtisch kommen.

Hallo Martin,

warum richtest Du dir keinen Clientsocket in IPS ein. Dort den TCP-Port eintragen und mit CSCK_SendText deine Befehle übertragen.

@professorakiera: Danke, aber wo steckt die Empfänger IP? Der Skript muss doch gesagt bekommen, dass er an 192.268.0.50 senden muss, oder?

@rwn: kannst Du mir hier genaueres sagen? Kannst Du mir sagen, wo genau der Text reinkommt? Client Socket erstellt und offen. Nehme ich den Telnet Port? Danke

Stammtisch in Hameln am 26.02?

Warum nimmst Du nicht den TCP Port, steht doch alles in deinem angehängten pdf.

CSCK_SendText kommt in ein Script.

CSCK_SendText(12345, '22:SET:VOLUME:30');

12345 ist die Clientsocket ID.

Ja in Hameln ansonsten kann ich auch mal so vorbeikommen abends und dir helfen. MfG Ken

@rwn: danke, leider keine Reaktion! Auf Server den Port freigegeben. Bei IPS gint es keine Fehlermeldung und bei ReVox keine Funktion! Da kann doch nur noch nen kleiner Fehler sein?!? Schreibweise?

Geb ich den Text via Telnet an die IP = Funktion

@professorakeira: danke, nehme ich gerne an. Wann hast Du mal Lust und Zeit?

Habe noch mal ein paar Screenshots angehängt!

Die M-Text-Befehle beginnen immer mit der Nummer des Raums.
Die Parameter werden durch einen Doppelpunkt [:] getrennt.
Der Befehl wird durch eine Zeilenumschaltung (13) beendet.

probier es mal so.

CSCK_SendText(12345, '22:SET:VOLUME:30'.chr(13));  

@rwn: ES FUNKTIONIERT!

Na klar, es bei verlassen der Zeile wird ausgeführt…

Danke

@rwn: es ist ja nicht unüblich eine Statusmeldung anzuzeigen?!?

Ist es möglich mir den Status " 1 Live…" im Webfront anzuzeigen?

Na klar.

SetValueString(23456, „1 Live“);

Mal im Ernst, von was, wem.

Ein bischen mehr Info, könnte nicht schaden.

wenn ich im Raum 09 die Quelle ‚Media‘ einschalte, gibt es vom ReVox System erst die Rückmeldung ‚starting…‘ und nach dem Start z.B. den abgespielten IRadiosender ‚1 Live‘. Schalte ich nun auf eine MP3 von Twonkey oder auf einen anderen Radiosender, gibt es natürlich den Status retour.

Hört man CD werden z.B. Titelnummern beim Wechseln aktualisiert!

Diese Statustexte kommen über den selben Port in gleicher Logik zurück:

xx/Raum/:STATUS:xx/Lautstärke (0-40)/:TEXT (Quelle, Titelnummer)

DANKE

In den Anhängen weiter vorne ist auch ein Telnet Screenshot, da sieht man es ganz gut!

Hab noch zwei vergessen:

Raum:STATUS:Lautstärke:Ein/Aus:Quelle:Text

:slight_smile: das kann man auch.

Leg dir mal eine Registervariable an, mit dem Clientsocket verbinden und der Registervariable deinem Script zuordnen.

dann im Script mal folgendes eingeben.

if($IPS_SENDER == "Execute")
{
    CSCK_SendText(12345, '22:SET:VOLUME:30'.chr(13));
}
if($IPS_SENDER == "RegisterVariable")
{
   $data = $IPS_VALUE;
   IPS_LogMessage($IPS_SELF, $data);
}  

in den Meldungen solltest Du jetzt die Rückdaten sehen. Diese müssen dann im Script noch ausgewertet werden.
Du kannst ja mal einen Dump von der RegVar machen und anhängen.

cool, es funktioniert! Nur, wie jetzt anzeigen??

  1. Anhang Meldungsfenster
  2. RegVar Volume_up
  3. RegVar Einschalten Media

DANKE

Ich wollte einen Dump haben. Registervariable => Debug => speichern als. Diesen bitte als Hex und Ascii. Da sind nämlich noch Steuerzeichen mit drinnen.

Dann kann man die Daten rausfiltern die benötigt werden.

Bitte schön!

Danke

dump_raum09_power_on_hex.txt (3.05 KB)

dump_raum09_power_on.txt (1.41 KB)

dump_volume_down.txt (106 Bytes)

So,

leg dir noch einen Cutter an.

Cutter => CSCK
Registervariable => Cutter

Im Cutter Benutze Zeichen für Schritte Rechts CRLF in HEX=> setzen=>übernehmen.

Eine von vielen Möglichkeiten die Daten zu zerlegen. Sieh dir an wie es in den Meldungen steht. Damit kannst Du was Du in Variablen haben willst in diese rein schreiben.

if($IPS_SENDER == "Execute")
{
   sendData('22:SET:VOLUME:30');
}

if($IPS_SENDER == "RegisterVariable")
{
   $data = explode(':', $IPS_VALUE); // split nach :
   print_r($data);
   IPS_LogMessage($IPS_SELF, $data[6]);
   SetValueString(23456, $data[6]); // Daten in Variable
}

function sendData($string)
{
    $csckID = 12345; // ID Clientsocket
   CSCK_SendText($csckID, $string.chr(13));
}