tavicu / homebridge-samsung-tizen

Homebridge plugin for Samsung TV's with Tizen OS
MIT License
639 stars 86 forks source link

Art Mode toggle errors with new Frame #519

Closed d2nyc closed 2 years ago

d2nyc commented 2 years ago

Using a 2022 Samsung Frame, the plugin works properly to send power on and power off, but runs into issues when trying to use the "Art Mode" toggle.

For the Advanced Configuration options in the config UI, I left Type set to "None" and it appears to be correctly identifying as a Frame (have a distinct art mode toggle as an accessory). I increased the Command Delay Interval to 1500. Initial connection appears correct in logs:

[4/22/2022, 2:03:45 PM] Samsung Frame TV 4B71 is running on port 53044.
[4/22/2022, 2:03:45 PM] Please add [Samsung Frame TV 4B71] manually in Home app. Setup Code: 272-45-117
[4/22/2022, 2:03:45 PM] [Samsung Frame TV] [DEBUG] {
  data: { clients: [ [Object] ], id: 'af283b74-a79e-544e-94d7-5b1613ty6ee5' },
  event: 'ms.channel.connect'

If the TV is on (either in Art Mode or displaying an HDMI input) the power accessory will correctly turn on/off the display and restores the previous state (Art Mode or HDMI input).

But if the TV is on and set to HDMI, using the Art Mode toggle does not properly switch. Related, if the TV was turned off when last set to HDMI input, there is no way to power on to Art mode.

Logs sent when trying to setting the art mode toggle on when the TV is powered on to HDMI input:

[4/22/2022, 2:07:46 PM] [Samsung Frame TV] [DEBUG] { value: 'on', request: 'set_artmode_status' }
[4/22/2022, 2:07:46 PM] [Samsung Frame TV] [DEBUG] {
  data: {
    attributes: { name: 'U2Ftc3VuZyBGcmFtZSBUVg==' },
    connectTime: 1650650856664,
    deviceName: 'U2Ftc3VuZyBGcmFtZSBUVg==',
    id: '7b67e82-89c2-46d5-beb4-5498cc4212aa',
    isHost: false
  },
  event: 'ms.channel.clientDisconnect'
}

}
[4/22/2022, 2:07:52 PM] [Samsung Frame TV] [DEBUG] { request: 'get_artmode_status' }
[4/22/2022, 2:07:54 PM] [Samsung Frame TV] [DEBUG] {
  data: {
    attributes: { name: 'U2Ftc3VuZyBGcmFtZSBUVg==' },
    connectTime: 1650650867536,
    deviceName: 'U2Ftc3VuZyBGcmFtZSBUVg==',
    id: 'ab878499-e455-5a3-8f5c-1f2a21ab687',
    isHost: false
  },
  event: 'ms.channel.clientConnect'
}
[4/22/2022, 2:07:57 PM] [Samsung Frame TV] [DEBUG] {
  data: {
    attributes: { name: 'U2Ftc3VuZyBGcmFtZSBUVg==' },
    connectTime: 1650650867536,
    deviceName: 'U2Ftc3VuZyBGcmFtZSBUVg==',
    id: 'ab878499-e455-5a3-8f5c-1f2a21ab687',
    isHost: false
  },
  event: 'ms.channel.clientDisconnect'
}

With homebridge debug on, the logs continuously cycle between 'ms.channel.clientConnect' and 'ms.channel.clientDisconnect' like above.

When trying to configure earlier, I was getting Failed to open art socket similar to #443. But no longer see this.

Hoping to help troubleshoot further, can put TV in developer mode.

Thanks, excited to get this working since this seems like the only path to some type of programmatic control over art mode.

tavicu commented 2 years ago

Hi @d2nyc, As you already seen it appears that the socket is getting disconnected. Setting a delay will not help regarding the art mode. That is a setting for the regular API. The API for Frame should stay connected all the time if the TV is ON or in Art Mode.

Could you try to hard reset the TV? You can do this by holding the power key from your physical remote until the Samsung Logo appears.

I hope Samsung didn't changed anything with an update :D

d2nyc commented 2 years ago

No change after restarting the TV.

Thanks for the clarification on which APIs the delay applies to.

tavicu commented 2 years ago

Please do the following.

Having Homebridge in debug mode. Turn on the TV Restart the Homebridge server Watch the logs. You should see something regarding the connection to Art Websocket. Then from your remote if you could switch between art mode / anything and see if you get something in the logs. You should get a debug message every time the mode changes.

I just want to tell you that I'm fishing here because I don't really know what the problem is in your particular case and I also don't have a frame tv so I can also check. So I will probably ask you do to stupid things that doesn't make sense but that's the only way I could understand what is happening :)

d2nyc commented 2 years ago

Logs after restarting Homebridge server:

[4/22/2022, 3:53:09 pm] [SmartThings-v2] INFO: Fetching SmartThings-v2 Devices. 

[4/22/2022, 3:53:09 PM] [SamsungTizen] Initializing SamsungTizen platform...

[4/22/2022, 3:53:09 PM] [Samsung Frame TV] [DEBUG] { frametv: true, tokenauth: true, powerstate: true, token: '15141954' }
[4/22/2022, 3:53:09 PM] [Samsung Frame TV] [DEBUG] { request: 'get_artmode_status' }
[4/22/2022, 3:53:09 PM] Publishing external accessory (name: Samsung Frame TV, publishInfo: {
  username: 'DC:ED:69:xx:xx:xx’,
  pincode: '***-**-***',
  category: 31,
  port: undefined,
  bind: [ 'en0', [length]: 1 ],
  mdns: { interface: '192.168.1.xxx’ },
  addIdentifyingMaterial: true,
  advertiser: undefined
}).

[4/22/2022, 3:53:09 PM] Samsung Frame TV 4B71 is running on port 61192.
[4/22/2022, 3:53:09 PM] Please add [Samsung Frame TV 4B71] manually in Home app. Setup Code: 272-45-117
[4/22/2022, 3:53:10 PM] [Samsung Frame TV] [DEBUG] {
  data: { clients: [ [Object] ], id: '64c69d8-f76a-4bc3-a581-bf2116xxxxx’ },
  event: 'ms.channel.connect'
}

Appreciate the quick help, donated and sponsoring.

tavicu commented 2 years ago

Did you tried to change the art mode status with the physical remote? Because I don't see anything in the logs.

If I make a script for you, are you comfortable running it? It will just be with connection to Art Websocket and logs to see exactly what is happening when sending different commands. This way we will be able to see exactly what we want without other Debug logs which can mislead us.

Also, I will be able to do it tomorrow (it's pretty late where I live).

Thank you for the support! I really appreciate it.

d2nyc commented 2 years ago

Logs are the same (cycling between ms.channel.clientDisconnect and ms.channel.clientConnect) when the TV is in Art Mode through physical remote or on an HDMI input.

Would be happy to try a script whenever it is convenient to put together

tavicu commented 2 years ago

Hi @d2nyc,

Let's start with a simple script that checks all sockets and get some informations. It will be best to run this from the same machine you have Homebridge server on.

If everything works ok please copy everything from there and paste it here or anywhere you want :)

If you don't understand something from my indications or something it's not working please tell me and I will try to explain it better.

d2nyc commented 2 years ago

Got the permission prompt and volume command seems to have worked, but then see errors in the logs

https://gist.github.com/d2nyc/5bbe4f4972f75bbb8279d6b0bdbbd6e6

tavicu commented 2 years ago

Hei.

I have copied the content of the log. You can remove it (since it contains uuid and other stuff).

It appears everything it's working until a command is send to the art socker. First it connected and everything was fine

testArtWs - message {
  data: {
    clients: [ [Object], [Object] ],
    id: 'ad385061-c0a3-4d51-8c40-429fd679ee0'
  },
  event: 'ms.channel.connect'
} 

But once the command to get the Art Mode status was sent, the socket sends a clientDisconnect message instead of responding with the status of art mode:

testArtWs - send getStatus
testArtWs - message {
  data: {
    attributes: { name: 'U2Ftc3VuZyBGcmFtZSBUVg==' },
    connectTime: 1650917232464,
    deviceName: 'U2Ftc3VuZyBGcmFtZSBUVg==',
    id: '19de70a4-a7e-41fd-88a7-eb1ba2f06d72',
    isHost: false
  },
  event: 'ms.channel.clientDisconnect'
} 

The testArtWs - send getStatus - error undefined is just a debug log telling there is no error (undefined). So those are not errors :)


At this point I'm sure the problem is from TV. And since nobody else complained I also think Samsung didn't changed anything (pretty please Samsung) to the endpoint. If they changed something it should have report something else, like unauthorized or somethig. But not clientDisconnect.

Also I don't think there is a problem with the pc/server because the normal endpoint works and It's sending the Volume UP command without disconnecting from the socket.

I also don't think there is a setting on the TV so you could "turn off" the endpoint.

My guess is that there is a glich on the TV. I would try to turn the TV off (also remove it from power) and let it like that for a few minutes (maybe more if you can) and after that connect everything back and run the script again. Maybe it was just a bug that fixed with a power cycle.

My next solution (and a critical one) would be to try and reset the TV. But this will not be awesome because everything will be lost and also does not guarantee that the problem will be resolved. i can't check right now since I'm not home but maybe the TV have a backup option to do it before. That would be nice.

I also tried to search on the google for anything related but not many results.

I will make another script with more debugs only related to the Frame. So first try to remove the TV from the power, do not start resetting it before we run more debugs :)

tavicu commented 2 years ago

Another indication that there is a problem with the connection is that right after the connect message it should also receive a ready message.

socket - message { data: { clients: [] }, event: 'ms.channel.connect' } 
socket - message { data: {}, event: 'ms.channel.ready' } 

I have made some changes to the debug script so we will have more logs and only related to the frame.

What you need to do:

bryankane commented 2 years ago

@tavicu I've been following this issue after also having trouble controlling art mode on my 2022 frame tv (via https://github.com/xchwarze/samsung-tv-ws-api though, not homebridge). I haven't had a chance to run your script yet, but when testing the websocket connections in Postman, I noticed that there's never a ms.channel.ready command, and the websocket behaves the same for com.samsung.art-app as it does for any other invalid channel name.

This leads me to think that samsung changed the package name for the art application (I also think they may have rebuilt it or something, since the UI for the art store looks different on 2022 tvs than older generations).

I don't think I'll have much of a chance to debug further for a while, but wanted to provide a second data point here in case it helps.

d2nyc commented 2 years ago

@tavicu thanks for the support. this is the output I got from the latest script when toggling art mode on and off in the 30 second window: https://gist.github.com/d2nyc/9b70b4fdb1e9a7a6ca4b863d7292a63b

@bryankane thanks for sharing, I've also tried the python library you linked and also ran into issues

CGDaveMac commented 2 years ago

Hi, there! I am back, if you remember I helped with the Frame issues last year. Just got a 2022 FrameTV and it was working just fine with this plugin until a few days ago. Not sure if the software updated, but now Art Mode will not toggle as the others have described.

My script output (not getting any output in third stage?) https://gist.github.com/CGDaveMac/bc9cbe7660984ed83cc6211fcbc67ff7

Also, up until today while trying to debug, I hadn't setup the Samsung API, but doing so didn't have any change.

tavicu commented 2 years ago

Hei all, thank you for contribution.

If Samsung decided to do something, it sucks. Because we are on the dark! We have no documentation to follow so we can fix this.

But I hope they only removed the non secure socket just like last time.

So I've made some changes again hoping we will have better results. What I did was connecting to the base socket first to get the token and after that to try to connect on the art socket (secure) with the token from the base socket.

What you need to do:


@CGDaveMac OFC i remember :)

CGDaveMac commented 2 years ago

I don't think my TV is providing any responses to the physical remote for your script: https://gist.github.com/CGDaveMac/38eb3c52a7e0171effd0446237040133

As a side note, the only thing that changed in my Homebridge configuration lately was an accidental upgrade to Node 18, which caused some problems with other plugins so I reverted back to 16.15.0

CGDaveMac commented 2 years ago

Hopefully the others in this discussion are getting better debugging / TV responses for you. I am standing by to assist to hopefully get this working again.

tavicu commented 2 years ago

Hei. I've been in a small vacation, that's why the late response.

Looking at the @CGDaveMac results, don't look to good for us. It appears Samsung decided to take away our toys.

Right now it's very hard for me to buy a Frame from 2022 since they are very expensive and not a lot in the stock in my country.

If any of you want to try something. To disconnect the internet cable from the router. So you will have the phone and TV connected to the WiFi but no internet. I'm very curious if you can control the TV/Art mode with the App. If you do, there is a small chance there is still a local API and no need to use SmartThings API. But I doubt that.

CGDaveMac commented 2 years ago

Do you mean with the Smartthings app? It does need a network connection: IMG_2218

Put phone on cellular and it says the TV is offline.

Was not able to control with Homebridge/Homekit either when disconnected from the internet.

tavicu commented 2 years ago

As I expected since SmartThings is online ... nothing local on the network.

Are the new TVs compatible with HomeKit from the factory? I'm just curious because I also have an LG which supports HomeKit by the factory and it's garbage. Most of the time is not responding :)

I will try to make some research online regarding the changes but Samsung never told us what they are changing ... Maybe I will be able to find something new so we will be able to use and keep things locally and avoid SmartThings.

CGDaveMac commented 2 years ago

No HomeKit.

I was able to get more data from the TV and read about it here, but had to change the Type in SmartThings portal to Samsung OCF TV. My output looks similar to the one below.

Reading this thread, is there a chance the art mode could be controlled via a channel? https://github.com/jaruba/ha-samsungtv-tizen/issues/106

tavicu commented 2 years ago

Reading this thread, is there a chance the art mode could be controlled via a channel? jaruba/ha-samsungtv-tizen#106

Unfortunately it doesn't help. Yup, we can get from SmartThings API if the TV is in art mode or to set it. But that will require using the SmartThings api (so internet) and also polling ever X seconds to see the status. Until now there was this websocket which will be active all the time and every time the TV changed the state, it will send a message. No need for polling, everything was instand and also worked on local network.

At the moment I want to think that Samsung did not removed the WebSocket and that it only changed it. Still have to dig and it's even harder since I don't own a Frame TV (especially a 2022 one)

tavicu commented 2 years ago

Hei. Sort of good news, I have ordered a new frame to play with it. Unfortunately I will not be able to do much this month because of some personal things. But I hope I will be able to look as soon as possible :)

tavicu commented 2 years ago

Ok. After one day trying different hacks and things ... and nothing :(

It appears Samsung removed the endpoint with Tizen 6.5 since they are not using it anymore. I'm trying to get in touch with Samsung and Tizen for a confirmation at least.

How SmartThings app works:

So, at this point we are pretty fucked. Because we will not be able to control everything like we do right now. We will have to replicate how SmartThings works. The main switch to control the real power and show the input as Art Mode via SmartThings. And the switch for Art Mode will be a simple (stateless) switch that will call KEY_POWER.

Again, this sucks because it's not nice and it's a downgrade from what we have now. Also I will want to find an option to leave the current implementation for older Frame TVs because I think the percentage of people that has a 2022 model is pretty low.

CGDaveMac commented 2 years ago

That is unfortunate… any email addresses or contacts to request that Samsung add this back?

If not, or in the interim, how about storing the state of the TV as a variable in Homebridge and referencing that variable when using a Power button (like now in the switches) which then changes the input to Art Mode via SmartThings. (Or, can a power*3sec) command be sent to toggle Art mode like with the remote?

On May 11, 2022, at 11:39 AM, Octavian Ruda @.***> wrote:

Ok. After one day trying different hacks and things ... and nothing :(

It appears Samsung removed the endpoint with Tizen 6.5 since they are not using it anymore. I'm trying to get in touch with Samsung and Tizen for a confirmation at least.

How SmartThings app works:

The main pill is On/Off if the TV is On/Off If the TV is in art mode it just show it as On and with the input set to Art Mode (the Art Mode is fetched via SmartThings Api) Clicking the Power button from the main pill will turn the tv On/Off (the actual power, not the Art Mode) Then if you enter on the device control, the top button will just call KEY_POWER on the regular API. There is no option to set Art Mode with SmartThings API (at least I didn't find one until now) So, at this point we are pretty fucked. Because we will not be able to control everything like we do right now. We will have to replicate how SmartThings works. The main switch to control the real power and show the input as Art Mode via SmartThings. And the switch for Art Mode will be a simple (stateless) switch that will call KEY_POWER.

Again, this sucks because it's not nice and it's a downgrade from what we have now. Also I will want to find an option to leave the current implementation for older Frame TVs because I think the percentage of people that has a 2022 model is pretty low.

— Reply to this email directly, view it on GitHub https://github.com/tavicu/homebridge-samsung-tizen/issues/519#issuecomment-1123943174, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADCRDM25V7HDR7WAIUSFETVJPIEJANCNFSM5UDCRIKA. You are receiving this because you were mentioned.

tavicu commented 2 years ago

That is unfortunate… any email addresses or contacts to request that Samsung add this back?

Only their normal address from contact but I don't think they will care. These WebSockets were supposed to use only by them and they didn't deliver any documentation or something.

If not, or in the interim, how about storing the state of the TV as a variable in Homebridge and referencing that variable when using a Power button (like now in the switches) which then changes the input to Art Mode via SmartThings.

This will not be very good because it can fail. For example if you control the TV from your physical remote or if you restart Homebridge server and the default value will be different of the current state of TV.

But let's say will do this, It will not help very much because right now the only thing we can do with this state will be to show the input to Art Mode (which we can already do it based on SmartThings API, with a delay, but we can do it).

The real problem is that now we don't have an endpoint where we can change Art Mode. Through SmartThings we cannot set the input to Art Mode because it's not seen as an input, it's a state. The only thing SmartThings do is to report the channelName as art when the TV is in Art Mode.

I tried setting the channel to art but no luck. And how the SmartThings APP works (they call KEY_POWER) it makes me believe that right now there is no way of setting the Art Mode through SmartThings API.

(Or, can a power*3sec) command be sent to toggle Art mode like with the remote?

KEY_POWER*3seconds will turn the TV OFF, not toggle the Art Mode. KEY_POWER will toggle the Art Mode but it will be dumb (we don't know if pressing it will go from TV to Art Mode or vice versa), it could not take the state of Art Mode (if it's off or on) because it will have to rely on the response from SmartThings which is updated only when the HomeKit asks and also it has a delay.

Right now the only way I'm thinking of is to replicate what SmartThings app does. And I don't like it because not having the mode of TV in real time will disable the option to have automations based on that. So it will not be possible to make an automation when the TV is in Art Mode do X. Again, because the Art Mode state will not be in real time.

The Main Switch will show and control the real power of TV. The input to Art Mode will be set based on SmartThings API (which will not be reliable and not in real time) The toggle of Art Mode will actually be just a dumb switch that calls KEY_POWER and we will not know if it goes from art to normal or vice versa. Same thing with the input, selecting Art Mode from inputs will just call KEY_POWER, not knowing if it will actually do what you want. Meaning if the TV is in Art Mode but was not updated in HomeKit through SmartThings (delay or because the user didn't configure SmartThings API), switching to Art Mode input will call KEY_POWER which will actually take the TV off from Art Mode.

But I really hope they just changed something and not removed the WebSocket. Anyway, I will first wait for an answer from them and then we will make a decision (this month I won't be able to change the code anyway because of some personal problems which takes all my free time :D)

CGDaveMac commented 2 years ago

If not, or in the interim, how about storing the state of the TV as a variable in Homebridge and referencing that variable when using a Power button (like now in the switches) which then changes the input to Art Mode via SmartThings.

This will not be very good because it can fail. For example if you control the TV from your physical remote or if you restart Homebridge server and the default value will be different of the current state of TV.

I was thinking storing the variable would help with speed, but couldn't the TV be queried/polled every couple minutes to make this work most of the time?

(Or, can a power*3sec) command be sent to toggle Art mode like with the remote?

KEY_POWER*3seconds will turn the TV OFF, not toggle the Art Mode. KEY_POWER will toggle the Art Mode but it will be dumb (we don't know if pressing it will go from TV to Art Mode or vice versa), it could not take the state of Art Mode (if it's off or on) because it will have to rely on the response from SmartThings which is updated only when the HomeKit asks and also it has a delay.

Oops, I had that backwards. Can't test because only Power ON/OFF seems to be working (even with the Smarthings API settings filled in). For my use case, I would prefer it work 99% of the time, because right now it doesn't work at all. Usually the kids leave the TV on and I want to be able to turn it off using Siri or during scenes/automation times (bedtime, leaving the house, etc).

Right now the only way I'm thinking of is to replicate what SmartThings app does. And I don't like it because not having the mode of TV in real time will disable the option to have automations based on that. So it will not be possible to make an automation when the TV is in Art Mode do X. Again, because the Art Mode state will not be in real time.

Again, for most people I would thing even if it's delayed by a minute or two it would be OK.

But I really hope they just changed something and not removed the WebSocket. Anyway, I will first wait for an answer from them and then we will make a decision (this month I won't be able to change the code anyway because of some personal problems which takes all my free time :D)

I hope so too. My TV got another software update yesterday and was really hoping it would be added back, but it was not. Also, I downloaded the Tizen Studio and was hoping that would provide some options, but it looks like that is limited to developing apps for the TV or the SmartThings app?

tavicu commented 2 years ago

No response from Samsung or Tizen until now.

Next week I will push a version with the changes from the previous messages. Unfortunately I can't this week because of a personal problem.

I hope so too. My TV got another software update yesterday and was really hoping it would be added back, but it was not.

It looks like they removed it from Tizen 6.5, even with an update I don't think it will be added back since Samsung it's not using it anymore and the focus is to push users to use SmartThings APP. That's why I think I will never get a response to my requests to them, since they don't want you to use other app/system to control your TV. They want to lock you in the SmartThings ecosystem.

Also, I downloaded the Tizen Studio and was hoping that would provide some options, but it looks like that is limited to developing apps for the TV or the SmartThings app?

I tried that too but unfortunately I was not able to find anything helpful.

CGDaveMac commented 2 years ago

I sent a request in the developer portal yesterday. Will let you know if I get a response.

jamesalmeida commented 2 years ago

Just checked my tv and it did have auto-update turned on and is currently on version 2201. Did it already update to the most recent version?

tavicu commented 2 years ago

Just checked my tv and it did have auto-update turned on and is currently on version 2201. Did it already update to the most recent version?

It appears the problem is only on newer tvs that has tizen 6.5

AAMM007 commented 2 years ago

I'm having the same issue here with my new frame TV, I hope you will be able to find a solution 🤞

tavicu commented 2 years ago

Hi,

I spent a few days trying to find a "new" endpoint hoping Samsung didn't remove it and just change it but unfortunately at the moment I have no result. I tried installing a proxy between the TV and Phone and listen to all connections. Also tried to create a Tizen TV OS app and connect to frame service but without success.

Right now everything indicates that Samsung removed the endpoint from Tizen 6.5 Got an update these days but unfortunately they didn't add the endpoint back.

So at the moment the only option for newer TVs will be to control the real power of TV since we have no method to set the Art Mode on/off and we also don't have a local way to get the art mode status (right now it is possible only via SmartThings and it's not very reliable and also it will require internet since it's SmartThings ...)

If we get no answer from Samsung regarding the endpoint the next steps will be to detect the newer Frames from the plugin and make the adjustments to control the real power.

Until then you can already do it with the three helpers, like this:

{
    "name": "Frame TV",
    "ip": "x.x.x.x",
    "mac": "",
    "options": [
        "Frame.RealPowerMode",
        "Frame.ArtSwitch.Disable",
        "Frame.PowerSwitch.Disable"
    ]
}

I am sorry but at the moment I really don't know what else to try. And judging by the fact that Samsung push users to SmartThings App, I'm 99% sure they removed the endpoint since they are not using it anymore.

Edit: You can also create a custom switch that calls KEY_POWER and you will be able to replicate what the power button from physical remote does.

{
    "name": "Frame TV",
    "ip": "192.168.50.235",
    "mac": "D0:C2:4E:A6:4B:7D",
    "options": [
        "Frame.RealPowerMode",
        "Frame.ArtSwitch.Disable",
        "Frame.PowerSwitch.Disable"
    ],
    "switches": [
        {"name": "Power",  "command": "KEY_POWER"}
    ]    
}
CGDaveMac commented 2 years ago

I have an idea, but this will only work for those like me that use an AppleTV as the only source on their Frame.

In that case, the power state of the AppleTV will always coincide with the Art status of the Frame. So, automations can be made that watch for the power state of the AppleTV and set the Frame accordingly.

I might try this tomorrow by installing homebridge-cmd-television. Since the KEY_POWER input is basically just a toggle that turns off, if this works I would be able to just use it this way creating HomeKit Automations that toggle the Frame based on the AppleTV state.

Of course, if one uses they physical remote to change the modes, it will get out of sync, but I think the options are to just not use the power button on the remote (this works for me, since I would rather have the automation) and it seems no one in the house actually turns off the TV with the remote anyways.

If others here like this solution, I wonder if incorporating it into the functionality of this plug in would be useful, especially if there is a way to use SmartThings status to perhaps keep in better sync.

Edit: This works... there is a couple second delay till HomeKit realizes the TV is off, but I think this is a start, at least for me.

tavicu commented 2 years ago

Unfortunately this is a way you will be comfortable with but a feature should be designed for all users of the plugin. And looking at SmartThings api to check if it's art input will not be reliable because it's not instant and also SmartThings is shit (every few weeks I have to repair my devices in order to work with SmartThings ...).

If Samsung implements an api on SmartThings to set the art mode at least, I will adopt it right away. But doing hacks that most likely will not work because Samsung is dumb ... I will not do!

Right now the only possible options will be to control only real power or to "vote" with your money and don't buy their stuff, or get an older version which still have the art api available.

Until they don't decide to implement something regarding Art Mode in SmartThings API, I don't have any option to implement that works out of the box and be reliable.

CGDaveMac commented 2 years ago

Understandable. Works great for me.

Just to make sure you don’t plan to remove the ability to expose the ability to use KEY_POWER switch so that this continues to work in the future?

On Tue, Jun 7, 2022 at 6:27 AM Octavian Ruda @.***> wrote:

Unfortunately this is a way you will be comfortable with but a feature should be designed for all users of the plugin. And looking at SmartThings api to check if it's art input will not be reliable because it's not instant and also SmartThings is shit (every few weeks I have to repair my devices in order to work with SmartThings ...).

If Samsung implements an api on SmartThings to set the art mode at least, I will adopt it right away. But doing hacks that most likely will not work because Samsung is dumb ... I will not do!

Right now the only possible options will be to control only real power or to "vote" with your money and don't buy their stuff, or get an older version which still have the art api available.

Until they don't decide to implement something regarding Art Mode in SmartThings API, I don't have any option to implement that works out of the box and be reliable.

— Reply to this email directly, view it on GitHub https://github.com/tavicu/homebridge-samsung-tizen/issues/519#issuecomment-1148484627, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADCRDNZYIFR5NUKBNPXQBTVN4PX3ANCNFSM5UDCRIKA . You are receiving this because you were mentioned.Message ID: @.***>

tavicu commented 2 years ago

Just to make sure you don’t plan to remove the ability to expose the ability to use KEY_POWER switch so that this continues to work in the future?

I don't think Samsung will remove the main API that we are using because they are using it too with the SmartThings App.


I have updated the Frame page from Wiki with the conclusion for this issue. https://github.com/tavicu/homebridge-samsung-tizen/wiki/Frame-TVs Unfortunately for now newer Frames will not be detected automatically, I plan to do this in a future version. And when Samsung will decide to implement an API for Art Mode I will look and implement it asap.

I will close the issue for now since there is nothing more we could do :(

sullyhome commented 1 year ago

Before I buy a new Frame TV can I get clarification on what works? I see reference to “real power”. Is that to say I can only turn the TV on/off and can’t control art mode at all?

CGDaveMac commented 1 year ago

Before I buy a new Frame TV can I get clarification on what works? I see reference to “real power”. Is that to say I can only turn the TV on/off and can’t control art mode at all?

Yes. Art mode cannot directly be changed via HomeKit. However, my automation described above using homebridge-cmd-television works great. The only downside is that my family needs to turn the TV on and off using Siri, an iOS Shortcut or something like a HomeKit button and not the TV remote, or else things will get out of sync.

sullyhome commented 1 year ago

Before I buy a new Frame TV can I get clarification on what works? I see reference to “real power”. Is that to say I can only turn the TV on/off and can’t control art mode at all?

Yes. Art mode cannot directly be changed via HomeKit. However, my automation described above using homebridge-cmd-television works great. The only downside is that my family needs to turn the TV on and off using Siri, an iOS Shortcut or something like a HomeKit button and not the TV remote, or else things will get out of sync.

Thanks. I’ll see if I can try it with my older Frame TV for a while to see if it works ok for us. Appreciate the insight.

I do wish there were some special coding within this plugin for Apple TV. Since this is for HomeKit it seems most are pairing the Frame TV with an Apple TV. Then again you would think Apple TV would have HomeKit integration itself and it doesn’t.

jackklink commented 1 year ago

Just want to confirm here… if I am using a 2021 Frame TV, I am all good, right? Back when this plugin was first updated with the message telling us not to update our software, I immediately stopped my automatic updates, but now i’m reading here and it seems this only affects 2022 Frame TVs, right? So I can safely turn back on my updates on my 2021 Frame TV? (At least for now)

norenjr commented 5 months ago

Hey, did we ever find a work around to this? Just got a 2022 TV and very disappointed that it cannot do the one thing I bought it to do.

tavicu commented 5 months ago

Hey, did we ever find a work around to this? Just got a 2022 TV and very disappointed that it cannot do the one thing I bought it to do.

The only thing is to set the accessory to control the real power of TV. https://tavicu.github.io/homebridge-samsung-tizen/configuration/frame-tvs.html

norenjr commented 5 months ago

Correct me if i'm wrong, but it still says updating inputs (images) in art mode isn't possible, right?

norenjr commented 4 months ago

It looks like it's only possible to toggle power etc. with this method, is there any way to automate uploading images via art mode?

CGDaveMac commented 2 months ago

With firmware 1622, the art WebSocket api is back! Looks like some calls may need to be renamed. And you can check ArtMode status!

https://www.reddit.com/r/TheFrame/comments/1c2lgbs/art_mode_api_is_back/

tavicu commented 2 months ago

That's awesome. Especially that looks it's available for newer TVs too.

I will try to purchase a new frame to test it

dredgy commented 3 weeks ago

@tavicu Would be great to have this implemented. I'm doing a standalone app in F# to try and understand how it works. It will be a while I think before I get to understand Homebridge, so I might not be able to make code contributions, but I have a 2024 65" Frame and very happy to contribute in testing anything you need.