homebridge-tsvesync 1.0.123 → 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 +54 -0
- package/dist/accessories/air-purifier.accessory.d.ts +0 -17
- package/dist/accessories/air-purifier.accessory.d.ts.map +1 -1
- package/dist/accessories/air-purifier.accessory.js +42 -151
- package/dist/accessories/air-purifier.accessory.js.map +1 -1
- package/dist/accessories/air-quality-sensor.accessory.d.ts +70 -0
- package/dist/accessories/air-quality-sensor.accessory.d.ts.map +1 -0
- package/dist/accessories/air-quality-sensor.accessory.js +204 -0
- package/dist/accessories/air-quality-sensor.accessory.js.map +1 -0
- package/dist/platform.d.ts +8 -0
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +67 -2
- package/dist/platform.js.map +1 -1
- package/dist/utils/device-factory.d.ts +2 -1
- package/dist/utils/device-factory.d.ts.map +1 -1
- package/dist/utils/device-factory.js +25 -0
- package/dist/utils/device-factory.js.map +1 -1
- package/package.json +2 -2
- package/src/accessories/air-purifier.accessory.ts +39 -195
- package/src/accessories/air-quality-sensor.accessory.ts +237 -0
- package/src/platform.ts +81 -2
- package/src/utils/device-factory.ts +35 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,59 @@
|
|
|
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
|
+
|
|
3
57
|
## 1.0.123 (2025-08-29)
|
|
4
58
|
|
|
5
59
|
### 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,
|
|
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.
|
|
29
|
-
this.platform.log.
|
|
30
|
-
this.platform.log.
|
|
31
|
-
this.platform.log.
|
|
32
|
-
this.platform.log.
|
|
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
|
-
//
|
|
46
|
-
|
|
47
|
-
if (
|
|
48
|
-
|
|
49
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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,18 +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);
|
|
353
|
-
//
|
|
354
|
-
// This ensures HomeKit shows the controls instead of the info page
|
|
355
|
-
// when there are multiple services (e.g., with AirQualitySensor)
|
|
351
|
+
// Mark the AirPurifier service as primary
|
|
356
352
|
this.service.setPrimaryService(true);
|
|
357
|
-
this.platform.log.
|
|
353
|
+
this.platform.log.debug(`${this.device.deviceName}: Marked AirPurifier service as primary`);
|
|
358
354
|
// **CRITICAL FIX**: Add optional characteristics FIRST before setting up handlers
|
|
359
355
|
// This ensures they persist through service configuration
|
|
360
356
|
this.platform.log.debug(`${this.device.deviceName} (${this.device.deviceType}): Pre-configuring optional characteristics`);
|
|
361
357
|
// Always set up filter characteristics (like reference plugin does)
|
|
362
358
|
// The reference implementation ALWAYS registers these for ALL air purifiers
|
|
363
359
|
// This ensures they appear in HomeKit even if the device doesn't report having them initially
|
|
364
|
-
this.platform.log.
|
|
360
|
+
this.platform.log.debug(`${this.device.deviceName}: Setting up filter characteristics for all air purifiers`);
|
|
365
361
|
// Use getCharacteristic which auto-adds if missing (like reference plugin)
|
|
366
362
|
this.service.getCharacteristic(this.platform.Characteristic.FilterChangeIndication)
|
|
367
363
|
.onGet(this.getFilterChangeIndication.bind(this));
|
|
@@ -372,28 +368,28 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
372
368
|
maxValue: 100,
|
|
373
369
|
minStep: 1
|
|
374
370
|
});
|
|
375
|
-
this.platform.log.
|
|
371
|
+
this.platform.log.debug(`${this.device.deviceName}: Filter characteristics registered (always present for air purifiers)`);
|
|
376
372
|
// Set up required characteristics
|
|
377
373
|
this.setupCharacteristic(this.platform.Characteristic.Active, this.getActive.bind(this), this.setActive.bind(this));
|
|
378
374
|
// Set up target state characteristic for mode mapping
|
|
379
375
|
const targetStateChar = this.service.getCharacteristic(this.platform.Characteristic.TargetAirPurifierState);
|
|
380
376
|
// Check if device supports auto mode
|
|
381
377
|
const hasAutoMode = this.hasFeature('auto_mode');
|
|
382
|
-
this.platform.log.
|
|
378
|
+
this.platform.log.debug(`${this.device.deviceName} (${this.device.deviceType}): Auto mode support check - hasFeature('auto_mode') = ${hasAutoMode}`);
|
|
383
379
|
// For Core200S, only allow manual mode
|
|
384
380
|
if (this.device.deviceType.includes('Core200S')) {
|
|
385
381
|
targetStateChar.setProps({
|
|
386
382
|
validValues: [0] // MANUAL only
|
|
387
383
|
});
|
|
388
|
-
this.platform.log.
|
|
384
|
+
this.platform.log.debug(`${this.device.deviceName} (Core200S): Configured for MANUAL mode only - no auto mode support`);
|
|
389
385
|
}
|
|
390
386
|
else if (this.device.deviceType.includes('Core300S')) {
|
|
391
387
|
// Core300S explicitly supports both modes
|
|
392
388
|
targetStateChar.setProps({
|
|
393
389
|
validValues: [0, 1] // MANUAL and AUTO
|
|
394
390
|
});
|
|
395
|
-
this.platform.log.
|
|
396
|
-
this.platform.log.
|
|
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`);
|
|
397
393
|
}
|
|
398
394
|
else if (hasAutoMode) {
|
|
399
395
|
// Other devices with auto_mode feature
|
|
@@ -407,7 +403,7 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
407
403
|
targetStateChar.setProps({
|
|
408
404
|
validValues: [0] // MANUAL only
|
|
409
405
|
});
|
|
410
|
-
this.platform.log.
|
|
406
|
+
this.platform.log.debug(`${this.device.deviceName} (${this.device.deviceType}): Configured for MANUAL mode only - no auto mode feature`);
|
|
411
407
|
}
|
|
412
408
|
// Set up the characteristic handlers for all devices
|
|
413
409
|
this.setupCharacteristic(this.platform.Characteristic.TargetAirPurifierState, this.getTargetState.bind(this), this.setTargetState.bind(this));
|
|
@@ -426,104 +422,24 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
426
422
|
this.platform.log.debug(`${this.device.deviceName}: Configured RotationSpeed with minStep: ${minStep}`);
|
|
427
423
|
// Add Name characteristic
|
|
428
424
|
this.setupCharacteristic(this.platform.Characteristic.Name, async () => this.device.deviceName);
|
|
429
|
-
//
|
|
430
|
-
|
|
431
|
-
// Always check for existing air quality service first
|
|
425
|
+
// Air quality sensors are now separate accessories
|
|
426
|
+
// Remove any legacy embedded AQ service
|
|
432
427
|
const existingAirQualityService = this.accessory.getService(this.platform.Service.AirQualitySensor);
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
if (hasAirQuality) {
|
|
437
|
-
this.platform.log.debug(`${this.device.deviceName} (${this.device.deviceType}): Device has air quality sensor - setting up air quality service`);
|
|
438
|
-
this.setupAirQualityService();
|
|
439
|
-
}
|
|
440
|
-
else {
|
|
441
|
-
this.platform.log.debug(`${this.device.deviceName}: Device does not have air quality sensor - removing any air quality service`);
|
|
442
|
-
// Remove any existing air quality service and clear the reference
|
|
443
|
-
if (existingAirQualityService) {
|
|
444
|
-
this.platform.log.debug(`${this.device.deviceName}: Found existing air quality service on device without AQ sensor - removing it`);
|
|
445
|
-
this.accessory.removeService(existingAirQualityService);
|
|
446
|
-
// Clear the reference to ensure it's not used elsewhere
|
|
447
|
-
this.airQualityService = undefined;
|
|
448
|
-
}
|
|
449
|
-
// Ensure the reference is cleared even if no service was found
|
|
450
|
-
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);
|
|
451
431
|
}
|
|
452
432
|
// Clean up any existing FilterMaintenance service (from old implementation)
|
|
453
433
|
const existingFilterService = this.accessory.getService(this.platform.Service.FilterMaintenance);
|
|
454
434
|
if (existingFilterService) {
|
|
455
|
-
this.platform.log.
|
|
435
|
+
this.platform.log.debug(`${this.device.deviceName}: Removing old FilterMaintenance service (migrating to AirPurifier service)`);
|
|
456
436
|
this.accessory.removeService(existingFilterService);
|
|
457
437
|
}
|
|
458
438
|
// Check and log important features for debugging
|
|
459
439
|
const autoModeSupported = this.hasFeature('auto_mode');
|
|
460
|
-
this.platform.log.
|
|
461
|
-
this.platform.log.
|
|
462
|
-
this.platform.log.
|
|
463
|
-
}
|
|
464
|
-
/**
|
|
465
|
-
* Set up the air quality sensor service
|
|
466
|
-
*/
|
|
467
|
-
setupAirQualityService() {
|
|
468
|
-
var _a;
|
|
469
|
-
this.platform.log.debug(`Setting up air quality service for ${this.device.deviceName}`);
|
|
470
|
-
// Get or create the air quality sensor service
|
|
471
|
-
this.airQualityService = this.accessory.getService(this.platform.Service.AirQualitySensor) ||
|
|
472
|
-
this.accessory.addService(this.platform.Service.AirQualitySensor);
|
|
473
|
-
// Mark this as a linked service (not primary)
|
|
474
|
-
// The AirPurifier service is the primary service
|
|
475
|
-
if (this.service) {
|
|
476
|
-
this.airQualityService.addLinkedService(this.service);
|
|
477
|
-
this.platform.log.info(`${this.device.deviceName}: Linked AirQualitySensor service to PRIMARY AirPurifier service`);
|
|
478
|
-
}
|
|
479
|
-
// Set up required air quality characteristic
|
|
480
|
-
this.setupCharacteristic(this.platform.Characteristic.AirQuality, this.getAirQuality.bind(this), undefined, {}, this.airQualityService);
|
|
481
|
-
// Set up optional PM2.5 density characteristic
|
|
482
|
-
this.setupCharacteristic(this.platform.Characteristic.PM2_5Density, this.getPM25Density.bind(this), undefined, {
|
|
483
|
-
minValue: 0,
|
|
484
|
-
maxValue: 1000,
|
|
485
|
-
minStep: 1
|
|
486
|
-
}, this.airQualityService);
|
|
487
|
-
// Set up optional PM10 density characteristic (if available)
|
|
488
|
-
const extendedDevice = this.device;
|
|
489
|
-
if (((_a = extendedDevice.details) === null || _a === void 0 ? void 0 : _a.pm10) !== undefined) {
|
|
490
|
-
this.setupCharacteristic(this.platform.Characteristic.PM10Density, this.getPM10Density.bind(this), undefined, {
|
|
491
|
-
minValue: 0,
|
|
492
|
-
maxValue: 1000,
|
|
493
|
-
minStep: 1
|
|
494
|
-
}, this.airQualityService);
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
/**
|
|
498
|
-
* Get air quality level for HomeKit
|
|
499
|
-
*/
|
|
500
|
-
async getAirQuality() {
|
|
501
|
-
var _a, _b, _c, _d;
|
|
502
|
-
const extendedDevice = this.device;
|
|
503
|
-
// Get PM2.5 value from device
|
|
504
|
-
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;
|
|
505
|
-
// Convert to HomeKit air quality scale using existing method
|
|
506
|
-
return this.convertAirQualityToHomeKit(pm25);
|
|
507
|
-
}
|
|
508
|
-
/**
|
|
509
|
-
* Get PM2.5 density
|
|
510
|
-
*/
|
|
511
|
-
async getPM25Density() {
|
|
512
|
-
var _a, _b, _c, _d;
|
|
513
|
-
const extendedDevice = this.device;
|
|
514
|
-
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;
|
|
515
|
-
// Ensure value is within HomeKit limits (0-1000)
|
|
516
|
-
return Math.min(1000, Math.max(0, pm25));
|
|
517
|
-
}
|
|
518
|
-
/**
|
|
519
|
-
* Get PM10 density
|
|
520
|
-
*/
|
|
521
|
-
async getPM10Density() {
|
|
522
|
-
var _a, _b;
|
|
523
|
-
const extendedDevice = this.device;
|
|
524
|
-
const pm10 = (_b = (_a = extendedDevice.details) === null || _a === void 0 ? void 0 : _a.pm10) !== null && _b !== void 0 ? _b : 0;
|
|
525
|
-
// Ensure value is within HomeKit limits (0-1000)
|
|
526
|
-
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)`);
|
|
527
443
|
}
|
|
528
444
|
/**
|
|
529
445
|
* Extract filter life from device data in a centralized way
|
|
@@ -577,7 +493,7 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
577
493
|
getDeviceCapabilities() {
|
|
578
494
|
return {
|
|
579
495
|
hasSpeed: true,
|
|
580
|
-
hasAirQuality:
|
|
496
|
+
hasAirQuality: false,
|
|
581
497
|
hasChildLock: false,
|
|
582
498
|
hasBrightness: false,
|
|
583
499
|
hasColorTemp: false,
|
|
@@ -591,7 +507,7 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
591
507
|
* Update device states based on the latest details
|
|
592
508
|
*/
|
|
593
509
|
async updateDeviceSpecificStates(details) {
|
|
594
|
-
var _a, _b
|
|
510
|
+
var _a, _b;
|
|
595
511
|
// Update power state
|
|
596
512
|
const isOn = details.enabled || details.deviceStatus === 'on';
|
|
597
513
|
this.service.updateCharacteristic(this.platform.Characteristic.Active, isOn ? 1 : 0);
|
|
@@ -653,40 +569,15 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
653
569
|
this.lastSetSpeed = 0;
|
|
654
570
|
this.lastSetPercentage = 0;
|
|
655
571
|
}
|
|
656
|
-
//
|
|
657
|
-
|
|
658
|
-
// Device supports air quality - update characteristics if service exists
|
|
659
|
-
if (this.airQualityService) {
|
|
660
|
-
const extendedDevice = this.device;
|
|
661
|
-
// Update air quality level
|
|
662
|
-
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;
|
|
663
|
-
const airQualityLevel = this.convertAirQualityToHomeKit(pm25);
|
|
664
|
-
this.airQualityService.updateCharacteristic(this.platform.Characteristic.AirQuality, airQualityLevel);
|
|
665
|
-
// Update PM2.5 density
|
|
666
|
-
this.airQualityService.updateCharacteristic(this.platform.Characteristic.PM2_5Density, Math.min(1000, Math.max(0, pm25)));
|
|
667
|
-
// Update PM10 density if available
|
|
668
|
-
if (((_e = extendedDevice.details) === null || _e === void 0 ? void 0 : _e.pm10) !== undefined) {
|
|
669
|
-
this.airQualityService.updateCharacteristic(this.platform.Characteristic.PM10Density, Math.min(1000, Math.max(0, extendedDevice.details.pm10)));
|
|
670
|
-
}
|
|
671
|
-
}
|
|
672
|
-
}
|
|
673
|
-
else {
|
|
674
|
-
// Device does not support air quality - remove any existing service
|
|
675
|
-
// Check both our reference and the actual accessory for any air quality service
|
|
676
|
-
const existingService = this.airQualityService || this.accessory.getService(this.platform.Service.AirQualitySensor);
|
|
677
|
-
if (existingService) {
|
|
678
|
-
this.platform.log.debug(`${this.device.deviceName}: Device does not support air quality but service exists - removing it now`);
|
|
679
|
-
this.accessory.removeService(existingService);
|
|
680
|
-
this.airQualityService = undefined;
|
|
681
|
-
}
|
|
682
|
-
}
|
|
572
|
+
// Air quality is now handled by separate accessories
|
|
573
|
+
// No need to update AQ characteristics here
|
|
683
574
|
// Update filter characteristics on main service if supported
|
|
684
575
|
if (this.hasFeature('filter_life')) {
|
|
685
576
|
const filterLife = this.extractFilterLife();
|
|
686
577
|
// Update filter change indication on main service
|
|
687
|
-
(
|
|
578
|
+
(_a = this.service) === null || _a === void 0 ? void 0 : _a.updateCharacteristic(this.platform.Characteristic.FilterChangeIndication, filterLife < 10 ? 1 : 0);
|
|
688
579
|
// Update filter life level on main service
|
|
689
|
-
(
|
|
580
|
+
(_b = this.service) === null || _b === void 0 ? void 0 : _b.updateCharacteristic(this.platform.Characteristic.FilterLifeLevel, Math.min(100, Math.max(0, filterLife)));
|
|
690
581
|
}
|
|
691
582
|
}
|
|
692
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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"}
|