Found a new bug in the binding (I reported it). This bug is to do with power state on the Frame TV - it causes the power button on the remote control to stop working (yes the actual physical remotes can’t turn the TV on or off anymore).
Here it is:
Putting the 2021 Frame TV into Standby from ArtMode has a bug in it. It’s primarily caused by the art-app channel reporting artMode ON incorrectly when the TV is actually in standby. You have to read the PowerState
from the https://ip:8002/api/v2/
page to tell if the TV is actually on
or in standby
- artMode will report ON even in standby
mode when the TV interface randomly wakes up in standby
mode.
Because of this behavior, you can lock up the TV power buttons - which means you can’t turn the TV on or off via the remote control.
Expected Behavior
When Artmode is ON, setting it to OFF should put the TV into standby mode. This should be achieved by sending a long press of the KEY_POWER approximately 4 seconds long.
Current Behavior
The Binding sends a long press of the KEY_POWER to put the TV into standby, however, it assumes that the TV goes into standby, as there is no corresponding Release of the KEY_POWER as there should be. Sometimes the TV does not go into standby as expected (because it’s already in standby - so it actually turns the TV on), and as there is no corresponding Release to the Press command, the power key remains pressed. This leads to the power buttons on the actual remote controls no longer working, and the standby command cannot be retried (as the KEY_POWER is now continually pressed, so you can’t press it again).
Possible Solution
The simple solution is to send a Press KEY_POWER command, followed 4 seconds later by a Release KEY_POWER - if the websocket disconnects, then the Release is never sent, but if it doesn’t, the release would be sent normally, and the command can be retried.
The artMode status cannot be simply determined by reading the artmode status from the app-art channel, you have to read the powerState as well. This should be implemented, as it would solve the issue of the artMode channel status being read incorrectly when the TV wakes while in standby mode.
Steps to Reproduce (for Bugs)
When the TV has just woken up (the TV wakes up at random intervals when in standby), it can still be in standby - however the art-app websocket reports artMode ‘ON’ - this not the case though, the https://ip:8002/api/v2/
page reports standby
not on
- if you send an artMode OFF command (to put it back into standby) - it doesn’t work as the TV is still in standby (in fact it turns the TV on), but now power buttons don’t work anymore.
Context
I’m trying to put the TV into standby at night (when the light are out), but the TV will randomly wake up, go into artMode, and then you can’t turn the TV OFF or on with the physical remote anymore. This is very annoying. The only way out is to use the power channel to turn the TV on. This is not helpful for other household family members trying to turn the TV on/off.
Your Environment
This is OH 3.1 running on Ubuntu 20.04. TV is a 2021 55" The Frame TV, ethernet is hard wired (not WiFi). Night mode and motion sensors are off.
Here is a TRACE log capture of the problem occurring:
samsungtv.log:2021-09-22 01:34:08.306 [DEBUG] [tv.internal.handler.SamsungTvHandler] - Received channel: samsungtv:tv:family_room:artMode, command: OFF
samsungtv.log:2021-09-22 01:34:08.306 [DEBUG] [rnal.service.RemoteControllerService] - getSupportedChannelNames: [keyCode, volume, mute, power, channel, url, sourceApp, artMode]
samsungtv.log:2021-09-22 01:34:08.307 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: artMode, command: OFF
samsungtv.log:2021-09-22 01:34:08.307 [DEBUG] [l.protocol.RemoteControllerWebSocket] - Try to send command: KEY_POWER
samsungtv.log:2021-09-22 01:34:08.307 [TRACE] [ngtv.internal.protocol.WebSocketBase] - WebSocketRemote: sendCommand: {"method":"ms.remote.control","params":{"Cmd":"Press","DataOfCmd":"KEY_POWER","Option":"false","TypeOfRemote":"SendRemoteKey"}}
samsungtv.log:2021-09-22 01:34:08.921 [DEBUG] [rnal.service.RemoteControllerService] - getSupportedChannelNames: [keyCode, volume, mute, power, channel, url, sourceApp, artMode]
samsungtv.log:2021-09-22 01:34:08.922 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: keyCode, command: REFRESH
samsungtv.log:2021-09-22 01:34:08.922 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:34:08.922 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:34:08.922 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: power, command: REFRESH
samsungtv.log:2021-09-22 01:34:08.922 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: url, command: REFRESH
samsungtv.log:2021-09-22 01:34:08.922 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: artMode, command: REFRESH
samsungtv.log:2021-09-22 01:34:08.922 [DEBUG] [nternal.service.MediaRendererService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:34:08.927 [TRACE] [nternal.service.MediaRendererService] - Value '20' for CurrentVolume hasn't changed, ignoring update
samsungtv.log:2021-09-22 01:34:08.928 [DEBUG] [nternal.service.MediaRendererService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:34:08.931 [TRACE] [nternal.service.MediaRendererService] - Value 'false' for CurrentMute hasn't changed, ignoring update
samsungtv.log:2021-09-22 01:34:09.932 [DEBUG] [rnal.service.RemoteControllerService] - getSupportedChannelNames: [keyCode, volume, mute, power, channel, url, sourceApp, artMode]
.
.
.
samsungtv.log:2021-09-22 01:34:13.991 [DEBUG] [rnal.service.RemoteControllerService] - getSupportedChannelNames: [keyCode, volume, mute, power, channel, url, sourceApp, artMode]
samsungtv.log:2021-09-22 01:34:13.992 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: keyCode, command: REFRESH
samsungtv.log:2021-09-22 01:34:13.992 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:34:13.993 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:34:13.993 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: power, command: REFRESH
samsungtv.log:2021-09-22 01:34:13.993 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: url, command: REFRESH
samsungtv.log:2021-09-22 01:34:13.993 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: artMode, command: REFRESH
samsungtv.log:2021-09-22 01:34:13.994 [DEBUG] [nternal.service.MediaRendererService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:34:14.000 [TRACE] [nternal.service.MediaRendererService] - Value '20' for CurrentVolume hasn't changed, ignoring update
samsungtv.log:2021-09-22 01:34:14.000 [DEBUG] [nternal.service.MediaRendererService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:34:14.004 [TRACE] [nternal.service.MediaRendererService] - Value 'false' for CurrentMute hasn't changed, ignoring update
samsungtv.log:2021-09-22 01:34:15.005 [DEBUG] [rnal.service.RemoteControllerService] - getSupportedChannelNames: [keyCode, volume, mute, power, channel, url, sourceApp, artMode]
samsungtv.log:2021-09-22 01:34:15.006 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: keyCode, command: REFRESH
samsungtv.log:2021-09-22 01:34:15.006 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:34:15.006 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:34:15.006 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: power, command: REFRESH
samsungtv.log:2021-09-22 01:34:15.006 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: url, command: REFRESH
samsungtv.log:2021-09-22 01:34:15.007 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: artMode, command: REFRESH
samsungtv.log:2021-09-22 01:34:15.007 [DEBUG] [nternal.service.MediaRendererService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:34:15.014 [TRACE] [nternal.service.MediaRendererService] - Value '20' for CurrentVolume hasn't changed, ignoring update
samsungtv.log:2021-09-22 01:34:15.014 [DEBUG] [nternal.service.MediaRendererService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:34:15.018 [TRACE] [nternal.service.MediaRendererService] - Value 'false' for CurrentMute hasn't changed, ignoring update
samsungtv.log:2021-09-22 01:34:16.019 [DEBUG] [rnal.service.RemoteControllerService] - getSupportedChannelNames: [keyCode, volume, mute, power, channel, url, sourceApp, artMode]
samsungtv.log:2021-09-22 01:34:16.019 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: keyCode, command: REFRESH
samsungtv.log:2021-09-22 01:34:16.020 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:34:16.020 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:34:16.020 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: power, command: REFRESH
samsungtv.log:2021-09-22 01:34:16.020 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: url, command: REFRESH
samsungtv.log:2021-09-22 01:34:16.020 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: artMode, command: REFRESH
samsungtv.log:2021-09-22 01:34:16.020 [DEBUG] [nternal.service.MediaRendererService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:34:16.025 [TRACE] [nternal.service.MediaRendererService] - Value '20' for CurrentVolume hasn't changed, ignoring update
samsungtv.log:2021-09-22 01:34:16.025 [DEBUG] [nternal.service.MediaRendererService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:34:16.029 [TRACE] [nternal.service.MediaRendererService] - Value 'false' for CurrentMute hasn't changed, ignoring update
samsungtv.log:2021-09-22 01:34:17.030 [DEBUG] [rnal.service.RemoteControllerService] - getSupportedChannelNames: [keyCode, volume, mute, power, channel, url, sourceApp, artMode]
samsungtv.log:2021-09-22 01:34:17.030 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: keyCode, command: REFRESH
samsungtv.log:2021-09-22 01:34:17.030 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:34:17.031 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:34:17.031 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: power, command: REFRESH
samsungtv.log:2021-09-22 01:34:17.031 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: url, command: REFRESH
samsungtv.log:2021-09-22 01:34:17.031 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: artMode, command: REFRESH
samsungtv.log:2021-09-22 01:34:17.031 [DEBUG] [nternal.service.MediaRendererService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:34:17.036 [TRACE] [nternal.service.MediaRendererService] - Value '20' for CurrentVolume hasn't changed, ignoring update
samsungtv.log:2021-09-22 01:34:17.037 [DEBUG] [nternal.service.MediaRendererService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:34:17.041 [TRACE] [nternal.service.MediaRendererService] - Value 'false' for CurrentMute hasn't changed, ignoring update
samsungtv.log:2021-09-22 01:34:18.042 [DEBUG] [rnal.service.RemoteControllerService] - getSupportedChannelNames: [keyCode, volume, mute, power, channel, url, sourceApp, artMode]
samsungtv.log:2021-09-22 01:34:18.043 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: keyCode, command: REFRESH
samsungtv.log:2021-09-22 01:34:18.043 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:34:18.043 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:34:18.043 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: power, command: REFRESH
samsungtv.log:2021-09-22 01:34:18.043 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: url, command: REFRESH
samsungtv.log:2021-09-22 01:34:18.043 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: artMode, command: REFRESH
samsungtv.log:2021-09-22 01:34:18.043 [DEBUG] [nternal.service.MediaRendererService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:34:18.049 [TRACE] [nternal.service.MediaRendererService] - Value '20' for CurrentVolume hasn't changed, ignoring update
samsungtv.log:2021-09-22 01:34:18.049 [DEBUG] [nternal.service.MediaRendererService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:34:18.053 [TRACE] [nternal.service.MediaRendererService] - Value 'false' for CurrentMute hasn't changed, ignoring update
samsungtv.log:2021-09-22 01:34:19.056 [DEBUG] [rnal.service.RemoteControllerService] - getSupportedChannelNames: [keyCode, volume, mute, power, channel, url, sourceApp, artMode]
The is the TV randomly waking up, it reports artMode ON, but it’s actually in standby
samsungtv.log:2021-09-22 01:33:43.858 [DEBUG] [tv.internal.handler.SamsungTvHandler] - remoteDeviceAdded: MediaRenderer, http://192.168.100.73:9197/dmr
samsungtv.log:2021-09-22 01:33:43.858 [DEBUG] [covery.SamsungTvDiscoveryParticipant] - Retrieved Thing UID for a Samsung TV 'Samsung TV' model 'QN55LS03AAFXZC' thing with UDN 'ea645e34_d3dd_4b9b_a246_e2947f8973d6'
samsungtv.log:2021-09-22 01:33:43.858 [DEBUG] [tv.internal.handler.SamsungTvHandler] - remoteDeviceAdded, upnpUDN=ea645e34_d3dd_4b9b_a246_e2947f8973d6
samsungtv.log:2021-09-22 01:33:43.858 [DEBUG] [tv.internal.handler.SamsungTvHandler] - Check and create missing UPnP services
samsungtv.log:2021-09-22 01:33:43.858 [DEBUG] [covery.SamsungTvDiscoveryParticipant] - Created a DiscoveryResult for device 'QN55LS03AAFXZC' with UDN 'ea645e34-d3dd-4b9b-a246-e2947f8973d6' and properties: {hostName=192.168.100.73}
samsungtv.log:2021-09-22 01:33:43.858 [TRACE] [tv.internal.handler.SamsungTvHandler] - Skipping unknown UPnP service: QN55LS03AAFXZC, dialreceiver (e6b20cd8-719b-4225-81e2-897c3198068f)
samsungtv.log:2021-09-22 01:33:43.858 [DEBUG] [nternal.service.MediaRendererService] - Creating a Samsung TV MediaRenderer service
samsungtv.log:2021-09-22 01:33:43.858 [DEBUG] [tv.internal.handler.SamsungTvHandler] - Started service for: QN55LS03AAFXZC, MediaRenderer (ea645e34-d3dd-4b9b-a246-e2947f8973d6)
samsungtv.log:2021-09-22 01:33:43.858 [DEBUG] [tv.internal.handler.SamsungTvHandler] - Device was online
samsungtv.log:2021-09-22 01:33:43.859 [INFO ] [rnal.service.RemoteControllerService] - Using SecureWebSocket interface
samsungtv.log:2021-09-22 01:33:43.866 [TRACE] [l.protocol.RemoteControllerWebSocket] - openConnection()
samsungtv.log:2021-09-22 01:33:43.866 [DEBUG] [l.protocol.RemoteControllerWebSocket] - RemoteControllerWebSocket start Client
samsungtv.log:2021-09-22 01:33:43.866 [TRACE] [l.protocol.RemoteControllerWebSocket] - WebSocketClient starting
samsungtv.log:2021-09-22 01:33:43.870 [TRACE] [l.protocol.RemoteControllerWebSocket] - WebSocketClient started
samsungtv.log:2021-09-22 01:33:43.871 [TRACE] [l.protocol.RemoteControllerWebSocket] - connectWebSockets()
samsungtv.log:2021-09-22 01:33:43.871 [DEBUG] [ngtv.internal.protocol.WebSocketBase] - WebSocketRemote connecting to: wss://192.168.100.73:8002/api/v2/channels/samsung.remote.control?name=b3BlbkhBQg==&token=16295986
samsungtv.log:2021-09-22 01:33:43.871 [TRACE] [ngtv.internal.protocol.WebSocketBase] - Connecting session Future: java.util.concurrent.CompletableFuture@6c9c768c[Not completed, 1 dependents]
samsungtv.log:2021-09-22 01:33:43.872 [DEBUG] [ngtv.internal.protocol.WebSocketBase] - WebSocketArt connecting to: wss://192.168.100.73:8002/api/v2/channels/com.samsung.art-app?name=b3BlbkhBQg==
samsungtv.log:2021-09-22 01:33:43.874 [TRACE] [ngtv.internal.protocol.WebSocketBase] - Connecting session Future: java.util.concurrent.CompletableFuture@3be184f2[Not completed, 1 dependents]
samsungtv.log:2021-09-22 01:33:43.879 [DEBUG] [ngtv.internal.protocol.WebSocketBase] - WebSocketV2 connecting to: wss://192.168.100.73:8002/api/v2?name=b3BlbkhBQg==
samsungtv.log:2021-09-22 01:33:43.882 [TRACE] [ngtv.internal.protocol.WebSocketBase] - Connecting session Future: java.util.concurrent.CompletableFuture@2e1122ce[Not completed, 1 dependents]
samsungtv.log:2021-09-22 01:33:43.886 [DEBUG] [tv.internal.handler.SamsungTvHandler] - remoteDeviceAdded: ScreenMirroring, http://192.168.100.73:9119/screen_sharing
samsungtv.log:2021-09-22 01:33:43.886 [DEBUG] [tv.internal.handler.SamsungTvHandler] - remoteDeviceAdded, upnpUDN=adc92018_fd3b_4276_b534_19ea2d3e007a
samsungtv.log:2021-09-22 01:33:43.886 [DEBUG] [tv.internal.handler.SamsungTvHandler] - Check and create missing UPnP services
samsungtv.log:2021-09-22 01:33:43.886 [TRACE] [tv.internal.handler.SamsungTvHandler] - Skipping unknown UPnP service: QN55LS03AAFXZC, ScreenMirroring (adc92018-fd3b-4276-b534-19ea2d3e007a)
samsungtv.log:2021-09-22 01:33:43.886 [TRACE] [tv.internal.handler.SamsungTvHandler] - Skipping unknown UPnP service: QN55LS03AAFXZC, dialreceiver (e6b20cd8-719b-4225-81e2-897c3198068f)
samsungtv.log:2021-09-22 01:33:43.886 [DEBUG] [tv.internal.handler.SamsungTvHandler] - Service rediscovered, clearing caches: QN55LS03AAFXZC, MediaRenderer (ea645e34-d3dd-4b9b-a246-e2947f8973d6)
samsungtv.log:2021-09-22 01:33:43.887 [DEBUG] [tv.internal.handler.SamsungTvHandler] - Device was online
samsungtv.log:2021-09-22 01:33:43.887 [TRACE] [l.protocol.RemoteControllerWebSocket] - openConnection()
samsungtv.log:2021-09-22 01:33:43.887 [TRACE] [l.protocol.RemoteControllerWebSocket] - connectWebSockets()
samsungtv.log:2021-09-22 01:33:43.887 [TRACE] [ngtv.internal.protocol.WebSocketBase] - WebSocketRemote already connecting or connected
samsungtv.log:2021-09-22 01:33:43.887 [TRACE] [ngtv.internal.protocol.WebSocketBase] - WebSocketArt already connecting or connected
samsungtv.log:2021-09-22 01:33:43.887 [TRACE] [ngtv.internal.protocol.WebSocketBase] - WebSocketV2 already connecting or connected
samsungtv.log:2021-09-22 01:33:43.962 [DEBUG] [ngtv.internal.protocol.WebSocketBase] - WebSocketRemote connection established: 192.168.100.73
samsungtv.log:2021-09-22 01:33:44.619 [DEBUG] [rnal.service.RemoteControllerService] - getSupportedChannelNames: [keyCode, volume, mute, power, channel, url, sourceApp, artMode]
samsungtv.log:2021-09-22 01:33:44.620 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: keyCode, command: REFRESH
samsungtv.log:2021-09-22 01:33:44.620 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:33:44.620 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:33:44.620 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: power, command: REFRESH
samsungtv.log:2021-09-22 01:33:44.620 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: url, command: REFRESH
samsungtv.log:2021-09-22 01:33:44.620 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: artMode, command: REFRESH
samsungtv.log:2021-09-22 01:33:44.620 [DEBUG] [nternal.service.MediaRendererService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:33:44.626 [DEBUG] [tv.internal.handler.SamsungTvHandler] - Received value 'volume':'20' for thing 'samsungtv:tv:family_room'
samsungtv.log:2021-09-22 01:33:44.626 [DEBUG] [nternal.service.MediaRendererService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:33:44.631 [DEBUG] [tv.internal.handler.SamsungTvHandler] - Received value 'mute':'ON' for thing 'samsungtv:tv:family_room'
samsungtv.log:2021-09-22 01:33:45.106 [DEBUG] [ngtv.internal.protocol.WebSocketBase] - WebSocketV2 connection established: 192.168.100.73
samsungtv.log:2021-09-22 01:33:45.122 [TRACE] [ngtv.internal.protocol.WebSocketBase] - WebSocketRemote: onWebSocketText: {"data":{"clients":[{"attributes":{"name":"U21hcnQgRGV2aWNl","token":"86540594"},"connectTime":1632288805659,"deviceName":"U21hcnQgRGV2aWNl","id":"c693d5a8-708e-4e69-9a89-435bfc2dcba7","isHost":false},{"attributes":{"name":"b3BlbkhBQg==","token":"16295986"},"connectTime":1632288823605,"deviceName":"b3BlbkhBQg==","id":"b389295b-b289-48d4-b2d5-a838722c1ce","isHost":false}],"id":"b389295b-b289-48d4-b2d5-a838722c1ce"},"event":"ms.channel.connect"}
samsungtv.log:2021-09-22 01:33:45.122 [TRACE] [ngtv.internal.protocol.WebSocketBase] - WebSocketV2: onWebSocketText: {"data":{"clients":[{"attributes":{"name":"b3BlbkhBQg=="},"connectTime":1632288824760,"deviceName":"b3BlbkhBQg==","id":"b24c9ad-248b-4a20-9655-432b272ac8b","isHost":false}],"id":"b24c9ad-248b-4a20-9655-432b272ac8b"},"event":"ms.channel.connect"}
samsungtv.log:2021-09-22 01:33:45.123 [DEBUG] [ngtv.internal.protocol.WebSocketBase] - WebSocketArt connection established: 192.168.100.73
samsungtv.log:2021-09-22 01:33:45.123 [DEBUG] [tv.internal.protocol.WebSocketRemote] - Remote channel connected. Token = null
samsungtv.log:2021-09-22 01:33:45.123 [DEBUG] [sungtv.internal.protocol.WebSocketV2] - V2 channel connected. Token = null
samsungtv.log:2021-09-22 01:33:45.124 [TRACE] [ngtv.internal.protocol.WebSocketBase] - WebSocketRemote: sendCommand: {"method":"ms.channel.emit","params":{"event":"ed.installedApp.get","to":"host"}}
samsungtv.log:2021-09-22 01:33:45.134 [TRACE] [ngtv.internal.protocol.WebSocketBase] - WebSocketArt: onWebSocketText: {"data":{"clients":[{"attributes":{"name":null},"connectTime":1632288814585,"deviceName":"Smart Device","id":"b69042-807-427f-b033-c36b1277f4c","isHost":true},{"attributes":{"name":"b3BlbkhBQg=="},"connectTime":1632288824770,"deviceName":"b3BlbkhBQg==","id":"3aef24e6-5e1f-4ba6-ace5-34a01b5c862b","isHost":false}],"id":"3aef24e6-5e1f-4ba6-ace5-34a01b5c862b"},"event":"ms.channel.connect"}
samsungtv.log:2021-09-22 01:33:45.135 [DEBUG] [ungtv.internal.protocol.WebSocketArt] - Art channel connected
samsungtv.log:2021-09-22 01:33:45.135 [TRACE] [ngtv.internal.protocol.WebSocketBase] - WebSocketArt: onWebSocketText: {"data":null,"event":"ms.channel.ready"}
samsungtv.log:2021-09-22 01:33:45.135 [DEBUG] [ungtv.internal.protocol.WebSocketArt] - Art channel ready
samsungtv.log:2021-09-22 01:33:45.136 [TRACE] [ngtv.internal.protocol.WebSocketBase] - WebSocketArt: sendCommand: {"method":"ms.channel.emit","params":{"event":"art_app_request","to":"host","data":"{\"request\":\"get_artmode_status\",\"id\":\"d824284d-7a32-4648-ab83-7ed524f95da3\"}"}}
samsungtv.log:2021-09-22 01:33:45.168 [TRACE] [ngtv.internal.protocol.WebSocketBase] - WebSocketArt: onWebSocketText: {"data":"{\n \"id\": \"d824284d-7a32-4648-ab83-7ed524f95da3\",\n \"event\": \"artmode_status\",\n \"value\": \"on\",\n \"target_client_id\": \"3aef24e6-5e1f-4ba6-ace5-34a01b5c862b\"\n}","event":"d2d_service_message","from":"b69042-807-427f-b033-c36b1277f4c"}
samsungtv.log:2021-09-22 01:33:45.168 [DEBUG] [ungtv.internal.protocol.WebSocketArt] - artmode_status: on
samsungtv.log:2021-09-22 01:33:45.169 [DEBUG] [tv.internal.handler.SamsungTvHandler] - Received value 'artMode':'ON' for thing 'samsungtv:tv:family_room'
samsungtv.log:2021-09-22 01:33:45.169 [DEBUG] [tv.internal.handler.SamsungTvHandler] - Received value 'power':'OFF' for thing 'samsungtv:tv:family_room'
So now, it you try to put the TV back into standby by sending ArtMode OFF, you actually wake up the TV, and the power keys no longer work:
samsungtv.log:2021-09-22 01:33:56.195 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: artMode, command: OFF
samsungtv.log:2021-09-22 01:33:56.195 [DEBUG] [l.protocol.RemoteControllerWebSocket] - Try to send command: KEY_POWER
samsungtv.log:2021-09-22 01:33:56.196 [TRACE] [ngtv.internal.protocol.WebSocketBase] - WebSocketRemote: sendCommand: {"method":"ms.remote.control","params":{"Cmd":"Press","DataOfCmd":"KEY_POWER","Option":"false","TypeOfRemote":"SendRemoteKey"}}
samsungtv.log:2021-09-22 01:33:56.760 [DEBUG] [rnal.service.RemoteControllerService] - getSupportedChannelNames: [keyCode, volume, mute, power, channel, url, sourceApp, artMode]
samsungtv.log:2021-09-22 01:33:56.761 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: keyCode, command: REFRESH
samsungtv.log:2021-09-22 01:33:56.761 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:33:56.761 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:33:56.761 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: power, command: REFRESH
samsungtv.log:2021-09-22 01:33:56.761 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: url, command: REFRESH
samsungtv.log:2021-09-22 01:33:56.762 [DEBUG] [rnal.service.RemoteControllerService] - Received channel: artMode, command: REFRESH
samsungtv.log:2021-09-22 01:33:56.762 [DEBUG] [nternal.service.MediaRendererService] - Received channel: volume, command: REFRESH
samsungtv.log:2021-09-22 01:33:56.766 [TRACE] [nternal.service.MediaRendererService] - Value '20' for CurrentVolume hasn't changed, ignoring update
samsungtv.log:2021-09-22 01:33:56.766 [DEBUG] [nternal.service.MediaRendererService] - Received channel: mute, command: REFRESH
samsungtv.log:2021-09-22 01:33:56.770 [TRACE] [nternal.service.MediaRendererService] - Value 'true' for CurrentMute hasn't changed, ignoring update
samsungtv.log:2021-09-22 01:33:57.229 [TRACE] [ngtv.internal.protocol.WebSocketBase] - WebSocketArt: onWebSocketText: {"data":"{\n \"event\": \"wakeup\"\n}","event":"d2d_service_message","from":"b69042-807-427f-b033-c36b1277f4c"}
samsungtv.log:2021-09-22 01:33:57.230 [DEBUG] [ungtv.internal.protocol.WebSocketArt] - wakeup
samsungtv.log:2021-09-22 01:33:57.230 [TRACE] [ngtv.internal.protocol.WebSocketBase] - WebSocketArt: sendCommand: {"method":"ms.channel.emit","params":{"event":"art_app_request","to":"host","data":"{\"request\":\"get_artmode_status\",\"id\":\"d824284d-7a32-4648-ab83-7ed524f95da3\"}"}}
samsungtv.log:2021-09-22 01:33:57.267 [TRACE] [ngtv.internal.protocol.WebSocketBase] - WebSocketArt: onWebSocketText: {"data":"{\n \"id\": \"d824284d-7a32-4648-ab83-7ed524f95da3\",\n \"event\": \"artmode_status\",\n \"value\": \"on\",\n \"target_client_id\": \"3aef24e6-5e1f-4ba6-ace5-34a01b5c862b\"\n}","event":"d2d_service_message","from":"b69042-807-427f-b033-c36b1277f4c"}
samsungtv.log:2021-09-22 01:33:57.267 [DEBUG] [ungtv.internal.protocol.WebSocketArt] - artmode_status: on
samsungtv.log:2021-09-22 01:33:57.268 [DEBUG] [tv.internal.handler.SamsungTvHandler] - Received value 'artMode':'ON' for thing 'samsungtv:tv:family_room'
samsungtv.log:2021-09-22 01:33:57.268 [DEBUG] [tv.internal.handler.SamsungTvHandler] - Received value 'power':'OFF' for thing 'samsungtv:tv:family_room'