Samsung TV Not working after update to 0.102.2

I updated to 0.102.2 recently and after the update I noticed my Samsung TV (MU6290) no longer responded to commands. It also says “off” all the time now. I checked the IP and mac address and those haven’t changed.

I did see this error in the logs: “Update for media_player.samsung_tv_remote fails”. Here’s the full log

Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 270, in async_update_ha_state
await self.async_device_update()
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 450, in async_device_update
await self.hass.async_add_executor_job(self.update)
File “/usr/local/lib/python3.7/concurrent/futures/thread.py”, line 57, in run
result = self.fn(*self.args, **self.kwargs)
File “/usr/src/homeassistant/homeassistant/components/samsungtv/media_player.py”, line 151, in update
self.send_key(“KEY”)
File “/usr/src/homeassistant/homeassistant/components/samsungtv/media_player.py”, line 202, in send_key
self.get_remote().control(key)
File “/usr/src/homeassistant/homeassistant/components/samsungtv/media_player.py”, line 188, in get_remote
self._remote = SamsungRemote(self._config.copy())
File “/usr/local/lib/python3.7/site-packages/samsungctl/remote.py”, line 11, in init
self.remote = RemoteWebsocket(config)
File “/usr/local/lib/python3.7/site-packages/samsungctl/remote_websocket.py”, line 30, in init
self._read_response()
File “/usr/local/lib/python3.7/site-packages/samsungctl/remote_websocket.py”, line 67, in _read_response
response = self.connection.recv()
File “/usr/local/lib/python3.7/site-packages/websocket/_core.py”, line 310, in recv
opcode, data = self.recv_data()
File “/usr/local/lib/python3.7/site-packages/websocket/_core.py”, line 327, in recv_data
opcode, frame = self.recv_data_frame(control_frame)
File “/usr/local/lib/python3.7/site-packages/websocket/_core.py”, line 340, in recv_data_frame
frame = self.recv_frame()
File “/usr/local/lib/python3.7/site-packages/websocket/_core.py”, line 374, in recv_frame
return self.frame_buffer.recv_frame()
File “/usr/local/lib/python3.7/site-packages/websocket/_abnf.py”, line 383, in recv_frame
frame.validate(self.skip_utf8_validation)
File “/usr/local/lib/python3.7/site-packages/websocket/_abnf.py”, line 182, in validate
raise WebSocketProtocolException(“Invalid close opcode.”)
websocket._exceptions.WebSocketProtocolException: Invalid close opcode.

I’m running hass.io if that helps. Any ideas?

Edit: I change my port to 8002 (after searching a little for “invalid close opcode”) but I’m getting a whole new log of errors.

Update for media_player.samsung_tv_remote fails
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 270, in async_update_ha_state
await self.async_device_update()
File “/usr/src/homeassistant/homeassistant/helpers/entity.py”, line 450, in async_device_update
await self.hass.async_add_executor_job(self.update)
File “/usr/local/lib/python3.7/concurrent/futures/thread.py”, line 57, in run
result = self.fn(*self.args, **self.kwargs)
File “/usr/src/homeassistant/homeassistant/components/samsungtv/media_player.py”, line 151, in update
self.send_key(“KEY”)
File “/usr/src/homeassistant/homeassistant/components/samsungtv/media_player.py”, line 202, in send_key
self.get_remote().control(key)
File “/usr/src/homeassistant/homeassistant/components/samsungtv/media_player.py”, line 188, in get_remote
self._remote = SamsungRemote(self._config.copy())
File “/usr/local/lib/python3.7/site-packages/samsungctl/remote.py”, line 11, in init
self.remote = RemoteWebsocket(config)
File “/usr/local/lib/python3.7/site-packages/samsungctl/remote_websocket.py”, line 28, in init
self.connection = websocket.create_connection(url, config[“timeout”])
File “/usr/local/lib/python3.7/site-packages/websocket/_core.py”, line 511, in create_connection
websock.connect(url, **options)
File “/usr/local/lib/python3.7/site-packages/websocket/_core.py”, line 223, in connect
self.handshake_response = handshake(self.sock, *addrs, **options)
File “/usr/local/lib/python3.7/site-packages/websocket/_handshake.py”, line 79, in handshake
status, resp = _get_resp_headers(sock)
File “/usr/local/lib/python3.7/site-packages/websocket/_handshake.py”, line 150, in _get_resp_headers
status, resp_headers, status_message = read_headers(sock)
File “/usr/local/lib/python3.7/site-packages/websocket/_http.py”, line 298, in read_headers
line = recv_line(sock)
File “/usr/local/lib/python3.7/site-packages/websocket/_socket.py”, line 102, in recv_line
c = recv(sock, 1)
File “/usr/local/lib/python3.7/site-packages/websocket/_socket.py”, line 94, in recv
“Connection is already closed.”)
websocket._exceptions.WebSocketConnectionClosedException: Connection is already closed.

Incase someone else has this issue. I think I’ve kinda got it working again. I found this github issue: https://github.com/home-assistant/home-assistant/issues/17802 which lead me to this custom component repo: https://github.com/xchwarze/ha-samsungtv-custom I can now control the tv from hassio again. Alexa isn’t responding to the usual commands but that might be something unrelated.

There is also this https://github.com/roberodin/ha-samsungtv-custom plus a recent thread with at least another version. I think the thread has a subject line something like “Improving Samsung TV”

EDIT: here Improving Samsung TV Control