Philips Fernseher in IPS einbinden?

Schau mal in meinen link Beitrag #52.
Falls du ein 2k11 Modell haben solltest.
Es funktionieren nur die Modelle mit einer 6 am ende

Hallo Mastershort,

ich hatte hiergeschaut und da war mein Gerät mit aufgezählt…

Kann man da kein Update machen?:confused:

Joachim

Hallo,

lt. JointSpace Seite ist das Modell eigentlich dafür freigegeben :confused: Aber selbst bei meinem, relativ neuen Gerät, hat erst ein Software-Upgrade auf Q5551-0.14.93.0 dazu geführt, dass das Web Backend auf Port 1925 reagiert hat. Evtl. auch mal schauen, ob auf dem ausführenden PC die Firewall diesen Port ein- und ausgehend durchlässt.

Gruß
Walter

Hallo Walter,

auf meinem Modell ist wohl die Version „V 140.025“, die Modelle 2k11 haben wohl eine neuere Version. Laut jointSPACE-Forum ist wohl ein Update nicht möglich…:frowning:

Etwas unverständlich wie ich finde…

Joachim

Hallo,

für Version 2.5 von IP-Symcon müssen die Skripte auf CURL umgestellt werden, da „http_post_data“ nicht mehr zur Verfügung steht.

Beispiel: Kanal rauf / runter schalten über Webfront ( Variable vom Typ INT anlegen und mit Skript verknüpfen:

<?
$host="192.168.178.30";
IF (Sys_Ping($host,100))
{
		$cu = curl_init('http://'.$host.':1925/1/input/key');
  	   curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
		IF ($_IPS['VALUE'] == 0 )
		{
					$befehl=array('key'=>'ChannelStepDown');
					$json_befehl=json_encode($befehl);
					curl_setopt($cu, CURLOPT_POSTFIELDS,$json_befehl);
					curl_exec($cu);
		}

		IF ($_IPS['VALUE'] == 1)
		{
					$befehl=array('key'=>'ChannelStepUp');
					$json_befehl=json_encode($befehl);
					curl_setopt($cu, CURLOPT_POSTFIELDS,$json_befehl);
					curl_exec($cu);
		}
		curl_close($cu);
}
?>

Beispiel: MUTE schalten

<?
$host="192.168.178.30";
IF (Sys_Ping($host,100))
{
	$cu = curl_init('http://'.$host.':1925/1/input/key');
  	curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
	$befehl=array('key'=>'Mute');
	$json_befehl=json_encode($befehl);
	curl_setopt($cu, CURLOPT_POSTFIELDS,$json_befehl);
	curl_exec($cu);
	curl_close($cu);
}
?>

Beispiel: Ambilight blink bei

<?
// Ambi blinkt bei Garagentoröffnung. 

$host="192.168.178.30";
IF (Sys_ping($host,100))
{
	$count=0;
	$cu=curl_init('http://'.$host.':1925/1/ambilight/mode');
	curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
	$befehl=array('current'=>"manual");
	$json_befehl=json_encode($befehl);
	curl_setopt($cu, CURLOPT_POSTFIELDS,$json_befehl);
	curl_exec($cu);
	curl_close($cu);
	$cu= curl_init('http://'.$host.':1925/1/ambilight/cached');
	curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);

   for ($count=0;$count <12;$count++)
		{
							$befehl=array('r'=>0,'g'=>0,'b'=>255);
							$json_befehl=json_encode($befehl);
							curl_setopt($cu, CURLOPT_POSTFIELDS,$json_befehl);
							curl_exec($cu);
							IPS_SLEEP(500);

							$befehl=array('r'=>132,'g'=>44,'b'=>12);
							$json_befehl=json_encode($befehl);
							curl_setopt($cu, CURLOPT_POSTFIELDS,$json_befehl);
							curl_exec($cu);
							IPS_SLEEP(500);
		}
	curl_close($cu);

	$cu = curl_init('http://'.$host.':1925/1/ambilight/mode');
	curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
	$befehl=array('current'=>"internal");
	$json_befehl=json_encode($befehl);
	curl_setopt($cu, CURLOPT_POSTFIELDS,$json_befehl);
	curl_exec($cu);
	curl_close($cu);

}
?>

Viel Spass !
Walter

Hallo für alle die wie ich ein nicht 2k11 Modell haben sollten mal In das jointspace.sourceforge Forum gehen.
SourceForge.net: jointSPACE: Open Discussion

Und mal ein Eintrag schreiben und darum bitten das diese API 's auch in Firmware für ältere integriert werden sollen . Vielleicht hilft das ja . Vieleicht merken die das da Interesse da ist. Ein Versuch sollte es Wert sein.

Hallo zusammen,

so, nach einigen Stunden Arbeit ist mein Philips-Tv nun „IPS integrated“ :smiley:

Die Steuerung funktioniert komplett über Webfront ( IPad ):

  • Volumen
  • Kanäle
  • Kanalwahl über Programm-Button
  • Quellen, Steuerung, TV-Funktionen, Cursortasten, Optionen

Über den aktuell angewählte Kanal werden via XML-Schnittstelle Informationen zum laufenden Programm abgerufen und dargestellt. Weitere Infos gibt’s dann per Klick auf den Link.

Sonstiges :

  • Ambilight blinkt blau/gelb bei Öffnung des Garagentors :smiley:
  • Ambilight blinkt bei Anruf
  • Lautstärke wird bei ankommenden Telefon-Anruf reduziert und nach dem Auflegen wieder normalisiert
  • Lautstärke bei Digitalprogrammen wird automatisch angepasst ( meistens zu laut im Vergleich zu analogen )
  • Radio hören macht jetzt auch Spass, da man die Sender nach Sendernamen aussuchen kann und nicht ab Programmplatz 1000 rum suchen muss

Wie funktionierts ?

Die Schnittstelle JSON/Philips API habe ich ja hier schon beschrieben. Sie ist Grundlage für alle Schaltoperationen. Des weiteren werden per Skript (nur bei Anwesenheit ) zyklisch einige Parameter wie z.B. „laufendes Programm“ ausgelesen und darüber z.B. per XML die Sendungsinformationen eingelesen oder bei bestimmten Events die Lautstärke angepasst / wieder eingeschaltet.

Skript-Schnipsel gibt’s gerne auf Anfrage. Das Teil als Ganzes kann ich hier nicht posten, da zu stark in meine individuelle Umgebung eingearbeitet.

Jetzt fehlt mir noch eine schöne Lösung für die Einblendung von Texten :wink:

Gruß
Walter

Hallo zusammen,

damit’s alle die Ihr Philips TV in IPS einbinden wollen etwas leichter haben, habe ich versucht, die wichtigsten TV-Funktionen in PHP-Funktionen zu übertragen. Entstanden ist eine Library von zurzeit 46 Funktionen.

Voraussetzung: Das TV muss JointSpace aktiviert sein.
Testen: Im Browser IP-Adresse:1925 eingeben ( Beispiel: 192.168.178.30:1925). Jetzt sollte die API-Seite des TVs erscheinen. Dann ist alles klar.

Zunächst im Skript philipstv1.php die IP-Adresse anpassen.
In allen Scripten, in denen TV-Funktionen benötigt werden, das PHP-Skript philipstv1.php mittels require_once oder include einbinden.

Funktionsbeschreibung siehe PDF-Datei im Anhang. Die Funktionen liefern FALSE zurück, falls nicht erfolgreich.

Beispiel:

require_once "philipstv1.php";
echo tv_getversion();

gibt die aktuelle Version aus.

oder

<?
require_once "philipstv1.php";
$programme=tv_getchannellist();
print_r($programme);

Gibt ein Array mit allen Programmen und den Programmplätzen zurück.

<?
require_once "philipstv1.php";
echo tv_getvolume();

gibt die aktuell eingestellte Lautstärke zurück

<?
require_once "philipstv1.php";
tv_adjust();

wechselt ins Anpassungsmenü

<?
require_once "philipstv1.php";
tv_find();

wechselt ins Suchenmenü

<?
require_once "philipstv1.php";
$kanal=tv_getchannel();
echo $kanal;

gibt den zurzeit eingestellten Kanal zurück, z.B. „RTL“.

u.s.w.

Der Code in den eigentlichen Programmen wird dann deutlich übersichtlicher. Hier ein Beispiel für die Verwendung von Funktionstasten im Webfront im Zusammenspiel mit einer INT-Variable :

<?
 //TV Funktionen
   require_once "philipstv1.php";
	SETVALUE(55162 /*[HIFI, TV und VIDEO\Fernseher\Steuerung über Webfront\TV-Steuertasten]*/,$IPS_VALUE);
	SWITCH ($IPS_VALUE)
	    {
			case 0:
				tv_find();
			break;
	      case 1:
				tv_next();
			break;
		   case 2:
				tv_previous();
			break;
		   case 3:
				tv_confirm();
			break;
	 }

?>

Kompletter Funktionsumfang ist in der Anlage beschrieben. Fehlermeldungen oder weitere Wünsche / Anpassungen gerne an mich. Viel Spaß damit.

Gruß
Walter

PhilipsTV_FL_V1.2.zip (264 KB)

PhilipsTV_FL_V1.3.zip (269 KB)

PhilipsTV_FL_V1.0.zip (259 KB)

PhilipsTV_FL_V1.1.zip (260 KB)

Hi,

ich bin leider nicht so firm und bin gerade dabei mich reinzuarbeiten in die ganze Materie.

Wenn ich die Philips1.php in mein IPS einbinde bekomme ich bei auslösen von den einzelnen Scripts immer

Parse error: syntax error, unexpected ‚[‘ in C:\IP-Symcon\scripts\philipstv1.php on line 19

Ich bin noch auf Version 2.4…liegt es eventuell daran?

Hallo,

check’ ich heute Abend und melde mich. Zumindest läuft es mit der aktuellen Version ohne Probleme…

Gruß
Walter

Wäre Klasse! Danke Dir

Außer, dass der RETURN Wert ziemlich verschachtelt ist, kann ich jetzt nichts finden. Läuft auch hier so.
Versuch mal die Funktion wie folgt zu ändern :

function tv_get_current_source()
{
	global $host;
	$url = "http://".$host.":1925/1/sources/current";
	$arr=tv_befehl($url);
	$ret=$arr['id'];
	return($ret);
}

Wenn der Fehler jetzt in Zeile 28 wandert, dann haben wir einfach ein Problem mit der Verschachtelungstiefe. Das kriegen wir aber dann hin…

Gruß
Walter

Hi Walter,

ist immer noch die gleich Fehlermeldung. Ich mach das anders. Ich mach jetzt mal ein Update auf 2.5 und dann sehen wir weiter. Ich meld mich dann einfach nochmal. Du hast Dir jetzt soviel Mühe gegeben, muss ja nicht sein, dass Du alles nochmal auseinander nimmst nur weil jemand noch auf dem alten Zeug rumkrebst :smiley:

Viele Grüße

Flo

Soderle…nach dem Update geht soweit alles. Ich hätte nur noch eine Frage:

Wie kann ich die einzelnen Ambilight Elemente ansprechen? Wäre nämlich genial zur Anrufsignalisierung (verschiedene Anrufer=verschiedene Farben etc)

Danke schonmal im vorraus

viele Grüße

Florian

habe ich in der Funktionssammlung nicht drin. Sollte aber mit diesem oder ähnlichem Skript gehen :


$host="192.168.178.30";
IF (Sys_ping($host,100))
{
    $count=0;
    $cu=curl_init('http://'.$host.':1925/1/ambilight/mode');
    curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
    $befehl=array('current'=>"manual");
    $json_befehl=json_encode($befehl);
    curl_setopt($cu, CURLOPT_POSTFIELDS,$json_befehl);
    curl_exec($cu);
    curl_close($cu);
    $cu= curl_init('http://'.$host.':1925/1/ambilight/cached');
    curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);

   for ($count=0;$count <12;$count++)
        {
                            $befehl=array('r'=>0,'g'=>0,'b'=>255); // hier Farbwerte ändern !!!!
                            $json_befehl=json_encode($befehl);
                            curl_setopt($cu, CURLOPT_POSTFIELDS,$json_befehl);
                            curl_exec($cu);
                            IPS_SLEEP(500);

                            $befehl=array('r'=>132,'g'=>44,'b'=>12); // hier Farbwerte ändern !!!
                            $json_befehl=json_encode($befehl);
                            curl_setopt($cu, CURLOPT_POSTFIELDS,$json_befehl);
                            curl_exec($cu);
                            IPS_SLEEP(500);
        }
    curl_close($cu);

    $cu = curl_init('http://'.$host.':1925/1/ambilight/mode');
    curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);
    $befehl=array('current'=>"internal");
    $json_befehl=json_encode($befehl);
    curl_setopt($cu, CURLOPT_POSTFIELDS,$json_befehl);
    curl_exec($cu);
    curl_close($cu);

}
?>

Dieses Skript führt dazu, dass das Ambilight blinkt. Die Farben kannst Du in den o.a. markierten Zeilen ändern. Genau wie die Anzahl Blinkvorgänge in der Schleife ( 12 ) und die Pausen dazwischen in den IPS_SLEEP Kommandos.

Viel Spass !

Gruß
Walter

Hi Walter,

Funktioniert! Danke. Aber nur die Linke Seite. Kannst Du mit noch sagen, wie ich die restlichen ansteuern kann?

ist leider ein bekannter BUG in der Firmware. Ist auch in der JointSpace Community beschrieben. Warten wir auf neue Releases.

Gruß
Walter

Hallo,

habe mal im Post #68 die Version 1.2 hochgeladen. Damit hast Du jetzt auch einige Ambi-Funktionen zur Verfügung, wie z.B.

tv_ambi_blink(r,g,b,anzahl) blinkt <anzahl> Mal in den Farben r,g,b ( lt. RGB-Farbschema )
tv_ambi_color(r,g,b) setzt die Ambifarbe dauerhaft auf r,g,b
tv_ambi_blink_rot(anzahl) blink <anzahl> Mal in Rot
tv_ambi_lauflicht(anzahl) Lauflicht links in rot,grün,blau <anzahl> Mal
etc…

Viel Spass !

Gruß
Walter

Hi Walter,

Vielen, vielen, vielen Dank! Damit macht es wirklich Laune. Gibt es denn noch eine Möglichkeit, die Quelle direkt auszuwählen?

Sorry, habe den Beitrag heute erst gelesen:eek: Ich habe in Beitrag #68 die Version 1.3 hochgeladen. Damit stehen jetzt einige Funktionen zur direkten Quellauswahl zur Verfügung.

Beispiel:

tv_setsource_tv() Schaltet auf TV
tv_setsource_hdmi1() Schaltet auf HDMI1
tv_setsource_vga() Schaltet auf PC Eingang
tv_setsource_ext1() Schaltet auf Extern 1
u.s.w

Mehr dazu in der Doku. Viel Spass damit ! :smiley:

Gruß
Walter