tavicu / homebridge-samsung-tizen

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

Update and discussion regarding next version of the plugin (6.0) #696

Open tavicu opened 1 day ago

tavicu commented 1 day ago

Hello,

Those who follow the plugin probably already know that I am working on a new version where all the code is rewritten from scratch.

Because we have never discussed this matter and always vaguely specify in the comments about this migration, I decided to make a new post.

Why this migration?

In recent years, many packages used by the plugin have switched to a new structure (ESM), which no longer allowed those who used the old structure to update. Thus, the plugin ended up having old packages where both security and performance problems can appear.

At the same time, the plugin started from something trivial (power on/off) and ended up having so many features that were implemented how it was possible at the time. Now having a defined list of features, things can be cleaned and structured much better.

I also discovered improvements that can be done but that cannot be implemented with the current logic.

What's new in this version?

I won't go into detail about everything that will change, but only what is most important. There will be a much more detailed list when the first beta tag is released.

In short, there will be massive improvements in performance and reliability. This will lead to a better synchronization between TV and what's in Home app and also the main accessory and the inputs/custom switches.

The most important thing is that I discovered a new method to check the state of the TV. A method that brings the update as soon as the state of the TV changes and that works perfectly, without any false results when the TV is in a standby state.

I also discovered a way to control the volume of the TV. Something that allows us to take the volume level and also set an exact volume (all local, without the need for smartthings). In addition to the current functionality, I will also add the possibility of having a brightness slider that will control the volume of the TV.

I also plan to improve the configuration interface of a TV from the administration interface.

Other things:

In the future, the main focus will be for the plugin to work 100% locally and without the need for external APIs for the basic functionalities.

Because the focus is to have a version as soon as possible, more than likely in the first version I will not be able to integrate the functionality with Frame TVs. So in the first phase, a version without support for Frames will be released, and from that point I will buy Frame TV and implement the api.

Further:

I have been working on this version for some time, but unfortunately my time was very limited and morale was also quite low.

Initially, I had proposed that at the end of September to have a beta version, but for personal reasons I will miss this deadline. I hope not by much, but I can't make any promises, this period being very busy for me at work.

This week I will modify the current plugin to be compatible with Homebridge 2.

If you have any questions, please write and I will try to answer them all :)

Thank you for your attention and understanding, I wish you an easy week.

MarkBarbieri commented 23 hours ago

Thanks for keeping this going. Happy to help with testing!