STV: Unterschied zwischen den Versionen
Krikan (Diskussion | Beiträge) K (Typo) |
|||
(28 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Infobox Modul | {{Infobox Modul | ||
|ModPurpose=Client for Samsung TV | |ModPurpose=Client for Samsung TV | ||
|ModType= | |ModType=d | ||
|ModFTopic=82890 | |||
|ModForumArea=Multimedia | |ModForumArea=Multimedia | ||
|ModTechName=70_STV.pm | |ModTechName=70_STV.pm | ||
|ModOwner= | |ModOwner=Zwiebel ({{Link2FU|103|Forum}}/[[Benutzer Diskussion:Plin53177|Wiki]]) | ||
}} | }} | ||
Das Modul | Das Modul [[STV]] ermöglicht die Steuerung von Samsung Fernsehern und Bluray-Playern. Das Nachfolgemodul [[SamsungAV]] unterstützt die neueren Geräteserien. | ||
== Voraussetzungen == | == Voraussetzungen == | ||
=== Historie=== | === Historie=== | ||
Im Ursprung wurde das Modul 70_STV.pm entwickelt, welches bis F-Serie funktionieren sollte. Das Modul ist im Standardumfang von FHEM enthalten. | 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 | Für die neue Zugriffsmethode per websocket ab K-Serie wurde das Modul so erweitert, dass per Python-Skript samsungctl die TVs 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 {{Link2Forum|Topic=57595|LinkText=>>>hier<<<}} neben der zusammengefassten Doku {{Link2Forum|Topic=82890|LinkText=>>>hier<<<}}. | ||
Neben den unterschiedlichsten Servern in der Firmware der | Neben den unterschiedlichsten Servern in der Firmware der TVs gibt es auch Unterschiede bei der Berechtigungssteuerung. Nachfolgend findet Ihr relevante Informationen zu den unterschiedlichen Serien. | ||
===Steuerungsmöglichkeiten (allgemein)=== | ===Steuerungsmöglichkeiten (allgemein)=== | ||
Zeile 28: | Zeile 26: | ||
===B/C/D-Series(vor 2012) === | ===B/C/D-Series(vor 2012) === | ||
Da diese | Da diese TVs 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 | * Ä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 ? | * 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 ? | ||
Zeile 59: | Zeile 57: | ||
===H-Series(2014) === | ===H-Series(2014) === | ||
Mit dieser Serie führte Samsung die verschlüsselte Kommunikation über websockets und Port 8000 ein. Für die Zugriffsberechtigung muss einmalig das Perl-Skript | |||
Für die | regapp.pl aus diesem [https://forum.fhem.de/index.php/topic,57595.msg748445.html#msg748445 Post] (https://forum.fhem.de/index.php/topic,57595.msg748445.html#msg748445) zur Erzeugung des session-key ausgeführt werden. | ||
'''Notwendige Vorbereitung:''' | |||
1. Erstellen der Datei samsung_session_key.txt mit dem Perl-Skript regappl.pl (Pin-Eingabe über FB des TV erforderlich) | |||
2. Bei ERFOLG(lieber mal reingucken ;)) die Datei in das FHEM-Verzeichnis kopieren, wo auch die fhem.cfg liegt | |||
3. Manchen wird noch das Perl-Modul Crypt::Rijndael fehlen. Das installiert man(für Debian): | |||
a) sudo apt-get update | |||
b) sudo apt-get upgrade | |||
c) sudo apt-get install libcrypt-rijndael-perl | |||
d) ein reboot schadet an dieser Stelle nie | |||
4. define MeinTV STV MEINE_IP wse | |||
'''Zugriffsberechtigung:''' | '''Zugriffsberechtigung:''' | ||
Menü/Netzwerk/Multimedia-Geräteeinstellungen. Dort kann man "SmartDevices" erlauben, verbieten und löschen. | Menü/Netzwerk/Multimedia-Geräteeinstellungen. Dort kann man "SmartDevices" erlauben, verbieten und löschen. | ||
- einmal verboten und der Key ist unbrauchbar. Also neu pairen. | - 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. | - die IP scheint egal zu sein. Mit den passenden session_key und session_id kann man von jedem Rechner aus zugreifen. | ||
'''Registrierung:''' | '''Registrierung:''' | ||
Zeile 73: | Zeile 80: | ||
'''Bildschirmnachrichten:''' | '''Bildschirmnachrichten:''' | ||
Bildschirmnachrichten bzw. generelle Medienausgabe über DLNA möglich | |||
Bildschirmnachrichten bzw. generelle | |||
'''Bestätigte Modelle:''' | '''Bestätigte Modelle:''' | ||
Zeile 80: | Zeile 86: | ||
Info des Python-Skript-Autors: | Info des Python-Skript-Autors: | ||
'''Note''' | '''Note''' that the following TV Models are most likely incompatible for one reason or another H4xxx, H510x, H52xx, H53x3, H5403, H6003, H61x3, H6201, H6203, S9, S9C | ||
H4xxx, H510x, H52xx, H53x3, H5403, H6003, H61x3, H6201, H6203, S9, S9C | |||
===J-Series(2015) === | ===J-Series(2015) === | ||
Die verschlüsselte Kommunikation erfolgt über websockets und Port 8000. Für die Zugriffsberechtigung muss einmalig das Perl-Skript | |||
regapp.pl aus diesem [https://forum.fhem.de/index.php/topic,57595.msg748445.html#msg748445 Post] (https://forum.fhem.de/index.php/topic,57595.msg748445.html#msg748445) zur Erzeugung des session-key ausgeführt werden. | |||
'''Notwendige Vorbereitung:''' | |||
1. Erstellen der Datei samsung_session_key.txt mit dem Perl-Skript regappl.pl, und zwar auf dem Rechner, der später den Fernseher steuern soll. | |||
In dieser Serie erzeugt der Fernseher die Pin, diese wird von regappl.pl abgefragt | |||
2. Bei Erfolg die Datei in das FHEM-Verzeichnis kopieren (dort wo auch die fhem.cfg liegt). Umbenennen,so dass es den unter Punkt 4 vewendeten Devicenamen (beispielsweise MeinTV) im eigenen Namen hat. Zugriffsrechte setzen mit | |||
chown fhem:dialout samsung_session_key.txt | |||
mv samsung_session_key.txt MeinTV_session_key.txt | |||
3. Ggf. das Perl-Modul Crypt::Rijndael nachinstallieren mit | |||
sudo apt-get install libcrypt-rijndael-perl | |||
4. Fernseher in FHEM definieren als | |||
define MeinTV STV <ip-adresse des Fernsehers> 8000 | |||
'''Zugriffsberechtigung:''' | |||
Auf dem Fernseher unter Menü/Netzwerk/Multimedia-Geräteeinstellungen. Dort kann man "SmartDevices" erlauben, verbieten und löschen. | |||
'''Bildschirmnachrichten:''' | |||
Bildschirmnachrichten bzw. generelle Medienausgabe über DLNA möglich | |||
'''Bestätigte Modelle:''' | '''Bestätigte Modelle:''' | ||
UE48JU7590(THKMDEUC-1452) | UE55UJ7000, UE48JU7590(THKMDEUC-1452) | ||
Info des Python-Skript-Autors: | Info des Python-Skript-Autors: | ||
Zeile 96: | Zeile 119: | ||
Tizen 2.3(nicht aber UJ4300, UJ5300) | Tizen 2.3(nicht aber UJ4300, UJ5300) | ||
Spätere Modelle wie K-Serie ? | Spätere Modelle wie K-Serie ? | ||
===K-Series(2016)=== | ===K-Series(2016)=== | ||
Der Port ist durch Samsung auf 8001 geändert. Eine Verschlüsselung gibt es nicht mehr. Dominik hat den Aufruf des im Netz verfügbaren Python-Skripts samsungctl in das STV-Modul integriert. Die Installation des Python-Skripts samsungctl ist zusätzlich erforderlich. | |||
Für die Definition des TV in FHEM ist anstatt des tatsächlichen Ports "ws" anzugeben. | |||
'''Notwendige Vorbereitung:''' | |||
1. sudo apt-get update | |||
2. sudo apt-get upgrade | |||
3. pip installieren. wheezy bietet nur eine V. 1.1, von der im Inet abgeraten wird. Deshalb habe ich die v 9.0.1 mit | |||
wget https://bootstrap.pypa.io/get-pip.py geladen. | |||
4. sudo python get-pip.py (ohne sudo gab es eine exception meldung) | |||
5. sudo pip install websocket-client | |||
6. sudo pip install samsungctl (das package wird dann automatisch heruntergeladen und installiert) | |||
7. das File /usr/local/lib/python2.7/dist-packages/samsungctl/__main__.py editiert | |||
o except FileNotFoundError: in except: ändern | |||
o Folgende Zeile löschen directories.append(os.path.join(os.getenv("HOME"), ".config")) | |||
8. Damit das geänderte 70_STV lief, musste ich einerseits "use Blocking;" am Anfang des Moduls hinzufügen und scheinbar ist der /usr/local/bin bei mir nicht bekannt, so dass ich den einfachen Aufruf von samsungctl in /usr/local/bin/samsungctl ändern musste. | |||
Das Senden der üblichen remote control commands funktioniert. | |||
'''Definition in FHEM:''' | '''Definition in FHEM:''' | ||
Zeile 109: | Zeile 147: | ||
'''Zugriffsberechtigung:''' | '''Zugriffsberechtigung:''' | ||
* Popup mit Bestätigung | * 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) | * 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:''' | '''Bildschirmnachrichten:''' | ||
Bildschirmnachrichten bzw. generelle Medienausgabe über DLNA möglich | |||
'''Bestätigte Modelle:''' | '''Bestätigte Modelle:''' | ||
ganze Serie ?: UE40K5579, UE55KU6170, UE65ks7090 | ganze Serie ?: UE40K5579, UE55KU6170, UE65ks7090 | ||
Tizen 2.4 (nicht aber: UBD-K8500, UBD-KM85C, UBD-KM85) | Tizen 2.4 (nicht aber: UBD-K8500, UBD-KM85C, UBD-KM85) | ||
Zeile 185: | Zeile 223: | ||
===Alternative: Aktuelle Version aus dem Forum=== | ===Alternative: Aktuelle Version aus dem Forum=== | ||
Die im Anhang zu [https://forum.fhem.de/index.php/topic, | Die im Anhang zu [https://forum.fhem.de/index.php/topic,57595.msg770704.html#msg770704 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. | 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. | ||
Zeile 194: | Zeile 232: | ||
''Basics & Allgemeines'' | ''Basics & Allgemeines'' | ||
* '''MAC''' | * '''MAC''' | ||
: ... | : nur bei Bedarf: die IP-Adresse des Rechners auf dem FHEM läuft. Sollte das zu steuernde Gerät nicht reagieren und im FHEM-Log "[STV] mymac" mit "invalid format" auftauchen, dann bitte dieses Attribut setzen. | ||
* '''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 === | === Set === | ||
Zeile 200: | Zeile 253: | ||
Das Modul kennt derzeit folgende Commands | Das Modul kennt derzeit folgende Commands | ||
''Basis-Commandset'' (bei Nutzung von Port 52235) | |||
* set <name> '''mute''' {on|off] | * set <name> '''mute''' {on|off] | ||
Zeile 233: | Zeile 286: | ||
: <nachrichtentext> = Text der Einladung | : <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 === | === Get === | ||
Zeile 249: | Zeile 309: | ||
== Bekannte Probleme / Fehlersuche == | == Bekannte Probleme / Fehlersuche == | ||
Im Foum gibt es zwei Threads | |||
* [https://forum.fhem.de/index.php/topic,12988.msg79079.html Original Thread] | |||
* [https://forum.fhem.de/index.php/topic,57595.msg490160.html#msg490160 für Fernseher ab J-Serie] | |||
== Links == | == Links == | ||
* | * https://forum.fhem.de/index.php/topic,82890.0.html Zusammenfassende Doku: Samsung TV und FHEM | ||
[[Kategorie:Unterhaltungselektronik]] | [[Kategorie:Unterhaltungselektronik]] | ||
<!-- (Modulkategorie wird automatisch gesetzt) --> | <!-- (Modulkategorie wird automatisch gesetzt) --> |
Aktuelle Version vom 16. April 2019, 07:11 Uhr
STV | |
---|---|
Zweck / Funktion | |
Client for Samsung TV | |
Allgemein | |
Typ | Gerätemodul |
Details | |
Dokumentation | EN / DE Thema |
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. Das Nachfolgemodul SamsungAV unterstützt die neueren Geräteserien.
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 TVs 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 der zusammengefassten Doku >>>hier<<<.
Neben den unterschiedlichsten Servern in der Firmware der TVs 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 TVs 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)
Mit dieser Serie führte Samsung die verschlüsselte Kommunikation über websockets und Port 8000 ein. Für die Zugriffsberechtigung muss einmalig das Perl-Skript regapp.pl aus diesem Post (https://forum.fhem.de/index.php/topic,57595.msg748445.html#msg748445) zur Erzeugung des session-key ausgeführt werden.
Notwendige Vorbereitung:
1. Erstellen der Datei samsung_session_key.txt mit dem Perl-Skript regappl.pl (Pin-Eingabe über FB des TV erforderlich) 2. Bei ERFOLG(lieber mal reingucken ;)) die Datei in das FHEM-Verzeichnis kopieren, wo auch die fhem.cfg liegt 3. Manchen wird noch das Perl-Modul Crypt::Rijndael fehlen. Das installiert man(für Debian): a) sudo apt-get update b) sudo apt-get upgrade c) sudo apt-get install libcrypt-rijndael-perl d) ein reboot schadet an dieser Stelle nie 4. define MeinTV STV MEINE_IP wse
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: Bildschirmnachrichten bzw. generelle Medienausgabe über DLNA möglich
Bestätigte Modelle: UE-55H6740SV, UExyHU6900, UE40H6400, UE55H6700
Info des Python-Skript-Autors: Note that 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)
Die verschlüsselte Kommunikation erfolgt über websockets und Port 8000. Für die Zugriffsberechtigung muss einmalig das Perl-Skript regapp.pl aus diesem Post (https://forum.fhem.de/index.php/topic,57595.msg748445.html#msg748445) zur Erzeugung des session-key ausgeführt werden.
Notwendige Vorbereitung:
1. Erstellen der Datei samsung_session_key.txt mit dem Perl-Skript regappl.pl, und zwar auf dem Rechner, der später den Fernseher steuern soll. In dieser Serie erzeugt der Fernseher die Pin, diese wird von regappl.pl abgefragt 2. Bei Erfolg die Datei in das FHEM-Verzeichnis kopieren (dort wo auch die fhem.cfg liegt). Umbenennen,so dass es den unter Punkt 4 vewendeten Devicenamen (beispielsweise MeinTV) im eigenen Namen hat. Zugriffsrechte setzen mit
chown fhem:dialout samsung_session_key.txt mv samsung_session_key.txt MeinTV_session_key.txt
3. Ggf. das Perl-Modul Crypt::Rijndael nachinstallieren mit
sudo apt-get install libcrypt-rijndael-perl
4. Fernseher in FHEM definieren als
define MeinTV STV <ip-adresse des Fernsehers> 8000
Zugriffsberechtigung: Auf dem Fernseher unter Menü/Netzwerk/Multimedia-Geräteeinstellungen. Dort kann man "SmartDevices" erlauben, verbieten und löschen.
Bildschirmnachrichten: Bildschirmnachrichten bzw. generelle Medienausgabe über DLNA möglich
Bestätigte Modelle: UE55UJ7000, 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)
Der Port ist durch Samsung auf 8001 geändert. Eine Verschlüsselung gibt es nicht mehr. Dominik hat den Aufruf des im Netz verfügbaren Python-Skripts samsungctl in das STV-Modul integriert. Die Installation des Python-Skripts samsungctl ist zusätzlich erforderlich.
Für die Definition des TV in FHEM ist anstatt des tatsächlichen Ports "ws" anzugeben.
Notwendige Vorbereitung:
1. sudo apt-get update 2. sudo apt-get upgrade 3. pip installieren. wheezy bietet nur eine V. 1.1, von der im Inet abgeraten wird. Deshalb habe ich die v 9.0.1 mit wget https://bootstrap.pypa.io/get-pip.py geladen. 4. sudo python get-pip.py (ohne sudo gab es eine exception meldung) 5. sudo pip install websocket-client 6. sudo pip install samsungctl (das package wird dann automatisch heruntergeladen und installiert) 7. das File /usr/local/lib/python2.7/dist-packages/samsungctl/__main__.py editiert o except FileNotFoundError: in except: ändern o Folgende Zeile löschen directories.append(os.path.join(os.getenv("HOME"), ".config")) 8. Damit das geänderte 70_STV lief, musste ich einerseits "use Blocking;" am Anfang des Moduls hinzufügen und scheinbar ist der /usr/local/bin bei mir nicht bekannt, so dass ich den einfachen Aufruf von samsungctl in /usr/local/bin/samsungctl ändern musste.
Das Senden der üblichen remote control commands funktioniert.
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: Bildschirmnachrichten bzw. generelle Medienausgabe über DLNA möglich
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. Sollte das zu steuernde Gerät nicht reagieren und im FHEM-Log "[STV] mymac" mit "invalid format" auftauchen, dann bitte dieses Attribut setzen.
- 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
- https://forum.fhem.de/index.php/topic,82890.0.html Zusammenfassende Doku: Samsung TV und FHEM