Tags: homebridge-plugins/homebridge-smarthq
Tags
Opal Monitoring Services Improvements (#26) ## ♻️ Current situation Noticed a couple of issues with the Monitoring. For one, the scheduled start of ice production can happen any time between the 0th and 59th second. Since the scheduler doesn't account for seconds, it would be a better user experience for the intervals to start _minute aligned_, rather than just whenever the server starts. I also noticed that the opal ice maker status was not being polled if the homekit controller client secret was not provided. Technically HKC provides better notifications but the ice bin full and add water statuses should not require HKC to work. Only the Filter Maintenance and Needs Descale Services are explicitly dependent on HKC, because they do not show in the homekit app, and only are notification services. ## 💡 Proposed solution Made minute aligned logic, now whenever the server restarts the polling will begin on the next minute. Also moved the status polling into a separate interval that does not require homekit controller client secret to run. ## ⚙️ Release Notes Minute aligned Monitoring. ## ➕ Additional Information I tested this line and it appears to work `if (now >= scheduledTime && now <= triggerWindowEnd) {` my only reservation is that maybe the second condition should be `now < triggerWindowEnd` but still the ice machine doesn't start again if I stop it within the triggerWindow. ### Testing BDD as always. :( ### Reviewer Nudging Should be good to go
Opal Scheduling Manager (#25) ## ♻️ Current situation The GE App offers a scheduling feature, the homebridge plugin does not. I also spelled Maintenance wrong in Filter Maintenance Notifications Path. ## 💡 Proposed solution A simple scheduler for turning on the ice machine scheduler at one junction per day. ## ⚙️ Release Notes Opal Ice Machine Scheduling Feature ## ➕ Additional Information In general, I did not _yet_ code for an end time - in some cases the user might have a ice production limit, but there is not an end time per day. Because of this I had to think carefully about how to only trigger the power turn on one time, in a given day and I came up with a buffer time that is equal to the polling interval. I also identified two important edge cases: First is when the server starts between the 1th and 30th second of any minute, with a pollingInterval of 30 seconds. If the user sets a scheduled time of 7:00:00, then the ice maker won't start because the polling will happen at least at 7:00:31 which would exceed the buffer of 30 seconds. So at first I multipled the buffer by 2 to cover all cases, but this presented the second issue which was that if the user shut off the ice machine within the first 30 seconds, then it would be liable to start again before the buffer expired. So in the end I decided to not use the refresh rate that defaults to 30 seconds, and just hardcoded a non configurable 60 seconds as the polling interval and buffer for the scheduling service. With 60 seconds the interval is guaranteed to poll once every minute and also the condition to start the ice machine will not evaluate to true twice within the range of the buffer either. ### Testing Brief BDD Testing, i'm going to set a schedule for tomorrow morning and sleep on it and see if it works. ### Reviewer Nudging look at the OpalSchedulingManager.ts file
Fast Follower- Remove Unnecessary info logs (#24) Removed two unnecessary logs ## ♻️ Current situation _Describe the current situation. Explain current problems, if there are any. Be as descriptive as possible (e.g., including examples or code snippets)._ ## 💡 Proposed solution _Describe the proposed solution and changes. How does it affect the project? How does it affect the internal structure (e.g., refactorings)?_ ## ⚙️ Release Notes Removes Unnecessary Logs ## ➕ Additional Information _If applicable, provide additional context in this section._ ### Testing _Which tests were added? Which existing tests were adapted/changed? Which situations are covered, and what edge cases are missing?_ ### Reviewer Nudging _Where should the reviewer start? what is a good entry point?_
Opal Ice Maker- Labels, Sorting, Auto Shutoff Feature, Descale Notifi… …cation (#23) ## ♻️ Current situation The issues/needs that we identified were as follows: * Services not Labeled in Homekit * Services having inconsistent ordering in Homekit * No Descale Notification * The need for the ability to auto shutoff the ice maker when there is a blocking event (Ice Bucket Full/Needs Water) ## 💡 Proposed solution Well, this PR accomplishes the above. It gives labels to the services so they are more recognizable, it makes the power service the primary service and puts it first. It adds a "Needs Descale" Notification feature, and it adds a device option to automatically turn off the ice maker when either it runs out of bucket space or water. Theres also continued efforts at code organization and legibility. ## ⚙️ Release Notes Opal Ice Maker "Needs Descale" Notification and Auto Shutoff on Blocking Events option. ## ➕ Additional Information _If applicable, provide additional context in this section._ ### Testing I've tested the auto-shutoff option and the ### Reviewer Nudging _Where should the reviewer start? what is a good entry point?_
v0.3.0 (#18) **No New Releases During Lent** ## [0.3.0](https://github.com/homebridge-plugins/homebridge-smarthq/releases/tag/v0.3.0) (2025-03-04) ### What's Changes - Opal Ice Maker Production/Progress Feature. [#17](#17), Thanks [@jamesh48](https://github.com/jamesh48) - Housekeeping and updated dependencies. **Full Changelog**: v0.2.0...v0.3.0
v0.2.0 (#15) ## [0.2.0](https://github.com/homebridge-plugins/homebridge-smarthq/releases/tag/v0.2.0) (2025-02-23) ### What's Changes - Basic Support for Opal Ice Maker 2.0. [#14](#14), Thanks [@jamesh48](https://github.com/jamesh48) - Basic Support for Ovens **Full Changelog**: v0.1.0...v0.2.0