Philips Fernseher in IPS einbinden?

Hallo Walter,

vielen Dank für diese Funktionssammlung - es macht Spaß den Philips 55PFL in IPS einzubinden - die Verbindung klappt bisher auch sehr gut :slight_smile:

Ich hätte als „Anfänger“ aber einmal eine eher allgemeine Frage an dich, da mir das noch nicht ganz klar ist:
Die einzelnen Funktionen funktionieren super, aber wie bekomme ich jetzt die Tasten (mit entsprechender Funktions-/Script-Belegung) in mein Webfrontend-Task-Pane? Hatte bisher nur Kategorien eingefügt und dort jetzt untereinander Zeile für Zeile eine Funktion - aber ich würde es gern ähnlich zu einer Fernbedienung mit Tasten im Webfrontend anordnen…? Vielleicht hast du auch einen Screenshot damit man einmal sieht, was überhaupt alles möglich ist für die „Fernbedienung“ für den Philips im Webfrontend?

Viele Grüße,
Tim

Hallo Tim,

schön, dass Du was damit anfangen kannst :slight_smile:
Zu den Hardcopys, schau Dir mal den Beitrag #67 in diesem Thread an. Da habe ich ein paar drin.

Zu Deiner Frage bezgl. Tastenbelegung: Hier werden im Prinzip Variablen mit speziellen Assoziationen im Webfront dargestellt und über ein Aktionsskript entsprechende Funktionen ausgelöst.

Machen wir mal ein Beispiel für die Auswahl der Quelle:

Steuer Skript anlegen, in etwa so :

<?
 //Quelle auswählen
   require_once "philipstv1.php";
	SETVALUE($_IPS['VARIABLE'],$_IPS['VALUE']);
	SWITCH ($_IPS['VALUE'])
	    {
			case 0:
				tv_setsource_tv();
			break;
	      case 1:
				tv_setsource_hdmi1();
			break;
		   case 2:
				tv_setsource_hdmi2();
			break;
		   case 3:
				tv_setsource_hdmi3();
			break;
			case 4:
				tv_setsource_ext1();
			break;
			case 5:
				tv_setsource_ext2();
			break;
			case 6:
				tv_setsource_ext3();
			break;
			case 7:
				tv_setsource_ypbpr();
			break;
			case 8:
				tv_setsource_vga();
			break;
	 }

?>

Das Skript läuft alleine nicht. Du musst zunächst eine Variable anlegen, nenen wir Sie „Quelle“, sie ist vom Typ INTEGER. Für diese Variable machst Du Dir ein neues Variablenprofil. Das sieht ungefähr so aus :
VarProfil.JPG

Die Variable verbindest Du bei „Eigene Aktion“ mit dem o.a. Skript, das Du vorher gespeichert und benamt hast.

Jetzt musst Du nur noch in Deinem Webfrontbereich auf diese Variable verlinken, und dann sollte alles gehen :smiley:

Viel Erfolg !

Gruß
Walter

Moin zusammen,

mal wieder was Neues aus der Philips-TV-Versuchsküche :slight_smile:

Ich suche schon seit einiger Zeit nach einer Möglichkeit, in das laufende TV-Programm Meldungen einzublenden, die mich über wichtige Stati aus IPS informieren. Dabei war mir wichtig, dass die Einblendung nicht via HDMI- oder AUX-Anschluss einfach „umgeschaltet“ wird, sondern das TV Bild erhalten bleibt und lediglich eine Einblendung erfolgt, wie man das z.B. von dem FS20-Gerät kennt. ( geht leider nur ziemlich oldschool über SCART )

Meine Lösung basiert auf LAN und IP-Übertragung und funktioniert nur mit dem in dieserm Thread schon mehrfach beschriebenen Philips TV in der Verbindung mit Jointspace.

Hauptkomponente ist ein OpenSource Programm JSTx, das nur auf Linux-Systemen läuft und die Übertragung des Textes mittels „FB Direct VooDoo“ vornimmt. Die Installation eines LINUX Rechners, der nur für diese Aufgabe mitläuft, fand ich etwas unangemessen. Virtualisieren konnte ich nicht, da mein IPS-Server auf ATOM Prozessoren basiert.
Der RASPBERRY PI war dann die Lösung. Braucht nicht viel Strom, kostet nur 35,-- EUR und ist ein beinahe vollwertiges LINUX Systeme. Der Autor von JSTx war so freundlich und hat das Programm noch einmal speziell inkl. aller Libraries für den Raspy kompiliert und auf SourceForge bereit gestellt. (http://sourceforge.net/apps/mediawiki/jstx/index.php?title=JSTx)

Besagtes Programm wird auf dem RASPBERRY installiert. Die Kommunikation zwischen IPS und dem RASP erfolgt dann via rsh-Kommandos, also der UNIX-Remoteshell.

Gelber Sack muss heute rausgebracht werden: :smiley:

Infos über Außentemperaturen :


Geodaten von meinem Handy. „Auf den Schirm!“ : :smiley:

Was macht die Katze in der Garage so ( diesmal ohne TV-Bild ) :

Normale Meldungen :

Die o.a. Funktionen werden entwder automatisch, nach Event, ausgelöst oder per Knopfdruck auf eine simple FS20 Fernbedienung ausgelöst. Die Zeiten, wie lange das Bild eingeblendet werden soll, kann vorgegeben werden.
Ein paar Code-Schnipsel folgen im nächsten Beitrag.

Gruß
Walter

Hallo,

ein bißchen Anleitung und Code-Schnipsel zu o.a. Lösung :

  1. Raspberry konfigurieren und im Netzwerk in Betrieb nehmen
  2. JSTx Programm runterladen und gem. Anleitung installieren
  3. rsh Dienst auf dem Raspberry installieren ( sudo apt-get install rsh-server )
  4. FTP-Server Dienst auf dem Raspberry installieren
  5. Wichtig: Berechtigungen in /etc/hosts.allow, /etc/hosts.equiv so setzen, dass andere Hosts zugreifen können
  6. rsh-Client für DOS/Windows auf dem IPS-Server installieren ( gibt’s massig im Internet )
  7. Testen: „rsh <raspberry-ip> -l pi ls -l“ sollte eine Dateiliste bringen, dann ist der RSH-Dienst richtig eingerichtet
  8. Das gleiche jetzt mal mit dem eigentlichen Programm "JSTx -t „das ist ein Test“ testen.

Wenn das alles klappt, hat man das schwierigste geschafft und kann sich IPS zuwenden. Beispielfunktionen:


tv_Meldung("Das ist ein Test",5,1) // Meldung für 5 Sekunden anzeigen in rot ohne Transparenz 

function tv_meldung($text,$zeit,$farbe)
{
	$user="pi";
	$server="raspberry";
	$homedir="/home/pi";
	$host="192.168.178.21";
	$text="'".chr(255).$text;
	$text=$text."'";
	$breite=(int) strlen($text)*19;
	IF ($breite >1200)
	   $breite=900;
	$hoehe=55;
	$ff="255,255,255,255";
	Switch ($farbe)
	{
	case 0: // blau
		$bf="25,25,112,255";
		$bf="0,0,128,255";
		break;
	case 1: // rot
	   $bf="139,0,0,255";
	   break;
	case 2: // Grün
	   $bf="0,139,0,255";
	   break;
 	case 3: // blau transparent
	   $bf="25,25,112,128";
	   break;
	case 4: // rot Transparent
	   $bf="139,0,0,128";
	   break;
 	case 5: // grün Transparent
	   $bf="0,139,0,128";
	   break;
	}
	$xpos=1280-$breite-150;  // Horizontale
	$ypos=580;  // Höhe
	$sg=40;
	$handle=fopen("c:/ip-symcon/anz.bat",'w');
	fwrite($handle,"c:
\r");
	fwrite($handle,"cd \ip-symcon
\r");
	$bef="rsh $server -l $user ./JSTx -F $homedir/decker.ttf -s $sg -W 1200 -H 720 -w $breite -h $hoehe -x $xpos -y $ypos -t $text -T $zeit -b $bf-f $ff --dfb:quiet --remote=$host";
	fwrite($handle,$bef);
	fclose($handle);
	IPS_Execute("c:/ip-symcon/anz.bat","",false,false);

}

Mehr Beispiele gerne auf Anfrage. Bilder müssen zunächst per FTP oder Samba auf den Raspberry übertragen werden. Das lässt sich aber auch sehr gut skripten und ist vom Antwortzeitverhalten her absolut ok.

Gruß
Walter

Hallo Walter,

vielen Dank für Deine Anleitung!
Ich habe hier noch Raspberry Pi’s liegen, daher mal noch zwei Fragen bevor ich loslege:

  1. Wie ist der Raspberry Pi an Deinen Fernseher angeschlossen?
  2. ist eine bestimmte Software-Version des Jointspace auf dem TV erforderlich?

Joachim

Hallo Joachim,

der RASPI ist direkt überhaupt nicht mit dem TV verbunden. Er hängt einfach im LAN und dient nur als Plattform für JSTx.
Es sollte mit allen Modellen funktionieren, die auf Port 1925 ( http://192.168.178.xx:1925 ) die Jointspace API zeigen.
Ich habe hier die Version Q5551-0.14.99.0 laufen. Mein Modell ist ein 37PFL7606K/02.

Gruß
Walter

Hallo Walter,

wie gut das ich gefragt habe: Mein Modell unterstützt es offensichtlich nicht…:frowning:

Schade, aber vielen Dank für die Antwort!

Joachim

Wenn ich dass richtig lese sollte das auch auf älteren philips tv funktionieren

Typical devices that support jointSPACE commands are Philips TV’s from 2009 and 2010 (example type numbers of supporting devices 42pfl9664, 32pfl7605 etc.).
Refer to http://jointspace.sourceforge.net for details on jointSPACE and supporting devices. jointSPACE is based on DirectFB.
In essence, JSTx allows you to control and display graphics on top of your TV video, using a PC and a network connected to the jointSPACE enabled TV.

Meiner ist auch von 2010 . Werde ich am We auch erst mal ausprobieren.

Moin,

hier stehen die supporteten Firmware Versionen: jointSPACE TVs Developers

Gruß
Walter

  1. JSTx Programm runterladen und gem. Anleitung installieren

Wo finde ich die Anleitung?

Kannst du kurz drauf eingehen?

PS.:
Wenn ich das richtig gelesen habe kann ich damit auch ältere Modelle über das Webfront schalten. So wie du das mit deinem 2011 Modell gemacht hast.

Die Anleitung findest Du im Tar-Archiv. Allerdings ist die Installation für den Raspy deutlich einfacher als dort beschrieben, weil das Programm nicht mehr kompiliert werden muss. Einfach das TAR-Archiv im Home-Verzeichnis (meistens /home/pi) mit „tar xvf“ auspacken. Anschließend kann JSTx bereits gestartet werden ( mit ./JSTx ). Man kann auch Key-Kommandos übertragen. Ich kann Dir aber nicht sagen, wie das vom Zeitverhalten ist, da die Kommandos von IPS zunächst via rsh an den Raspberry gesendet und dort ausgeführt werden müssen. Das ist für Meldungen unkritisch, - liegt da bei einer knappen Sekunde Ausführungszeit-, könnte für Kommandos aber grenzwertig sein. Einfach mal testen.

Gruß
Walter

Hallo Leute,

dann bin ich leider wieder mal „außen vor“… :frowning:
Schade, aber ein Update ist ja nicht möglich. Über das Enigma-Image meines Sat-Receivers kann ich auch Meldungen absenden, da meistens sowieso dieser läuft ist das auch okay. Motiviert hatte mich die gezeigte Möglichkeit, Bilder der IP-Cam anzuzeigen…

Joachim

Ich habe es Installiert wie du es beschrieben hast.
Jetzt habe ich folgendes Problem wenn ich eine TestNachricht senden will direkt aus Putty. Läuft es alles durch wie zu sehen nur am Ende kommt eine Fehlermeldung . Auf dem Fernseher wird nichts Angezeigt.

Wenn ich z. B. " ./JSTx-0.24/JSTx -k 4 " Eingebe , schaltet der Fernseher sofort um auf Sender 4 . Somit weiß ich das die Verbindung funktioniert.

Kannst du vielleicht erkennen warum das nicht geht?


pi@raspberrypi ~ $ ./JSTx-0.24/JSTx -t "test"

   ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.4.0 |~~~~~~~~~~~~~~
        (c) 2001-2009  The world wide DirectFB Open Source Community
        (c) 2000-2004  Convergence (integrated media) GmbH
      ----------------------------------------------------------------


(*) Direct/Interface: Using 'Requestor' implementation of 'IDirectFB'.

(*) Voodoo/Player: Creating the Socket for player 0x00000000

(*) Running player 'Unnamed Player' with UUID 8bf31a9a8977553bac716045cb3addda!

(*) Direct/Thread: Started 'Voodoo/Player' (-1) [DEFAULT OTHER/OTHER 0/0] <8388608>...

(*) Voodoo/Player: Detected 2 interfaces

(*) Voodoo/Player:   lo               (127.0.0.1) (P-t-P)

(*) Voodoo/Player:   eth0             (192.168.178.255)

(*) Voodoo/Player: Received message from ourself (127.0.0.1)

(*) Voodoo/Player: Received message from ourself (192.168.178.35)

(*) Voodoo/Player: Detected 2 interfaces

(*) Voodoo/Player:   lo               (127.0.0.1) (P-t-P)

(*) Voodoo/Player:   eth0             (192.168.178.255)

(*) Voodoo/Player: Received message from ourself (127.0.0.1)

(*) Voodoo/Player: Received message from ourself (192.168.178.35)

(*) Voodoo/Player: Detected 2 interfaces

(*) Voodoo/Player:   lo               (127.0.0.1) (P-t-P)

(*) Voodoo/Player:   eth0             (192.168.178.255)

(*) Voodoo/Player: Received message from ourself (127.0.0.1)

(*) Voodoo/Player: Received message from ourself (192.168.178.35)

(*) Voodoo/Player: Received SENDINFO from 'PhilipsTV' (192.168.178.46)

(*) Voodoo/Player: Received SENDINFO from 'PhilipsTV' (192.168.178.46)

(*) Voodoo/Player: Received SENDINFO from 'PhilipsTV' (192.168.178.46)

(*) Voodoo/Link: Looking up host '192.168.178.46'...

(*) Voodoo/Link: Connecting to '192.168.178.46:2323'...

(*) Voodoo/Link: Connected.

(*) Voodoo/Link: Sent link code (raw).

(*) Direct/Thread: Started 'Voodoo Dispatch' (-1) [MESSAGING OTHER/OTHER 0/0] <8388608>...

(*) Voodoo/Manager: Connection mode is RAW

(*) VoodooConnection/Link: Allocated 34 kB input buffer at 0x177e348

(*) Direct/Thread: Started 'Voodoo IO' (-1) [DEFAULT OTHER/OTHER 0/0] <8388608>...

(*) Voodoo/Manager: Created remote super interface 'IDirectFB'.

(*) Direct/Interface: Using 'Requestor' implementation of 'IDirectFBDisplayLayer'.

(*) IDirectFBDisplayLayer_Requestor_CreateWindow: Using resource ID 1100

(*) Direct/Interface: Using 'Requestor' implementation of 'IDirectFBWindow'.

(*) Direct/Interface: Using 'Requestor' implementation of 'IDirectFBSurface'.

(*) Direct/Interface: Using 'Dispatcher' implementation of 'IDirectFBEventBuffer'.

Fail!! err!=DFB_OK(#) DirectFBError [dfb->CreateFont(dfb, fontpath, &fontdesc, &font)]: File not found!

(!) [ 7433:    0.000] --> Caught signal 11
 (at 0xe3a02004, invalid address) <--

Aborted

Hallo,

der findet seinen Font nicht. Einfach mit der -F Option den genauen Pfad zu „decker.ttf“ oder einem anderen beliebigen Font mit angeben, dann sollte das gehen:
JSTx -F /home/pi/JSTx-0.24/decker.ttf -t „Das ist ein Test“

Gruß
Walter

So gehts . !!!

Komisch weil im Manuel steht das , wenn man nichts angibt wird das Standardmäßige genommen.

Wobei bei mir liegt die decker.tff in dem Ordnder font

Eingegeben habe ich jetzt

./JSTx -F /home/pi/JSTx-0.24/font/decker.ttf -t „Das ist ein Test“

Edit:

Habe jetzt einfach die decker.ttf in den /home/pi/JSTx-0.24 gelegt und jetzt geht es so wie beschireben.

Jetzt klemmt es nur noch mit der RSH Geschichte da habe ich mich noch beschäftigt.

1 . Ich muss einen RSH Client Runterladen .(Welchen hast du genommen?)
2. Und die Ex in c:/IpSymcon legen?

Das wars ?

Ok wieder ein Schritt Weiter

. Jetzt fehlen nur noch die Berechtigungen in der hosts.allow und hosts.equiv.

wie müssen die aussehen ?

Hallo,

in der hosts.allow steht bei mir:

ALL: ALL: allow

in der /etc/hosts.equiv :
[b]

    • [/b]

Achtung: Das sind Sicherheitseinstellungen! Intern im Netz kein Problem. Internetzugriff sollte nicht möglich sein, da ansonsten ALLE hosts von extern oder intern Kommandos auf die shell pipen können. Aber ich denke mal, Du hast die Firewalleinstellungen so, dass das von außen nicht geht.

Gruß
Walter

Danke das Funktioniert . !!!

Hallo,

2 kleine Tipps noch, um die Geschwindigkeit der rsh-Ausführung zu steigern:

  1. Namensauflösung: Diese sollte man intern nicht DNS überlassen. Das führt dazu, dass rsh manchmal sekundenlang „hängenbleibt“. Einfach den Namen und die IP-Adresse des IPS-Rechners in die /etc/hosts des Raspberry eintragen, dann läuft das um ein Vielfaches schneller. Beispiel: „IPS-Server 192.168.178.27“. Fertig.
  1. Namensauflösung im Kommando: Das JSTx Kommando erlaubt die Mitgabe eines Parameters für den Zielhost ( also den Fernseher ). Dadurch entfällt die Sucherei über Broadcasts etc. Ich bilde mir ein, dass es schneller läuft, wenn man den Parameter verwendet : „-dfb:remote=$host

Gruß
Walter

Moin,

ein paar Sachen sind echt tricky, vor allem wenn man die Kommandos, so wie in meinem Beispiel, zwischen 2 Rechnern austauschen muss:

Mehrere Zeilen :
In der Doku steht, dass das via „^“ Trenner funktioniert. Das ist grundsätzlich richtig. Dieses Zeichen wird leider ignoriert, wenn man vorher Leerzeichen mitsendet, was aber zwangsläufig passiert. Deshalb muss der Text vorher so umgewandelt werden, dass aus den Blanks 255er Charakter werden. Das geht recht einfach so :


$text_n=str_replace(" ",chr(255),$text);
$text=chr(34).$text_n;
$text=$text.chr(34);


Zahlen und Texte stehen untereinander „wie Kraut und Rüben“:

Ein altes Problem mit Fonts, die keine feste Größe haben. Hier einfach einen Font mit fixem Spacing wählen. Davon gibt es genügend kostenlos im Internet. Ich habe hier „saxmono“ laufen, das sieht gut aus.

Have fun !

Walter