homebridge-tsvesync 1.0.91 → 1.0.93
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.
|
@@ -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;
|
|
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;IA2ClB;;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;IA0J9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA8C9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8C1B;;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;IA+JvE;;OAEG;YACW,cAAc;IAY5B;;OAEG;YACW,cAAc;IA2C5B;;OAEG;YACW,gBAAgB;IAqB9B;;OAEG;YACW,gBAAgB;YAmHhB,SAAS;YAIT,SAAS;CAsCxB"}
|
|
@@ -52,10 +52,10 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
52
52
|
case 'air_quality':
|
|
53
53
|
// Enable air quality features for devices that support it
|
|
54
54
|
// Check if device has air quality data available
|
|
55
|
-
const
|
|
56
|
-
return !!(((_a =
|
|
57
|
-
((_b =
|
|
58
|
-
((_c =
|
|
55
|
+
const airQualityDevice = this.device;
|
|
56
|
+
return !!(((_a = airQualityDevice.details) === null || _a === void 0 ? void 0 : _a.air_quality_value) !== undefined ||
|
|
57
|
+
((_b = airQualityDevice.details) === null || _b === void 0 ? void 0 : _b.pm25) !== undefined ||
|
|
58
|
+
((_c = airQualityDevice.details) === null || _c === void 0 ? void 0 : _c.air_quality) !== undefined);
|
|
59
59
|
case 'child_lock':
|
|
60
60
|
// Explicitly disable child lock features
|
|
61
61
|
return false;
|
|
@@ -64,8 +64,12 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
64
64
|
return false;
|
|
65
65
|
case 'filter_life':
|
|
66
66
|
// Enable filter life features for devices that support it
|
|
67
|
-
const
|
|
68
|
-
|
|
67
|
+
const filterDevice = this.device;
|
|
68
|
+
// Check if filter_life data exists in any format (number or object with percent)
|
|
69
|
+
const filterLife = (_d = filterDevice.details) === null || _d === void 0 ? void 0 : _d.filter_life;
|
|
70
|
+
return !!(filterLife !== undefined &&
|
|
71
|
+
(typeof filterLife === 'number' ||
|
|
72
|
+
(typeof filterLife === 'object' && filterLife !== null && 'percent' in filterLife)));
|
|
69
73
|
case 'fan_speed':
|
|
70
74
|
return true;
|
|
71
75
|
default:
|
|
@@ -402,10 +406,16 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
402
406
|
* Set up the filter maintenance service
|
|
403
407
|
*/
|
|
404
408
|
setupFilterService() {
|
|
405
|
-
|
|
406
|
-
|
|
409
|
+
var _a;
|
|
410
|
+
this.platform.log.debug(`Setting up filter maintenance service for ${this.device.deviceName}`);
|
|
411
|
+
// Log filter life data for debugging
|
|
412
|
+
const extendedDevice = this.device;
|
|
413
|
+
const filterLifeData = (_a = extendedDevice.details) === null || _a === void 0 ? void 0 : _a.filter_life;
|
|
414
|
+
this.platform.log.debug(`Filter life data: ${JSON.stringify(filterLifeData)} (type: ${typeof filterLifeData})`);
|
|
415
|
+
// Get or create the filter maintenance service (match humidifier implementation)
|
|
407
416
|
this.filterService = this.accessory.getService(this.platform.Service.FilterMaintenance) ||
|
|
408
417
|
this.accessory.addService(this.platform.Service.FilterMaintenance);
|
|
418
|
+
this.platform.log.debug(`Filter maintenance service ${this.filterService ? 'created/found' : 'FAILED to create'} for ${this.device.deviceName}`);
|
|
409
419
|
// Set up required filter change indication characteristic
|
|
410
420
|
this.setupCharacteristic(this.platform.Characteristic.FilterChangeIndication, this.getFilterChangeIndication.bind(this), undefined, {}, this.filterService);
|
|
411
421
|
// Set up optional filter life level characteristic
|
|
@@ -414,6 +424,8 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
414
424
|
maxValue: 100,
|
|
415
425
|
minStep: 1
|
|
416
426
|
}, this.filterService);
|
|
427
|
+
// Set service name using setupCharacteristic like the humidifier
|
|
428
|
+
this.setupCharacteristic(this.platform.Characteristic.Name, async () => `${this.device.deviceName} Filter`, undefined, {}, this.filterService);
|
|
417
429
|
}
|
|
418
430
|
/**
|
|
419
431
|
* Get air quality level for HomeKit
|
|
@@ -450,9 +462,30 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
450
462
|
* Get filter change indication
|
|
451
463
|
*/
|
|
452
464
|
async getFilterChangeIndication() {
|
|
453
|
-
var _a
|
|
465
|
+
var _a;
|
|
454
466
|
const extendedDevice = this.device;
|
|
455
|
-
|
|
467
|
+
// Use the filterLife property from the VeSync device, which already handles different formats
|
|
468
|
+
// Fall back to manual parsing if filterLife property is not available
|
|
469
|
+
let filterLife = 100; // Default to 100% if no filter life data
|
|
470
|
+
if (typeof extendedDevice.filterLife === 'number' && !isNaN(extendedDevice.filterLife)) {
|
|
471
|
+
// Use the built-in filterLife property from VeSyncFan
|
|
472
|
+
filterLife = extendedDevice.filterLife;
|
|
473
|
+
}
|
|
474
|
+
else {
|
|
475
|
+
// Fallback: manually parse details.filter_life for compatibility
|
|
476
|
+
const filterLifeData = (_a = extendedDevice.details) === null || _a === void 0 ? void 0 : _a.filter_life;
|
|
477
|
+
if (typeof filterLifeData === 'number' && !isNaN(filterLifeData)) {
|
|
478
|
+
filterLife = filterLifeData;
|
|
479
|
+
}
|
|
480
|
+
else if (typeof filterLifeData === 'object' && filterLifeData !== null && 'percent' in filterLifeData) {
|
|
481
|
+
const percent = filterLifeData.percent;
|
|
482
|
+
filterLife = (typeof percent === 'number' && !isNaN(percent)) ? percent : 100;
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
// Handle NaN, null, undefined cases
|
|
486
|
+
if (isNaN(filterLife) || filterLife === null || filterLife === undefined) {
|
|
487
|
+
filterLife = 100; // Default to 100 (filter OK) for invalid values in change indication
|
|
488
|
+
}
|
|
456
489
|
// Indicate filter change needed when life is below 10%
|
|
457
490
|
return filterLife < 10 ? 1 : 0; // 0=FILTER_OK, 1=CHANGE_FILTER
|
|
458
491
|
}
|
|
@@ -460,11 +493,32 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
460
493
|
* Get filter life level
|
|
461
494
|
*/
|
|
462
495
|
async getFilterLifeLevel() {
|
|
463
|
-
var _a
|
|
496
|
+
var _a;
|
|
464
497
|
const extendedDevice = this.device;
|
|
465
|
-
|
|
466
|
-
//
|
|
467
|
-
|
|
498
|
+
// Use the filterLife property from the VeSync device, which already handles different formats
|
|
499
|
+
// Fall back to manual parsing if filterLife property is not available
|
|
500
|
+
let filterLife = 100; // Default to 100% if no filter life data
|
|
501
|
+
if (typeof extendedDevice.filterLife === 'number' && !isNaN(extendedDevice.filterLife)) {
|
|
502
|
+
// Use the built-in filterLife property from VeSyncFan
|
|
503
|
+
filterLife = extendedDevice.filterLife;
|
|
504
|
+
}
|
|
505
|
+
else {
|
|
506
|
+
// Fallback: manually parse details.filter_life for compatibility
|
|
507
|
+
const filterLifeData = (_a = extendedDevice.details) === null || _a === void 0 ? void 0 : _a.filter_life;
|
|
508
|
+
if (typeof filterLifeData === 'number' && !isNaN(filterLifeData)) {
|
|
509
|
+
filterLife = filterLifeData;
|
|
510
|
+
}
|
|
511
|
+
else if (typeof filterLifeData === 'object' && filterLifeData !== null && 'percent' in filterLifeData) {
|
|
512
|
+
const percent = filterLifeData.percent;
|
|
513
|
+
filterLife = (typeof percent === 'number' && !isNaN(percent)) ? percent : 100;
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
// Handle NaN, null, undefined cases
|
|
517
|
+
if (isNaN(filterLife) || filterLife === null || filterLife === undefined) {
|
|
518
|
+
filterLife = 0; // Default to 0 for invalid values
|
|
519
|
+
}
|
|
520
|
+
// Ensure value is within HomeKit limits (0-100) and round to nearest integer
|
|
521
|
+
return Math.round(Math.min(100, Math.max(0, filterLife)));
|
|
468
522
|
}
|
|
469
523
|
/**
|
|
470
524
|
* Get current state (INACTIVE = 0, IDLE = 1, PURIFYING_AIR = 2)
|
|
@@ -492,7 +546,7 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
492
546
|
* Update device states based on the latest details
|
|
493
547
|
*/
|
|
494
548
|
async updateDeviceSpecificStates(details) {
|
|
495
|
-
var _a, _b, _c, _d, _e, _f
|
|
549
|
+
var _a, _b, _c, _d, _e, _f;
|
|
496
550
|
// Update power state
|
|
497
551
|
const isOn = details.enabled || details.deviceStatus === 'on';
|
|
498
552
|
this.service.updateCharacteristic(this.platform.Characteristic.Active, isOn ? 1 : 0);
|
|
@@ -571,7 +625,27 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
571
625
|
// Update filter characteristics if service exists
|
|
572
626
|
if (this.filterService && this.hasFeature('filter_life')) {
|
|
573
627
|
const extendedDevice = this.device;
|
|
574
|
-
|
|
628
|
+
// Use the same logic as the getter methods
|
|
629
|
+
let filterLife = 100; // Default to 100% if no filter life data
|
|
630
|
+
if (typeof extendedDevice.filterLife === 'number' && !isNaN(extendedDevice.filterLife)) {
|
|
631
|
+
// Use the built-in filterLife property from VeSyncFan
|
|
632
|
+
filterLife = extendedDevice.filterLife;
|
|
633
|
+
}
|
|
634
|
+
else {
|
|
635
|
+
// Fallback: manually parse details.filter_life for compatibility
|
|
636
|
+
const filterLifeData = (_f = extendedDevice.details) === null || _f === void 0 ? void 0 : _f.filter_life;
|
|
637
|
+
if (typeof filterLifeData === 'number' && !isNaN(filterLifeData)) {
|
|
638
|
+
filterLife = filterLifeData;
|
|
639
|
+
}
|
|
640
|
+
else if (typeof filterLifeData === 'object' && filterLifeData !== null && 'percent' in filterLifeData) {
|
|
641
|
+
const percent = filterLifeData.percent;
|
|
642
|
+
filterLife = (typeof percent === 'number' && !isNaN(percent)) ? percent : 100;
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
// Handle NaN, null, undefined cases
|
|
646
|
+
if (isNaN(filterLife) || filterLife === null || filterLife === undefined) {
|
|
647
|
+
filterLife = 100; // Default to 100% for invalid values
|
|
648
|
+
}
|
|
575
649
|
// Update filter change indication
|
|
576
650
|
this.filterService.updateCharacteristic(this.platform.Characteristic.FilterChangeIndication, filterLife < 10 ? 1 : 0);
|
|
577
651
|
// Update filter life level
|
|
@@ -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.
|
|
3
|
+
"version": "1.0.93",
|
|
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.
|
|
101
|
+
"tsvesync": "1.0.93"
|
|
102
102
|
},
|
|
103
103
|
"devDependencies": {
|
|
104
104
|
"@types/jest": "^29.5.11",
|
|
@@ -20,8 +20,10 @@ interface ExtendedVeSyncAirPurifier extends VeSyncAirPurifier {
|
|
|
20
20
|
hasFeature?(feature: string): boolean;
|
|
21
21
|
isFeatureSupportedInCurrentMode?(feature: string): boolean;
|
|
22
22
|
getMaxFanSpeed?(): number;
|
|
23
|
+
// Filter life property from VeSyncFan base class (inherited from VeSyncAirPurifier)
|
|
24
|
+
// filterLife: number; // Already defined in base interface
|
|
23
25
|
details?: {
|
|
24
|
-
filter_life?: number;
|
|
26
|
+
filter_life?: number | { percent: number };
|
|
25
27
|
child_lock?: boolean;
|
|
26
28
|
air_quality_value?: number;
|
|
27
29
|
air_quality?: string | number;
|
|
@@ -98,10 +100,10 @@ export class AirPurifierAccessory extends BaseAccessory {
|
|
|
98
100
|
case 'air_quality':
|
|
99
101
|
// Enable air quality features for devices that support it
|
|
100
102
|
// Check if device has air quality data available
|
|
101
|
-
const
|
|
102
|
-
return !!(
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
const airQualityDevice = this.device as unknown as ExtendedVeSyncAirPurifier;
|
|
104
|
+
return !!(airQualityDevice.details?.air_quality_value !== undefined ||
|
|
105
|
+
airQualityDevice.details?.pm25 !== undefined ||
|
|
106
|
+
airQualityDevice.details?.air_quality !== undefined);
|
|
105
107
|
|
|
106
108
|
case 'child_lock':
|
|
107
109
|
// Explicitly disable child lock features
|
|
@@ -113,8 +115,12 @@ export class AirPurifierAccessory extends BaseAccessory {
|
|
|
113
115
|
|
|
114
116
|
case 'filter_life':
|
|
115
117
|
// Enable filter life features for devices that support it
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
+
const filterDevice = this.device as unknown as ExtendedVeSyncAirPurifier;
|
|
119
|
+
// Check if filter_life data exists in any format (number or object with percent)
|
|
120
|
+
const filterLife = filterDevice.details?.filter_life;
|
|
121
|
+
return !!(filterLife !== undefined &&
|
|
122
|
+
(typeof filterLife === 'number' ||
|
|
123
|
+
(typeof filterLife === 'object' && filterLife !== null && 'percent' in filterLife)));
|
|
118
124
|
|
|
119
125
|
case 'fan_speed':
|
|
120
126
|
return true;
|
|
@@ -534,11 +540,18 @@ export class AirPurifierAccessory extends BaseAccessory {
|
|
|
534
540
|
* Set up the filter maintenance service
|
|
535
541
|
*/
|
|
536
542
|
private setupFilterService(): void {
|
|
537
|
-
this.platform.log.debug(`Setting up filter service for ${this.device.deviceName}`);
|
|
543
|
+
this.platform.log.debug(`Setting up filter maintenance service for ${this.device.deviceName}`);
|
|
538
544
|
|
|
539
|
-
//
|
|
545
|
+
// Log filter life data for debugging
|
|
546
|
+
const extendedDevice = this.device as unknown as ExtendedVeSyncAirPurifier;
|
|
547
|
+
const filterLifeData = extendedDevice.details?.filter_life;
|
|
548
|
+
this.platform.log.debug(`Filter life data: ${JSON.stringify(filterLifeData)} (type: ${typeof filterLifeData})`);
|
|
549
|
+
|
|
550
|
+
// Get or create the filter maintenance service (match humidifier implementation)
|
|
540
551
|
this.filterService = this.accessory.getService(this.platform.Service.FilterMaintenance) ||
|
|
541
552
|
this.accessory.addService(this.platform.Service.FilterMaintenance);
|
|
553
|
+
|
|
554
|
+
this.platform.log.debug(`Filter maintenance service ${this.filterService ? 'created/found' : 'FAILED to create'} for ${this.device.deviceName}`);
|
|
542
555
|
|
|
543
556
|
// Set up required filter change indication characteristic
|
|
544
557
|
this.setupCharacteristic(
|
|
@@ -561,6 +574,15 @@ export class AirPurifierAccessory extends BaseAccessory {
|
|
|
561
574
|
},
|
|
562
575
|
this.filterService
|
|
563
576
|
);
|
|
577
|
+
|
|
578
|
+
// Set service name using setupCharacteristic like the humidifier
|
|
579
|
+
this.setupCharacteristic(
|
|
580
|
+
this.platform.Characteristic.Name,
|
|
581
|
+
async () => `${this.device.deviceName} Filter`,
|
|
582
|
+
undefined,
|
|
583
|
+
{},
|
|
584
|
+
this.filterService
|
|
585
|
+
);
|
|
564
586
|
}
|
|
565
587
|
|
|
566
588
|
/**
|
|
@@ -608,7 +630,29 @@ export class AirPurifierAccessory extends BaseAccessory {
|
|
|
608
630
|
private async getFilterChangeIndication(): Promise<CharacteristicValue> {
|
|
609
631
|
const extendedDevice = this.device as unknown as ExtendedVeSyncAirPurifier;
|
|
610
632
|
|
|
611
|
-
|
|
633
|
+
// Use the filterLife property from the VeSync device, which already handles different formats
|
|
634
|
+
// Fall back to manual parsing if filterLife property is not available
|
|
635
|
+
let filterLife = 100; // Default to 100% if no filter life data
|
|
636
|
+
|
|
637
|
+
if (typeof extendedDevice.filterLife === 'number' && !isNaN(extendedDevice.filterLife)) {
|
|
638
|
+
// Use the built-in filterLife property from VeSyncFan
|
|
639
|
+
filterLife = extendedDevice.filterLife;
|
|
640
|
+
} else {
|
|
641
|
+
// Fallback: manually parse details.filter_life for compatibility
|
|
642
|
+
const filterLifeData = extendedDevice.details?.filter_life;
|
|
643
|
+
|
|
644
|
+
if (typeof filterLifeData === 'number' && !isNaN(filterLifeData)) {
|
|
645
|
+
filterLife = filterLifeData;
|
|
646
|
+
} else if (typeof filterLifeData === 'object' && filterLifeData !== null && 'percent' in filterLifeData) {
|
|
647
|
+
const percent = (filterLifeData as { percent: number }).percent;
|
|
648
|
+
filterLife = (typeof percent === 'number' && !isNaN(percent)) ? percent : 100;
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
// Handle NaN, null, undefined cases
|
|
653
|
+
if (isNaN(filterLife) || filterLife === null || filterLife === undefined) {
|
|
654
|
+
filterLife = 100; // Default to 100 (filter OK) for invalid values in change indication
|
|
655
|
+
}
|
|
612
656
|
|
|
613
657
|
// Indicate filter change needed when life is below 10%
|
|
614
658
|
return filterLife < 10 ? 1 : 0; // 0=FILTER_OK, 1=CHANGE_FILTER
|
|
@@ -620,10 +664,32 @@ export class AirPurifierAccessory extends BaseAccessory {
|
|
|
620
664
|
private async getFilterLifeLevel(): Promise<CharacteristicValue> {
|
|
621
665
|
const extendedDevice = this.device as unknown as ExtendedVeSyncAirPurifier;
|
|
622
666
|
|
|
623
|
-
|
|
667
|
+
// Use the filterLife property from the VeSync device, which already handles different formats
|
|
668
|
+
// Fall back to manual parsing if filterLife property is not available
|
|
669
|
+
let filterLife = 100; // Default to 100% if no filter life data
|
|
670
|
+
|
|
671
|
+
if (typeof extendedDevice.filterLife === 'number' && !isNaN(extendedDevice.filterLife)) {
|
|
672
|
+
// Use the built-in filterLife property from VeSyncFan
|
|
673
|
+
filterLife = extendedDevice.filterLife;
|
|
674
|
+
} else {
|
|
675
|
+
// Fallback: manually parse details.filter_life for compatibility
|
|
676
|
+
const filterLifeData = extendedDevice.details?.filter_life;
|
|
677
|
+
|
|
678
|
+
if (typeof filterLifeData === 'number' && !isNaN(filterLifeData)) {
|
|
679
|
+
filterLife = filterLifeData;
|
|
680
|
+
} else if (typeof filterLifeData === 'object' && filterLifeData !== null && 'percent' in filterLifeData) {
|
|
681
|
+
const percent = (filterLifeData as { percent: number }).percent;
|
|
682
|
+
filterLife = (typeof percent === 'number' && !isNaN(percent)) ? percent : 100;
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
// Handle NaN, null, undefined cases
|
|
687
|
+
if (isNaN(filterLife) || filterLife === null || filterLife === undefined) {
|
|
688
|
+
filterLife = 0; // Default to 0 for invalid values
|
|
689
|
+
}
|
|
624
690
|
|
|
625
|
-
// Ensure value is within HomeKit limits (0-100)
|
|
626
|
-
return Math.min(100, Math.max(0, filterLife));
|
|
691
|
+
// Ensure value is within HomeKit limits (0-100) and round to nearest integer
|
|
692
|
+
return Math.round(Math.min(100, Math.max(0, filterLife)));
|
|
627
693
|
}
|
|
628
694
|
|
|
629
695
|
/**
|
|
@@ -774,7 +840,29 @@ export class AirPurifierAccessory extends BaseAccessory {
|
|
|
774
840
|
// Update filter characteristics if service exists
|
|
775
841
|
if (this.filterService && this.hasFeature('filter_life')) {
|
|
776
842
|
const extendedDevice = this.device as unknown as ExtendedVeSyncAirPurifier;
|
|
777
|
-
|
|
843
|
+
|
|
844
|
+
// Use the same logic as the getter methods
|
|
845
|
+
let filterLife = 100; // Default to 100% if no filter life data
|
|
846
|
+
|
|
847
|
+
if (typeof extendedDevice.filterLife === 'number' && !isNaN(extendedDevice.filterLife)) {
|
|
848
|
+
// Use the built-in filterLife property from VeSyncFan
|
|
849
|
+
filterLife = extendedDevice.filterLife;
|
|
850
|
+
} else {
|
|
851
|
+
// Fallback: manually parse details.filter_life for compatibility
|
|
852
|
+
const filterLifeData = extendedDevice.details?.filter_life;
|
|
853
|
+
|
|
854
|
+
if (typeof filterLifeData === 'number' && !isNaN(filterLifeData)) {
|
|
855
|
+
filterLife = filterLifeData;
|
|
856
|
+
} else if (typeof filterLifeData === 'object' && filterLifeData !== null && 'percent' in filterLifeData) {
|
|
857
|
+
const percent = filterLifeData.percent;
|
|
858
|
+
filterLife = (typeof percent === 'number' && !isNaN(percent)) ? percent : 100;
|
|
859
|
+
}
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
// Handle NaN, null, undefined cases
|
|
863
|
+
if (isNaN(filterLife) || filterLife === null || filterLife === undefined) {
|
|
864
|
+
filterLife = 100; // Default to 100% for invalid values
|
|
865
|
+
}
|
|
778
866
|
|
|
779
867
|
// Update filter change indication
|
|
780
868
|
this.filterService.updateCharacteristic(
|