-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[insteon] Integrate new binding features #17096
Conversation
Signed-off-by: Leo Siepel <[email protected]>
Thanks for working on this. However, I had already started to work on the merge on my end. There are already issues that I spotted and I think the binding needs to better maintainable with minimal redundancy. A lot of the legacy functions should be able to use the updated core functions. |
You can create a PR to this branch or suggest changes in the comments (abstract) or by a review (details). |
I will probably layer my changes on top of yours so you can see the difference. Anyway like I said before, I do appreciate your initial effort but there are functional issues with what you are proposing. It might compile but it won't work. For example, the legacy device type won't load because it doesn't have the expected XML resources or no IOStream will be started for the network bridge. |
It would be helpfull if you point me to the missing XML-resource. No resource has been removed. The same for the |
Signed-off-by: Leo Siepel <[email protected]>
I'm busy trying to get some test coverage. Not easy with this serialport. Nevermind, it is because |
@lsiepel I am referring to Anyway, I do appreciate your effort and framing how the merge should happen but I am also working on my side to complete this. I would ask if you can hold off making additional changes until I provide my changes and we can work from there. |
Signed-off-by: Leo Siepel <[email protected]>
The mentioned resource files are not changed by this PR, so the legacy devices should still work. Only changes that i make are test related. I won;t have much time the next few days, so i'l leave it for some time now. Can you outline the changes you are making? Just to know what to expect and see how that aligns to this PR. |
Correct but the "V2" changes won't work. These files are basically defining the majority of the integration. Two separate resource pipelines are needed with their own loaders and handlers. This is not an easy task as you can see. |
On my phone so can’t check, but if the v2 has similar files they can be added with different names?! I’ll look into this. It doesn’t sound as a difficult task. |
Don't worry about it. I have already done some work on this. I am basically moving all the current implementation source code into a legacy folder with the exception of the handlers and some of other OH framework classes. The bigger issue is the console support. I may have to add a |
@lsiepel How would you resolve the |
Unofrtunately, I don't see any other option then to rename the new variant as we must maintain backwards compatbility. Integrating both devices into one handler / thing type is difficult, might not even possible and would break the promise to @robnielsen that the current code should not be affected / introduce new bugs as the code is very stable. |
Signed-off-by: Leo Siepel <[email protected]>
…ddons into insteon-hybrid
@lsiepel I submitted PR #17146 structuring the commits to show the changes that were made to the original code. Some adaptation was done to connect the legacy code to the refactored The backward compatibility is achieved by migrating existing The documentation is also up to date including some collapsible sections with the legacy information. All these changes were tested on an Insteon hub successfully. As far as conflicts, here is what I have done:
|
This is an attempt to integrate the features developed by @jsetton in #16761 into the existing insteon binding maintained by @robnielsen.
The goal of this PR is to add the new features to the binding with full backwards compatibility. Users should not need to adapt their configuration. They should be able to choose to migrate and use these new features whenever they want to. A list of features is available here: #16761 (comment)
Basically, i moved all the new classes and other files into the existing binding. For most collisions i tried to:
V2
to the new object.legacy
to the existing objectThing
remained to have their existing (dedicated) handler, so the functionality and logic of the Thing (once instanciated) should not have changed.At the time of writing there are multiple areas to work on:
Thing
's work as before.V2
added to them so they are unique.Util
classes.A 4.3.0-SNAPSHOT test version is here: https://1drv.ms/u/s!AnMcxmvEeupwjvpEhMjkvONJ47bpPA?e=K76OGm (should be compatible with 4.2.x
Supersedes: #16761