@homebridge-plugins/homebridge-smarthq 0.5.0-beta.3 → 0.5.0-beta.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/.github/ISSUE_TEMPLATE/config.yml +1 -1
  2. package/.github/copilot-instructions.md +90 -0
  3. package/.github/scripts/branch-helper.sh +41 -0
  4. package/.github/workflows/beta-release.yml +1 -1
  5. package/.github/workflows/release.yml +53 -17
  6. package/CHANGELOG.md +563 -18
  7. package/MATTER.md +304 -0
  8. package/README.md +15 -0
  9. package/config.schema.json +14 -5
  10. package/dist/devices/OpalIceMaker/Managers/OpalDescaleSvcManager.d.ts.map +1 -1
  11. package/dist/devices/OpalIceMaker/Managers/OpalDescaleSvcManager.js +3 -1
  12. package/dist/devices/OpalIceMaker/Managers/OpalDescaleSvcManager.js.map +1 -1
  13. package/dist/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.d.ts.map +1 -1
  14. package/dist/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.js +3 -1
  15. package/dist/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.js.map +1 -1
  16. package/dist/devices/OpalIceMaker/Managers/OpalPowerSvcManager.js +1 -1
  17. package/dist/devices/OpalIceMaker/Managers/OpalPowerSvcManager.js.map +1 -1
  18. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.d.ts +1 -1
  19. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.d.ts.map +1 -1
  20. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.js +12 -5
  21. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.js.map +1 -1
  22. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.d.ts.map +1 -1
  23. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.js +4 -2
  24. package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.js.map +1 -1
  25. package/dist/devices/OpalIceMaker/OpalDeviceBase.d.ts +3 -4
  26. package/dist/devices/OpalIceMaker/OpalDeviceBase.d.ts.map +1 -1
  27. package/dist/devices/OpalIceMaker/OpalDeviceBase.js +3 -18
  28. package/dist/devices/OpalIceMaker/OpalDeviceBase.js.map +1 -1
  29. package/dist/devices/advantium.d.ts +10 -0
  30. package/dist/devices/advantium.d.ts.map +1 -0
  31. package/dist/devices/advantium.js +75 -0
  32. package/dist/devices/advantium.js.map +1 -0
  33. package/dist/devices/airConditioner.d.ts +11 -2
  34. package/dist/devices/airConditioner.d.ts.map +1 -1
  35. package/dist/devices/airConditioner.js +108 -17
  36. package/dist/devices/airConditioner.js.map +1 -1
  37. package/dist/devices/beverageCenter.d.ts +10 -0
  38. package/dist/devices/beverageCenter.d.ts.map +1 -0
  39. package/dist/devices/beverageCenter.js +125 -0
  40. package/dist/devices/beverageCenter.js.map +1 -0
  41. package/dist/devices/clothesDryer.d.ts +21 -0
  42. package/dist/devices/clothesDryer.d.ts.map +1 -0
  43. package/dist/devices/clothesDryer.js +240 -0
  44. package/dist/devices/clothesDryer.js.map +1 -0
  45. package/dist/devices/clothesWasher.d.ts +21 -0
  46. package/dist/devices/clothesWasher.d.ts.map +1 -0
  47. package/dist/devices/clothesWasher.js +251 -0
  48. package/dist/devices/clothesWasher.js.map +1 -0
  49. package/dist/devices/coffeeMaker.d.ts +10 -0
  50. package/dist/devices/coffeeMaker.d.ts.map +1 -0
  51. package/dist/devices/coffeeMaker.js +79 -0
  52. package/dist/devices/coffeeMaker.js.map +1 -0
  53. package/dist/devices/device.d.ts +107 -13
  54. package/dist/devices/device.d.ts.map +1 -1
  55. package/dist/devices/device.js +386 -60
  56. package/dist/devices/device.js.map +1 -1
  57. package/dist/devices/dishwasher.d.ts +9 -3
  58. package/dist/devices/dishwasher.d.ts.map +1 -1
  59. package/dist/devices/dishwasher.js +142 -29
  60. package/dist/devices/dishwasher.js.map +1 -1
  61. package/dist/devices/hood.d.ts +41 -0
  62. package/dist/devices/hood.d.ts.map +1 -0
  63. package/dist/devices/hood.js +332 -0
  64. package/dist/devices/hood.js.map +1 -0
  65. package/dist/devices/microwave.d.ts +19 -0
  66. package/dist/devices/microwave.d.ts.map +1 -0
  67. package/dist/devices/microwave.js +144 -0
  68. package/dist/devices/microwave.js.map +1 -0
  69. package/dist/devices/oven.d.ts +9 -2
  70. package/dist/devices/oven.d.ts.map +1 -1
  71. package/dist/devices/oven.js +245 -43
  72. package/dist/devices/oven.js.map +1 -1
  73. package/dist/devices/refrigerator.d.ts +37 -2
  74. package/dist/devices/refrigerator.d.ts.map +1 -1
  75. package/dist/devices/refrigerator.js +548 -34
  76. package/dist/devices/refrigerator.js.map +1 -1
  77. package/dist/devices/waterFilter.d.ts +10 -0
  78. package/dist/devices/waterFilter.d.ts.map +1 -0
  79. package/dist/devices/waterFilter.js +67 -0
  80. package/dist/devices/waterFilter.js.map +1 -0
  81. package/dist/devices/waterHeater.d.ts +19 -0
  82. package/dist/devices/waterHeater.d.ts.map +1 -0
  83. package/dist/devices/waterHeater.js +158 -0
  84. package/dist/devices/waterHeater.js.map +1 -0
  85. package/dist/devices/waterSoftener.d.ts +10 -0
  86. package/dist/devices/waterSoftener.d.ts.map +1 -0
  87. package/dist/devices/waterSoftener.js +67 -0
  88. package/dist/devices/waterSoftener.js.map +1 -0
  89. package/dist/getAccessToken.d.ts.map +1 -1
  90. package/dist/getAccessToken.js +6 -0
  91. package/dist/getAccessToken.js.map +1 -1
  92. package/dist/platform.d.ts +25 -1
  93. package/dist/platform.d.ts.map +1 -1
  94. package/dist/platform.js +548 -70
  95. package/dist/platform.js.map +1 -1
  96. package/dist/platform.test.d.ts +2 -0
  97. package/dist/platform.test.d.ts.map +1 -0
  98. package/dist/platform.test.js +80 -0
  99. package/dist/platform.test.js.map +1 -0
  100. package/dist/settings.d.ts +23 -0
  101. package/dist/settings.d.ts.map +1 -1
  102. package/dist/settings.js +13 -0
  103. package/dist/settings.js.map +1 -1
  104. package/docs/assets/highlight.css +7 -0
  105. package/docs/assets/main.js +5 -5
  106. package/docs/assets/navigation.js +1 -0
  107. package/docs/assets/search.js +1 -0
  108. package/docs/assets/style.css +248 -226
  109. package/docs/classes/SmartHQPlatform.html +51 -56
  110. package/docs/hierarchy.html +1 -0
  111. package/docs/index.html +22 -12
  112. package/docs/interfaces/DeviceOptions.html +2 -3
  113. package/docs/interfaces/SmartHQPlatformConfig.html +6 -17
  114. package/docs/interfaces/SmartHqContext.html +6 -4
  115. package/docs/interfaces/SmartHqERDResponse.html +7 -8
  116. package/docs/interfaces/credentials.html +3 -4
  117. package/docs/interfaces/devicesConfig.html +8 -8
  118. package/docs/interfaces/options.html +7 -8
  119. package/docs/media/copilot-instructions.md +90 -0
  120. package/docs/modules.html +1 -2
  121. package/docs/variables/API_URL.html +1 -2
  122. package/docs/variables/ERD_CODES.html +1 -2
  123. package/docs/variables/ERD_TYPES.html +1 -2
  124. package/docs/variables/KEEPALIVE_TIMEOUT.html +1 -2
  125. package/docs/variables/LOGIN_URL.html +2 -3
  126. package/docs/variables/OAUTH2_CLIENT_ID.html +1 -2
  127. package/docs/variables/OAUTH2_CLIENT_SECRET.html +1 -2
  128. package/docs/variables/OAUTH2_REDIRECT_URI.html +1 -2
  129. package/docs/variables/PLATFORM_NAME.html +2 -3
  130. package/docs/variables/PLUGIN_NAME.html +2 -3
  131. package/docs/variables/SECURE_URL.html +2 -3
  132. package/docs/variables/default.html +1 -0
  133. package/package.json +22 -33
  134. package/typedoc.json +0 -4
  135. package/vitest.config.ts +6 -5
  136. package/.github/workflows/build.yml +0 -18
  137. package/.github/workflows/changerelease.yml +0 -11
  138. package/.github/workflows/labeler.yml +0 -9
  139. package/.github/workflows/release-drafter.yml +0 -14
  140. package/docs/assets/dmt/dmt-component-data.js +0 -1
  141. package/docs/assets/dmt/dmt-components.css +0 -20
  142. package/docs/assets/dmt/dmt-components.js +0 -67
  143. package/docs/assets/dmt/dmt-search.cmp +0 -0
  144. package/docs/assets/dmt/dmt-theme.css +0 -1
  145. package/docs/functions/default.html +0 -2
package/MATTER.md ADDED
@@ -0,0 +1,304 @@
1
+ # Matter Support for homebridge-smarthq
2
+
3
+ This document describes the Matter implementation for the homebridge-smarthq plugin.
4
+
5
+ ## Architecture Overview
6
+
7
+ The plugin now supports **both HAP (HomeKit Accessory Protocol) and Matter** protocols. Each device intelligently chooses which protocol to use based on:
8
+
9
+ 1. Homebridge Matter availability (requires Homebridge 2.0.0-beta.63+)
10
+ 2. Matter enabled status in Homebridge settings
11
+ 3. Per-device configuration (`useMatter` option)
12
+
13
+ ## Key Components
14
+
15
+ ### 1. Platform Changes ([src/platform.ts](src/platform.ts))
16
+
17
+ **New Properties:**
18
+
19
+ - `matterEnabled`: Tracks if Matter is enabled in Homebridge settings
20
+ - `matterAvailable`: Tracks if Homebridge supports Matter API
21
+
22
+ **New Methods:**
23
+
24
+ - `checkMatterSupport()`: Detects Matter availability and enabled status at startup
25
+ - `shouldUseMatter(device)`: Determines if a device should use Matter or HAP
26
+ - `createSmartHQRefrigeratorMatter()`: Creates Matter version of refrigerator accessory
27
+ - `createSmartHQRefrigeratorHAP()`: Creates HAP version of refrigerator accessory (existing behavior)
28
+
29
+ **Startup Flow:**
30
+
31
+ ```
32
+ Constructor
33
+ ├─ checkMatterSupport() // Check Matter availability
34
+ ├─ discoverDevices()
35
+ └─ For each device:
36
+ ├─ shouldUseMatter(device) // Decide protocol
37
+ ├─ Create Matter accessory OR
38
+ └─ Create HAP accessory
39
+ ```
40
+
41
+ ### 2. Matter Base Class ([src/devices/deviceMatter.ts](src/devices/deviceMatter.ts))
42
+
43
+ Base class for all Matter-enabled devices providing:
44
+
45
+ **Core Features:**
46
+
47
+ - ERD (Electronic Refrigerator Descriptor) reading/writing
48
+ - Matter cluster state updates
49
+ - Device logging and configuration
50
+ - Firmware version management
51
+ - Unsupported ERD caching (prevents API spam)
52
+
53
+ **Abstract Methods:**
54
+
55
+ - `createMatterAccessory()`: Must be implemented by each device type
56
+
57
+ **Helper Methods:**
58
+
59
+ - `createBaseMatterConfig()`: Generates common Matter accessory info
60
+ - `updateMatterState()`: Updates Matter cluster attributes
61
+ - `readErd()` / `writeErd()`: SmartHQ API communication
62
+
63
+ ### 3. Matter Refrigerator Implementation ([src/devices/refrigeratorMatter.ts](src/devices/refrigeratorMatter.ts))
64
+
65
+ **Example implementation showing:**
66
+
67
+ - Matter Thermostat device type for temperature control
68
+ - Setpoint raise/lower handler
69
+ - Periodic ERD refresh
70
+ - Temperature/setpoint updates via Matter clusters
71
+ - Door status and ice bucket status parsing (ready for multi-endpoint support)
72
+
73
+ **Matter Device Type:** `Thermostat`
74
+
75
+ - `localTemperature`: Current fridge temperature (0.01°C units)
76
+ - `occupiedCoolingSetpoint`: Target temperature (0.01°C units)
77
+ - `systemMode`: Always 3 (COOL)
78
+ - `thermostatRunningMode`: 3 (cooling)
79
+
80
+ **Clusters Used:**
81
+
82
+ - `Thermostat`: Temperature control
83
+ - `TemperatureMeasurement`: Current temperature reading
84
+
85
+ ### 4. Device Configuration ([src/settings.ts](src/settings.ts))
86
+
87
+ **New Config Option:**
88
+
89
+ ```typescript
90
+ /**
91
+ * Device-level Matter override.
92
+ * If set, this device will use Matter (true) or HAP (false) regardless of global setting.
93
+ */
94
+ export interface SmartHQDeviceConfig {
95
+ // ...other options...
96
+ useMatter?: boolean
97
+ }
98
+ ```
99
+
100
+ ## Usage
101
+
102
+ ### Configuration
103
+
104
+ **Enable Matter globally (all devices use Matter when available):**
105
+
106
+ ```json
107
+ {
108
+ "platform": "SmartHQ",
109
+ "name": "SmartHQ",
110
+ "credentials": {
111
+ "username": "your-email@example.com",
112
+ "password": "your-password"
113
+ }
114
+ }
115
+ ```
116
+
117
+ **Disable Matter for specific device:**
118
+
119
+ ```json
120
+ {
121
+ "platform": "SmartHQ",
122
+ "name": "SmartHQ",
123
+ "devices": [
124
+ {
125
+ "useMatter": false // This device will use HAP instead
126
+ }
127
+ ]
128
+ }
129
+ ```
130
+
131
+ ### Requirements
132
+
133
+ - Homebridge 2.0.0-beta.63 or later
134
+ - Matter enabled in Homebridge settings:
135
+ - Main bridge: Enable Matter in Homebridge UI settings
136
+ - Child bridge: Enable Matter in plugin bridge settings
137
+
138
+ ## Device Support Matrix
139
+
140
+ | Device Type | HAP Support | Matter Support | Matter Device Type | Notes |
141
+ | --------------- | ----------- | -------------- | ------------------ | ----------------------------------------------------------------- |
142
+ | Refrigerator | ✅ Full | ✅ Partial | Thermostat | Temperature control implemented, doors/ice pending multi-endpoint |
143
+ | Clothes Washer | ✅ Full | ⏳ Planned | Custom/Outlet | Needs implementation |
144
+ | Clothes Dryer | ✅ Full | ⏳ Planned | Custom/Outlet | Needs implementation |
145
+ | Dishwasher | ✅ Full | ⏳ Planned | Custom/Outlet | Needs implementation |
146
+ | Oven | ✅ Full | ⏳ Planned | Thermostat | Needs implementation |
147
+ | Ice Maker | ✅ Full | ⏳ Planned | Custom | Needs implementation |
148
+ | Air Conditioner | ✅ Full | ⏳ Planned | Thermostat/Fan | Needs implementation |
149
+ | Hood | ✅ Full | ⏳ Planned | Fan | Needs implementation |
150
+ | Water Filter | ✅ Full | ⏳ Planned | FilterMaintenance | Needs implementation |
151
+ | Water Softener | ✅ Full | ⏳ Planned | FilterMaintenance | Needs implementation |
152
+ | Water Heater | ✅ Full | ⏳ Planned | Thermostat | Needs implementation |
153
+
154
+ ## Implementation Status
155
+
156
+ ### ✅ Completed
157
+
158
+ 1. Matter availability detection
159
+ 2. HAP/Matter decision logic
160
+ 3. Matter base class with ERD support
161
+ 4. Refrigerator Matter implementation (temperature control)
162
+ 5. Type declarations for Matter API
163
+
164
+ ### ⏳ In Progress
165
+
166
+ - Multi-endpoint support for refrigerator doors and ice buckets
167
+ - Matter implementations for remaining device types
168
+
169
+ ### 📋 To Do
170
+
171
+ 1. Complete refrigerator multi-endpoint support
172
+ 2. Implement Matter versions of:
173
+ - Clothes Washer
174
+ - Clothes Dryer
175
+ - Dishwasher
176
+ - Oven
177
+ - Ice Maker
178
+ - Air Conditioner
179
+ - Hood
180
+ - Water Filter/Softener/Heater
181
+ 3. Add Matter accessory caching and restoration
182
+ 4. Add comprehensive error handling
183
+ 5. Testing across Matter controllers (Apple Home, Google Home, Amazon Alexa)
184
+
185
+ ## Implementation Notes
186
+
187
+ ### Type Errors
188
+
189
+ The current implementation has TypeScript errors because the Matter API types are not yet available in the `homebridge` package types. A type declaration file (`matter.d.ts`) has been created to provide these types, but TypeScript module augmentation requires additional configuration.
190
+
191
+ **Resolution Options:**
192
+
193
+ 1. Wait for official Homebridge 2.0 types with Matter support
194
+ 2. Install `@types/homebridge` beta version when available
195
+ 3. Add custom type declarations to `tsconfig.json` paths
196
+
197
+ ### ERD Caching
198
+
199
+ Both HAP and Matter implementations share the ERD caching system that remembers unsupported ERDs to prevent API spam (400 errors).
200
+
201
+ ### Fallback Behavior
202
+
203
+ If Matter registration fails, the plugin automatically falls back to HAP:
204
+
205
+ ```typescript
206
+ try {
207
+ await this.createMatterAccessory()
208
+ } catch (error) {
209
+ this.log.warn('Matter failed, falling back to HAP')
210
+ await this.createHAPAccessory()
211
+ }
212
+ ```
213
+
214
+ ## Development Guidelines
215
+
216
+ ### Adding Matter Support to New Device
217
+
218
+ 1. Create `deviceNameMatter.ts` extending `deviceBaseMatter`
219
+ 2. Implement `createMatterAccessory()` method
220
+ 3. Choose appropriate Matter device type
221
+ 4. Map ERDs to Matter clusters
222
+ 5. Implement cluster handlers
223
+ 6. Add periodic refresh logic
224
+ 7. Update platform.ts with device creation methods:
225
+ - `createSmartHQDeviceName()`
226
+ - `createSmartHQDeviceNameHAP()`
227
+ - `createSmartHQDeviceNameMatter()`
228
+
229
+ ### Matter Device Type Selection
230
+
231
+ | SmartHQ Device | Recommended Matter Type | Clusters |
232
+ | --------------- | ----------------------- | ---------------------------------- |
233
+ | Refrigerator | Thermostat | Thermostat, TemperatureMeasurement |
234
+ | Oven | Thermostat | Thermostat, TemperatureMeasurement |
235
+ | Washer/Dryer | OnOffOutlet + Custom | OnOff, OperationalState |
236
+ | Dishwasher | OnOffOutlet + Custom | OnOff, OperationalState |
237
+ | Air Conditioner | Thermostat + Fan | Thermostat, FanControl |
238
+ | Hood | Fan | FanControl, OnOff |
239
+ | Water Heater | Thermostat | Thermostat |
240
+
241
+ ## Testing
242
+
243
+ ### Verify Matter Support
244
+
245
+ Check Homebridge logs for:
246
+
247
+ ```
248
+ [SmartHQ] Matter support: ENABLED - Devices will register as Matter accessories
249
+ [SmartHQ] [Matter] Creating refrigerator: My Fridge
250
+ [SmartHQ] [Matter] ✓ Registered refrigerator: My Fridge
251
+ ```
252
+
253
+ ### Test Temperature Control
254
+
255
+ 1. Open Matter-compatible app (Apple Home, Google Home, etc.)
256
+ 2. Find refrigerator accessory
257
+ 3. Adjust target temperature
258
+ 4. Verify ERD write in Homebridge logs
259
+ 5. Verify temperature updates reflect in app
260
+
261
+ ## Troubleshooting
262
+
263
+ ### "Matter is not available"
264
+
265
+ - Upgrade to Homebridge 2.0.0-beta.63 or later
266
+ - Check Homebridge UI for Matter settings
267
+
268
+ ### "Matter is available but not enabled"
269
+
270
+ - Enable Matter in Homebridge settings page
271
+ - For child bridges, enable in plugin bridge settings
272
+
273
+ ### Device registers as HAP instead of Matter
274
+
275
+ - Check `useMatter` device config (if specified)
276
+ - Verify Matter is enabled in Homebridge
277
+ - Check logs for fallback messages
278
+
279
+ ### TypeScript compilation errors
280
+
281
+ - Current implementation has type errors due to missing Matter types
282
+ - Plugin will work at runtime when Homebridge 2.0 is installed
283
+ - Types will be resolved when official Homebridge 2.0 types are released
284
+
285
+ ## References
286
+
287
+ - [Homebridge Matter Plugin Example](https://github.com/homebridge-plugins/homebridge-matter)
288
+ - [homebridge-switchbot beta-5.0.0 Matter Implementation](https://github.com/OpenWonderLabs/homebridge-switchbot/blob/beta-5.0.0/src/platform-matter.ts)
289
+ - [Matter Specification](https://csa-iot.org/all-solutions/matter/)
290
+ - [Homebridge API Documentation](https://developers.homebridge.io/)
291
+
292
+ ## Contributing
293
+
294
+ Contributions are welcome! To add Matter support for a new device:
295
+
296
+ 1. Create feature branch from `beta-0.5.0`
297
+ 2. Implement Matter device class
298
+ 3. Add device creation methods to platform
299
+ 4. Test with real hardware if possible
300
+ 5. Submit PR to `beta-0.5.0` branch
301
+
302
+ ## License
303
+
304
+ ISC License - Copyright (C) 2021-2024, donavanbecker
package/README.md CHANGED
@@ -40,3 +40,18 @@ These are the events that are currently supported:
40
40
  - Filter Maintenance Change Alert
41
41
  - Descale Needed Alert
42
42
  - Add Water Alert
43
+
44
+ ## Contributing
45
+
46
+ This project uses a beta-first workflow for all contributions:
47
+
48
+ - 🎯 **All PRs must target beta branches first**, never the main `latest` branch
49
+ - 🏷️ **Required labels**: Set `patch`, `minor`, or `major` labels before assigning issues to Copilot
50
+ - 🌿 **Current beta branch**: `beta-0.5.0` (active development)
51
+
52
+ For detailed contribution guidelines, see [.github/copilot-instructions.md](.github/copilot-instructions.md).
53
+
54
+ Use the branch helper tool to determine the correct target branch:
55
+ ```bash
56
+ .github/scripts/branch-helper.sh
57
+ ```
@@ -71,6 +71,15 @@
71
71
  "functionBody": "return (model.devices && model.devices[arrayIndices].applianceId);"
72
72
  }
73
73
  },
74
+ "useMatter": {
75
+ "title": "Enable Matter",
76
+ "type": "boolean",
77
+ "default": false,
78
+ "description": "If enabled, the device will use Matter for HomeKit integration (if supported).",
79
+ "condition": {
80
+ "functionBody": "return (model.devices && model.devices[arrayIndices].applianceId && !model.options.devices[arrayIndices].hide_device);"
81
+ }
82
+ },
74
83
  "firmware": {
75
84
  "title": "Firmware Override",
76
85
  "type": "string",
@@ -130,14 +139,13 @@
130
139
  }
131
140
  ],
132
141
  "condition": {
133
- "functionBody": "return (model.options && model.options.devices && model.options.devices[arrayIndices].applianceId && !model.options.devices[arrayIndices].hide_device);"
142
+ "functionBody": "return (model.devices && model.devices[arrayIndices].applianceId && !model.devices[arrayIndices].hide_device);"
134
143
  }
135
144
  }
136
145
  },
137
146
  "required": [
138
- "id",
139
- "configDeviceName",
140
- "logging"
147
+ "applianceId",
148
+ "configDeviceName"
141
149
  ]
142
150
  }
143
151
  },
@@ -238,6 +246,7 @@
238
246
  "items": [
239
247
  "devices[].configDeviceName",
240
248
  "devices[].applianceId",
249
+ "devices[].useMatter",
241
250
  "devices[].hide_device",
242
251
  "devices[].firmware",
243
252
  "devices[].external",
@@ -281,4 +290,4 @@
281
290
  ]
282
291
  }
283
292
  ]
284
- }
293
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"OpalDescaleSvcManager.d.ts","sourceRoot":"","sources":["../../../../src/devices/OpalIceMaker/Managers/OpalDescaleSvcManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAa,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAE5D,qBAAa,qBAAsB,SAAQ,cAAc;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,uBAAuB,EAAE,MAAM,EAAE,CAA8F;IAC/H,WAAW,EAAE,MAAM,CAAiB;IAC3C,OAAO,CAAC,cAAc,CAAiB;IAEvC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAI;gBAEtB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAO5C,gBAAgB;IAKtB,oBAAoB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC;IAMvC,OAAO,CAAC,aAAa;IA+BrB,UAAU,IAAI,OAAO;CAGtB"}
1
+ {"version":3,"file":"OpalDescaleSvcManager.d.ts","sourceRoot":"","sources":["../../../../src/devices/OpalIceMaker/Managers/OpalDescaleSvcManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAa,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAE5D,qBAAa,qBAAsB,SAAQ,cAAc;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,uBAAuB,EAAE,MAAM,EAAE,CAA8F;IAC/H,WAAW,EAAE,MAAM,CAAiB;IAC3C,OAAO,CAAC,cAAc,CAAiB;IAEvC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAI;gBAEtB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAO5C,gBAAgB;IAOtB,oBAAoB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC;IAMvC,OAAO,CAAC,aAAa;IA+BrB,UAAU,IAAI,OAAO;CAGtB"}
@@ -12,7 +12,9 @@ export class OpalDescaleSvcManager extends OpalDeviceBase {
12
12
  }
13
13
  async getDescaleStatus() {
14
14
  const currentDescaleStatus = await this.readErd(ERD_TYPES.OIM_NEEDS_DESCALING);
15
- this.setOpalDescaleStatus(Number.parseInt(currentDescaleStatus));
15
+ if (currentDescaleStatus) {
16
+ this.setOpalDescaleStatus(Number.parseInt(currentDescaleStatus));
17
+ }
16
18
  }
17
19
  setOpalDescaleStatus(updateValue) {
18
20
  this.descaleStatus = updateValue;
@@ -1 +1 @@
1
- {"version":3,"file":"OpalDescaleSvcManager.js","sourceRoot":"","sources":["../../../../src/devices/OpalIceMaker/Managers/OpalDescaleSvcManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA2C,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAGxD,MAAM,OAAO,qBAAsB,SAAQ,cAAc;IAChD,OAAO,CAAS;IAChB,uBAAuB,GAAa,CAAC,yFAAyF,CAAC,CAAA;IAC/H,WAAW,GAAW,cAAc,CAAA;IACnC,cAAc,GAAG,cAAc,CAAA;IAEvC,aAAa,GAAU,CAAC,CAAA;IACxB,YACE,QAAyB,EACzB,SAA4C,EAC5C,MAAgD;QAEhD,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAElC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;QAC9E,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAU,CAAC,CAAA;IAC3E,CAAC;IAED,oBAAoB,CAAC,WAAkB;QACrC,IAAI,CAAC,aAAa,GAAG,WAAW,CAAA;QAChC,sDAAsD;QACtD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC3G,CAAC;IAEO,aAAa;QACnB,kCAAkC;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAEnE,uCAAuC;QACvC,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;QAC/C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;QAEtH,OAAO;aACJ,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;aAC9D,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;aAChC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAEhC,OAAO;aACJ,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC;aACtE,KAAK,CAAC,GAAG,EAAE;YACV,OAAO,IAAI,CAAC,aAAa,CAAA;QAC3B,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,aAAa,EAAE,CAAC;gBACzK,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,6BAA6B,CAAA;gBAChG,IAAI,gBAAgB,EAAE,CAAC;oBACrB,MAAM,IAAI,CAAC,iCAAiC,CAAC,gBAAgB,CAAC,CAAA;gBAChE,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;QAEJ,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"OpalDescaleSvcManager.js","sourceRoot":"","sources":["../../../../src/devices/OpalIceMaker/Managers/OpalDescaleSvcManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA2C,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAGxD,MAAM,OAAO,qBAAsB,SAAQ,cAAc;IAChD,OAAO,CAAS;IAChB,uBAAuB,GAAa,CAAC,yFAAyF,CAAC,CAAA;IAC/H,WAAW,GAAW,cAAc,CAAA;IACnC,cAAc,GAAG,cAAc,CAAA;IAEvC,aAAa,GAAU,CAAC,CAAA;IACxB,YACE,QAAyB,EACzB,SAA4C,EAC5C,MAAgD;QAEhD,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAElC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;QAC9E,IAAI,oBAAoB,EAAE,CAAC;YACzB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAU,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,WAAkB;QACrC,IAAI,CAAC,aAAa,GAAG,WAAW,CAAA;QAChC,sDAAsD;QACtD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC3G,CAAC;IAEO,aAAa;QACnB,kCAAkC;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAEnE,uCAAuC;QACvC,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;QAC/C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAA;QAEtH,OAAO;aACJ,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;aAC9D,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;aAChC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAEhC,OAAO;aACJ,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC;aACtE,KAAK,CAAC,GAAG,EAAE;YACV,OAAO,IAAI,CAAC,aAAa,CAAA;QAC3B,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,aAAa,EAAE,CAAC;gBACzK,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,6BAA6B,CAAA;gBAChG,IAAI,gBAAgB,EAAE,CAAC;oBACrB,MAAM,IAAI,CAAC,iCAAiC,CAAC,gBAAgB,CAAC,CAAA;gBAChE,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;QAEJ,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"OpalFilterMaintenanceSvcManager.d.ts","sourceRoot":"","sources":["../../../../src/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAa,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAE5D,qBAAa,+BAAgC,SAAQ,cAAc;IAC1D,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAA4B;IACtD,OAAO,CAAC,cAAc,CAAuB;IACtC,uBAAuB,EAAE,MAAM,EAAE,CAAmH;IAE3J,uBAAuB,EAAE,CAAC,GAAG,CAAC,CAAI;gBAEhC,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAO5C,0BAA0B;IAKhC,0BAA0B,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC;IAM7C,OAAO,CAAC,aAAa;IA+BrB,UAAU,IAAI,OAAO;CAGtB"}
1
+ {"version":3,"file":"OpalFilterMaintenanceSvcManager.d.ts","sourceRoot":"","sources":["../../../../src/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAa,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAE5D,qBAAa,+BAAgC,SAAQ,cAAc;IAC1D,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAA4B;IACtD,OAAO,CAAC,cAAc,CAAuB;IACtC,uBAAuB,EAAE,MAAM,EAAE,CAAmH;IAE3J,uBAAuB,EAAE,CAAC,GAAG,CAAC,CAAI;gBAEhC,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC5C,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAO5C,0BAA0B;IAOhC,0BAA0B,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC;IAM7C,OAAO,CAAC,aAAa;IA+BrB,UAAU,IAAI,OAAO;CAGtB"}
@@ -12,7 +12,9 @@ export class OpalFilterMaintenanceSvcManager extends OpalDeviceBase {
12
12
  }
13
13
  async getFilterMaintenanceStatus() {
14
14
  const currentFilterStatus = await this.readErd(ERD_TYPES.OIM_FILTER_STATUS);
15
- this.setFilterMaintenanceStatus(Number.parseInt(currentFilterStatus));
15
+ if (currentFilterStatus) {
16
+ this.setFilterMaintenanceStatus(Number.parseInt(currentFilterStatus));
17
+ }
16
18
  }
17
19
  setFilterMaintenanceStatus(updateValue) {
18
20
  this.filterMaintenanceStatus = updateValue;
@@ -1 +1 @@
1
- {"version":3,"file":"OpalFilterMaintenanceSvcManager.js","sourceRoot":"","sources":["../../../../src/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA2C,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAGxD,MAAM,OAAO,+BAAgC,SAAQ,cAAc;IAC1D,OAAO,CAAS;IAChB,WAAW,GAAW,yBAAyB,CAAA;IAC9C,cAAc,GAAG,oBAAoB,CAAA;IACtC,uBAAuB,GAAa,CAAC,8GAA8G,CAAC,CAAA;IAE3J,uBAAuB,GAAU,CAAC,CAAA;IAClC,YACE,QAAyB,EACzB,SAA4C,EAC5C,MAAgD;QAEhD,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAElC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;QAC3E,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAU,CAAC,CAAA;IAChF,CAAC;IAED,0BAA0B,CAAC,WAAkB;QAC3C,IAAI,CAAC,uBAAuB,GAAG,WAAW,CAAA;QAC1C,sDAAsD;QACtD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC3G,CAAC;IAEO,aAAa;QACnB,kCAAkC;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAEnE,uCAAuC;QACvC,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;QAC/C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAA;QAEjI,OAAO;aACJ,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;aAC9D,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;aAChC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAEhC,OAAO;aACJ,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC;aACtE,KAAK,CAAC,GAAG,EAAE;YACV,OAAO,IAAI,CAAC,uBAAuB,CAAA;QACrC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,aAAa,EAAE,CAAC;gBACzK,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,uCAAuC,CAAA;gBAC1G,IAAI,gBAAgB,EAAE,CAAC;oBACrB,MAAM,IAAI,CAAC,iCAAiC,CAAC,gBAAgB,CAAC,CAAA;gBAChE,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;QAEJ,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"OpalFilterMaintenanceSvcManager.js","sourceRoot":"","sources":["../../../../src/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA2C,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAGxD,MAAM,OAAO,+BAAgC,SAAQ,cAAc;IAC1D,OAAO,CAAS;IAChB,WAAW,GAAW,yBAAyB,CAAA;IAC9C,cAAc,GAAG,oBAAoB,CAAA;IACtC,uBAAuB,GAAa,CAAC,8GAA8G,CAAC,CAAA;IAE3J,uBAAuB,GAAU,CAAC,CAAA;IAClC,YACE,QAAyB,EACzB,SAA4C,EAC5C,MAAgD;QAEhD,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAElC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;QAC3E,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAU,CAAC,CAAA;QAChF,CAAC;IACH,CAAC;IAED,0BAA0B,CAAC,WAAkB;QAC3C,IAAI,CAAC,uBAAuB,GAAG,WAAW,CAAA;QAC1C,sDAAsD;QACtD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC3G,CAAC;IAEO,aAAa;QACnB,kCAAkC;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAEnE,uCAAuC;QACvC,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;QAC/C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAA;QAEjI,OAAO;aACJ,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;aAC9D,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;aAChC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAEhC,OAAO;aACJ,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC;aACtE,KAAK,CAAC,GAAG,EAAE;YACV,OAAO,IAAI,CAAC,uBAAuB,CAAA;QACrC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,aAAa,EAAE,CAAC;gBACzK,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,uCAAuC,CAAA;gBAC1G,IAAI,gBAAgB,EAAE,CAAC;oBACrB,MAAM,IAAI,CAAC,iCAAiC,CAAC,gBAAgB,CAAC,CAAA;gBAChE,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;QAEJ,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF"}
@@ -24,7 +24,7 @@ export class OpalPowerSvcManager extends OpalDeviceBase {
24
24
  .setValue(this.configuredName);
25
25
  service
26
26
  .getCharacteristic(this.platform.Characteristic.On)
27
- .onGet(() => this.readErd(ERD_TYPES.OIM_POWER).then(r => Number.parseInt(r) !== 0))
27
+ .onGet(() => this.readErd(ERD_TYPES.OIM_POWER).then(r => r ? Number.parseInt(r) !== 0 : false))
28
28
  .onSet(value => this.writeErd(ERD_TYPES.OIM_POWER, value));
29
29
  return service;
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OpalPowerSvcManager.js","sourceRoot":"","sources":["../../../../src/devices/OpalIceMaker/Managers/OpalPowerSvcManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IAC9C,OAAO,CAAS;IACf,WAAW,GAAG,YAAY,CAAA;IAC1B,cAAc,GAAG,OAAO,CAAA;IACzB,uBAAuB,GAAa,CAAC,0HAA0H,CAAC,CAAA;IAEvK,YACE,QAAyB,EACzB,SAA4C,EAC5C,MAAgD;QAEhD,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAElC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;IACrC,CAAC;IAED,aAAa;QACX,kCAAkC;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAEnE,uCAAuC;QACvC,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;QAC/C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QACvG,OAAO,CAAC,iBAAiB,EAAE,CAAA;QAC3B,OAAO;aACJ,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;aAC9D,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;aAChC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAChC,OAAO;aACJ,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;aAClD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAClF,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,KAAgB,CAAC,CAAC,CAAA;QAEvE,OAAO,OAAO,CAAA;IAEhB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAEM,iBAAiB,CAAC,aAAsB;QAC7C,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,EAC/B,aAAa,CACd,CAAA;IACH,CAAC;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CACnC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAChC,CAAC,KAAK,CAAA;IACT,CAAC;IAEM,iCAAiC,CAAC,sBAA8B;QACrE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,mBAAmB,IAAI,sBAAsB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3J,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;YAC7B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uCAAuC,sBAAsB,cAAc,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAA;QACnK,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"OpalPowerSvcManager.js","sourceRoot":"","sources":["../../../../src/devices/OpalIceMaker/Managers/OpalPowerSvcManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IAC9C,OAAO,CAAS;IACf,WAAW,GAAG,YAAY,CAAA;IAC1B,cAAc,GAAG,OAAO,CAAA;IACzB,uBAAuB,GAAa,CAAC,0HAA0H,CAAC,CAAA;IAEvK,YACE,QAAyB,EACzB,SAA4C,EAC5C,MAAgD;QAEhD,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAElC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;IACrC,CAAC;IAED,aAAa;QACX,kCAAkC;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAEnE,uCAAuC;QACvC,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;QAC/C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QACvG,OAAO,CAAC,iBAAiB,EAAE,CAAA;QAC3B,OAAO;aACJ,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;aAC9D,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;aAChC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAChC,OAAO;aACJ,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;aAClD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aAC9F,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,KAAgB,CAAC,CAAC,CAAA;QAEvE,OAAO,OAAO,CAAA;IAEhB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAEM,iBAAiB,CAAC,aAAsB;QAC7C,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,EAC/B,aAAa,CACd,CAAA;IACH,CAAC;IAEM,iBAAiB;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CACnC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAChC,CAAC,KAAK,CAAA;IACT,CAAC;IAEM,iCAAiC,CAAC,sBAA8B;QACrE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,mBAAmB,IAAI,sBAAsB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3J,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAA;YAC7B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uCAAuC,sBAAsB,cAAc,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAA;QACnK,CAAC;IACH,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
+ import type { devicesConfig, SmartHqContext, SmartHQPlatform } from '../../../index.js';
1
2
  import type { PlatformAccessory, Service } from 'homebridge';
2
- import type { SmartHQPlatform, devicesConfig, SmartHqContext } from '../../../index.js';
3
3
  import { OpalDeviceBase } from '../OpalDeviceBase.js';
4
4
  export declare class OpalProgressSvcManager extends OpalDeviceBase {
5
5
  readonly platform: SmartHQPlatform;
@@ -1 +1 @@
1
- {"version":3,"file":"OpalProgressSvcManager.d.ts","sourceRoot":"","sources":["../../../../src/devices/OpalIceMaker/Managers/OpalProgressSvcManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAO3E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,qBAAa,sBAAuB,SAAQ,cAAc;IAUtD,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAC3B,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAXpD,uBAAuB,EAAE,MAAM,EAAE,CAGvC;IACM,WAAW,EAAE,MAAM,CAAkB;IACrC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAO;IACrC,OAAO,CAAC,cAAc,CAAiB;gBAG5B,QAAQ,EAAE,eAAe,EAC3B,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC1C,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAgB3D,OAAO,CAAC,aAAa;IA8CrB,UAAU,IAAI,OAAO;IAIR,yBAAyB;YAuBxB,kBAAkB;CAiBjC"}
1
+ {"version":3,"file":"OpalProgressSvcManager.d.ts","sourceRoot":"","sources":["../../../../src/devices/OpalIceMaker/Managers/OpalProgressSvcManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAI5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAIxD,qBAAa,sBAAuB,SAAQ,cAAc;IAWtD,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAC3B,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAZpD,uBAAuB,EAAE,MAAM,EAAE,CAGvC;IAEM,WAAW,EAAE,MAAM,CAAkB;IACrC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAO;IACrC,OAAO,CAAC,cAAc,CAAiB;gBAG5B,QAAQ,EAAE,eAAe,EAC3B,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC1C,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAgB3D,OAAO,CAAC,aAAa;IA8CrB,UAAU,IAAI,OAAO;IAIR,yBAAyB;YAuBxB,kBAAkB;CAwBjC"}
@@ -1,13 +1,13 @@
1
1
  import { Buffer } from 'node:buffer';
2
- import { ERD_TYPES } from '../../../index.js';
3
2
  import { OpalDeviceBase } from '../OpalDeviceBase.js';
3
+ import { ERD_TYPES } from '../../../index.js';
4
4
  export class OpalProgressSvcManager extends OpalDeviceBase {
5
5
  platform;
6
6
  accessory;
7
7
  device;
8
8
  advancedOptionQueryStrs = [
9
9
  'device=opal&label=Production_Duration_Minutes&indicator=opalProductionLimit&type=number&defaultValue=0&placeholder=Number._0_for_Infinite',
10
- 'device=opal&label=HKC_Progress_Complete_Notification_Path&indicator=oplHKCProgressCompleteNotificationPath'
10
+ 'device=opal&label=HKC_Progress_Complete_Notification_Path&indicator=oplHKCProgressCompleteNotificationPath',
11
11
  ];
12
12
  serviceName = 'Opal Progress';
13
13
  service = null;
@@ -45,7 +45,7 @@ export class OpalProgressSvcManager extends OpalDeviceBase {
45
45
  // Configure Active characteristic
46
46
  this.service.getCharacteristic(this.platform.Characteristic.Active)
47
47
  .setProps({
48
- perms: ["ev" /* Perms.EVENTS */, "pr" /* Perms.PAIRED_READ */],
48
+ perms: ['ev', 'pr'],
49
49
  });
50
50
  // Configure RotationSpeed characteristic
51
51
  this.service.getCharacteristic(this.platform.Characteristic.RotationSpeed)
@@ -55,7 +55,7 @@ export class OpalProgressSvcManager extends OpalDeviceBase {
55
55
  minStep: 1,
56
56
  minValue: 0,
57
57
  maxValue: 100,
58
- perms: ["ev" /* Perms.EVENTS */, "pr" /* Perms.PAIRED_READ */],
58
+ perms: ['ev', 'pr'],
59
59
  })
60
60
  .removeOnGet()
61
61
  .removeOnSet()
@@ -89,10 +89,17 @@ export class OpalProgressSvcManager extends OpalDeviceBase {
89
89
  async getProductionValue() {
90
90
  try {
91
91
  const erdVal = await this.readErd(ERD_TYPES.OIM_PRODUCTION);
92
+ if (!erdVal) {
93
+ return [0, 0];
94
+ }
92
95
  const productionValueMinutes = Buffer.from(erdVal, 'hex').readUInt8(0);
93
96
  const completionistMsg = productionValueMinutes > 100 ? `, Completion: ${productionValueMinutes}` : '';
94
97
  this.platform.debugSuccessLog(`Production: ${productionValueMinutes}, Limit: ${this.platform.config.deviceOptions?.opal?.opalProductionLimit}${completionistMsg}`);
95
- const productionValueProgressBar = Math.floor((100 / this.platform.config.deviceOptions?.opal?.opalProductionLimit) * productionValueMinutes);
98
+ const opalProductionLimit = this.platform.config.deviceOptions?.opal?.opalProductionLimit;
99
+ let productionValueProgressBar = 0;
100
+ if (typeof opalProductionLimit === 'number' && opalProductionLimit > 0) {
101
+ productionValueProgressBar = Math.floor((100 / opalProductionLimit) * productionValueMinutes);
102
+ }
96
103
  return [productionValueProgressBar, productionValueMinutes];
97
104
  }
98
105
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"OpalProgressSvcManager.js","sourceRoot":"","sources":["../../../../src/devices/OpalIceMaker/Managers/OpalProgressSvcManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpalProgressSvcManager.js","sourceRoot":"","sources":["../../../../src/devices/OpalIceMaker/Managers/OpalProgressSvcManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OpalStatusBase.d.ts","sourceRoot":"","sources":["../../../../../src/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,qBAAa,cAAe,SAAQ,cAAc;IAgB9C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAC3B,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAjBpD,eAAe;;;;;;;;;;;MAWrB;IACM,iBAAiB,EAAE,MAAM,CAA4B;gBAGjD,QAAQ,EAAE,eAAe,EAC3B,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC1C,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAKrD,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D,cAAc,IAAI,IAAI;CAGvB"}
1
+ {"version":3,"file":"OpalStatusBase.d.ts","sourceRoot":"","sources":["../../../../../src/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,qBAAa,cAAe,SAAQ,cAAc;IAgB9C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAC3B,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAjBpD,eAAe;;;;;;;;;;;MAWrB;IACM,iBAAiB,EAAE,MAAM,CAA4B;gBAGjD,QAAQ,EAAE,eAAe,EAC3B,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC1C,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAKrD,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D,cAAc,IAAI,IAAI;CAGvB"}
@@ -25,8 +25,10 @@ export class OpalStatusBase extends OpalDeviceBase {
25
25
  }
26
26
  async getOpalCurrentStatus() {
27
27
  const rawStatusResponse = await this.readErd(ERD_TYPES.OIM_STATUS);
28
- const opalIceMakerStatus = Number.parseInt(rawStatusResponse);
29
- this.setOpalCurrentStatus(opalIceMakerStatus);
28
+ if (rawStatusResponse) {
29
+ const opalIceMakerStatus = Number.parseInt(rawStatusResponse);
30
+ this.setOpalCurrentStatus(opalIceMakerStatus);
31
+ }
30
32
  }
31
33
  async setOpalCurrentStatus(newStatus) {
32
34
  this.opalCurrentStatus = newStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"OpalStatusBase.js","sourceRoot":"","sources":["../../../../../src/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,OAAO,cAAe,SAAQ,cAAc;IAgBrC;IACF;IACE;IAjBJ,eAAe,GAAG;QACvB,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,CAAC;QACZ,eAAe,EAAE,CAAC;QAClB,IAAI,EAAE,CAAC;QACP,oBAAoB,EAAE,CAAC;QACvB,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,GAAG;KACb,CAAA;IACM,iBAAiB,GAAW,IAAI,CAAC,eAAe,CAAC,IAAI,CAAA;IAE5D,YACW,QAAyB,EAC3B,SAA4C,EAC1C,MAAgD;QAEzD,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAJzB,aAAQ,GAAR,QAAQ,CAAiB;QAC3B,cAAS,GAAT,SAAS,CAAmC;QAC1C,WAAM,GAAN,MAAM,CAA0C;IAG3D,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QAClE,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;QAC7D,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAA;IAC/C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,SAAiB;QAC1C,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAA;QAClC,IAAI,CAAC,cAAc,EAAE,CAAA;IACvB,CAAC;IAED,6CAA6C;IAC7C,cAAc;QACZ,sCAAsC;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"OpalStatusBase.js","sourceRoot":"","sources":["../../../../../src/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,OAAO,cAAe,SAAQ,cAAc;IAgBrC;IACF;IACE;IAjBJ,eAAe,GAAG;QACvB,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,CAAC;QACZ,eAAe,EAAE,CAAC;QAClB,IAAI,EAAE,CAAC;QACP,oBAAoB,EAAE,CAAC;QACvB,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,GAAG;KACb,CAAA;IACM,iBAAiB,GAAW,IAAI,CAAC,eAAe,CAAC,IAAI,CAAA;IAE5D,YACW,QAAyB,EAC3B,SAA4C,EAC1C,MAAgD;QAEzD,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QAJzB,aAAQ,GAAR,QAAQ,CAAiB;QAC3B,cAAS,GAAT,SAAS,CAAmC;QAC1C,WAAM,GAAN,MAAM,CAA0C;IAG3D,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QAClE,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;YAC7D,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,SAAiB;QAC1C,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAA;QAClC,IAAI,CAAC,cAAc,EAAE,CAAA;IACvB,CAAC;IAED,6CAA6C;IAC7C,cAAc;QACZ,sCAAsC;IACxC,CAAC;CACF"}
@@ -1,13 +1,12 @@
1
+ import type { devicesConfig, SmartHqContext, SmartHQPlatform } from '../../index.js';
1
2
  import type { PlatformAccessory } from 'homebridge';
2
- import type { SmartHQPlatform, devicesConfig, SmartHqContext } from '../../index.js';
3
- export declare class OpalDeviceBase {
3
+ import { deviceBase } from '../device.js';
4
+ export declare class OpalDeviceBase extends deviceBase {
4
5
  readonly platform: SmartHQPlatform;
5
6
  protected accessory: PlatformAccessory<SmartHqContext>;
6
7
  readonly device: SmartHqContext['device'] & devicesConfig;
7
8
  private hkcControllerNotificationsSecret?;
8
9
  constructor(platform: SmartHQPlatform, accessory: PlatformAccessory<SmartHqContext>, device: SmartHqContext['device'] & devicesConfig);
9
- readErd(erd: string): Promise<string>;
10
- writeErd(erd: string, value: string | boolean): Promise<undefined>;
11
10
  sendHomeKitControllerNotification(hkcNotificationPath: string): Promise<void>;
12
11
  }
13
12
  //# sourceMappingURL=OpalDeviceBase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpalDeviceBase.d.ts","sourceRoot":"","sources":["../../../src/devices/OpalIceMaker/OpalDeviceBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3E,qBAAa,cAAc;IAGvB,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAClC,SAAS,CAAC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAJ3D,OAAO,CAAC,gCAAgC,CAAC,CAAQ;gBAEtC,QAAQ,EAAE,eAAe,EACxB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC7C,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAMrD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMrC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAY7C,iCAAiC,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAUpF"}
1
+ {"version":3,"file":"OpalDeviceBase.d.ts","sourceRoot":"","sources":["../../../src/devices/OpalIceMaker/OpalDeviceBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAInD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,qBAAa,cAAe,SAAQ,UAAU;IAG1C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAClC,SAAS,CAAC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAJ3D,OAAO,CAAC,gCAAgC,CAAC,CAAQ;gBAEtC,QAAQ,EAAE,eAAe,EACxB,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EAC7C,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAMrD,iCAAiC,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAUpF"}
@@ -1,32 +1,17 @@
1
1
  import axios from 'axios';
2
- export class OpalDeviceBase {
2
+ import { deviceBase } from '../device.js';
3
+ export class OpalDeviceBase extends deviceBase {
3
4
  platform;
4
5
  accessory;
5
6
  device;
6
7
  hkcControllerNotificationsSecret;
7
8
  constructor(platform, accessory, device) {
9
+ super(platform, accessory, device);
8
10
  this.platform = platform;
9
11
  this.accessory = accessory;
10
12
  this.device = device;
11
13
  this.hkcControllerNotificationsSecret = this.platform.config.options?.homekitControllerNotificationsSecret;
12
14
  }
13
- // Shared utility methods
14
- async readErd(erd) {
15
- const d = await axios
16
- .get(`/appliance/${this.accessory.context.device.applianceId}/erd/${erd}`);
17
- return String(d.data.value);
18
- }
19
- async writeErd(erd, value) {
20
- await axios
21
- .post(`/appliance/${this.accessory.context.device.applianceId}/erd/${erd}`, {
22
- kind: 'appliance#erdListEntry',
23
- userId: this.accessory.context.userId,
24
- applianceId: this.accessory.context.device.applianceId,
25
- erd,
26
- value: typeof value === 'boolean' ? (value ? '01' : '00') : value,
27
- });
28
- return undefined;
29
- }
30
15
  async sendHomeKitControllerNotification(hkcNotificationPath) {
31
16
  if (this.hkcControllerNotificationsSecret) {
32
17
  try {