STV
STV | |
---|---|
Zweck / Funktion | |
Client for Samsung TV | |
Allgemein | |
Typ | Inoffiziell |
Details | |
Dokumentation | siehe Forum |
Support (Forum) | Multimedia |
Modulname | 70_STV.pm |
Ersteller | Zwiebel (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 https://forum.fhem.de/index.php/topic,57595.msg770704.html#msg770704 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
(für Version aus dem FHEM Repository)
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.
Alternative: Aktuelle Version aus dem Forum
Die im Anhang zu Post #298 vom 21.2.2018 publizierte Fassung ist in der Entwicklung, bietet aber weitergehende Funktionen.
Diese dort gepostete Version des 70_STV sollte für ALLE Serien die Ausgabe von Bildschirmnachrichten per DLNA ermöglichen. Bitte lest den Post, um auf dem laufenden zu bleiben. Wenn die Version fertig ist wird sie hier dokumentiert.
Anwendung
Attribute
Basics & Allgemeines
- MAC
- nur bei Bedarf: die IP-Adresse des Rechners auf dem FHEM läuft
- fork
- enable|disable
- setWhenOffline
- execute|ignore Ist der Fehnseher ausgeschaltet hängt ein Set-Befehl, bis das Modul realisiert, dass der Fernseher ausgeschaltet ist. Mit setWhenOffline ignore lässt sich dieses Verhalten verhindern.
nur in aktueller Entwicklerversion
- callerURI
- callerURI ist für die Nutzung von Anruferinfo gedacht.
- screenURI
- Über screenURI und einen Dummy kann z.B. ein InfoDisplay von FHEM auf dem TV ausgeben. In die URIs wird der jeweilige Pfad zum Bild eingetragen(also so, wie man es bereits beim Test des DLNAClient gemacht hatte).
Durch die Definition der jeweiligen URI, wurde dynamisch das Befehlsset des TV-devices erweitert. Für den Aufruf der callerURI steht der neue set-Befehl caller und für screenURI entsprechend screen zur Verfügung.
Set
Das Modul kennt derzeit folgende Commands
Basis-Commandset (bei Nutzung von Port 52235)
- 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 (bei Nutzung von Port 55000)
- set <name> connect
- Mit dem Fernseher/Player verbinden
- set <name> button
- button ist ein Befehl der Fernbedienung aus dieser Liste:
- [ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | 3SPEED | 4_3 | 16_9 | AD | ADDDEL | ALT_MHP | ANGLE | ANTENA | ANYNET | ANYVIEW | APP_LIST | ASPECT | AUTO_ARC_ANTENNA_AIR | AUTO_ARC_ANTENNA_CABLE | AUTO_ARC_ANTENNA_SATELLITE | AUTO_ARC_ANYNET_AUTO_START | AUTO_ARC_ANYNET_MODE_OK | AUTO_ARC_AUTOCOLOR_FAIL | AUTO_ARC_AUTOCOLOR_SUCCESS | AUTO_ARC_CAPTION_ENG | AUTO_ARC_CAPTION_KOR | AUTO_ARC_CAPTION_OFF | AUTO_ARC_CAPTION_ON | AUTO_ARC_C_FORCE_AGING | AUTO_ARC_JACK_IDENT | AUTO_ARC_LNA_OFF | AUTO_ARC_LNA_ON | AUTO_ARC_PIP_CH_CHANGE | AUTO_ARC_PIP_DOUBLE | AUTO_ARC_PIP_LARGE | AUTO_ARC_PIP_LEFT_BOTTOM | AUTO_ARC_PIP_LEFT_TOP | AUTO_ARC_PIP_RIGHT_BOTTOM | AUTO_ARC_PIP_RIGHT_TOP | AUTO_ARC_PIP_SMALL | AUTO_ARC_PIP_SOURCE_CHANGE | AUTO_ARC_PIP_WIDE | AUTO_ARC_RESET | AUTO_ARC_USBJACK_INSPECT | AUTO_FORMAT | AUTO_PROGRAM | AV1 | AV2 | AV3 | BACK_MHP | BOOKMARK | CALLER_ID | CAPTION | CATV_MODE | CHDOWN | CHUP | CH_LIST | CLEAR | CLOCK_DISPLAY | COMPONENT1 | COMPONENT2 | CONTENTS | CONVERGENCE | CONVERT_AUDIO_MAINSUB | CUSTOM | CYAN | DEVICE_CONNECT | DISC_MENU | DMA | DNET | DNIe | DNSe | DOOR | DOWN | DSS_MODE | DTV | DTV_LINK | DTV_SIGNAL | DVD_MODE | DVI | DVR | DVR_MENU | DYNAMIC | ENTER | ENTERTAINMENT | ESAVING | EXIT | EXT1 | EXT2 | EXT3 | EXT4 | EXT5 | EXT6 | EXT7 | EXT8 | EXT9 | EXT10 | EXT11 | EXT12 | EXT13 | EXT14 | EXT15 | EXT16 | EXT17 | EXT18 | EXT19 | EXT20 | EXT21 | EXT22 | EXT23 | EXT24 | EXT25 | EXT26 | EXT27 | EXT28 | EXT29 | EXT30 | EXT31 | EXT32 | EXT33 | EXT34 | EXT35 | EXT36 | EXT37 | EXT38 | EXT39 | EXT40 | EXT41 | FACTORY | FAVCH | FF | FF_ | FM_RADIO | GAME | GREEN | GUIDE | HDMI | HDMI1 | HDMI2 | HDMI3 | HDMI4 | HELP | HOME | ID_INPUT | ID_SETUP | INFO | INSTANT_REPLAY | LEFT | LINK | LIVE | MAGIC_BRIGHT | MAGIC_CHANNEL | MDC | MENU | MIC | MORE | MOVIE1 | MS | MTS | MUTE | NINE_SEPERATE | OPEN | PANNEL_CHDOWN | PANNEL_CHUP | PANNEL_ENTER | PANNEL_MENU | PANNEL_POWER | PANNEL_SOURCE | PANNEL_VOLDOW | PANNEL_VOLUP | PANORAMA | PAUSE | PCMODE | PERPECT_FOCUS | PICTURE_SIZE | PIP_CHDOWN | PIP_CHUP | PIP_ONOFF | PIP_SCAN | PIP_SIZE | PIP_SWAP | PLAY | PLUS100 | PMODE | POWER | POWEROFF | POWERON | PRECH | PRINT | PROGRAM | QUICK_REPLAY | REC | RED | REPEAT | RESERVED1 | RETURN | REWIND | REWIND_ | RIGHT | RSS | RSURF | SCALE | SEFFECT | SETUP_CLOCK_TIMER | SLEEP | SOUND_MODE | SOURCE | SRS | STANDARD | STB_MODE | STILL_PICTURE | STOP | SUB_TITLE | SVIDEO1 | SVIDEO2 | SVIDEO3 | TOOLS | TOPMENU | TTX_MIX | TTX_SUBFACE | TURBO | TV | TV_MODE | UP | VCHIP | VCR_MODE | VOLDOWN | VOLUP | WHEEL_LEFT | WHEEL_RIGHT | W_LINK | YELLOW | ZOOM1 | ZOOM2 | ZOOM_IN | ZOOM_MOVE | ZOOM_OUT ]
Get
Derzeit keine Funktionen realisiert.
Readings
- state: Status der Verbindung
Anwendungsbeispiele
folgen noch
Bekannte Probleme / Fehlersuche
Im Foum gibt es zwei Threads
Links
- Forenthread Zusammenfassende Doku: Samsung TV und FHEM