Popup/Meldungen in Mediaportal erzeugen

Nachdem ich ein Wunschfeature lange Zeit hinten angestellt habe, hat mich wieder der Ehrgeiz ergriffen. Ich wollte schon immer im Mediaportal Meldungen einblenden können. Meine Versuche mit Growl/Snarl habe für mich zu keinem zufriedenstellenden Ergebniss geführt. Ich brauchte ein natives Mediaportal Plugin jedoch habe ich nie etwas passendes gefunden.

Dann hat mir aber doch eine Anfrage im Mp-Forum weiter geholfen. (noch mal Danke an Luca Brasi für den Tipp). Das Plugin EventGhostPlus kann genau das was ich möchte. Man kann (unter anderem) mittels EventGhost Meldungen in Mediaportal einblenden. Was Eventghost kann, das kann doch Ips auch… also wir brauchen:

-einen ClientSocket mit Registervariable
-zwei Skripte (Verbindung und Senden)
-5 String-Variablen (Head, Zeile1, Zeile2, Timeout, Picture)
-das Plugin für Mediaportal EventGhostPlus

Das Plugin installieren und einen Port festlegen. Kein Passwort angeben, das ist nicht integriert.
Im Ips einen ClientSocket und eine Registervariable anlegen. Die übergeordnete Instanz der Registervariable ist der ClientSocket, als Ziel Id in dieser wird noch das (noch anzulegende) Skript „Senden“ angegeben.
Die Variablen anlegen und die Skripte erstellen

Skript Verbindung:

<?
$socket_id = xxxxx; //id des ClientSocket
IPS_SetProperty($socket_id, "Open", true);
IPS_SetProperty($socket_id, "Host", "192.168.0.xxx"); //Ip der Mediaportal Maschine
IPS_SetProperty($socket_id, "Port", xxxx); //Im Plugin festgelegter Port
IPS_ApplyChanges($socket_id);
usleep(50000);
CSCK_SendText($socket_id, "quintessence
");
?>

Skript Senden:

<?
$data = $IPS_VALUE;
$head 	= GetValueString(xxxxx/*[Signalisierung\Mediaportal Meldungen\Header]*/);//Variablen Id angeben
$Zeile1 	= GetValueString(xxxxx/*[Signalisierung\Mediaportal Meldungen\Zeile1]*/);//Variablen Id angeben
$Zeile2 	= GetValueString(xxxxx/*[Signalisierung\Mediaportal Meldungen\Zeile2]*/);//Variablen Id angeben
$Timeout = GetValueString(xxxxx/*[Signalisierung\Mediaportal Meldungen\Timeout]*/);//Variablen Id angeben
$Img     = GetValueString(xxxxx/*[Signalisierung\Mediaportal Meldungen\Image]*/);//Variablen Id angeben
$leng = strlen($data);
$socket_id = xxxxx; //id des ClientSocket
if ($leng = 5)
    {$data2 = trim($data);
	  $data2 .= ":";
     $hash = md5($data2);
     $hash .= "
";
     CSCK_SendText($socket_id, $hash);}

if ($data == "accept
")
	{CSCK_SendText($socket_id, "payload $head
");
	 CSCK_SendText($socket_id, "payload $Zeile1
payload $Zeile2
payload $Timeout
");
	 CSCK_SendText($socket_id, "payload $Img
MediaPortal.Message
close
");}

if ($data == "close
")
	{IPS_SetProperty($socket_id, "Open",false);
	 IPS_ApplyChanges($socket_id);}
?>

In der Meldung kann dann der Head und zwei Zeilen mit Text versehen werden. Mit der Variablen „Picture“ kann dann noch der Pfad zu einer Bilddatei angegeben werden, das habe ich aber noch nicht versucht. Die Variable „Timeout“ sagt aus wie lange die Meldung am Bildschirm erscheint.

Gestartet wird der Ablauf mit dem Skript „Verbindung“ das den Socket öffnet und die Verbindung zum MP-Plugin aufbaut. Durch die Registervariable wird dann das Skript „Senden“ gestartet und die Strings übertragen. Danach wird der Socket wieder geschlossen.

So sieht das dann aus:

so, ich hoffe ich habe nicht zuviel Stuss zusammenprogrammiert, mein Phpwissen ist auch nur rudimentär vorhanden und das meiste zusammenkopiert. Aber im Versuch funktioniert es bei mir schon mal, vielleicht kann es der Eine oder Andere brauchen.

gruß
goran