homebridge-tsvesync 1.0.108 → 1.0.109

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,39 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.109 (2025-08-28)
4
+
5
+ ### Fixed
6
+ - **Air Quality Service Logic**: Fixed air quality service removal logic for Core 200S and other devices without sensors
7
+ - Added proper tracking and clearing of air quality service references to prevent cached services
8
+ - Enhanced defensive checks to remove cached air quality services from devices without sensors
9
+ - Added early detection warnings for misconfigured devices during accessory initialization
10
+ - Improved updateDeviceState() logic to handle service removal for devices without air quality support
11
+ - Ensures cached HomeKit services are properly cleaned up when device capabilities change
12
+ - Specifically addresses Core 200S devices that were incorrectly showing air quality characteristics
13
+ - Added comprehensive service reference management throughout the accessory lifecycle
14
+
15
+ ### Changed
16
+ - **Enhanced Air Quality Validation**: Improved air quality service management and validation
17
+ - Better separation between devices that support air quality sensors vs those that don't
18
+ - Enhanced logging to identify when cached services are found and removed
19
+ - Improved service cleanup during both initialization and runtime state updates
20
+ - More robust handling of service references to prevent phantom air quality services
21
+
22
+ ### Dependencies
23
+ - Updated tsvesync from 1.0.108 to 1.0.109 for version synchronization
24
+
25
+ ### HomeKit Integration Notes
26
+ - **Improved Service Accuracy**: Core 200S and similar devices without air quality sensors now properly exclude air quality services
27
+ - **Better Cache Management**: Cached air quality services are automatically detected and removed from incompatible devices
28
+ - **Enhanced Reliability**: Improved service lifecycle management prevents phantom services from appearing
29
+ - **Device-Specific Features**: Each device model now correctly reflects its actual sensor capabilities without cached service interference
30
+
31
+ ### Migration Notes
32
+ - **Automatic Fix**: The service cleanup logic will automatically remove inappropriate air quality services
33
+ - **Core 200S Users**: Your device will no longer show unavailable air quality characteristics in HomeKit
34
+ - **No Configuration Required**: Changes are automatic and based on device hardware specifications
35
+ - **Improved Stability**: Better service management improves overall accessory reliability
36
+
3
37
  ## 1.0.108 (2025-08-28)
4
38
 
5
39
  ### Fixed
@@ -1 +1 @@
1
- {"version":3,"file":"air-purifier.accessory.d.ts","sourceRoot":"","sources":["../../src/accessories/air-purifier.accessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,iBAAiB,EAAW,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAiC9E,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAC7C,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,iBAAiB,CAAC,CAAU;IACpC,OAAO,CAAC,aAAa,CAAC,CAAU;IAChC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,cAAc,CAAkB;gBAGtC,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,iBAAiB;IAmC3B;;OAEG;IACH,OAAO,CAAC,UAAU;IA4FlB;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAmBvC;;OAEG;IACH,OAAO,CAAC,cAAc;IAiCtB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAclC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgCzB;;;;;;;;;;;;OAYG;YACW,oCAAoC;IAoClD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsCzB;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAyK9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA8C9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoE1B;;OAEG;YACW,aAAa;IAW3B;;OAEG;YACW,cAAc;IAU5B;;OAEG;YACW,cAAc;IAS5B;;OAEG;YACW,yBAAyB;IA+BvC;;OAEG;YACW,kBAAkB;IA+BhC;;OAEG;YACW,eAAe;IAI7B;;OAEG;IACH,SAAS,CAAC,qBAAqB,IAAI,kBAAkB;IAcrD;;OAEG;cACa,0BAA0B,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA0KvE;;OAEG;YACW,cAAc;IAY5B;;OAEG;YACW,cAAc;IA2C5B;;OAEG;YACW,gBAAgB;IAqB9B;;OAEG;YACW,gBAAgB;YAmHhB,SAAS;YAIT,SAAS;CAsCxB"}
1
+ {"version":3,"file":"air-purifier.accessory.d.ts","sourceRoot":"","sources":["../../src/accessories/air-purifier.accessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,iBAAiB,EAAW,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAiC9E,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAC7C,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,iBAAiB,CAAU;IACnC,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,iBAAiB,CAAC,CAAU;IACpC,OAAO,CAAC,aAAa,CAAC,CAAU;IAChC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,cAAc,CAAkB;gBAGtC,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,iBAAiB;IA4C3B;;OAEG;IACH,OAAO,CAAC,UAAU;IA4FlB;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAmBvC;;OAEG;IACH,OAAO,CAAC,cAAc;IAiCtB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAclC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgCzB;;;;;;;;;;;;OAYG;YACW,oCAAoC;IAoClD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsCzB;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAgL9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA8C9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoE1B;;OAEG;YACW,aAAa;IAW3B;;OAEG;YACW,cAAc;IAU5B;;OAEG;YACW,cAAc;IAS5B;;OAEG;YACW,yBAAyB;IA+BvC;;OAEG;YACW,kBAAkB;IA+BhC;;OAEG;YACW,eAAe;IAI7B;;OAEG;IACH,SAAS,CAAC,qBAAqB,IAAI,kBAAkB;IAcrD;;OAEG;cACa,0BAA0B,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAiLvE;;OAEG;YACW,cAAc;IAY5B;;OAEG;YACW,cAAc;IA2C5B;;OAEG;YACW,gBAAgB;IAqB9B;;OAEG;YACW,gBAAgB;YAmHhB,SAAS;YAIT,SAAS;CAsCxB"}
@@ -36,6 +36,14 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
36
36
  else {
37
37
  // Device type not specifically recognized, but will use default handling
38
38
  }
39
+ // Early check for Core200S and similar devices without air quality
40
+ // This ensures we catch cached services even before setupService() is called
41
+ if (!this.hasFeature('air_quality')) {
42
+ const cachedAirQualityService = this.accessory.getService(this.platform.Service.AirQualitySensor);
43
+ if (cachedAirQualityService) {
44
+ this.platform.log.warn(`${this.device.deviceName} (${deviceType}): Found cached air quality service on device without AQ sensor - will be removed during setup`);
45
+ }
46
+ }
39
47
  }
40
48
  /**
41
49
  * Feature detection system
@@ -408,18 +416,23 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
408
416
  this.setupCharacteristic(this.platform.Characteristic.Name, async () => this.device.deviceName);
409
417
  // Set up air quality sensor service if supported
410
418
  this.platform.log.debug(`${this.device.deviceName}: Checking air_quality feature...`);
419
+ // Always check for existing air quality service first
420
+ const existingAirQualityService = this.accessory.getService(this.platform.Service.AirQualitySensor);
411
421
  if (this.hasFeature('air_quality')) {
412
422
  this.platform.log.info(`${this.device.deviceName}: Device has air quality sensor - setting up air quality service`);
413
423
  this.setupAirQualityService();
414
424
  }
415
425
  else {
416
- this.platform.log.info(`${this.device.deviceName}: Device does not have air quality sensor - skipping air quality service`);
417
- // Remove any existing air quality service if it was previously added
418
- const existingAirQualityService = this.accessory.getService(this.platform.Service.AirQualitySensor);
426
+ this.platform.log.info(`${this.device.deviceName}: Device does not have air quality sensor - removing any air quality service`);
427
+ // Remove any existing air quality service and clear the reference
419
428
  if (existingAirQualityService) {
420
- this.platform.log.info(`${this.device.deviceName}: Removing previously added air quality service`);
429
+ this.platform.log.warn(`${this.device.deviceName}: Found existing air quality service on device without AQ sensor - removing it`);
421
430
  this.accessory.removeService(existingAirQualityService);
431
+ // Clear the reference to ensure it's not used elsewhere
432
+ this.airQualityService = undefined;
422
433
  }
434
+ // Ensure the reference is cleared even if no service was found
435
+ this.airQualityService = undefined;
423
436
  }
424
437
  // Set up filter maintenance service if supported
425
438
  this.platform.log.debug(`${this.device.deviceName}: Checking filter_life feature...`);
@@ -683,24 +696,31 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
683
696
  this.lastSetPercentage = 0;
684
697
  }
685
698
  // Update air quality characteristics if service exists AND device supports air quality
686
- if (this.airQualityService && this.hasFeature('air_quality')) {
687
- const extendedDevice = this.device;
688
- // Update air quality level
689
- const pm25 = (_d = (_b = (_a = extendedDevice.details) === null || _a === void 0 ? void 0 : _a.air_quality_value) !== null && _b !== void 0 ? _b : (_c = extendedDevice.details) === null || _c === void 0 ? void 0 : _c.pm25) !== null && _d !== void 0 ? _d : 0;
690
- const airQualityLevel = this.convertAirQualityToHomeKit(pm25);
691
- this.airQualityService.updateCharacteristic(this.platform.Characteristic.AirQuality, airQualityLevel);
692
- // Update PM2.5 density
693
- this.airQualityService.updateCharacteristic(this.platform.Characteristic.PM2_5Density, Math.min(1000, Math.max(0, pm25)));
694
- // Update PM10 density if available
695
- if (((_e = extendedDevice.details) === null || _e === void 0 ? void 0 : _e.pm10) !== undefined) {
696
- this.airQualityService.updateCharacteristic(this.platform.Characteristic.PM10Density, Math.min(1000, Math.max(0, extendedDevice.details.pm10)));
697
- }
698
- }
699
- else if (this.airQualityService && !this.hasFeature('air_quality')) {
700
- // This should not happen, but if it does, remove the service
701
- this.platform.log.warn(`${this.device.deviceName}: Air quality service exists but device does not support air quality - removing service`);
702
- this.accessory.removeService(this.airQualityService);
703
- this.airQualityService = undefined;
699
+ if (this.hasFeature('air_quality')) {
700
+ // Device supports air quality - update characteristics if service exists
701
+ if (this.airQualityService) {
702
+ const extendedDevice = this.device;
703
+ // Update air quality level
704
+ const pm25 = (_d = (_b = (_a = extendedDevice.details) === null || _a === void 0 ? void 0 : _a.air_quality_value) !== null && _b !== void 0 ? _b : (_c = extendedDevice.details) === null || _c === void 0 ? void 0 : _c.pm25) !== null && _d !== void 0 ? _d : 0;
705
+ const airQualityLevel = this.convertAirQualityToHomeKit(pm25);
706
+ this.airQualityService.updateCharacteristic(this.platform.Characteristic.AirQuality, airQualityLevel);
707
+ // Update PM2.5 density
708
+ this.airQualityService.updateCharacteristic(this.platform.Characteristic.PM2_5Density, Math.min(1000, Math.max(0, pm25)));
709
+ // Update PM10 density if available
710
+ if (((_e = extendedDevice.details) === null || _e === void 0 ? void 0 : _e.pm10) !== undefined) {
711
+ this.airQualityService.updateCharacteristic(this.platform.Characteristic.PM10Density, Math.min(1000, Math.max(0, extendedDevice.details.pm10)));
712
+ }
713
+ }
714
+ }
715
+ else {
716
+ // Device does not support air quality - remove any existing service
717
+ // Check both our reference and the actual accessory for any air quality service
718
+ const existingService = this.airQualityService || this.accessory.getService(this.platform.Service.AirQualitySensor);
719
+ if (existingService) {
720
+ this.platform.log.warn(`${this.device.deviceName}: Device does not support air quality but service exists - removing it now`);
721
+ this.accessory.removeService(existingService);
722
+ this.airQualityService = undefined;
723
+ }
704
724
  }
705
725
  // Set up filter service if not already created and device supports it
706
726
  if (!this.filterService && this.hasFeature('filter_life')) {
@@ -1 +1 @@
1
- {"version":3,"file":"air-purifier.accessory.js","sourceRoot":"","sources":["../../src/accessories/air-purifier.accessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"air-purifier.accessory.js","sourceRoot":"","sources":["../../src/accessories/air-purifier.accessory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "homebridge-tsvesync",
3
- "version": "1.0.108",
3
+ "version": "1.0.109",
4
4
  "description": "Homebridge plugin for VeSync devices including Levoit air purifiers, humidifiers, and Etekcity smart outlets",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -98,7 +98,7 @@
98
98
  "axios": "^1.6.5",
99
99
  "dotenv": "^16.3.1",
100
100
  "js-yaml": "^4.1.0",
101
- "tsvesync": "1.0.108"
101
+ "tsvesync": "1.0.109"
102
102
  },
103
103
  "devDependencies": {
104
104
  "@types/jest": "^29.5.11",
@@ -82,6 +82,15 @@ export class AirPurifierAccessory extends BaseAccessory {
82
82
  } else {
83
83
  // Device type not specifically recognized, but will use default handling
84
84
  }
85
+
86
+ // Early check for Core200S and similar devices without air quality
87
+ // This ensures we catch cached services even before setupService() is called
88
+ if (!this.hasFeature('air_quality')) {
89
+ const cachedAirQualityService = this.accessory.getService(this.platform.Service.AirQualitySensor);
90
+ if (cachedAirQualityService) {
91
+ this.platform.log.warn(`${this.device.deviceName} (${deviceType}): Found cached air quality service on device without AQ sensor - will be removed during setup`);
92
+ }
93
+ }
85
94
  }
86
95
 
87
96
  /**
@@ -527,18 +536,25 @@ export class AirPurifierAccessory extends BaseAccessory {
527
536
 
528
537
  // Set up air quality sensor service if supported
529
538
  this.platform.log.debug(`${this.device.deviceName}: Checking air_quality feature...`);
539
+
540
+ // Always check for existing air quality service first
541
+ const existingAirQualityService = this.accessory.getService(this.platform.Service.AirQualitySensor);
542
+
530
543
  if (this.hasFeature('air_quality')) {
531
544
  this.platform.log.info(`${this.device.deviceName}: Device has air quality sensor - setting up air quality service`);
532
545
  this.setupAirQualityService();
533
546
  } else {
534
- this.platform.log.info(`${this.device.deviceName}: Device does not have air quality sensor - skipping air quality service`);
547
+ this.platform.log.info(`${this.device.deviceName}: Device does not have air quality sensor - removing any air quality service`);
535
548
 
536
- // Remove any existing air quality service if it was previously added
537
- const existingAirQualityService = this.accessory.getService(this.platform.Service.AirQualitySensor);
549
+ // Remove any existing air quality service and clear the reference
538
550
  if (existingAirQualityService) {
539
- this.platform.log.info(`${this.device.deviceName}: Removing previously added air quality service`);
551
+ this.platform.log.warn(`${this.device.deviceName}: Found existing air quality service on device without AQ sensor - removing it`);
540
552
  this.accessory.removeService(existingAirQualityService);
553
+ // Clear the reference to ensure it's not used elsewhere
554
+ this.airQualityService = undefined;
541
555
  }
556
+ // Ensure the reference is cleared even if no service was found
557
+ this.airQualityService = undefined;
542
558
  }
543
559
 
544
560
  // Set up filter maintenance service if supported
@@ -895,37 +911,44 @@ export class AirPurifierAccessory extends BaseAccessory {
895
911
  }
896
912
 
897
913
  // Update air quality characteristics if service exists AND device supports air quality
898
- if (this.airQualityService && this.hasFeature('air_quality')) {
899
- const extendedDevice = this.device as unknown as ExtendedVeSyncAirPurifier;
900
-
901
- // Update air quality level
902
- const pm25 = extendedDevice.details?.air_quality_value ??
903
- extendedDevice.details?.pm25 ?? 0;
904
- const airQualityLevel = this.convertAirQualityToHomeKit(pm25);
905
-
906
- this.airQualityService.updateCharacteristic(
907
- this.platform.Characteristic.AirQuality,
908
- airQualityLevel
909
- );
910
-
911
- // Update PM2.5 density
912
- this.airQualityService.updateCharacteristic(
913
- this.platform.Characteristic.PM2_5Density,
914
- Math.min(1000, Math.max(0, pm25))
915
- );
916
-
917
- // Update PM10 density if available
918
- if (extendedDevice.details?.pm10 !== undefined) {
914
+ if (this.hasFeature('air_quality')) {
915
+ // Device supports air quality - update characteristics if service exists
916
+ if (this.airQualityService) {
917
+ const extendedDevice = this.device as unknown as ExtendedVeSyncAirPurifier;
918
+
919
+ // Update air quality level
920
+ const pm25 = extendedDevice.details?.air_quality_value ??
921
+ extendedDevice.details?.pm25 ?? 0;
922
+ const airQualityLevel = this.convertAirQualityToHomeKit(pm25);
923
+
924
+ this.airQualityService.updateCharacteristic(
925
+ this.platform.Characteristic.AirQuality,
926
+ airQualityLevel
927
+ );
928
+
929
+ // Update PM2.5 density
919
930
  this.airQualityService.updateCharacteristic(
920
- this.platform.Characteristic.PM10Density,
921
- Math.min(1000, Math.max(0, extendedDevice.details.pm10))
931
+ this.platform.Characteristic.PM2_5Density,
932
+ Math.min(1000, Math.max(0, pm25))
922
933
  );
934
+
935
+ // Update PM10 density if available
936
+ if (extendedDevice.details?.pm10 !== undefined) {
937
+ this.airQualityService.updateCharacteristic(
938
+ this.platform.Characteristic.PM10Density,
939
+ Math.min(1000, Math.max(0, extendedDevice.details.pm10))
940
+ );
941
+ }
942
+ }
943
+ } else {
944
+ // Device does not support air quality - remove any existing service
945
+ // Check both our reference and the actual accessory for any air quality service
946
+ const existingService = this.airQualityService || this.accessory.getService(this.platform.Service.AirQualitySensor);
947
+ if (existingService) {
948
+ this.platform.log.warn(`${this.device.deviceName}: Device does not support air quality but service exists - removing it now`);
949
+ this.accessory.removeService(existingService);
950
+ this.airQualityService = undefined;
923
951
  }
924
- } else if (this.airQualityService && !this.hasFeature('air_quality')) {
925
- // This should not happen, but if it does, remove the service
926
- this.platform.log.warn(`${this.device.deviceName}: Air quality service exists but device does not support air quality - removing service`);
927
- this.accessory.removeService(this.airQualityService);
928
- this.airQualityService = undefined;
929
952
  }
930
953
 
931
954
  // Set up filter service if not already created and device supports it