Rückkanal Samsung TV

Ich habe einen Samsung TV der ES-Serie. Ich würde gerne einen Rückkanal in IP-Symcon implementieren. Bin in diesem Forum nicht fündig geworden. Fand nur ein Skript für die Bedienung des Fernseher.
Samsung Fernseher fernbedienen

Einziger Rückkanal ist get volume.
Nachrichten (PMR), Volume (DMR) und RC-Commandos per LAN an Samsung TV C-Serie

Da ich meinen Fernseher an einem Receiver angeschlossen habe, bringt mir dies nichts. Hauptsächlich bin ich interessiert an der Channel Nummer.

Ich fand
Samsung TV - Bindings - openHAB 2 - Empowering the Smart Home
Gemäss dieser Dokumentation sollte dies in OpenHab gelöst worden sein. Leider kann ich dieses Skript nicht lesen. Leider kenne ich OpenHab nicht. Kann mir jemand erklären, wie ich dieses Skript downloaden kann oder OpenHab zu installieren. -Habe versucht OpenHab 2.1 zu installieren. Funktionierte bei mir nicht.

Welches Modell denn genau?

OpenHAB basiert auf JAVA, wenn man das also in IP-Symcon benutzten will müsste man das umschreiben. Auch OpenHAB unterstützt nur sehr wenige ausgesuchte Modelle. Daher wäre es wichtig zu wissen welches Modell Du genau besitzt. Die eine Möglichkeit wäre, wenn das den mit OpenHAB funktioniert, das an IP-Symcon anzupassen, die andere Möglichkeit wäre OpenHAB zu installieren und zu schauen ob der TV darüber gesteuert werden kann und man eine Rückmeldung bekommt. Daten von OpenHAB kannst Du wiederum über die REST API aus OpenHAB in IP-Symcon bekommen.

Ich besitze UE55ES8080. Ich vermute C-/D-/Es-/F-Serien funktionieren gleich in der IP Steuerung. Mit der neuen Firmwäre kann man aber kein SMS mehr an den Fernseher schicken.

Gesendet von meinem SM-G900F mit Tapatalk

Inzwischen ist es mir gelungen dieses Projekt zu verwirklichen. Im Anhang ist mein php Skript. Zu erwähnen bleibt, dass mir die Software device spy upnp von Open Software Projects - UPnP Tools geholfen hat, die nötigen Parameter zu finden. Jedes Modell verwendet einen anderen Port und Ordner. (/smp_12_ ist bei jedem Gerät vermutlich anders. Ebenso kann das eine oder andere Gerät mehr Befehle ausüben). Die wichtigsten
GetCurrentExternalSource meldet zurück, welche Quelle momentan aktiv ist.
GetCurrentMainTVChannel gibt den Programmplatz zurück.
GetCurrentContentRecognition

Vermutlich könnte man auch das Lautstärke Volumen abfragen und ändern. Bei mir läuft das Audio über die Stereo-Anlage. Deshalb bringt diese Befehl mir nichts. Dafür kann man einige Bild Attribute (Kontrast, Schärfe, Farbton und Helligkeit) verändern.

Leider ist bei mir die Antwortdes des Fernseher nicht standard HTML. Wenn dies zuerst geschickt umgewandelt werden kann und dann mit Standard Befehlen zergliedert werden kann, bitte hier melden.

Im Anhang ein Beispiel für GetCurrentExternalSource.


$ip = '192.168.1.xyz';
	$port = 7676; 	
	$url = 'http://' . $ip . ':' . $port."/smp_12_"; 
		
	$command3 = '
		<?xml version="1.0" encoding="utf-8"?>
		<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
		   <s:Body>
		      <u:GetCurrentExternalSource xmlns:u="urn:samsung.com:service:MainTVAgent2:1" />
		   </s:Body>
		</s:Envelope>';
	
	$headers3 = array(
		   'Content-Type: text/xml; charset=UTF-8',
		   'SOAPACTION: "urn:samsung.com:service:MainTVAgent2:1#GetCurrentExternalSource"',
		   "Cache-Control: no-cache",
		   'Content-Length: ' . strlen($command3)
		);
		
	$request = curl_init();
	
	curl_setopt($request, CURLOPT_URL, $url);
	curl_setopt($request, CURLOPT_HTTPHEADER, $headers3);
	curl_setopt($request, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
	curl_setopt($request, CURLOPT_CONNECTTIMEOUT, 2); 
	curl_setopt($request, CURLOPT_TIMEOUT, 3);
	
	curl_setopt($request, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($request, CURLOPT_SSL_VERIFYHOST, false);
	curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
	//curl_setopt($request, CURLOPT_ENCODING, '');
	
	curl_setopt($request, CURLOPT_POST, true);
	
	curl_setopt($request, CURLOPT_POSTFIELDS, $command3);
	
	$result = curl_exec($request);
	
	$httpCode = curl_getinfo($request, CURLINFO_HTTP_CODE);
	
	if ($httpCode == 0) {
	   die('Device not responding');
	} else if ($httpCode == 400) {
	   die('Bad request');}
	
	

	
	$first_pos =  stripos($result, '<CurrentExternalSource>');
	$second_pos = stripos($result, "</CurrentExternalSource>");
	$a=substr($result,$first_pos+23,$second_pos-$first_pos-23);
	print($a);