Samsung / Tizen TV API v2 - Printable Version +- Logic Machine Forum (https://forum.logicmachine.net) +-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1) +--- Forum: Scripting (https://forum.logicmachine.net/forumdisplay.php?fid=8) +--- Thread: Samsung / Tizen TV API v2 (/showthread.php?tid=4606) |
Samsung / Tizen TV API v2 - Joep - 24.02.2023 Hello, I found this Python script to control a Samsung Smart TV. Can someone help me to modify this Python script to a Lua script? Source: https://github.com/vrachieru/samsung-tv-api/blob/master/samsungtv/remote.py Thanks in advance. RE: Samsung / Tizen TV API v2 - admin - 24.02.2023 This API uses websocket/JSON. You can use this example as a starting point: https://forum.logicmachine.net/showthread.php?tid=2185&pid=16331#pid16331 RE: Samsung / Tizen TV API v2 - Joep - 24.02.2023 (24.02.2023, 14:13)admin Wrote: This API uses websocket/JSON. You can use this example as a starting point: https://forum.logicmachine.net/showthread.php?tid=2185&pid=16331#pid16331 Got this so far but i'm strugling with the payload. What's the correct way to send the commands? Code: host = '192.168.126.54' RE: Samsung / Tizen TV API v2 - CristianAgata - 25.02.2023 (24.02.2023, 13:59)Joep Wrote: Hello, Hi Joep, have you tried with API cloud? best regards Cristian RE: Samsung / Tizen TV API v2 - admin - 27.02.2023 Try this: Code: host = '192.168.126.54' RE: Samsung / Tizen TV API v2 - Joep - 27.02.2023 It's not working as i got an 'unautorized' reply. I know you first need to submit each remote control by a popup that appears a the the tv screen. So for that i just tested with a basic url: url = 'ws://' .. host .. ':' .. port .. '/api/v2/' And then i got this response: Samsung TV websocket 27.02.2023 14:08:28 * table: ["data"] * table: ["clients"] * table: [1] * table: ["isHost"] * bool: false ["id"] * string: f996fa65-4b22-4021-8f30-56df2da9a983 ["attributes"] * table: ["name"] * userdata: NULL ["deviceName"] * string: Smart Device ["connectTime"] * number: 1677503304615 ["id"] * string: f996fa65-4b22-4021-8f30-56df2da9a983 ["event"] * string: ms.channel.connect The same url http://192.168.126.54:8001/api/v2/ in the webbrowser is giving me more information back: { "device": { "FrameTVSupport": "true", "GamePadSupport": "true", "ImeSyncedSupport": "true", "OS": "Tizen", "TokenAuthSupport": "true", "VoiceSupport": "true", "countryCode": "NL", "description": "Samsung DTV RCR", "developerIP": "0.0.0.0", "developerMode": "0", "duid": "uuid:ab728320-b477-48f8-9728-dee89aa3b37c", "firmwareVersion": "Unknown", "id": "uuid:ab728320-b477-48f8-9728-dee89aa3b37c", "ip": "192.168.126.54", "model": "18_KANTM2_FRAME", "modelName": "UE43LS03N", "name": "[TV] Samsung Frame Series (43)", "networkType": "wired", "resolution": "3840x2160", "smartHubAgreement": "true", "type": "Samsung SmartTV", "udn": "uuid:ab728320-b477-48f8-9728-dee89aa3b37c", "wifiMac": "64:1c:ae:e3:3b:af" }, "id": "uuid:ab728320-b477-48f8-9728-dee89aa3b37c", "isSupport": "{\"DMP_DRM_PLAYREADY\":\"false\",\"DMP_DRM_WIDEVINE\":\"false\",\"DMP_available\":\"true\",\"EDEN_available\":\"true\",\"FrameTVSupport\":\"true\",\"ImeSyncedSupport\":\"true\",\"TokenAuthSupport\":\"true\",\"remote_available\":\"true\",\"remote_fourDirections\":\"true\",\"remote_touchPad\":\"true\",\"remote_voiceControl\":\"true\"}\n", "name": "[TV] Samsung Frame Series (43)", "remote": "1.0", "type": "Samsung SmartTV", "uri": "http://192.168.126.54:8001/api/v2/", "version": "2.0.25" } RE: Samsung / Tizen TV API v2 - admin - 27.02.2023 It seems that you need to send KEY_HOME first to get the access token. Then add this token to the query string for further calls: ...samsung.remote.control?name=NAME&token=TOKEN Add another client:receive() after sending the key and log the results. RE: Samsung / Tizen TV API v2 - Joep - 27.02.2023 (27.02.2023, 13:40)admin Wrote: It seems that you need to send KEY_HOME first to get the access token. Then add this token to the query string for further calls: ...samsung.remote.control?name=NAME&token=TOKEN This is the script so far: Code: host = '192.168.126.54' The result is this: Samsung TV websocket 27.02.2023 15:54:54 * table: ["event"] * string: ms.channel.unauthorized ----------------------------------------------------- Samsung TV websocket 27.02.2023 15:54:54 * arg: 1 * string: invalid response * arg: 2 * string: {"event":"ms.channel.unauthorized"} * arg: 3 * nil RE: Samsung / Tizen TV API v2 - admin - 27.02.2023 Comment out this check before the key is sent and try again. RE: Samsung / Tizen TV API v2 - Joep - 27.02.2023 (27.02.2023, 14:58)admin Wrote: Comment out this check before the key is sent and try again. Sorry but i don't understand what you mean with ' Comment out this check ' RE: Samsung / Tizen TV API v2 - admin - 27.02.2023 Add comments to this check: Code: -- if type(resp) ~= 'table' or resp.event ~= 'ms.channel.connect' then RE: Samsung / Tizen TV API v2 - Joep - 27.02.2023 (27.02.2023, 15:49)admin Wrote: Add comments to this check: I have a working script now using wss over port 8002. Only issue is that the TV keeps asking to accept the connection and it seems the token is changing all the time as i got a new one so now and then while testing. Code: host = '192.168.126.54' RE: Samsung / Tizen TV API v2 - j.martinez@t-ingeniamos.com - 23.02.2024 Hi there, I am in the same situation as Joep. websocket library working and comunicating with Samsung IP, but each time i send a KEY command the TV send us a new Token string and ask us to confirm the device. Anyone have improved this? And the wol packet i tried several scripts to switch ON the TV without success.... any idea about? RE: Samsung / Tizen TV API v2 - Joep - 23.02.2024 (23.02.2024, 11:00)j.martinez@t-ingeniamos.com Wrote: Hi there, Here's a working WOL script. I just tested with my Samsung tv and it works. Also for my pc and i believe many other devices. Code: function wol(mac) RE: Samsung / Tizen TV API v2 - j.martinez@t-ingeniamos.com - 23.02.2024 (23.02.2024, 11:16)Joep Wrote:(23.02.2024, 11:00)j.martinez@t-ingeniamos.com Wrote: Hi there, Thank you very much Joep. I will try it later. |