homebridge-tsvesync 1.0.122 → 1.1.0

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,96 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.1.0 (2025-08-29)
4
+
5
+ ### Added
6
+ - **🆕 Separated Air Quality Sensors**: Air quality sensors now appear as independent HomeKit accessories
7
+ - **📦 New AirQualitySensorAccessory Class**: Dedicated accessory for air quality monitoring with PM2.5 and PM10 support
8
+ - **🎯 Core300S, Core400S, Core600S**: Air quality sensors appear as separate tiles in HomeKit for better organization
9
+ - **📊 EPA AQI Standards**: Air quality levels calculated using official EPA Air Quality Index thresholds
10
+ - **🔧 Smart Detection**: Automatic PM2.5 and PM10 characteristic setup based on device capabilities
11
+ - **🌟 Better UX**: Air purifier controls and air quality readings are now clearly separated in HomeKit
12
+
13
+ ### Fixed
14
+ - **🎯 Core Series Filter Life Detection**: Enhanced filter life detection for all Core series air purifiers
15
+ - **✅ Core300S Filter Support**: Core300S devices now properly display filter life percentage in HomeKit
16
+ - **🔧 Pattern Matching**: Improved device type detection to catch variants like "300S", "200S", "400S", "600S"
17
+ - **🛡️ Defensive Logic**: Robust filter detection ensures all Core series devices get filter characteristics
18
+ - **📱 HomeKit Integration**: Filter maintenance notifications now work correctly for all Core series models
19
+
20
+ - **🚨 Critical Air Quality Bug Fix**: Resolved phantom air quality services on devices without sensors
21
+ - **⚡ hasFeature() Fix**: Fixed API proxy wrapping causing hasFeature() to return Promise instead of boolean
22
+ - **🎯 Core200S Specific**: Core200S and LAP-C201S/C202S no longer show phantom air quality services
23
+ - **🔧 Bypass Logic**: Moved bypass check before async wrapper to prevent Promise wrapping of sync methods
24
+ - **✅ Accurate Detection**: Only devices with actual air quality sensors now show AQ characteristics
25
+
26
+ ### Improved
27
+ - **🔇 Reduced Log Verbosity**: Changed excessive info logging to debug level for cleaner operation
28
+ - **📊 Debug Level**: Feature detection, device type analysis, and configuration details moved to debug
29
+ - **⚡ Performance**: Reduced log noise during normal operation while maintaining troubleshooting capability
30
+ - **🎯 Focused Logging**: Important warnings and errors remain visible, routine operations moved to debug
31
+
32
+ - **🏗️ Enhanced HomeKit Service Architecture**: Proper service hierarchy for better HomeKit display
33
+ - **🎯 Primary Service**: AirPurifier service marked as primary to show controls instead of info page
34
+ - **🔗 Linked Services**: Air quality sensors properly linked to maintain service relationships
35
+ - **📱 HomeKit UX**: All air purifiers now show control interface when tapped in Home app
36
+
37
+ ### Technical Details
38
+ - **🔧 API Proxy Enhancement**: Improved rate limiting with proper bypass handling for sync methods
39
+ - **📦 Device Factory**: Enhanced device classification and feature detection logic
40
+ - **🎛️ Service Management**: Comprehensive service setup with primary/secondary hierarchy
41
+ - **🔍 Enhanced Logging**: Detailed debugging information available when needed
42
+
43
+ ### Affected Devices
44
+ - **Core Series**: Core200S, Core300S, Core400S, Core600S - improved filter detection and service setup
45
+ - **LAP Series**: LAP-C201S, LAP-C202S, LAP-C301S, LAP-C401S, LAP-C601S - fixed phantom AQ services
46
+ - **All Air Purifiers**: Better HomeKit service hierarchy and consistent behavior across models
47
+
48
+ ### Migration Notes
49
+ - **🚀 Automatic Upgrade**: Changes take effect after Homebridge restart, no configuration needed
50
+ - **📱 HomeKit Changes**: Air quality sensors will appear as separate accessories for supported devices
51
+ - **🔄 Backward Compatible**: All existing functionality preserved with enhanced capabilities
52
+ - **✅ Verification**: Check that Core series devices show filter life and separated AQ sensors work correctly
53
+
54
+ ### Dependencies
55
+ - **📦 tsvesync**: Updated to 1.1.0 for synchronized release versioning
56
+
57
+ ## 1.0.123 (2025-08-29)
58
+
59
+ ### Fixed
60
+ - **🎯 Core300S HomeKit Controls Display**: Fixed Core300S showing info page instead of control settings in HomeKit
61
+ - **✅ Primary Service**: AirPurifier service now marked as primary service to ensure control display instead of info page
62
+ - **🔗 Service Hierarchy**: AirQualitySensor service properly linked as secondary service to primary AirPurifier service
63
+ - **🔧 Technical Implementation**: Uses setPrimaryService(true) for AirPurifier and addLinkedService() for AirQualitySensor
64
+ - **📱 HomeKit Impact**: Core300S devices now properly display controls (fan speed, mode, etc.) when tapped in Home app
65
+ - **🛡️ Universal Fix**: Primary service configuration applied to all air purifiers for consistent HomeKit behavior
66
+
67
+ ### Improved
68
+ - **🔍 Enhanced Service Configuration Logging**: Added comprehensive logging for service hierarchy setup debugging
69
+ - **📊 Primary Service Tracking**: All primary service assignments now logged with device name context for troubleshooting
70
+ - **🎯 Linked Service Detection**: Service linking operations logged with clear success confirmation messages
71
+ - **⚠️ Clear Notifications**: Service configuration now clearly logged for all air purifiers with hierarchy details
72
+ - **🔧 Configuration Verification**: Detailed logging confirms proper service setup and linking for debugging purposes
73
+
74
+ ### Technical Details
75
+ - **🏗️ HomeKit Service Architecture**: Proper primary/secondary service hierarchy implementation following HomeKit best practices
76
+ - **🔄 Service Priority**: AirPurifier service always set as primary to ensure control interface is displayed first
77
+ - **⚖️ Linked Services**: AirQualitySensor and other secondary services properly linked to maintain service relationships
78
+ - **📝 Code Enhancement**: Added clear comments explaining the critical nature of primary service configuration
79
+
80
+ ### Affected Devices
81
+ - **Core300S** (primary fix target) - now shows controls instead of info page when tapped in HomeKit
82
+ - **All Air Purifiers** - benefit from consistent primary service configuration and proper service hierarchy
83
+ - **Multi-Service Devices** - proper service linking ensures all services remain accessible with correct display priority
84
+
85
+ ### Migration Notes
86
+ - **🚀 Automatic Fix**: Service hierarchy changes will take effect automatically after Homebridge restart
87
+ - **📱 HomeKit Changes**: Core300S and other air purifiers should now show control interface when tapped in Home app
88
+ - **🔄 No Configuration**: Changes are automatic - no configuration updates required
89
+ - **✅ Verification**: Check air purifier devices in Home app to confirm control interface is displayed instead of info page
90
+
91
+ ### Dependencies
92
+ - **📦 tsvesync**: Updated from 1.0.122 to 1.0.123 for synchronized release versioning
93
+
3
94
  ## 1.0.122 (2025-08-29)
4
95
 
5
96
  ### Fixed
@@ -8,7 +8,6 @@ export declare class AirPurifierAccessory extends BaseAccessory {
8
8
  private isAirBypassDevice;
9
9
  private isAirBaseV2Device;
10
10
  private isAir131Device;
11
- private airQualityService?;
12
11
  private lastSetSpeed;
13
12
  private lastSetPercentage;
14
13
  private skipNextUpdate;
@@ -55,22 +54,6 @@ export declare class AirPurifierAccessory extends BaseAccessory {
55
54
  * Set up the air purifier service
56
55
  */
57
56
  protected setupService(): void;
58
- /**
59
- * Set up the air quality sensor service
60
- */
61
- private setupAirQualityService;
62
- /**
63
- * Get air quality level for HomeKit
64
- */
65
- private getAirQuality;
66
- /**
67
- * Get PM2.5 density
68
- */
69
- private getPM25Density;
70
- /**
71
- * Get PM10 density
72
- */
73
- private getPM10Density;
74
57
  /**
75
58
  * Extract filter life from device data in a centralized way
76
59
  */
@@ -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;AAkC9E,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,YAAY,CAAa;IACjC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,cAAc,CAAkB;gBAGtC,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,iBAAiB;IAmD3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAqIlB;;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;IA+I9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA+C9B;;OAEG;YACW,aAAa;IAW3B;;OAEG;YACW,cAAc;IAU5B;;OAEG;YACW,cAAc;IAS5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA0BzB;;OAEG;YACW,yBAAyB;IAOvC;;OAEG;YACW,kBAAkB;IAOhC;;OAEG;YACW,eAAe;IAI7B;;OAEG;IACH,SAAS,CAAC,qBAAqB,IAAI,kBAAkB;IAcrD;;OAEG;cACa,0BAA0B,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAoJvE;;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;AAkC9E,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,YAAY,CAAa;IACjC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,cAAc,CAAkB;gBAGtC,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,iBAAiB;IAiD3B;;OAEG;IACH,OAAO,CAAC,UAAU;IAqIlB;;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;IAkI9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA0BzB;;OAEG;YACW,yBAAyB;IAOvC;;OAEG;YACW,kBAAkB;IAOhC;;OAEG;YACW,eAAe;IAI7B;;OAEG;IACH,SAAS,CAAC,qBAAqB,IAAI,kBAAkB;IAcrD;;OAEG;cACa,0BAA0B,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA8GvE;;OAEG;YACW,cAAc;IAY5B;;OAEG;YACW,cAAc;IA2C5B;;OAEG;YACW,gBAAgB;IAqB9B;;OAEG;YACW,gBAAgB;YAmHhB,SAAS;YAIT,SAAS;CAsCxB"}
@@ -25,11 +25,11 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
25
25
  // Air131 Devices: LV-PUR131S, LV-RH131S
26
26
  this.isAir131Device = deviceType.startsWith('LV-');
27
27
  // Log device class detection with more detail
28
- this.platform.log.info(`Device Classification for ${this.device.deviceName}:`);
29
- this.platform.log.info(` - Device Type: "${deviceType}"`);
30
- this.platform.log.info(` - Is AirBypass: ${this.isAirBypassDevice}`);
31
- this.platform.log.info(` - Is AirBaseV2: ${this.isAirBaseV2Device}`);
32
- this.platform.log.info(` - Is Air131: ${this.isAir131Device}`);
28
+ this.platform.log.debug(`Device Classification for ${this.device.deviceName}:`);
29
+ this.platform.log.debug(` - Device Type: "${deviceType}"`);
30
+ this.platform.log.debug(` - Is AirBypass: ${this.isAirBypassDevice}`);
31
+ this.platform.log.debug(` - Is AirBaseV2: ${this.isAirBaseV2Device}`);
32
+ this.platform.log.debug(` - Is Air131: ${this.isAir131Device}`);
33
33
  if (this.isAirBypassDevice) {
34
34
  this.platform.log.debug(`Detected AirBypass device: ${this.device.deviceName} (${deviceType})`);
35
35
  }
@@ -42,13 +42,11 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
42
42
  else {
43
43
  this.platform.log.warn(`Unknown device class: ${this.device.deviceName} (${deviceType}) - device may not function properly`);
44
44
  }
45
- // Early check for Core200S and similar devices without air quality
46
- // This ensures we catch cached services even before setupService() is called
47
- if (!this.hasFeature('air_quality')) {
48
- const cachedAirQualityService = this.accessory.getService(this.platform.Service.AirQualitySensor);
49
- if (cachedAirQualityService) {
50
- this.platform.log.debug(`${this.device.deviceName} (${deviceType}): Found cached air quality service on device without AQ sensor - will be removed during setup`);
51
- }
45
+ // Remove any cached air quality service - these are now separate accessories
46
+ const cachedAirQualityService = this.accessory.getService(this.platform.Service.AirQualitySensor);
47
+ if (cachedAirQualityService) {
48
+ this.platform.log.debug(`${this.device.deviceName} (${deviceType}): Removing cached embedded AQ service - AQ sensors are now separate accessories`);
49
+ this.accessory.removeService(cachedAirQualityService);
52
50
  }
53
51
  }
54
52
  /**
@@ -58,28 +56,28 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
58
56
  var _a;
59
57
  const extendedDevice = this.device;
60
58
  // **ENHANCED DEBUGGING**: Log detailed device type information
61
- this.platform.log.info(`${this.device.deviceName}: FEATURE CHECK - hasFeature('${feature}') for device type: "${this.device.deviceType}"`);
59
+ this.platform.log.debug(`${this.device.deviceName}: FEATURE CHECK - hasFeature('${feature}') for device type: "${this.device.deviceType}"`);
62
60
  // Use device's native hasFeature method if available
63
61
  if (typeof extendedDevice.hasFeature === 'function') {
64
62
  const result = extendedDevice.hasFeature(feature);
65
- this.platform.log.info(`${this.device.deviceName} (${this.device.deviceType}): Native hasFeature('${feature}') returned: ${result} (using tsvesync library configuration)`);
63
+ this.platform.log.debug(`${this.device.deviceName} (${this.device.deviceType}): Native hasFeature('${feature}') returned: ${result} (using tsvesync library configuration)`);
66
64
  // For air_quality, trust the library's configuration completely
67
65
  // The library was updated in v1.0.107 to correctly exclude air_quality for devices without sensors
68
66
  if (feature === 'air_quality') {
69
- this.platform.log.info(`${this.device.deviceName} (${this.device.deviceType}): Air quality feature decision based on tsvesync library config: ${result}`);
67
+ this.platform.log.debug(`${this.device.deviceName} (${this.device.deviceType}): Air quality feature decision based on tsvesync library config: ${result}`);
70
68
  // Add extra debugging for Core200S devices
71
69
  if (this.device.deviceType.includes('Core200S') || this.device.deviceType.includes('LAP-C20')) {
72
- this.platform.log.info(`${this.device.deviceName} (${this.device.deviceType}): Core200S variant detected - should NOT have air quality! hasFeature returned: ${result}`);
70
+ this.platform.log.debug(`${this.device.deviceName} (${this.device.deviceType}): Core200S variant detected - should NOT have air quality! hasFeature returned: ${result}`);
73
71
  }
74
72
  return result;
75
73
  }
76
74
  // **CRITICAL FIX**: Enhanced filter_life detection with explicit Core300S support
77
75
  if (feature === 'filter_life') {
78
76
  const deviceType = this.device.deviceType;
79
- this.platform.log.info(`${this.device.deviceName} (${deviceType}): Native hasFeature('filter_life') returned: ${result}`);
77
+ this.platform.log.debug(`${this.device.deviceName} (${deviceType}): Native hasFeature('filter_life') returned: ${result}`);
80
78
  // **EXPLICIT Core300S CHECK**: Make sure Core300S is always recognized
81
79
  if (deviceType === 'Core300S' || deviceType.includes('Core300S')) {
82
- this.platform.log.info(`${this.device.deviceName}: Core300S detected - SHOULD support filter_life! Native result: ${result}`);
80
+ this.platform.log.debug(`${this.device.deviceName}: Core300S detected - SHOULD support filter_life! Native result: ${result}`);
83
81
  if (!result) {
84
82
  this.platform.log.warn(`${this.device.deviceName}: Core300S should support filter_life but native hasFeature returned false. OVERRIDING to true.`);
85
83
  return true;
@@ -103,9 +101,9 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
103
101
  // **EXPLICIT Core300S auto_mode CHECK**: Make sure Core300S auto mode is recognized
104
102
  if (feature === 'auto_mode') {
105
103
  const deviceType = this.device.deviceType;
106
- this.platform.log.info(`${this.device.deviceName} (${deviceType}): Native hasFeature('auto_mode') returned: ${result}`);
104
+ this.platform.log.debug(`${this.device.deviceName} (${deviceType}): Native hasFeature('auto_mode') returned: ${result}`);
107
105
  if (deviceType === 'Core300S' || deviceType.includes('Core300S')) {
108
- this.platform.log.info(`${this.device.deviceName}: Core300S detected - SHOULD support auto_mode! Native result: ${result}`);
106
+ this.platform.log.debug(`${this.device.deviceName}: Core300S detected - SHOULD support auto_mode! Native result: ${result}`);
109
107
  if (!result) {
110
108
  this.platform.log.warn(`${this.device.deviceName}: Core300S should support auto_mode but native hasFeature returned false. OVERRIDING to true.`);
111
109
  return true;
@@ -350,13 +348,16 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
350
348
  // Get or create the air purifier service
351
349
  this.service = this.accessory.getService(this.platform.Service.AirPurifier) ||
352
350
  this.accessory.addService(this.platform.Service.AirPurifier);
351
+ // Mark the AirPurifier service as primary
352
+ this.service.setPrimaryService(true);
353
+ this.platform.log.debug(`${this.device.deviceName}: Marked AirPurifier service as primary`);
353
354
  // **CRITICAL FIX**: Add optional characteristics FIRST before setting up handlers
354
355
  // This ensures they persist through service configuration
355
356
  this.platform.log.debug(`${this.device.deviceName} (${this.device.deviceType}): Pre-configuring optional characteristics`);
356
357
  // Always set up filter characteristics (like reference plugin does)
357
358
  // The reference implementation ALWAYS registers these for ALL air purifiers
358
359
  // This ensures they appear in HomeKit even if the device doesn't report having them initially
359
- this.platform.log.info(`${this.device.deviceName}: Setting up filter characteristics for all air purifiers`);
360
+ this.platform.log.debug(`${this.device.deviceName}: Setting up filter characteristics for all air purifiers`);
360
361
  // Use getCharacteristic which auto-adds if missing (like reference plugin)
361
362
  this.service.getCharacteristic(this.platform.Characteristic.FilterChangeIndication)
362
363
  .onGet(this.getFilterChangeIndication.bind(this));
@@ -367,28 +368,28 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
367
368
  maxValue: 100,
368
369
  minStep: 1
369
370
  });
370
- this.platform.log.info(`${this.device.deviceName}: Filter characteristics registered (always present for air purifiers)`);
371
+ this.platform.log.debug(`${this.device.deviceName}: Filter characteristics registered (always present for air purifiers)`);
371
372
  // Set up required characteristics
372
373
  this.setupCharacteristic(this.platform.Characteristic.Active, this.getActive.bind(this), this.setActive.bind(this));
373
374
  // Set up target state characteristic for mode mapping
374
375
  const targetStateChar = this.service.getCharacteristic(this.platform.Characteristic.TargetAirPurifierState);
375
376
  // Check if device supports auto mode
376
377
  const hasAutoMode = this.hasFeature('auto_mode');
377
- this.platform.log.info(`${this.device.deviceName} (${this.device.deviceType}): Auto mode support check - hasFeature('auto_mode') = ${hasAutoMode}`);
378
+ this.platform.log.debug(`${this.device.deviceName} (${this.device.deviceType}): Auto mode support check - hasFeature('auto_mode') = ${hasAutoMode}`);
378
379
  // For Core200S, only allow manual mode
379
380
  if (this.device.deviceType.includes('Core200S')) {
380
381
  targetStateChar.setProps({
381
382
  validValues: [0] // MANUAL only
382
383
  });
383
- this.platform.log.info(`${this.device.deviceName} (Core200S): Configured for MANUAL mode only - no auto mode support`);
384
+ this.platform.log.debug(`${this.device.deviceName} (Core200S): Configured for MANUAL mode only - no auto mode support`);
384
385
  }
385
386
  else if (this.device.deviceType.includes('Core300S')) {
386
387
  // Core300S explicitly supports both modes
387
388
  targetStateChar.setProps({
388
389
  validValues: [0, 1] // MANUAL and AUTO
389
390
  });
390
- this.platform.log.info(`${this.device.deviceName} (Core300S): ✅ Configured for BOTH AUTO and MANUAL modes - auto mode ENABLED`);
391
- this.platform.log.info(`${this.device.deviceName} (Core300S): Target state characteristic should now show mode switcher in HomeKit`);
391
+ this.platform.log.debug(`${this.device.deviceName} (Core300S): ✅ Configured for BOTH AUTO and MANUAL modes - auto mode ENABLED`);
392
+ this.platform.log.debug(`${this.device.deviceName} (Core300S): Target state characteristic should now show mode switcher in HomeKit`);
392
393
  }
393
394
  else if (hasAutoMode) {
394
395
  // Other devices with auto_mode feature
@@ -402,7 +403,7 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
402
403
  targetStateChar.setProps({
403
404
  validValues: [0] // MANUAL only
404
405
  });
405
- this.platform.log.info(`${this.device.deviceName} (${this.device.deviceType}): Configured for MANUAL mode only - no auto mode feature`);
406
+ this.platform.log.debug(`${this.device.deviceName} (${this.device.deviceType}): Configured for MANUAL mode only - no auto mode feature`);
406
407
  }
407
408
  // Set up the characteristic handlers for all devices
408
409
  this.setupCharacteristic(this.platform.Characteristic.TargetAirPurifierState, this.getTargetState.bind(this), this.setTargetState.bind(this));
@@ -421,98 +422,24 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
421
422
  this.platform.log.debug(`${this.device.deviceName}: Configured RotationSpeed with minStep: ${minStep}`);
422
423
  // Add Name characteristic
423
424
  this.setupCharacteristic(this.platform.Characteristic.Name, async () => this.device.deviceName);
424
- // Set up air quality sensor service if supported
425
- this.platform.log.debug(`${this.device.deviceName} (${this.device.deviceType}): Checking air_quality feature...`);
426
- // Always check for existing air quality service first
425
+ // Air quality sensors are now separate accessories
426
+ // Remove any legacy embedded AQ service
427
427
  const existingAirQualityService = this.accessory.getService(this.platform.Service.AirQualitySensor);
428
- // Check if device supports air quality
429
- const hasAirQuality = this.hasFeature('air_quality');
430
- this.platform.log.debug(`${this.device.deviceName} (${this.device.deviceType}): hasFeature('air_quality') returned ${hasAirQuality}`);
431
- if (hasAirQuality) {
432
- this.platform.log.debug(`${this.device.deviceName} (${this.device.deviceType}): Device has air quality sensor - setting up air quality service`);
433
- this.setupAirQualityService();
434
- }
435
- else {
436
- this.platform.log.debug(`${this.device.deviceName}: Device does not have air quality sensor - removing any air quality service`);
437
- // Remove any existing air quality service and clear the reference
438
- if (existingAirQualityService) {
439
- this.platform.log.debug(`${this.device.deviceName}: Found existing air quality service on device without AQ sensor - removing it`);
440
- this.accessory.removeService(existingAirQualityService);
441
- // Clear the reference to ensure it's not used elsewhere
442
- this.airQualityService = undefined;
443
- }
444
- // Ensure the reference is cleared even if no service was found
445
- this.airQualityService = undefined;
428
+ if (existingAirQualityService) {
429
+ this.platform.log.debug(`${this.device.deviceName}: Removing legacy embedded air quality service`);
430
+ this.accessory.removeService(existingAirQualityService);
446
431
  }
447
432
  // Clean up any existing FilterMaintenance service (from old implementation)
448
433
  const existingFilterService = this.accessory.getService(this.platform.Service.FilterMaintenance);
449
434
  if (existingFilterService) {
450
- this.platform.log.info(`${this.device.deviceName}: Removing old FilterMaintenance service (migrating to AirPurifier service)`);
435
+ this.platform.log.debug(`${this.device.deviceName}: Removing old FilterMaintenance service (migrating to AirPurifier service)`);
451
436
  this.accessory.removeService(existingFilterService);
452
437
  }
453
438
  // Check and log important features for debugging
454
439
  const autoModeSupported = this.hasFeature('auto_mode');
455
- this.platform.log.info(`${this.device.deviceName} (${this.device.deviceType}): Features detected:`);
456
- this.platform.log.info(` - auto_mode: ${autoModeSupported} (controls mode switch)`);
457
- this.platform.log.info(` - filter_life: ${this.hasFeature('filter_life')} (controls filter display)`);
458
- }
459
- /**
460
- * Set up the air quality sensor service
461
- */
462
- setupAirQualityService() {
463
- var _a;
464
- this.platform.log.debug(`Setting up air quality service for ${this.device.deviceName}`);
465
- // Get or create the air quality sensor service
466
- this.airQualityService = this.accessory.getService(this.platform.Service.AirQualitySensor) ||
467
- this.accessory.addService(this.platform.Service.AirQualitySensor);
468
- // Set up required air quality characteristic
469
- this.setupCharacteristic(this.platform.Characteristic.AirQuality, this.getAirQuality.bind(this), undefined, {}, this.airQualityService);
470
- // Set up optional PM2.5 density characteristic
471
- this.setupCharacteristic(this.platform.Characteristic.PM2_5Density, this.getPM25Density.bind(this), undefined, {
472
- minValue: 0,
473
- maxValue: 1000,
474
- minStep: 1
475
- }, this.airQualityService);
476
- // Set up optional PM10 density characteristic (if available)
477
- const extendedDevice = this.device;
478
- if (((_a = extendedDevice.details) === null || _a === void 0 ? void 0 : _a.pm10) !== undefined) {
479
- this.setupCharacteristic(this.platform.Characteristic.PM10Density, this.getPM10Density.bind(this), undefined, {
480
- minValue: 0,
481
- maxValue: 1000,
482
- minStep: 1
483
- }, this.airQualityService);
484
- }
485
- }
486
- /**
487
- * Get air quality level for HomeKit
488
- */
489
- async getAirQuality() {
490
- var _a, _b, _c, _d;
491
- const extendedDevice = this.device;
492
- // Get PM2.5 value from device
493
- 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;
494
- // Convert to HomeKit air quality scale using existing method
495
- return this.convertAirQualityToHomeKit(pm25);
496
- }
497
- /**
498
- * Get PM2.5 density
499
- */
500
- async getPM25Density() {
501
- var _a, _b, _c, _d;
502
- const extendedDevice = this.device;
503
- 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;
504
- // Ensure value is within HomeKit limits (0-1000)
505
- return Math.min(1000, Math.max(0, pm25));
506
- }
507
- /**
508
- * Get PM10 density
509
- */
510
- async getPM10Density() {
511
- var _a, _b;
512
- const extendedDevice = this.device;
513
- const pm10 = (_b = (_a = extendedDevice.details) === null || _a === void 0 ? void 0 : _a.pm10) !== null && _b !== void 0 ? _b : 0;
514
- // Ensure value is within HomeKit limits (0-1000)
515
- return Math.min(1000, Math.max(0, pm10));
440
+ this.platform.log.debug(`${this.device.deviceName} (${this.device.deviceType}): Features detected:`);
441
+ this.platform.log.debug(` - auto_mode: ${autoModeSupported} (controls mode switch)`);
442
+ this.platform.log.debug(` - filter_life: ${this.hasFeature('filter_life')} (controls filter display)`);
516
443
  }
517
444
  /**
518
445
  * Extract filter life from device data in a centralized way
@@ -566,7 +493,7 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
566
493
  getDeviceCapabilities() {
567
494
  return {
568
495
  hasSpeed: true,
569
- hasAirQuality: this.hasFeature('air_quality'),
496
+ hasAirQuality: false,
570
497
  hasChildLock: false,
571
498
  hasBrightness: false,
572
499
  hasColorTemp: false,
@@ -580,7 +507,7 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
580
507
  * Update device states based on the latest details
581
508
  */
582
509
  async updateDeviceSpecificStates(details) {
583
- var _a, _b, _c, _d, _e, _f, _g;
510
+ var _a, _b;
584
511
  // Update power state
585
512
  const isOn = details.enabled || details.deviceStatus === 'on';
586
513
  this.service.updateCharacteristic(this.platform.Characteristic.Active, isOn ? 1 : 0);
@@ -642,40 +569,15 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
642
569
  this.lastSetSpeed = 0;
643
570
  this.lastSetPercentage = 0;
644
571
  }
645
- // Update air quality characteristics if service exists AND device supports air quality
646
- if (this.hasFeature('air_quality')) {
647
- // Device supports air quality - update characteristics if service exists
648
- if (this.airQualityService) {
649
- const extendedDevice = this.device;
650
- // Update air quality level
651
- 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;
652
- const airQualityLevel = this.convertAirQualityToHomeKit(pm25);
653
- this.airQualityService.updateCharacteristic(this.platform.Characteristic.AirQuality, airQualityLevel);
654
- // Update PM2.5 density
655
- this.airQualityService.updateCharacteristic(this.platform.Characteristic.PM2_5Density, Math.min(1000, Math.max(0, pm25)));
656
- // Update PM10 density if available
657
- if (((_e = extendedDevice.details) === null || _e === void 0 ? void 0 : _e.pm10) !== undefined) {
658
- this.airQualityService.updateCharacteristic(this.platform.Characteristic.PM10Density, Math.min(1000, Math.max(0, extendedDevice.details.pm10)));
659
- }
660
- }
661
- }
662
- else {
663
- // Device does not support air quality - remove any existing service
664
- // Check both our reference and the actual accessory for any air quality service
665
- const existingService = this.airQualityService || this.accessory.getService(this.platform.Service.AirQualitySensor);
666
- if (existingService) {
667
- this.platform.log.debug(`${this.device.deviceName}: Device does not support air quality but service exists - removing it now`);
668
- this.accessory.removeService(existingService);
669
- this.airQualityService = undefined;
670
- }
671
- }
572
+ // Air quality is now handled by separate accessories
573
+ // No need to update AQ characteristics here
672
574
  // Update filter characteristics on main service if supported
673
575
  if (this.hasFeature('filter_life')) {
674
576
  const filterLife = this.extractFilterLife();
675
577
  // Update filter change indication on main service
676
- (_f = this.service) === null || _f === void 0 ? void 0 : _f.updateCharacteristic(this.platform.Characteristic.FilterChangeIndication, filterLife < 10 ? 1 : 0);
578
+ (_a = this.service) === null || _a === void 0 ? void 0 : _a.updateCharacteristic(this.platform.Characteristic.FilterChangeIndication, filterLife < 10 ? 1 : 0);
677
579
  // Update filter life level on main service
678
- (_g = this.service) === null || _g === void 0 ? void 0 : _g.updateCharacteristic(this.platform.Characteristic.FilterLifeLevel, Math.min(100, Math.max(0, filterLife)));
580
+ (_b = this.service) === null || _b === void 0 ? void 0 : _b.updateCharacteristic(this.platform.Characteristic.FilterLifeLevel, Math.min(100, Math.max(0, filterLife)));
679
581
  }
680
582
  }
681
583
  /**
@@ -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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"}