homebridge-pax-calima 2.4.4 → 2.4.5

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 (3) hide show
  1. package/README.md +13 -7
  2. package/index.js +2 -2
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  If you have a **Pax Calima** or **Vent-Axia Lo-Carbon Svara** extractor fan, this plugin connects it directly to HomeKit via Bluetooth. Once set up, your fan appears in the Home app with live temperature and fan speed — and you can build automations around all of them.
6
6
 
7
- [![Homebridge 2.0 Ready](https://img.shields.io/badge/Homebridge-2.0%20Ready-brightgreen)](https://github.com/homebridge/homebridge/wiki/Updating-To-Homebridge-v2.0)
7
+ [![Homebridge 2 Ready](https://img.shields.io/badge/Homebridge-2%20Ready-brightgreen)](https://github.com/homebridge/homebridge/wiki/Updating-To-Homebridge-v2.0)
8
8
  [![npm](https://img.shields.io/npm/v/homebridge-pax-calima)](https://www.npmjs.com/package/homebridge-pax-calima)
9
9
 
10
10
  ---
@@ -178,20 +178,26 @@ Go to Homebridge UI → plugin settings → Remove Accessory Cache, then restart
178
178
 
179
179
  ---
180
180
 
181
- ## Homebridge 2.0 compliance
181
+ ## Homebridge 2 compatibility
182
182
 
183
- This plugin meets all Homebridge 2.0 requirements:
183
+ This plugin is compatible with Homebridge 2:
184
184
  - Registered as a dynamic platform
185
- - Waits for `didFinishLaunching` before any BLE or accessory work
186
- - All errors caught and logged — no unhandled exceptions
185
+ - Waits for `didFinishLaunching` before starting BLE or accessory work
186
+ - Uses the Homebridge 2-compatible `Accessory.getServiceById()` API for the optional Silent Hours service
187
187
  - No analytics, tracking or post-install scripts
188
- - Accessories restored from cache cleanly without re-registration
189
- - Compatible with Node.js 18, 20 and 22
188
+ - Accessories restore cleanly from cache without re-registration
189
+ - Requires Node.js 18.20.4 or later
190
+ - Live-tested on Homebridge 2.4.0 (HAP 2.2.2) with Node.js 24.19.0
190
191
 
191
192
  ---
192
193
 
193
194
  ## Release notes
194
195
 
196
+ ### 2.4.5
197
+ - **Fixed:** Homebridge 2 compatibility for the optional Silent Hours switch. Homebridge 2 removed `Accessory.getServiceByUUIDAndSubType()`; both lookups now use the supported `Accessory.getServiceById()` API.
198
+ - **Verified:** Live-tested successfully on Homebridge 2.4.0 (HAP 2.2.2) with Node.js 24.19.0 on Homebridge OS.
199
+ - No BLE protocol, fan control, sensor mapping, configuration, or accessory behaviour changes.
200
+
195
201
  ### 2.4.4
196
202
  - **Fixed:** Silent Hours time fields no longer show a raw regex pattern as validation hint in the Homebridge UI — replaced with plain human-readable placeholder text (e.g. `23:00`) and a description
197
203
  - **Improved:** Invalid time format now logs a clear warning message rather than silently disabling the schedule
package/index.js CHANGED
@@ -175,7 +175,7 @@ class PaxCalimaAccessory {
175
175
  // Silent Hours switch — opt-in via showSilentSwitch: true
176
176
  // Coexists with config schedule — switch state takes priority on next poll
177
177
  if (this.showSilentSwitch) {
178
- this.silentService = this.accessory.getServiceByUUIDAndSubType(Service.Switch, 'silent-hours')
178
+ this.silentService = this.accessory.getServiceById(Service.Switch, 'silent-hours')
179
179
  || this.accessory.addService(new Service.Switch(n + ' Silent Hours', 'silent-hours'));
180
180
  this.silentService.getCharacteristic(Characteristic.On)
181
181
  .onGet(() => this.silentHours)
@@ -186,7 +186,7 @@ class PaxCalimaAccessory {
186
186
  this.log.info('Silent Hours switch enabled');
187
187
  } else {
188
188
  // Remove switch if it was registered in a previous version
189
- const existing = this.accessory.getServiceByUUIDAndSubType(Service.Switch, 'silent-hours');
189
+ const existing = this.accessory.getServiceById(Service.Switch, 'silent-hours');
190
190
  if (existing) {
191
191
  this.accessory.removeService(existing);
192
192
  this.log.info('Silent Hours switch removed — use config schedule or enable showSilentSwitch');
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "homebridge-pax-calima",
3
3
  "displayName": "Vent-Axia Svara / Pax Calima",
4
- "version": "2.4.4",
5
- "description": "Bring your Pax Calima or Vent-Axia Svara bathroom fan into Apple Home via Bluetooth — live temperature and fan speed with Silent Hours scheduling and full automation support.",
4
+ "version": "2.4.5",
5
+ "description": "Bring your Pax Calima or Vent-Axia Svara bathroom fan into Apple Home via Bluetooth \u2014 live temperature and fan speed with Silent Hours scheduling and full automation support.",
6
6
  "main": "index.js",
7
7
  "keywords": [
8
8
  "homebridge-plugin",