FHEM -> Samsung TV mit Tizen

Begonnen von Florian_GT, 12 September 2016, 00:15:35

Vorheriges Thema - Nächstes Thema

joe99

Hallo, ich kann noch einiges zu meinem gestrigen Post ergänzen.
Mein samsungctl-Kommando (mit strace, zeigt alle Systemrufe an):
strace -s 300 samsungctl -v --host 192.168.2.11 --method websocket --name ABC KEY_VOLDOWN

Das erste send() komplett:
send(3, "GET /api/v2/channels/samsung.remote.control?name=QUJD HTTP/1.1\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nHost: 192.168.2.11:8001\r\nOrigin: http://192.168.2.11:8001\r\nSec-WebSocket-Key: h8+WVvWnwrXXwEbUO"..., 238, 0) = 238
Danach siehe gestriges Post.

Das letzte recv() ist die Antwort vom TV:
recv(3, "{\"event\":\"ms.channel.connect\",\"data\":{\"id\":\"183db8f0-0a27-11e7-88b6-170b7192c982\",\"clients\":[{\"id\":\"183db8f0-0a27-11e7-88b6-170b7192c982\",\"connectTime\":1489654868480,\"attributes\":{\"name\":\"QUJD\"},\"deviceName\":\"QUJD\",\"isHost\":false}]}}", 233, 0) = 233


Danach folgt die Meldung auf der Console
write(2, "Sending control command: KEY_VOLDOWN\n")

Nun werden verschlüsselt Daten an den TV gesandt. Dieser meldet dann im Klartext zurück:
recv(3, "{\"event\":\"ms.error\",\"data\":{\"message\":\"unrecognized method value : ms.remote.control\"}}", 87, 0) = 87



Papaloewe

@joe99
Das kann ich 100% so bestätigen.
Es sieht bei mir genau so aus!

joe99

@Papaloewe
Fehler wurde auch schon hier gemeldet:
https://community.home-assistant.io/t/samsung-tizen-support/4816/29

Da die GET und "event" im Klartext gesendet werden, kann man vielleicht mittels Wireshark den Verkehr mit einer entsprechenden Samsung-App auswerten. Werde das mal versuchen.

Papaloewe

#93
Habe das mal mit der APP: "myTifi" auf dem iphone probiert.
Bei der Einrichtung mußte ich allerdings einmal die 4-stellige Pin vom Fernseher eintragen.
Danach lief es.
Leider habe ich diesen Vorgang nicht sniffern können....

joe99

Beim Datenverkehr zwischen TV (J-Serie) und der Samsung-App Smart View kann ich leider nicht viel erkennen, was uns weiterhelfen könnte. Es werden von beiden Seiten Broad- und Multicasts abgesetzt, vieles deutet auf upnp hin.
Es wird auf zwei Schnittstellen des TV verwiesen:

v1:
http:// 192.168.2.11:8001/ms/1.0/

der TV liefert hier :
{
  "DUID": "uuid:2319426b...",
  "Model": "15_HAWKM_UHD",
  "ModelName": "UE48JS8500",
  "ModelDescription": "Samsung DTV RCR",
  "NetworkType": "wired",
  "SSID": "",
  "IP": "192.168.2.11",
  "FirmwareVersion": "Unknown",
  "DeviceName": "[TV] UE48JS8590",
  "DeviceID": "uuid:2319426b...",
  "UDN": "uuid:2319426b...",
  "Resolution": "1920x1080",
  "CountryCode": "DE",
  "SmartHubAgreement": "true",
  "ServiceURI": "http://192.168.2.11:8001/ms/1.0/",
  "DialURI": "http://192.168.2.11:8001/ws/apps/",
  "Capabilities": [
    {
      "name": "samsung:multiscreen:1",
      "port": "8001",
      "location": "/ms/1.0/"
    }
  ]
}


v2:
http:// 192.168.2.11:8001/api/v2/

hier liefert der TV:

{
  "id": "uuid:2319426b....",
  "name": "[TV] UE48JS8590",
  "version": "2.0.25",
  "device": {
    "type": "Samsung SmartTV",
    "duid": "uuid:2319426b....",
    "model": "15_HAWKM_UHD",
    "modelName": "UE48JS8500",
    "description": "Samsung DTV RCR",
    "networkType": "wired",
    "ssid": "",
    "ip": "192.168.2.11",
    "firmwareVersion": "Unknown",
    "name": "[TV] UE48JS8590",
    "id": "uuid:2319426b....",
    "udn": "uuid:2319426b....",
    "resolution": "1920x1080",
    "countryCode": "DE",
    "msfVersion": "2.0.25",
    "smartHubAgreement": "true",
    "wifiMac": "xx:xx:xx:xx:xx:xx",
    "developerMode": "0",
    "developerIP": ""
  },
  "type": "Samsung SmartTV",
  "uri": "http://192.168.2.11:8001/api/v2/"
}


192.168.2.11 ist die IP meines TV, die UUID habe ich abgekürzt.
Gibt es eine App, die mit dem J-Serien-TV über die WS-Schnittstelle kommuniziert?

Papaloewe

Probiere doch mal die APP: "myTifi"

joe99


Florian_GT

Zitat von: joe99 am 17 März 2017, 13:12:13
Beim Datenverkehr zwischen TV (J-Serie) und der Samsung-App Smart View kann ich leider nicht viel erkennen, was uns weiterhelfen könnte. Es werden von beiden Seiten Broad- und Multicasts abgesetzt, vieles deutet auf upnp hin.
Es wird auf zwei Schnittstellen des TV verwiesen:

v1:
http:// 192.168.2.11:8001/ms/1.0/

der TV liefert hier :
{
  "DUID": "uuid:2319426b...",
  "Model": "15_HAWKM_UHD",
  "ModelName": "UE48JS8500",
  "ModelDescription": "Samsung DTV RCR",
  "NetworkType": "wired",
  "SSID": "",
  "IP": "192.168.2.11",
  "FirmwareVersion": "Unknown",
  "DeviceName": "[TV] UE48JS8590",
  "DeviceID": "uuid:2319426b...",
  "UDN": "uuid:2319426b...",
  "Resolution": "1920x1080",
  "CountryCode": "DE",
  "SmartHubAgreement": "true",
  "ServiceURI": "http://192.168.2.11:8001/ms/1.0/",
  "DialURI": "http://192.168.2.11:8001/ws/apps/",
  "Capabilities": [
    {
      "name": "samsung:multiscreen:1",
      "port": "8001",
      "location": "/ms/1.0/"
    }
  ]
}


v2:
http:// 192.168.2.11:8001/api/v2/

hier liefert der TV:

{
  "id": "uuid:2319426b....",
  "name": "[TV] UE48JS8590",
  "version": "2.0.25",
  "device": {
    "type": "Samsung SmartTV",
    "duid": "uuid:2319426b....",
    "model": "15_HAWKM_UHD",
    "modelName": "UE48JS8500",
    "description": "Samsung DTV RCR",
    "networkType": "wired",
    "ssid": "",
    "ip": "192.168.2.11",
    "firmwareVersion": "Unknown",
    "name": "[TV] UE48JS8590",
    "id": "uuid:2319426b....",
    "udn": "uuid:2319426b....",
    "resolution": "1920x1080",
    "countryCode": "DE",
    "msfVersion": "2.0.25",
    "smartHubAgreement": "true",
    "wifiMac": "xx:xx:xx:xx:xx:xx",
    "developerMode": "0",
    "developerIP": ""
  },
  "type": "Samsung SmartTV",
  "uri": "http://192.168.2.11:8001/api/v2/"
}


192.168.2.11 ist die IP meines TV, die UUID habe ich abgekürzt.
Gibt es eine App, die mit dem J-Serien-TV über die WS-Schnittstelle kommuniziert?

die ich bereits genannt hatte.

PS: Nur 48 Zoll? 65 viel besser :D
FHEM: Proxmox Server, FHEM in VM, pgSQL DB
Hardware: Ethersex (Pollin NETIO Boards), Diverse Tasmota MQTT Devices, Raspberry Pi Zero W Kameras, (Github RaspberryPiStreamingCamera), Zigbee2MQTT, ESPEasy

Development: UBA (Umwelt Bundesamt), BFS (Bundesamt für Strahlenschutz)

GerhardSt

Hallo,

ich hab es auch mal getestet, leider dürfte bei mir noch was nicht stimmen:

2017.04.01 14:45:52 1: PERL WARNING: Argument "ws" isn't numeric in numeric ne (!=) at ./FHEM/70_STV.pm line 286.
Traceback (most recent call last):
  File "/usr/local/bin/samsungctl", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/samsungctl/__main__.py", line 100, in main
    with Remote(config) as remote:
  File "/usr/local/lib/python2.7/dist-packages/samsungctl/remote.py", line 10, in __init__
    self.remote = RemoteWebsocket(config)
  File "/usr/local/lib/python2.7/dist-packages/samsungctl/remote_websocket.py", line 23, in __init__
    self._serialize_string(config["name"])))
  File "/usr/local/lib/python2.7/dist-packages/websocket/_core.py", line 211, in connect
    options.pop('socket', None))
  File "/usr/local/lib/python2.7/dist-packages/websocket/_http.py", line 71, in connect
    sock = _open_socket(addrinfo_list, options.sockopt, options.timeout)
  File "/usr/local/lib/python2.7/dist-packages/websocket/_http.py", line 114, in _open_socket
    sock.connect(address)
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 113] No route to host


Hat da wer eine Idee?

Papaloewe

Schau einfach mal weiter oben im Thread.
Du musst noch zwei Änderungen im Script vornehmen.

GerhardSt

@Papaloewe
Danke für deine Antwort!
Wäre nett wenn du mir noch sagen könntest, welchen Post du meinst.
Ich habe alles gemacht was im Post 48 steht.

Papaloewe

@GerhardSt

ja, genau den Post 48 meinte ich. Sorry das war etwas zu knapp gehalten.  ;)
Ansonsten könnte es noch mit den beiden python Versionen 2.7 und 3.5 zu Problemen kommen.
Ich meine du solltest den Aufruf zunächst von der Konsole aus testen.
Nur "python" benutzt Version2.7 und "python3" die Version3.5, falls beide installiert sind.
Bin mir aber nicht mehr ganz sicher, das ist schon wieder ein paar Tage her und man wird immer älter.  8)

Gruß
Thomas

GerhardSt

Danke!
Fehler kommt jetzt keiner mehr, aber der TV (JS-Serie) reagiert trotzdem nicht.
Es kommt nicht mal eine Einblendung ob FHEM den TV steuern darf.  :(

Papaloewe

Ja, diese Erfahrung habe ich leider auch gemacht.
Das scheint zur Zeit nur bei der K-Serie zu funktioniren.

slawekking

Hallo,

habe einen relativ neuen ue65ks7090 mit Tizen und der neusten Software .
Nach der Anpassung des Pfades im pm modul und der Beschreibung aus Post 48  läuft es gut.

Danke für die Arbeit.

Gruß

Christoph