-
-
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
[argoclima] Initial contribution #15481
base: main
Are you sure you want to change the base?
[argoclima] Initial contribution #15481
Conversation
a7a9dc8
to
ed0a70f
Compare
b6f8a15
to
e22b162
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First pass, only looked at the readme and metadata, will try to look at the other files when i have some more time.
Most looks good, mainly some textual comments and some questions.
bundles/org.openhab.binding.argoclima/src/main/resources/OH-INF/thing/thing-types.xml
Outdated
Show resolved
Hide resolved
bundles/org.openhab.binding.argoclima/src/main/resources/OH-INF/thing/thing-types.xml
Outdated
Show resolved
Hide resolved
e22b162
to
7cc19e8
Compare
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Allmost half way, my time is up for now, didn't want to hold it back.
Impressed about the extensive documentation. It is a bit overwhelming, but it helps.
bundles/org.openhab.binding.argoclima/scripts/download_ota_fw_files.py
Outdated
Show resolved
Hide resolved
...clima/src/main/java/org/openhab/binding/argoclima/internal/ArgoClimaTranslationProvider.java
Outdated
Show resolved
Hide resolved
...clima/src/main/java/org/openhab/binding/argoclima/internal/ArgoClimaTranslationProvider.java
Show resolved
Hide resolved
...n/java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationLocal.java
Outdated
Show resolved
Hide resolved
...n/java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationLocal.java
Outdated
Show resolved
Hide resolved
...n/java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationLocal.java
Show resolved
Hide resolved
.../java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationRemote.java
Outdated
Show resolved
Hide resolved
...in/java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationBase.java
Outdated
Show resolved
Hide resolved
...in/java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationBase.java
Outdated
Show resolved
Hide resolved
...ava/org/openhab/binding/argoclima/internal/configuration/IScheduleConfigurationProvider.java
Show resolved
Hide resolved
This comment was marked as resolved.
This comment was marked as resolved.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Finished the last part. Did leave some comments, but overall this seems a very solid (but complex) contribution.
Consider my review as an extra set of eyes to speed up the merge proces. I'm no maintainer, so there might be more feedback, or corrections to mine (don;t hope so).
...in/java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationBase.java
Outdated
Show resolved
Hide resolved
...in/java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationBase.java
Outdated
Show resolved
Hide resolved
...n/java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationLocal.java
Outdated
Show resolved
Hide resolved
...in/java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationBase.java
Outdated
Show resolved
Hide resolved
...in/java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationBase.java
Outdated
Show resolved
Hide resolved
...main/java/org/openhab/binding/argoclima/internal/device/api/protocol/elements/TimeParam.java
Outdated
Show resolved
Hide resolved
...n/java/org/openhab/binding/argoclima/internal/device/api/protocol/elements/WeekdayParam.java
Outdated
Show resolved
Hide resolved
...n/java/org/openhab/binding/argoclima/internal/device/api/protocol/elements/WeekdayParam.java
Outdated
Show resolved
Hide resolved
.../java/org/openhab/binding/argoclima/internal/device/passthrough/RemoteArgoApiServerStub.java
Outdated
Show resolved
Hide resolved
...lima/src/main/java/org/openhab/binding/argoclima/internal/handler/ArgoClimaHandlerLocal.java
Outdated
Show resolved
Hide resolved
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Give me a week max |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM Thank you for this binding.
It might take some time, but a maintainer will pick this up and review / merge this eventually.
Hey @jlaur - sorry for bothering you... Since you're had some fly-by interactions with this PR (and are a maintainer), would you happen to know what might be the typical ETA for a new binding review novadays? [joke] On that occasion, to lighten the mood... any chance to get it merged before christmas 😀 ? [ref: Duke Nukem] :) [/joke] |
My algorithm for calculating that is broken. 😄 You can have a look at recent merged PR's with label "new binding" to get an impression. Unfortunately our capacity is a bit low, but eventually someone will pick up your PR and start a review. A few things in general that can have an impact on the time for completing a review of a new binding:
Personally I probably won't be able to pick it up for the time being since I'm involved in some other ongoing rather large PR's, and I prefer to not have too many open at the same time because I then risk becoming the bottleneck and momentum is lost. |
Thanks for such a thorough reply! Much more info than I had hoped for, appreciate it! Since And as for:
Yeah, I know. But also... java 😉 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the contribution!
This is not a full review, just a few comments.
In addition to my comments, the following things need improvement:
- javadoc is currently broken, at least the errors need to be fixed (
mvn javadoc:javadoc|grep error:
) - mainly & and < to be escaped.....
SAT is fine, warnings are fine, i18n seems ok
....argoclima/src/main/java/org/openhab/binding/argoclima/internal/ArgoClimaConfigProvider.java
Outdated
Show resolved
Hide resolved
....argoclima/src/main/java/org/openhab/binding/argoclima/internal/ArgoClimaConfigProvider.java
Outdated
Show resolved
Hide resolved
...n/java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationLocal.java
Outdated
Show resolved
Hide resolved
...n/java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationLocal.java
Outdated
Show resolved
Hide resolved
...ava/org/openhab/binding/argoclima/internal/configuration/IScheduleConfigurationProvider.java
Outdated
Show resolved
Hide resolved
...main/java/org/openhab/binding/argoclima/internal/device/api/protocol/elements/TimeParam.java
Outdated
Show resolved
Hide resolved
@holgerfriedrich Thanks fot the review. Fixed the javadocs errors (sorry for the miss!). Do you need me to address all javadoc warnings as well? BTW. I had to extend |
No, warnings are ok. I have not checked, but most of the warnings should be undocumented elements. This is expected.
If I got it correctly, you branched quite a wile ago. Those tags are now defined in pom.xml on top level (since ~2 months). Before, we had it on binding level. |
8541027
to
d56a032
Compare
Yup, that did it. I did a quick check and saw it on GH main, but it didn't occur to me it might not bee there for ages, so didn't check on my local copy... Thx for the pointer! |
23700ae
to
5f02573
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remark: I did not carefully review this PR and cannot judge technical details
My comments have been addressed.
Warnings, SAT, javadoc, i18n -> 👍 from my side
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think these are my last comments before a merge. I must say this is quite a complex binding, but it looks very solid.
Personally i prefer not to use Optionals and type inference (var), but there is no rule that forbids them.
47824fb
to
04c7f01
Compare
FYI - squashed all the review comments as this PR is around for >6 months already and the growing list of miscellanea (like CP header, snapshot vsn update etc.) started to become difficult for me to manage between branches/rebases etc. @lsiepel - Unless I missed sth, all your feedback above should be adressed already (thanks again for reviewing!), except one comment on the markdown table formatting. Please take a look and let me know. Thanks! |
@lsiepel - a friendly reminder that the changes are ready for re-review 😉 |
Ping (+1 month with no activity) |
Yes, have this on my todo list for the upcoming days. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Started another review pass. Struggling with this binding a bit. It is very creative and i love all the tinkering you have done to make it work. It is also complex in many ways. To be honest, i don't expect a large userbase and i'm concerned that this code is hard to maintain.
For instance, the configuration classes not only hold the configuration, but it also has logic, network related calls, dependency on i18n provider etc. We will need some passes to try to get this sorted.
.../java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationRemote.java
Outdated
Show resolved
Hide resolved
.../java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationRemote.java
Show resolved
Hide resolved
...n/java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationLocal.java
Outdated
Show resolved
Hide resolved
...n/java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationLocal.java
Show resolved
Hide resolved
...n/java/org/openhab/binding/argoclima/internal/configuration/ArgoClimaConfigurationLocal.java
Show resolved
Hide resolved
Apologies for a slight delay and thank you once more @lsiepel for the time spent reviewing! Appreciate it. This time around I am not going to wait before applying the feedback till one of the maintainers can weigh in. @addon-maintainers: If at all possible, could you indicate if you find this merge'able at all (at a concept level), and (if yes) provide a full (even high-level) list of changes required? Otherwise, doing it part-by-part and granting/rescinding approvals is only slow-cooking the frog. I'd much more appreciate a "we won't approve it ever" than death by 1000 cuts and doing montlhly "stylistic" edits. Hope you understand. @lsiepel , See, I'm a little bit concerned with this statement:
Esp. since there's probably truth to it. This has been in review for 9 months now, and I did my best applying previous (valid&valuable!) feedback as promptly as I could. I want to stress, I do very much appreciate your time spent to look through it! Reason I am pausing on the last round of feedback is not due to me not agreeing with it (well... I do consider some of them boiling just to personal style thus controversial, but overall agree w/ their spirit), rather my hopes of applying the updates and this making a difference are currently quite low. |
Well i wouldn't do all this work either if i already know it is not going to work out and get merged. So yes, this can get to the point that it get merged, and i think we are not that far away. Since last christmass i became maintainer and can merge PR's, just to assure you that this is no random statement. Hopefully you can address the comments, i don't expect high level changes, but i might ask another maintainer to have an extra set of eyes, and maybe i can also learn from that. :-) |
@lsiepel Thanks for the feedback and a ray of hope. And congrats on becoming a maintainer. 🎉 Well deserved!
I have no concerns w/ partials as a concept and do them routinely myself, but if the cycle length is monthly (vs. daily), it makes it very taxing for a side-project (esp. one I do not have a private CI/CD and full-coverage test harness set up for). What I'm saying is a code change cost me more time as a unit than the actual coding - esp. if my dev setup changes between the cycles (and it does 😁 )
Would you agree the remaining open comments are rather small and refactor-ish? I think we're in the place where it can be reviewed as-if the remaining open comments were resolved. And the reason I ask for it is above (doing the changes you request is ~trivial, preparing for it and testing on my local setup after... is orders of magnitude more time-consuming, so I'd like to limit # of cycles). |
04c7f01
to
58d4fca
Compare
Signed-off-by: Mateusz Bronk <bronk.m+gh@gmail.com>
Contents: [argoclima] 1st round of review remarks (editorials) [argoclima] 2nd round of review remarks (config) showCleartextPasswords --> includeDeviceSidePasswordsInProperties (default: NEVER) [argoclima] i18n: Missing localization added Adds i18n for dynamic Channels and Thing statuses (incl. exceptions) [argoclima] 3rd round of review remarks [argoclima] 4th round of review remarks Renamed localDevicePort --> hvacListenPort Used instanceof pattern matching (where applicable) Demoted device communication logs to TRACE (non-review feedback) Added missing indirect command intercept in STUB mode [argoclima] Fixed typos in docs (README, diagrams) [argoclima] Post-review corrections: javadoc, etc. [argoclima] Bump version to 4.2.0-SNAPSHOT [argoclima] README.md minutiae [argoclima] Channels rename to lower-case-hyphen [argoclima] CP header update to 2024 [argoclima] Review remarks (password hashing extracted + minutiae) Signed-off-by: Mateusz Bronk <bronk.m+gh@gmail.com>
58d4fca
to
f31fdad
Compare
Signed-off-by: Mateusz Bronk <bronk.m+gh@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, LGTM.
I prefer another @openhab/add-ons-maintainers to have a second look. Not necessarily all files, the readme and the ThingHandlers will probably be enough to get a good understanding and provide some feedback.
This PR adds a new binding for ArgoClima HVAC devices.
Please refer to the included
README.md
for details of this binding's objectives.Exemplary supported device:
Highlights (for reviewers)
README.md
RemoteArgoApiServerStub.java
|PassthroughHttpClient.java
Testing / development status
For what it's worth, I've been using this binding myself for a while now, and haven't noticed any anomalies, so as far as I subjectively perceive it, I consider it quite stable and fairly complete. No extensive multi-user large-scale testing has been performed though!
Outside of addressing any feedback stemming from review, I'm not currently planning any major functionality extensions. A.k.a. a
1.0 RC1
:)Thank you in advance for all your feedback and guidance!