homebridge-tsvesync 1.0.13 → 1.0.15
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/dist/accessories/air-purifier.accessory.d.ts +32 -2
- package/dist/accessories/air-purifier.accessory.d.ts.map +1 -1
- package/dist/accessories/air-purifier.accessory.js +110 -51
- package/dist/accessories/air-purifier.accessory.js.map +1 -1
- package/dist/accessories/base.accessory.d.ts +12 -3
- package/dist/accessories/base.accessory.d.ts.map +1 -1
- package/dist/accessories/base.accessory.js +58 -22
- package/dist/accessories/base.accessory.js.map +1 -1
- package/dist/accessories/fan.accessory.d.ts +6 -2
- package/dist/accessories/fan.accessory.d.ts.map +1 -1
- package/dist/accessories/fan.accessory.js +27 -33
- package/dist/accessories/fan.accessory.js.map +1 -1
- package/dist/accessories/humidifier.accessory.d.ts +6 -2
- package/dist/accessories/humidifier.accessory.d.ts.map +1 -1
- package/dist/accessories/humidifier.accessory.js +38 -37
- package/dist/accessories/humidifier.accessory.js.map +1 -1
- package/dist/accessories/light.accessory.d.ts +5 -1
- package/dist/accessories/light.accessory.d.ts.map +1 -1
- package/dist/accessories/light.accessory.js +25 -19
- package/dist/accessories/light.accessory.js.map +1 -1
- package/dist/accessories/outlet.accessory.d.ts +7 -1
- package/dist/accessories/outlet.accessory.d.ts.map +1 -1
- package/dist/accessories/outlet.accessory.js +25 -14
- package/dist/accessories/outlet.accessory.js.map +1 -1
- package/dist/types/device.types.d.ts +1 -1
- package/dist/types/device.types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/accessories/air-purifier.accessory.ts +117 -84
- package/src/accessories/base.accessory.ts +74 -34
- package/src/accessories/fan.accessory.ts +40 -44
- package/src/accessories/humidifier.accessory.ts +61 -48
- package/src/accessories/light.accessory.ts +32 -18
- package/src/accessories/outlet.accessory.ts +33 -14
- package/src/types/device.types.ts +1 -1
|
@@ -3,11 +3,37 @@ import { BaseAccessory } from './base.accessory';
|
|
|
3
3
|
import { TSVESyncPlatform } from '../platform';
|
|
4
4
|
import { DeviceCapabilities, VeSyncAirPurifier } from '../types/device.types';
|
|
5
5
|
export declare class AirPurifierAccessory extends BaseAccessory {
|
|
6
|
+
private readonly capabilities;
|
|
6
7
|
protected readonly device: VeSyncAirPurifier;
|
|
7
8
|
constructor(platform: TSVESyncPlatform, accessory: PlatformAccessory, device: VeSyncAirPurifier);
|
|
9
|
+
/**
|
|
10
|
+
* Set up the air purifier service
|
|
11
|
+
*/
|
|
8
12
|
protected setupService(): void;
|
|
9
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Get device capabilities
|
|
15
|
+
*/
|
|
10
16
|
protected getDeviceCapabilities(): DeviceCapabilities;
|
|
17
|
+
/**
|
|
18
|
+
* Update device states based on the latest details
|
|
19
|
+
*/
|
|
20
|
+
protected updateDeviceSpecificStates(details: any): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Handle set active state
|
|
23
|
+
*/
|
|
24
|
+
private handleSetActive;
|
|
25
|
+
/**
|
|
26
|
+
* Handle set target state
|
|
27
|
+
*/
|
|
28
|
+
private handleSetTargetState;
|
|
29
|
+
/**
|
|
30
|
+
* Handle set rotation speed
|
|
31
|
+
*/
|
|
32
|
+
private handleSetRotationSpeed;
|
|
33
|
+
/**
|
|
34
|
+
* Handle set child lock
|
|
35
|
+
*/
|
|
36
|
+
private handleSetChildLock;
|
|
11
37
|
private getActive;
|
|
12
38
|
private setActive;
|
|
13
39
|
private getCurrentAirPurifierState;
|
|
@@ -16,10 +42,14 @@ export declare class AirPurifierAccessory extends BaseAccessory {
|
|
|
16
42
|
private getAirQuality;
|
|
17
43
|
private getPM25Density;
|
|
18
44
|
private getRotationSpeed;
|
|
19
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Convert HomeKit rotation speed (0-100) to fan speed (1-maxSpeed)
|
|
47
|
+
*/
|
|
48
|
+
private convertRotationSpeedToFanSpeed;
|
|
20
49
|
private getLockPhysicalControls;
|
|
21
50
|
private setLockPhysicalControls;
|
|
22
51
|
private getFilterChangeIndication;
|
|
23
52
|
private getFilterLifeLevel;
|
|
53
|
+
protected updateRotationSpeed(speed: number): Promise<void>;
|
|
24
54
|
}
|
|
25
55
|
//# sourceMappingURL=air-purifier.accessory.d.ts.map
|
|
@@ -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,EAAE,MAAM,YAAY,CAAC;AACpE,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;AAE9E,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;gBAG3C,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"air-purifier.accessory.d.ts","sourceRoot":"","sources":["../../src/accessories/air-purifier.accessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpE,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;AAE9E,qBAAa,oBAAqB,SAAQ,aAAa;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;gBAG3C,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,iBAAiB;IAO3B;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAmF9B;;OAEG;IACH,SAAS,CAAC,qBAAqB,IAAI,kBAAkB;IAcrD;;OAEG;cACa,0BAA0B,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCvE;;OAEG;YACW,eAAe;IAc7B;;OAEG;YACW,oBAAoB;IAYlC;;OAEG;YACW,sBAAsB;IAOpC;;OAEG;YACW,kBAAkB;YAYlB,SAAS;YAIT,SAAS;YAeT,0BAA0B;YAI1B,yBAAyB;YAIzB,yBAAyB;YAezB,aAAa;YAMb,cAAc;YAed,gBAAgB;IAO9B;;OAEG;IACH,OAAO,CAAC,8BAA8B;YAQxB,uBAAuB;YAIvB,uBAAuB;YAmBvB,yBAAyB;YAIzB,kBAAkB;cAIhB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAKlE"}
|
|
@@ -6,7 +6,11 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
6
6
|
constructor(platform, accessory, device) {
|
|
7
7
|
super(platform, accessory, device);
|
|
8
8
|
this.device = device;
|
|
9
|
+
this.capabilities = this.getDeviceCapabilities();
|
|
9
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Set up the air purifier service
|
|
13
|
+
*/
|
|
10
14
|
setupService() {
|
|
11
15
|
// Get or create the air purifier service
|
|
12
16
|
this.service = this.accessory.getService(this.platform.Service.AirPurifier) ||
|
|
@@ -26,7 +30,7 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
26
30
|
this.setupCharacteristic(this.platform.Characteristic.PM2_5Density, this.getPM25Density.bind(this), undefined, undefined, airQualityService);
|
|
27
31
|
}
|
|
28
32
|
if (capabilities.hasSpeed) {
|
|
29
|
-
this.setupCharacteristic(this.platform.Characteristic.RotationSpeed, this.getRotationSpeed.bind(this), this.
|
|
33
|
+
this.setupCharacteristic(this.platform.Characteristic.RotationSpeed, this.getRotationSpeed.bind(this), this.handleSetRotationSpeed.bind(this));
|
|
30
34
|
}
|
|
31
35
|
if (capabilities.hasChildLock) {
|
|
32
36
|
this.setupCharacteristic(this.platform.Characteristic.LockPhysicalControls, this.getLockPhysicalControls.bind(this), this.setLockPhysicalControls.bind(this));
|
|
@@ -37,55 +41,108 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
37
41
|
// Add Name characteristic
|
|
38
42
|
this.setupCharacteristic(this.platform.Characteristic.Name, async () => this.device.deviceName);
|
|
39
43
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const airQualityService = this.accessory.getService(this.platform.Service.AirQualitySensor);
|
|
44
|
-
if (airQualityService) {
|
|
45
|
-
// Ensure we have a valid number for air quality
|
|
46
|
-
const airQuality = typeof details.airQuality === 'number' && !isNaN(details.airQuality)
|
|
47
|
-
? details.airQuality
|
|
48
|
-
: 0;
|
|
49
|
-
airQualityService.updateCharacteristic(this.platform.Characteristic.AirQuality, this.convertAirQualityToHomeKit(airQuality));
|
|
50
|
-
// Ensure PM2.5 value is a valid number
|
|
51
|
-
const pm25Value = typeof details.pm25 === 'number' && !isNaN(details.pm25)
|
|
52
|
-
? details.pm25
|
|
53
|
-
: typeof airQuality === 'number' && !isNaN(airQuality)
|
|
54
|
-
? airQuality
|
|
55
|
-
: 0;
|
|
56
|
-
airQualityService.updateCharacteristic(this.platform.Characteristic.PM2_5Density, pm25Value);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
if (capabilities.hasSpeed && details.speed !== undefined && details.speed !== null) {
|
|
60
|
-
const normalizedSpeed = Math.min(Math.max((details.speed / (this.device.maxSpeed || 1)) * 100, 0), 100);
|
|
61
|
-
this.updateCharacteristicValue(this.platform.Characteristic.RotationSpeed, normalizedSpeed);
|
|
62
|
-
}
|
|
63
|
-
if (capabilities.hasChildLock && details.childLock !== undefined) {
|
|
64
|
-
this.updateCharacteristicValue(this.platform.Characteristic.LockPhysicalControls, details.childLock ? 1 : 0);
|
|
65
|
-
}
|
|
66
|
-
if (details.filterLife !== undefined && details.filterLife !== null) {
|
|
67
|
-
this.updateCharacteristicValue(this.platform.Characteristic.FilterChangeIndication, details.filterLife <= 20 ? 1 : 0);
|
|
68
|
-
this.updateCharacteristicValue(this.platform.Characteristic.FilterLifeLevel, details.filterLife);
|
|
69
|
-
}
|
|
70
|
-
// Update air purifier state
|
|
71
|
-
const isActive = details.deviceStatus === 'on';
|
|
72
|
-
this.updateCharacteristicValue(this.platform.Characteristic.Active, isActive ? 1 : 0);
|
|
73
|
-
this.updateCharacteristicValue(this.platform.Characteristic.CurrentAirPurifierState, isActive ? 2 : 0 // 0 = INACTIVE, 2 = PURIFYING_AIR
|
|
74
|
-
);
|
|
75
|
-
}
|
|
44
|
+
/**
|
|
45
|
+
* Get device capabilities
|
|
46
|
+
*/
|
|
76
47
|
getDeviceCapabilities() {
|
|
77
48
|
return {
|
|
49
|
+
hasSpeed: true,
|
|
50
|
+
hasAirQuality: true,
|
|
51
|
+
hasChildLock: true,
|
|
78
52
|
hasBrightness: false,
|
|
79
53
|
hasColorTemp: false,
|
|
80
54
|
hasColor: false,
|
|
81
|
-
hasSpeed: true,
|
|
82
55
|
hasHumidity: false,
|
|
83
|
-
hasAirQuality: true,
|
|
84
56
|
hasWaterLevel: false,
|
|
85
|
-
hasChildLock: true,
|
|
86
57
|
hasSwingMode: false,
|
|
87
58
|
};
|
|
88
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Update device states based on the latest details
|
|
62
|
+
*/
|
|
63
|
+
async updateDeviceSpecificStates(details) {
|
|
64
|
+
var _a, _b;
|
|
65
|
+
// Update power state
|
|
66
|
+
const isOn = details.enabled;
|
|
67
|
+
this.service.updateCharacteristic(this.platform.Characteristic.Active, isOn ? 1 : 0);
|
|
68
|
+
this.service.updateCharacteristic(this.platform.Characteristic.CurrentAirPurifierState, isOn ? 2 : 0);
|
|
69
|
+
// Update rotation speed
|
|
70
|
+
const speed = details.speed;
|
|
71
|
+
const rotationSpeed = Math.round((speed / this.device.maxSpeed) * 100);
|
|
72
|
+
this.service.updateCharacteristic(this.platform.Characteristic.RotationSpeed, rotationSpeed);
|
|
73
|
+
// Update air quality if available
|
|
74
|
+
if (this.capabilities.hasAirQuality) {
|
|
75
|
+
const pm25 = (_b = (_a = details.airQuality) === null || _a === void 0 ? void 0 : _a.pm25) !== null && _b !== void 0 ? _b : 0;
|
|
76
|
+
const airQuality = this.convertAirQualityToHomeKit(pm25);
|
|
77
|
+
this.service.updateCharacteristic(this.platform.Characteristic.AirQuality, airQuality);
|
|
78
|
+
this.service.updateCharacteristic(this.platform.Characteristic.PM2_5Density, pm25);
|
|
79
|
+
}
|
|
80
|
+
// Update filter life if available
|
|
81
|
+
if (details.filterLife !== undefined) {
|
|
82
|
+
const filterLife = details.filterLife;
|
|
83
|
+
this.service.updateCharacteristic(this.platform.Characteristic.FilterLifeLevel, filterLife);
|
|
84
|
+
this.service.updateCharacteristic(this.platform.Characteristic.FilterChangeIndication, filterLife <= 20 ? 1 : 0);
|
|
85
|
+
}
|
|
86
|
+
// Update device state based on activity
|
|
87
|
+
this.updatePollingState(isOn);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Handle set active state
|
|
91
|
+
*/
|
|
92
|
+
async handleSetActive(value) {
|
|
93
|
+
try {
|
|
94
|
+
const newState = value;
|
|
95
|
+
if (newState === 1) {
|
|
96
|
+
await this.device.turnOn();
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
await this.device.turnOff();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
await this.handleDeviceError('set active state', err);
|
|
104
|
+
throw err;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Handle set target state
|
|
109
|
+
*/
|
|
110
|
+
async handleSetTargetState(value) {
|
|
111
|
+
try {
|
|
112
|
+
const newState = value;
|
|
113
|
+
if (this.device.setMode) {
|
|
114
|
+
await this.device.setMode(newState === 1 ? 'auto' : 'manual');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
await this.handleDeviceError('set target state', err);
|
|
119
|
+
throw err;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Handle set rotation speed
|
|
124
|
+
*/
|
|
125
|
+
async handleSetRotationSpeed(value) {
|
|
126
|
+
const speed = Math.round((value / 100) * this.device.maxSpeed);
|
|
127
|
+
await this.withRetry(async () => {
|
|
128
|
+
await this.device.changeFanSpeed(speed);
|
|
129
|
+
}, 'set rotation speed');
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Handle set child lock
|
|
133
|
+
*/
|
|
134
|
+
async handleSetChildLock(value) {
|
|
135
|
+
try {
|
|
136
|
+
const enabled = value === 1;
|
|
137
|
+
if (this.device.setChildLock) {
|
|
138
|
+
await this.device.setChildLock(enabled);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
await this.handleDeviceError('set child lock', err);
|
|
143
|
+
throw err;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
89
146
|
async getActive() {
|
|
90
147
|
return this.device.deviceStatus === 'on' ? 1 : 0;
|
|
91
148
|
}
|
|
@@ -144,18 +201,15 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
144
201
|
}
|
|
145
202
|
return Math.min(Math.max((this.device.speed / this.device.maxSpeed) * 100, 0), 100);
|
|
146
203
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}
|
|
154
|
-
await this.persistDeviceState('speed', speed);
|
|
155
|
-
}
|
|
156
|
-
catch (error) {
|
|
157
|
-
this.handleDeviceError('set rotation speed', error);
|
|
204
|
+
/**
|
|
205
|
+
* Convert HomeKit rotation speed (0-100) to fan speed (1-maxSpeed)
|
|
206
|
+
*/
|
|
207
|
+
convertRotationSpeedToFanSpeed(value) {
|
|
208
|
+
if (value === 0) {
|
|
209
|
+
return 0; // Off
|
|
158
210
|
}
|
|
211
|
+
// Convert from 0-100 to 1-maxSpeed
|
|
212
|
+
return Math.max(1, Math.round((value / 100) * this.device.maxSpeed));
|
|
159
213
|
}
|
|
160
214
|
async getLockPhysicalControls() {
|
|
161
215
|
return this.device.childLock ? 1 : 0;
|
|
@@ -182,6 +236,11 @@ class AirPurifierAccessory extends base_accessory_1.BaseAccessory {
|
|
|
182
236
|
async getFilterLifeLevel() {
|
|
183
237
|
return this.device.filterLife;
|
|
184
238
|
}
|
|
239
|
+
async updateRotationSpeed(speed) {
|
|
240
|
+
await this.withRetry(async () => {
|
|
241
|
+
await this.device.changeFanSpeed(speed);
|
|
242
|
+
}, 'update rotation speed');
|
|
243
|
+
}
|
|
185
244
|
}
|
|
186
245
|
exports.AirPurifierAccessory = AirPurifierAccessory;
|
|
187
246
|
//# sourceMappingURL=air-purifier.accessory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"air-purifier.accessory.js","sourceRoot":"","sources":["../../src/accessories/air-purifier.accessory.ts"],"names":[],"mappings":";;;AACA,qDAAiD;AAIjD,MAAa,oBAAqB,SAAQ,8BAAa;
|
|
1
|
+
{"version":3,"file":"air-purifier.accessory.js","sourceRoot":"","sources":["../../src/accessories/air-purifier.accessory.ts"],"names":[],"mappings":";;;AACA,qDAAiD;AAIjD,MAAa,oBAAqB,SAAQ,8BAAa;IAIrD,YACE,QAA0B,EAC1B,SAA4B,EAC5B,MAAyB;QAEzB,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACnD,CAAC;IAED;;OAEG;IACO,YAAY;QACpB,yCAAyC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;YACzE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAE/D,kCAAkC;QAClC,IAAI,CAAC,mBAAmB,CACtB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1B,CAAC;QAEF,IAAI,CAAC,mBAAmB,CACtB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,EACpD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3C,CAAC;QAEF,IAAI,CAAC,mBAAmB,CACtB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,EACnD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EACzC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1C,CAAC;QAEF,+DAA+D;QAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAElD,IAAI,YAAY,CAAC,aAAa,EAAE;YAC9B,wEAAwE;YACxE,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBACzF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAEpE,6DAA6D;YAC7D,IAAI,CAAC,mBAAmB,CACtB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAC7B,SAAS,EACT,SAAS,EACT,iBAAiB,CAClB,CAAC;YAEF,IAAI,CAAC,mBAAmB,CACtB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EACzC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAC9B,SAAS,EACT,SAAS,EACT,iBAAiB,CAClB,CAAC;SACH;QAED,IAAI,YAAY,CAAC,QAAQ,EAAE;YACzB,IAAI,CAAC,mBAAmB,CACtB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,EAC1C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAChC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CACvC,CAAC;SACH;QAED,IAAI,YAAY,CAAC,YAAY,EAAE;YAC7B,IAAI,CAAC,mBAAmB,CACtB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,oBAAoB,EACjD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EACvC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CACxC,CAAC;SACH;QAED,yCAAyC;QACzC,IAAI,CAAC,mBAAmB,CACtB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,EACnD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1C,CAAC;QAEF,IAAI,CAAC,mBAAmB,CACtB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,EAC5C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CACnC,CAAC;QAEF,0BAA0B;QAC1B,IAAI,CAAC,mBAAmB,CACtB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EACjC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CACnC,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,qBAAqB;QAC7B,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,KAAK;SACpB,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,0BAA0B,CAAC,OAAY;;QACrD,qBAAqB;QACrB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtG,wBAAwB;QACxB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;QACvE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAE7F,kCAAkC;QAClC,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;YACnC,MAAM,IAAI,GAAG,MAAA,MAAA,OAAO,CAAC,UAAU,0CAAE,IAAI,mCAAI,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACvF,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SACpF;QAED,kCAAkC;QAClC,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE;YACpC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAC5F,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAC/B,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,EACnD,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACzB,CAAC;SACH;QAED,wCAAwC;QACxC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAAC,KAA0B;QACtD,IAAI;YACF,MAAM,QAAQ,GAAG,KAAe,CAAC;YACjC,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAClB,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;aAC5B;iBAAM;gBACL,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;aAC7B;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;YACtD,MAAM,GAAG,CAAC;SACX;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAAC,KAA0B;QAC3D,IAAI;YACF,MAAM,QAAQ,GAAG,KAAe,CAAC;YACjC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;gBACvB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aAC/D;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;YACtD,MAAM,GAAG,CAAC;SACX;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,sBAAsB,CAAC,KAA0B;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAe,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzE,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAAC,KAA0B;QACzD,IAAI;YACF,MAAM,OAAO,GAAG,KAAe,KAAK,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;aACzC;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;YACpD,MAAM,GAAG,CAAC;SACX;IACH,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,KAA0B;QAChD,IAAI;YACF,MAAM,IAAI,GAAG,KAAe,KAAK,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAEhF,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;aACjE;YAED,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SACpE;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;SACnD;IACH,CAAC;IAEO,KAAK,CAAC,0BAA0B;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;IACtF,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB;IACrE,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,KAA0B;QAChE,IAAI;YACF,MAAM,IAAI,GAAG,KAAe,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEhD,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;aAClD;YAED,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SAC7C;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;SACnD;IACH,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI;YAC5E,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YACzD,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,wCAAwC;QACxC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACpE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SACzB;QAED,sDAAsD;QACtD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YAChF,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;SAC/B;QAED,0CAA0C;QAC1C,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC1F,OAAO,CAAC,CAAC;SACV;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtF,CAAC;IAED;;OAEG;IACK,8BAA8B,CAAC,KAAa;QAClD,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,CAAC,CAAC,CAAC,MAAM;SACjB;QACD,mCAAmC;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvE,CAAC;IAEO,KAAK,CAAC,uBAAuB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,KAA0B;QAC9D,IAAI;YACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;aACvD;YAED,MAAM,OAAO,GAAG,KAAe,KAAK,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAExD,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,aAAa,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC;aAC3E;YAED,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;SACrD;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;SACjD;IACH,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IAES,KAAK,CAAC,mBAAmB,CAAC,KAAa;QAC/C,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;YAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAC9B,CAAC;CACF;AAvUD,oDAuUC"}
|
|
@@ -9,6 +9,7 @@ export declare abstract class BaseAccessory {
|
|
|
9
9
|
private readonly pollingManager;
|
|
10
10
|
private readonly retryManager;
|
|
11
11
|
private readonly logger;
|
|
12
|
+
private needsRetry;
|
|
12
13
|
constructor(platform: TSVESyncPlatform, accessory: PlatformAccessory, device: VeSyncDeviceWithPower);
|
|
13
14
|
/**
|
|
14
15
|
* Get base context for logging
|
|
@@ -25,7 +26,7 @@ export declare abstract class BaseAccessory {
|
|
|
25
26
|
/**
|
|
26
27
|
* Update device-specific states
|
|
27
28
|
*/
|
|
28
|
-
protected abstract updateDeviceSpecificStates(details: any): void
|
|
29
|
+
protected abstract updateDeviceSpecificStates(details: any): Promise<void>;
|
|
29
30
|
/**
|
|
30
31
|
* Get device capabilities
|
|
31
32
|
*/
|
|
@@ -71,8 +72,16 @@ export declare abstract class BaseAccessory {
|
|
|
71
72
|
*/
|
|
72
73
|
protected persistDeviceState(key: string, value: unknown): Promise<void>;
|
|
73
74
|
/**
|
|
74
|
-
* Handle device errors
|
|
75
|
+
* Handle device errors with appropriate recovery actions
|
|
75
76
|
*/
|
|
76
|
-
protected handleDeviceError(operation: string, error: unknown): void
|
|
77
|
+
protected handleDeviceError(operation: string, error: unknown): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Attempt to reconnect to the device by triggering device discovery
|
|
80
|
+
*/
|
|
81
|
+
private attemptReconnection;
|
|
82
|
+
/**
|
|
83
|
+
* Mark the device for retry on next update cycle
|
|
84
|
+
*/
|
|
85
|
+
private markForRetry;
|
|
77
86
|
}
|
|
78
87
|
//# sourceMappingURL=base.accessory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.accessory.d.ts","sourceRoot":"","sources":["../../src/accessories/base.accessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAKlF,8BAAsB,aAAa;IACjC,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC;IAC5B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;
|
|
1
|
+
{"version":3,"file":"base.accessory.d.ts","sourceRoot":"","sources":["../../src/accessories/base.accessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAKlF,8BAAsB,aAAa;IACjC,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC;IAC5B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,UAAU,CAAS;gBAGzB,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,qBAAqB;IA6B/B;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;cACa,SAAS,CAAC,CAAC,EACzB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,CAAC,CAAC;IAsBb;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,IAAI;IAEvC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1E;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,kBAAkB;IAE9D;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,MAAM;IAgBjC;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAM9B;;OAEG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IAI7B;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAIrD;;OAEG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BhD;;OAEG;IACH,SAAS,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQ1D;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAC3B,cAAc,EAAE,GAAG,EACnB,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,EAC1C,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,EACrD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,OAAO,CAAC,EAAE,OAAO,GAChB,IAAI;IAwDP;;OAEG;IACH,SAAS,CAAC,yBAAyB,CACjC,cAAc,EAAE,GAAG,EACnB,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAUP;;OAEG;cACa,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB9E;;OAEG;cACa,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCnF;;OAEG;YACW,mBAAmB;IAUjC;;OAEG;IACH,OAAO,CAAC,YAAY;CAGrB"}
|
|
@@ -6,6 +6,7 @@ const retry_1 = require("../utils/retry");
|
|
|
6
6
|
const logger_1 = require("../utils/logger");
|
|
7
7
|
class BaseAccessory {
|
|
8
8
|
constructor(platform, accessory, device) {
|
|
9
|
+
this.needsRetry = false;
|
|
9
10
|
this.platform = platform;
|
|
10
11
|
this.accessory = accessory;
|
|
11
12
|
this.device = device;
|
|
@@ -45,6 +46,7 @@ class BaseAccessory {
|
|
|
45
46
|
}
|
|
46
47
|
catch (error) {
|
|
47
48
|
this.logger.operationEnd(context, error);
|
|
49
|
+
await this.handleDeviceError(`Failed to ${operationName}`, error instanceof Error ? error : new Error(String(error)));
|
|
48
50
|
throw error;
|
|
49
51
|
}
|
|
50
52
|
}
|
|
@@ -111,29 +113,21 @@ class BaseAccessory {
|
|
|
111
113
|
* Sync the device state with VeSync
|
|
112
114
|
*/
|
|
113
115
|
async syncDeviceState() {
|
|
114
|
-
const context = this.getLogContext('sync device state');
|
|
115
116
|
try {
|
|
117
|
+
if (this.needsRetry) {
|
|
118
|
+
this.platform.log.debug(`[${this.accessory.displayName}] Retrying previous failed operation`);
|
|
119
|
+
}
|
|
116
120
|
await this.withRetry(async () => {
|
|
117
|
-
|
|
118
|
-
const details =
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
const isActive = details.deviceStatus === 'on';
|
|
124
|
-
this.updatePollingState(isActive);
|
|
125
|
-
this.logger.pollingEvent({
|
|
126
|
-
...context,
|
|
127
|
-
interval: this.pollingManager.getCurrentInterval(),
|
|
128
|
-
active: isActive,
|
|
129
|
-
});
|
|
130
|
-
// Update device-specific states
|
|
131
|
-
this.updateDeviceSpecificStates(details);
|
|
121
|
+
// First try to get device details
|
|
122
|
+
const details = await this.device.getDetails();
|
|
123
|
+
// Then update device state with the details
|
|
124
|
+
await this.updateDeviceSpecificStates(details);
|
|
125
|
+
// Clear retry flag on success
|
|
126
|
+
this.needsRetry = false;
|
|
132
127
|
}, 'sync device state');
|
|
133
128
|
}
|
|
134
129
|
catch (error) {
|
|
135
|
-
this.
|
|
136
|
-
throw error; // Let polling manager handle the error
|
|
130
|
+
await this.handleDeviceError('Failed to sync device state', error instanceof Error ? error : new Error(String(error)));
|
|
137
131
|
}
|
|
138
132
|
}
|
|
139
133
|
/**
|
|
@@ -219,12 +213,54 @@ class BaseAccessory {
|
|
|
219
213
|
}
|
|
220
214
|
}
|
|
221
215
|
/**
|
|
222
|
-
* Handle device errors
|
|
216
|
+
* Handle device errors with appropriate recovery actions
|
|
223
217
|
*/
|
|
224
|
-
handleDeviceError(operation, error) {
|
|
218
|
+
async handleDeviceError(operation, error) {
|
|
219
|
+
var _a, _b;
|
|
225
220
|
const errorObj = error instanceof Error ? error : new Error(String(error));
|
|
226
|
-
|
|
227
|
-
|
|
221
|
+
const errorDetails = errorObj;
|
|
222
|
+
const errorCode = ((_a = errorDetails === null || errorDetails === void 0 ? void 0 : errorDetails.error) === null || _a === void 0 ? void 0 : _a.code) || (errorDetails === null || errorDetails === void 0 ? void 0 : errorDetails.code);
|
|
223
|
+
const errorMsg = ((_b = errorDetails === null || errorDetails === void 0 ? void 0 : errorDetails.error) === null || _b === void 0 ? void 0 : _b.msg) || (errorDetails === null || errorDetails === void 0 ? void 0 : errorDetails.msg) || errorObj.message;
|
|
224
|
+
// Log the error with context
|
|
225
|
+
this.platform.log.error(`[${this.accessory.displayName}] ${operation}: ${errorMsg}`, (errorDetails === null || errorDetails === void 0 ? void 0 : errorDetails.error) || errorDetails || errorObj);
|
|
226
|
+
// Handle specific error codes
|
|
227
|
+
switch (errorCode) {
|
|
228
|
+
case 4041008: // Device not found
|
|
229
|
+
this.platform.log.warn(`[${this.accessory.displayName}] Device not found, will attempt to rediscover`);
|
|
230
|
+
await this.attemptReconnection();
|
|
231
|
+
break;
|
|
232
|
+
case -11102086: // Internal error
|
|
233
|
+
this.platform.log.warn(`[${this.accessory.displayName}] VeSync API internal error, will retry later`);
|
|
234
|
+
this.markForRetry();
|
|
235
|
+
break;
|
|
236
|
+
default:
|
|
237
|
+
if ((errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.includes('not found')) || (errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.includes('undefined')) || !errorMsg) {
|
|
238
|
+
this.platform.log.warn(`[${this.accessory.displayName}] Connection issue detected, attempting to reconnect`);
|
|
239
|
+
await this.attemptReconnection();
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
this.markForRetry();
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Attempt to reconnect to the device by triggering device discovery
|
|
248
|
+
*/
|
|
249
|
+
async attemptReconnection() {
|
|
250
|
+
try {
|
|
251
|
+
// Attempt to refresh the device list
|
|
252
|
+
await this.platform.discoverDevices();
|
|
253
|
+
this.platform.log.info(`[${this.accessory.displayName}] Successfully refreshed device list`);
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
this.platform.log.error(`[${this.accessory.displayName}] Failed to reconnect: ${error}`);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Mark the device for retry on next update cycle
|
|
261
|
+
*/
|
|
262
|
+
markForRetry() {
|
|
263
|
+
this.needsRetry = true;
|
|
228
264
|
}
|
|
229
265
|
}
|
|
230
266
|
exports.BaseAccessory = BaseAccessory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.accessory.js","sourceRoot":"","sources":["../../src/accessories/base.accessory.ts"],"names":[],"mappings":";;;AAGA,8DAA0D;AAC1D,0CAA8C;AAC9C,4CAA2D;AAE3D,MAAsB,aAAa;
|
|
1
|
+
{"version":3,"file":"base.accessory.js","sourceRoot":"","sources":["../../src/accessories/base.accessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,14 +4,18 @@ import { TSVESyncPlatform } from '../platform';
|
|
|
4
4
|
import { DeviceCapabilities, VeSyncFan } from '../types/device.types';
|
|
5
5
|
export declare class FanAccessory extends BaseAccessory {
|
|
6
6
|
protected readonly device: VeSyncFan;
|
|
7
|
+
private readonly capabilities;
|
|
7
8
|
constructor(platform: TSVESyncPlatform, accessory: PlatformAccessory, device: VeSyncFan);
|
|
8
9
|
protected setupService(): void;
|
|
9
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Update device states based on the latest details
|
|
12
|
+
*/
|
|
13
|
+
protected updateDeviceSpecificStates(details: any): Promise<void>;
|
|
10
14
|
protected getDeviceCapabilities(): DeviceCapabilities;
|
|
11
15
|
private getActive;
|
|
12
16
|
private setActive;
|
|
17
|
+
private handleSetRotationSpeed;
|
|
13
18
|
private getRotationSpeed;
|
|
14
|
-
private setRotationSpeed;
|
|
15
19
|
private getRotationDirection;
|
|
16
20
|
private setRotationDirection;
|
|
17
21
|
private getSwingMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fan.accessory.d.ts","sourceRoot":"","sources":["../../src/accessories/fan.accessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMtE,qBAAa,YAAa,SAAQ,aAAa;IAC7C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"fan.accessory.d.ts","sourceRoot":"","sources":["../../src/accessories/fan.accessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMtE,qBAAa,YAAa,SAAQ,aAAa;IAC7C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAGhD,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,SAAS;IAOnB,SAAS,CAAC,YAAY,IAAI,IAAI;IAuD9B;;OAEG;cACa,0BAA0B,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CvE,SAAS,CAAC,qBAAqB,IAAI,kBAAkB;YAcvC,SAAS;YAIT,SAAS;YAeT,sBAAsB;YAOtB,gBAAgB;YAIhB,oBAAoB;YAMpB,oBAAoB;YAmBpB,YAAY;YAIZ,YAAY;YAmBZ,uBAAuB;YAIvB,uBAAuB;CAkBtC"}
|