STV

Aus FHEMWiki
STV
Zweck / Funktion
Client for Samsung TV
Allgemein
Typ Inoffiziell
Details
Dokumentation siehe Forum
Support (Forum) Multimedia
Modulname 70_STV.pm
Ersteller plin (Forum /Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


Das Modul STV ermöglicht die Steuerung von Samsung Fernsehern und Bluray-Playern.


Voraussetzungen

Historie

Im Ursprung wurde das Modul 70_STV.pm entwickelt, welches bis F-Serie funktionieren sollte. Das Modul ist im Standardumfang von FHEM enthalten. Für die neue Zugriffsmethode per websocket ab K-Serie wurde das Modul so erweitert, dass per Python-Skript samsungctl die TV's problemlos ansteuerbar sind. Die größten Probleme scheinen die H- u. J-Serie zu bereiten. Diese nutzen neben websocket zusätzlich eine Verschlüsselung. Für den Zugriff wurde ein Python-Skript nach Perl übersetzt, das wiederum in die nicht offizielle STV eingebunden wurde. Schließlich wurde noch die Möglichkeit der Ausgabe von Medien-Streams für alle Serien über DLNA eingebaut. Die aktuelle inoffizielle Version, in der ALLE features enthalten sind, findet Ihr hier.

Neben den unterschiedlichsten Servern in der Firmware der TV's gibt es auch Unterschiede bei der Berechtigungssteuerung. Nachfolgend findet Ihr relevante Informationen zu den unterschiedlichen Serien.

Steuerungsmöglichkeiten (allgemein)

Steuerungsmöglichkeiten(Voraussetzung also eine LAN- oder WLAN-Verbindung u. berechtigter Zugriff) aus FHEM heraus sind

  • senden von remote control Befehlen an den TV
  • Bildschirmnachrichten wie z.B. InfoScreen bei eingehendem Anruf
  • Abspielen von Video, Audio, Foto Konserven

B/C/D-Series(vor 2012)

Da diese TV's schon relativ alt sind hier nur eine Zusammenfassung von Funktionen, die sich je nach Modell unterscheiden:

  • Älteste Modelle(B-Serie ?): mute, volume, call, sms, date über port 52235 UPNP/SOAP
  • Jüngere Modelle(C-/D-Serie): sämtliche remote control commands port über 55000, keine Bildschirmnachrichten ?, Port 7676 u. service urn:samsung.com:service:MainTVAgent2:1 nicht verfügbar ?

E-Series(2012)

sämtliche remote control commands über port 55000; Definition mit FHEM-Standard-Modul STV und Port 55000.

Zugriffsberechtigung: Einstellungen findet man unter: Menü->Netzwerk->AllShare-Einstellungen->Liste der registrierten Endgeräte->Zulassen|Verbieten|Aus der Liste löschen

Registrierung: Bei erstmaligem Zugriff eines Endgeräts erscheint auf dem TV ein pop-up: Neues Netzwerkgerät erkannt......: Zulassen|Verbieten

Eine Pin-Eingabe ist nicht erforderlich. Eine Einmalige Registrierung berechtigt für den Dauerbetrieb des Endgeräts, wobei (bei mir) das Gerät "Perl Samsung Remote" mit der IP 127.0.0.1 angelegt wurde und mit dieser Zugangsberechtigung nun ALLE devices über FHEM für die Steuerung zugelassen sind.

Bildschirmnachrichten: über port 7676 ist UPNP/SOAP (z.B. Browseraufruf mit InfoDisplay f. Anruferinfo) verfügbar. Ebenso ist die Medienausgabe per DLNA möglich nur mit der inoffiziellen Version !)

Bestätigte Modelle:

ganze Serie

F-Series(2013)

Vermutlich kein Unterschied zur E-Serie.

H-Series(2014)

Einführung der Kommunikation über websockets u. port 8000. Zusätzlich ist der Zugriff verschlüsselt. Für die Definition des TV in FHEM ist anstatt des tatsächlichen Ports "wse" anzugeben.

Verfügbare Python-Skripte wurden von Raymund in Perl übersetzt, so dass keine zusätzlichen Installationen erforderlich sind. Das ganze ist im Teststadium u. noch nicht in ein Modul eingebunden. Das senden sämtlicher remote control commands funktioniert. Teilweise gibt es Meldungen, dass die Zugriffsberechtigung nach Power Off erneuert werden müsse.

Zugriffsberechtigung: Menü/Netzwerk/Multimedia-Geräteeinstellungen. Dort kann man "SmartDevices" erlauben, verbieten und löschen. - einmal verboten und der Key ist unbrauchbar. Also neu pairen. - die IP scheint egal zu sein. Mit den passenden session_key und session_id kann man von jedem Rechner aus zugreifen.

Registrierung: Mittlerweile ist das Perl-Skript do_v2.pl von Raymund auch in das inoffizielle70_STV eingebunden. Das Skript regapp.pl muss nach wie vor einmalig(?) für die Schlüsselerzeugung ausgeführt werden. Bitte Vorgehensweise im vorgenannten Post beachten !

Bildschirmnachrichten: scheinbar noch über port 7676, vergleichbar der E-Serien-Lösung, möglich Bildschirmnachrichten bzw. generelle Medieausgabe über DLNA

Bestätigte Modelle: UE-55H6740SV, UExyHU6900, UE40H6400, UE55H6700

Info des Python-Skript-Autors: Note the the following TV Models are most likely incompatible for one reason or another H4xxx, H510x, H52xx, H53x3, H5403, H6003, H61x3, H6201, H6203, S9, S9C

J-Series(2015)

ermutlich wie H-Serie.

Bestätigte Modelle: UE48JU7590(THKMDEUC-1452)

Info des Python-Skript-Autors: Note the the following TV Models are most likely incompatible for one reason or another J4xxx, J50xx, J51xx, J52xx, J53xx, UNxxJ6200, J6201, J6203, J620D

Tizen 2.3(nicht aber UJ4300, UJ5300)

Spätere Modelle wie K-Serie ?

K-Series(2016)

sämtliche remote control commands über port 8001 und das websocket-Protokoll; keine Verschlüsselung mehr.

Integration in das inoffizielle STV durch Dominik. Manuelle Installation des geänderten Moduls erforderlich. Zusätzlich notwendige Installation des Python-Skripts samsungctl

Definition in FHEM: anstatt einem numerischen Port ist der String ws einzugeben

Zugriffsberechtigung:

  • Popup mit Bestätigung
  • dann unter Einstellungen -> Allgemein -> Geräteverbindungsmanager findet man eine Geräteliste (da kann man die einzelnen zugriffsberechtigten Geräte auch wieder rausschmeissen) und man kann sogar die Zugriffsbenachrichtigung verändern (nur einmal od. jedes Mal).

Bildschirmnachrichten: bisher keine technische Möglichkeitenüber DLNA im Test

Bestätigte Modelle: ganze Serie ?: UE40K5579, UE55KU6170, UE65ks7090

Tizen 2.4 (nicht aber: UBD-K8500, UBD-KM85C, UBD-KM85)

M-Series(2017)

Vermutlich kein Unterschied zur K-Serie.  :-\

Bestätigte Modelle: ganze Serie ?

Tizen 3.0(UMU6100 Tizen 2.4)

Q-Series(2018)

Mal sehen, was uns da wieder erwartet. Vorstellung wohl im Februar 2018.

Tizen 4.0

Installation

Erste Schritte

Device in FHEM anlegen:

define <name> STV <ip>

Danach sollte das Device bei eingeschaltetem Fernseher oder Bluray-Player in den Status opened gehen.

Ist dies nicht der Fall ist die Modellreihe zu ermitteln. Am Command-Prompt kann mittels nmap ermittelt werden welche Ports geöffnet sind (xxx.xxx.xxx.xxx ist in diesem Beispiel die IP-Adresse des Samsung-Gerätes)

nmap xxx.xxx.xxx.xxx
Starting Nmap 6.47 ( http://nmap.org ) at 2018-02-18 09:22 CET
Nmap scan report for xxx.xxx.xxx.xxx
Host is up (0.0095s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
7676/tcp open  imqbrokerd
8080/tcp open  http-proxy
8443/tcp open  https-alt

anschließend die High Ports scannen

nmap -sT -p50000-65534 xxx.xxx.xxx.xxx
Starting Nmap 6.47 ( http://nmap.org ) at 2018-02-18 09:25 CET
Nmap scan report for xxx.xxx.xxx.xxx
Host is up (0.015s latency).
Not shown: 15532 closed ports
PORT      STATE SERVICE
52345/tcp open  unknown
55000/tcp open  unknown
55001/tcp open  unknown

Jetzt gilt es folgende Fälle zu unterscheiden:

  • Port 52235 wird ausgewiesen
define <device> STV <ip>
ohne Portangabe

Jetzt gilt es folgende Fälle zu unterscheiden:

  • Port 55000 wird ausgewiesen
define <device> STV <ip>
ohne Portangabe

Bei dem aktuellen Modul aus dem FHEM-Repository kann kein Port mitgegeben werden. Die Definition kann dann nachträglich im angelisteten Device durch Bearbeitung der DEF erfolgen. Die IP-Adresse um den Port ergänzen

xxx.xxx.xxx.xxx 55000

und speichern.

Anwendung

Attribute

Basics & Allgemeines

  • MAC
...

Set

Das Modul kennt derzeit folgende Commands

Basis-Commandset für Fernseher der Typreihen ...

  • set <name> mute {on|off]
schaltet den Ton ein/aus
  • set <name> volume <nummer>
Lautstärke ändern. <nummer> kann zwischen 0 und 100 liegen
  • set <name> call <von_name> <von_number> <an_name> <an_number>
<von_name> = Name des Anrufers
<von_number> = Nummer des Anrufers
<an_name> = Name des Anzurufenden
<an_number> = Nummer des Anzurufenden
  • set <name> sms <von_name> <von_number> <an_name> <an_number> <text>
<von_name> = Name des Anrufers
<von_number> = Nummer des Anrufers
<an_name> = Name des Anzurufenden
<an_number> = Nummer des Anzurufenden
<text> = SMS Nachrichtentext
  • set <name> date <start_datum> <start_zeit> <an_name> <an_number> <betreff> <ende_datum> <ende_zeit> <ort> <nachrichtentext>
Termineinladung mit
<start_datum> = Startdatum
<start_zeit> = Startzeit
<an_name> = Name des Einzuladenden
<an_number> = Nummer des Einzuladenden
<betreff> = Betreff der Einladung
<ende_datum> = Enddatum
<ende_zeit> = Endzeit
<ort> = Treffpunkt
<nachrichtentext> = Text der Einladung

Erweitertes Commandset für Fernseher der Typreihen ...

Get

Derzeit keine Funktionen realisiert.

Readings

  • state: Status der Verbindung

Anwendungsbeispiele

folgen noch

Bekannte Probleme / Fehlersuche

folgen noch

Links