Acties:
  • 0 Henk 'm!

  • makooy
  • Registratie: Januari 2011
  • Laatst online: 19:40
Zover ik kon vinden is er nog niet eerder over geschreven.

[Samsung] Samsugctl TV-api

Inhoudsopgave

Wat is Samsungctl?

Samsungctl is een python pip package waarmee het mogelijk is om de knoppen van een afstandsbediening te simuleren en deze over het netwerk naar een Samsung TV te sturen.

Wat kan ik er mee?

Zoals hierboven kort verteld is het mogelijk om te simuleren alsof je de knoppen van de afstandsbediening indrukt en dit als commando naar de TV stuurt.
Je kan hiermee bijvoorbeeld de TV van kanaal wijzigen, uitzetten en van ingang/source wisselen.

Hoe installeer ik het?

Zie: https://github.com/Ape/samsungctl#installation
Zelf draai ik het opeen Raspberry Pi 3b, waar Python 2.4.7 op stond, ik heb Python3 moeten installeren via de volgende manier:

Because samsungctl depends python 3, so please make sure your pip is using python 3 version. To install pip3, run "sudo apt-get install python3-pip"
daarna:
pip3 install samsungctl --> mandatory
pip3 install websocket-client --> optional

Hoe werkt het?

Zodra samsungctl is geinstalleerd kan je met verschillende commando's de tv besturen.
Commando "samsungctl --host %IP% --name %remotename% %key%"
%IP% = vervangen door IP van TV
%remotename% = vervangen door naam van afstandsbediening, "myremote" wordt het meeste gebruikt.
%key% = vervangen door de knop die je wilt simuleren.

bijv. TV uitzetten:
samsungctl --host 192.168.1.25 --name myremote KEY_POWEROFF

bijv. TV HDMI ingang wisselen:
samsungctl --host 192.168.1.25 --name myremote KEY_HDMI

Welke integratiemogelijkheden zijn er?

domoticz:
zie: https://www.domoticz.com/wiki/Plugins/SamsungTV.html


Heb je tips of opmerkingen over deze topic of wil je mee helpen hem te vullen? Laat het weten in een reactie!

[ Voor 8% gewijzigd door makooy op 17-12-2017 22:10 ]

TWEAKERS EREDIVISIE VOETBALPOULE!


Acties:
  • 0 Henk 'm!

  • djpsycho82
  • Registratie: November 2009
  • Laatst online: 18-08 07:32
Bijzonder dat nog niemand hier nog mee bezig is geweest. Ik heb een behoorlijk aantal pogingen gedaan om dit werkend te krijgen maar ik kom niet voorbij deze foutmelding:
pi@raspberrypi:/usr/local/bin $ samsungctl -i --host 192.168.0.127 --method websocket
Traceback (most recent call last):
File "/usr/local/bin/samsungctl", line 11, in <module>
sys.exit(main())
File "/usr/lib/python3.5/samsungctl/__main__.py", line 110, in main
with Remote(config) as remote:
File "/usr/lib/python3.5/samsungctl/remote.py", line 11, in __init__
self.remote = RemoteWebsocket(config)
File "/usr/lib/python3.5/samsungctl/remote_websocket.py", line 30, in __init__
self._read_response()
File "/usr/lib/python3.5/samsungctl/remote_websocket.py", line 67, in _read_response
response = self.connection.recv()
File "/home/pi/.local/lib/python3.5/site-packages/websocket/_core.py", line 310, in recv
opcode, data = self.recv_data()
File "/home/pi/.local/lib/python3.5/site-packages/websocket/_core.py", line 327, in recv_data
opcode, frame = self.recv_data_frame(control_frame)
File "/home/pi/.local/lib/python3.5/site-packages/websocket/_core.py", line 340, in recv_data_frame
frame = self.recv_frame()
File "/home/pi/.local/lib/python3.5/site-packages/websocket/_core.py", line 374, in recv_frame
return self.frame_buffer.recv_frame()
File "/home/pi/.local/lib/python3.5/site-packages/websocket/_abnf.py", line 383, in recv_frame
frame.validate(self.skip_utf8_validation)
File "/home/pi/.local/lib/python3.5/site-packages/websocket/_abnf.py", line 182, in validate
raise WebSocketProtocolException("Invalid close opcode.")
websocket._exceptions.WebSocketProtocolException: Invalid close opcode.

.
.
.
aantal Github pagina's verder
.
.
.
Lijkt erop dat de Samsung TV's een Token gebruiken sinds de laatste software update. Op Github zijn er een aantal developers bezig om dit te tackelen. Ik ga proberen te helpen om dit beestje weer aan de praat te krijgen ;)

Hier zijn we te volgen:

https://github.com/kdschlosser/samsungctl/issues/2

Acties:
  • 0 Henk 'm!

  • Accretion
  • Registratie: April 2014
  • Laatst online: 01-10 21:37

Accretion

⭐⭐⭐⭐⭐ (5/5)

Mocht hier nog animo voor zijn, ik ben hier momenteel mee bezig en het lijkt of ik een fatsoenlijke oplossing gevonden heb voor nieuwere TV's.

Echter heb ik beperkte mogelijkheid om te testen.

Acties:
  • 0 Henk 'm!

  • gdroos
  • Registratie: Augustus 2006
  • Laatst online: 19-06 17:19
Hoi,

Ben in het bezit van een q7 en best wel geïnteresseerd. Wil mijn Samsung met homey/domoticz/hassio bedienen.

Acties:
  • 0 Henk 'm!

  • wimbre
  • Registratie: Mei 2003
  • Laatst online: 22-08 12:29
Hi, Ik ben ook geïnteresseerd maar kom er nog niet uit. Als ik het ip-adres van de samsung TV (Samsung UE48JU7000) ping komt er response maar als ik het commando "samsungctl --host 192.168.xxx.xxx --name myremote KEY_POWEROFF" in geef krijg ik:

File "/usr/local/bin/samsungctl", line 11, in <module>
load_entry_point('samsungctl==0.8.0b0', 'console_scripts', 'samsungctl')()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/__main__.py", line 355, in main
with Remote(config) as remote:
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote.py", line 67, in __enter__
self.open()
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/utils.py", line 24, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote_legacy.py", line 79, in open
raise RuntimeError('Unable to pair with TV.. Is the TV on?!?')
RuntimeError: Unable to pair with TV.. Is the TV on?!?

2 vragen:
1. Heeft iemand een idee hoe deze TV te pairen?
2. Als dit allemaal goed werkt kan ik dit dan ook met Homekit/Siri bedienen?

Acties:
  • 0 Henk 'm!

  • altorf
  • Registratie: Maart 2012
  • Laatst online: 04-07-2024
Super late aanhaak aan dit topic.

Maar ik kom ook niet verder.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 File "/usr/local/bin/samsungctl", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/dist-packages/samsungctl/__main__.py", line 110, in main
    with Remote(config) as remote:
  File "/usr/local/lib/python3.7/dist-packages/samsungctl/remote.py", line 11, in __init__
    self.remote = RemoteWebsocket(config)
  File "/usr/local/lib/python3.7/dist-packages/samsungctl/remote_websocket.py", line 30, in __init__
    self._read_response()
  File "/usr/local/lib/python3.7/dist-packages/samsungctl/remote_websocket.py", line 67, in _read_respo                                                  nse
    response = self.connection.recv()
  File "/home/pi/.local/lib/python3.7/site-packages/websocket/_core.py", line 314, in recv
    opcode, data = self.recv_data()
  File "/home/pi/.local/lib/python3.7/site-packages/websocket/_core.py", line 331, in recv_data
    opcode, frame = self.recv_data_frame(control_frame)
  File "/home/pi/.local/lib/python3.7/site-packages/websocket/_core.py", line 344, in recv_data_frame
    frame = self.recv_frame()
  File "/home/pi/.local/lib/python3.7/site-packages/websocket/_core.py", line 378, in recv_frame
    return self.frame_buffer.recv_frame()
  File "/home/pi/.local/lib/python3.7/site-packages/websocket/_abnf.py", line 361, in recv_frame
    self.recv_header()
  File "/home/pi/.local/lib/python3.7/site-packages/websocket/_abnf.py", line 309, in recv_header
    header = self.recv_strict(2)
  File "/home/pi/.local/lib/python3.7/site-packages/websocket/_abnf.py", line 396, in recv_strict
    bytes_ = self.recv(min(16384, shortage))
  File "/home/pi/.local/lib/python3.7/site-packages/websocket/_core.py", line 453, in _recv
    return recv(self.sock, bufsize)
  File "/home/pi/.local/lib/python3.7/site-packages/websocket/_socket.py", line 102, in recv
    bytes_ = _recv()
  File "/home/pi/.local/lib/python3.7/site-packages/websocket/_socket.py", line 84, in _recv
    return sock.recv(bufsize)
Pagina: 1