@homebridge-plugins/homebridge-smarthq 0.5.0-beta.21 → 0.5.0-beta.23
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/MATTER.md +304 -0
- package/dist/devices/advantium.js.map +1 -1
- package/dist/devices/airConditioner.js.map +1 -1
- package/dist/devices/beverageCenter.js.map +1 -1
- package/dist/devices/clothesDryer.js.map +1 -1
- package/dist/devices/clothesWasher.js.map +1 -1
- package/dist/devices/coffeeMaker.js.map +1 -1
- package/dist/devices/device.d.ts +83 -21
- package/dist/devices/device.d.ts.map +1 -1
- package/dist/devices/device.js +216 -70
- package/dist/devices/device.js.map +1 -1
- package/dist/devices/dishwasher.js.map +1 -1
- package/dist/devices/hood.js.map +1 -1
- package/dist/devices/microwave.js.map +1 -1
- package/dist/devices/oven.js.map +1 -1
- package/dist/devices/refrigerator.d.ts +37 -0
- package/dist/devices/refrigerator.d.ts.map +1 -1
- package/dist/devices/refrigerator.js +398 -170
- package/dist/devices/refrigerator.js.map +1 -1
- package/dist/devices/waterFilter.js.map +1 -1
- package/dist/devices/waterHeater.js.map +1 -1
- package/dist/devices/waterSoftener.js.map +1 -1
- package/dist/platform.d.ts +15 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +82 -32
- package/dist/platform.js.map +1 -1
- package/dist/settings.d.ts +1 -0
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js.map +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/SmartHQPlatform.html +15 -9
- package/docs/interfaces/DeviceOptions.html +2 -2
- package/docs/interfaces/SmartHQPlatformConfig.html +2 -2
- package/docs/interfaces/SmartHqContext.html +2 -2
- package/docs/interfaces/SmartHqERDResponse.html +2 -2
- package/docs/interfaces/credentials.html +2 -2
- package/docs/interfaces/devicesConfig.html +3 -2
- package/docs/interfaces/options.html +2 -2
- package/docs/variables/API_URL.html +1 -1
- package/docs/variables/ERD_CODES.html +1 -1
- package/docs/variables/ERD_TYPES.html +1 -1
- package/docs/variables/KEEPALIVE_TIMEOUT.html +1 -1
- package/docs/variables/LOGIN_URL.html +1 -1
- package/docs/variables/OAUTH2_CLIENT_ID.html +1 -1
- package/docs/variables/OAUTH2_CLIENT_SECRET.html +1 -1
- package/docs/variables/OAUTH2_REDIRECT_URI.html +1 -1
- package/docs/variables/PLATFORM_NAME.html +1 -1
- package/docs/variables/PLUGIN_NAME.html +1 -1
- package/docs/variables/SECURE_URL.html +1 -1
- package/docs/variables/default.html +1 -1
- package/package.json +1 -1
package/dist/devices/device.d.ts
CHANGED
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
import type { API, CharacteristicValue, HAP, Logging, PlatformAccessory, Service } from 'homebridge';
|
|
2
2
|
import type { SmartHQPlatform } from '../platform.js';
|
|
3
3
|
import type { devicesConfig, SmartHqContext, SmartHQPlatformConfig } from '../settings.js';
|
|
4
|
+
export interface MatterAccessory {
|
|
5
|
+
UUID: string;
|
|
6
|
+
displayName: string;
|
|
7
|
+
serialNumber: string;
|
|
8
|
+
manufacturer: string;
|
|
9
|
+
model: string;
|
|
10
|
+
firmwareRevision: string;
|
|
11
|
+
hardwareRevision: string;
|
|
12
|
+
deviceType: any;
|
|
13
|
+
clusters?: Record<string, unknown>;
|
|
14
|
+
handlers?: Record<string, unknown>;
|
|
15
|
+
parts?: Array<MatterAccessory>;
|
|
16
|
+
context?: Record<string, unknown>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Unified base class for SmartHQ devices supporting both HAP and Matter protocols
|
|
20
|
+
* Contains all shared functionality for ERD operations, logging, configuration, and protocol handling
|
|
21
|
+
*/
|
|
4
22
|
export declare abstract class deviceBase {
|
|
5
23
|
protected readonly platform: SmartHQPlatform;
|
|
6
|
-
protected accessory: PlatformAccessory<SmartHqContext>;
|
|
7
|
-
protected device: devicesConfig;
|
|
8
24
|
readonly api: API;
|
|
9
25
|
readonly log: Logging;
|
|
10
26
|
readonly config: SmartHQPlatformConfig;
|
|
@@ -15,22 +31,39 @@ export declare abstract class deviceBase {
|
|
|
15
31
|
protected devicePushRate: number;
|
|
16
32
|
protected deviceFirmwareVersion: string;
|
|
17
33
|
private unsupportedErds;
|
|
18
|
-
|
|
34
|
+
protected accessory?: PlatformAccessory<SmartHqContext>;
|
|
35
|
+
protected matterAccessory?: MatterAccessory;
|
|
36
|
+
protected matterUuid?: string;
|
|
37
|
+
protected userId?: string;
|
|
38
|
+
protected useMatter: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Get the HAP accessory (throws if not in HAP mode)
|
|
41
|
+
*/
|
|
42
|
+
protected get hapAccessory(): PlatformAccessory<SmartHqContext>;
|
|
43
|
+
constructor(platform: SmartHQPlatform, accessoryOrDevice: PlatformAccessory<SmartHqContext> | devicesConfig, deviceOrUserId?: devicesConfig | string);
|
|
19
44
|
getDeviceLogSettings(device: devicesConfig): Promise<void>;
|
|
20
45
|
getDeviceRateSettings(device: devicesConfig): Promise<void>;
|
|
21
46
|
getDeviceConfigSettings(device: devicesConfig): Promise<void>;
|
|
22
|
-
getDeviceContext(accessory: PlatformAccessory, device: devicesConfig): Promise<void>;
|
|
23
47
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* @param Service Service
|
|
27
|
-
* @param Characteristic Characteristic
|
|
28
|
-
* @param CharacteristicValue CharacteristicValue | undefined
|
|
29
|
-
* @param CharacteristicName string
|
|
30
|
-
* @return: void
|
|
31
|
-
*
|
|
48
|
+
* Get and parse device firmware version
|
|
32
49
|
*/
|
|
33
|
-
|
|
50
|
+
protected parseFirmwareVersion(firmware?: string): Promise<string>;
|
|
51
|
+
/**
|
|
52
|
+
* Initialize HAP accessory information
|
|
53
|
+
*/
|
|
54
|
+
private initializeHAPAccessory;
|
|
55
|
+
/**
|
|
56
|
+
* Get the appliance ID for ERD operations
|
|
57
|
+
*/
|
|
58
|
+
protected getApplianceId(): string;
|
|
59
|
+
/**
|
|
60
|
+
* Get the user ID for ERD operations
|
|
61
|
+
*/
|
|
62
|
+
protected getUserId(): string;
|
|
63
|
+
/**
|
|
64
|
+
* Get the device display name for logging
|
|
65
|
+
*/
|
|
66
|
+
protected getDisplayName(): string;
|
|
34
67
|
/**
|
|
35
68
|
* Logging for Device
|
|
36
69
|
*/
|
|
@@ -46,27 +79,56 @@ export declare abstract class deviceBase {
|
|
|
46
79
|
enablingDeviceLogging(): Promise<boolean>;
|
|
47
80
|
/**
|
|
48
81
|
* Check if an ERD code is supported by this appliance
|
|
49
|
-
* @param erd - The ERD code to check
|
|
50
|
-
* @returns true if the ERD is available, false otherwise
|
|
51
82
|
*/
|
|
52
83
|
has_erd_code(erd: string): Promise<boolean>;
|
|
53
84
|
/**
|
|
54
85
|
* Try to get an ERD value without throwing errors
|
|
55
|
-
* @param erd - The ERD code to read
|
|
56
|
-
* @returns The ERD value or undefined if not available
|
|
57
86
|
*/
|
|
58
87
|
try_get_erd_value(erd: string): Promise<string | undefined>;
|
|
59
88
|
/**
|
|
60
89
|
* Read an ERD (Electronic Refrigerator Descriptor) value from the SmartHQ API
|
|
61
|
-
* @param erd - The ERD code to read
|
|
62
|
-
* @returns The ERD value as a string (JSON stringified if object), or undefined if not supported/error
|
|
63
90
|
*/
|
|
64
91
|
readErd(erd: string): Promise<string | undefined>;
|
|
65
92
|
/**
|
|
66
93
|
* Write an ERD (Electronic Refrigerator Descriptor) value to the SmartHQ API
|
|
67
|
-
* @param erd - The ERD code to write
|
|
68
|
-
* @param value - The value to write (boolean or string)
|
|
69
94
|
*/
|
|
70
95
|
writeErd(erd: string, value: string | boolean): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* Get device context for HAP accessories
|
|
98
|
+
*/
|
|
99
|
+
getDeviceContext(accessory: PlatformAccessory, device: devicesConfig): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Get device firmware version for Matter devices
|
|
102
|
+
*/
|
|
103
|
+
getDeviceFirmwareVersion(device: devicesConfig): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Update HAP characteristic value and log the change
|
|
106
|
+
*/
|
|
107
|
+
updateCharacteristic(Service: Service, Characteristic: any, CharacteristicValue: CharacteristicValue | undefined, CharacteristicName: string): Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* Create Matter accessory configuration
|
|
110
|
+
* Should be overridden by device-specific implementations that support Matter
|
|
111
|
+
*/
|
|
112
|
+
protected createMatterAccessory(): MatterAccessory | undefined;
|
|
113
|
+
/**
|
|
114
|
+
* Get the Matter accessory instance
|
|
115
|
+
*/
|
|
116
|
+
getMatterAccessory(): MatterAccessory | undefined;
|
|
117
|
+
/**
|
|
118
|
+
* Helper to create base Matter accessory info
|
|
119
|
+
*/
|
|
120
|
+
protected createBaseMatterConfig(): {
|
|
121
|
+
UUID: any;
|
|
122
|
+
displayName: any;
|
|
123
|
+
serialNumber: any;
|
|
124
|
+
manufacturer: any;
|
|
125
|
+
model: any;
|
|
126
|
+
firmwareRevision: string;
|
|
127
|
+
hardwareRevision: string;
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Update Matter cluster state
|
|
131
|
+
*/
|
|
132
|
+
protected updateMatterState(clusterName: string, attributes: Record<string, unknown>): Promise<void>;
|
|
71
133
|
}
|
|
72
134
|
//# sourceMappingURL=device.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/devices/device.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/devices/device.ts"],"names":[],"mappings":"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"}
|
package/dist/devices/device.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
+
/**
|
|
3
|
+
* Unified base class for SmartHQ devices supporting both HAP and Matter protocols
|
|
4
|
+
* Contains all shared functionality for ERD operations, logging, configuration, and protocol handling
|
|
5
|
+
*/
|
|
2
6
|
export class deviceBase {
|
|
3
7
|
platform;
|
|
4
|
-
accessory;
|
|
5
|
-
device;
|
|
6
8
|
api;
|
|
7
9
|
log;
|
|
8
10
|
config;
|
|
@@ -15,31 +17,60 @@ export class deviceBase {
|
|
|
15
17
|
deviceFirmwareVersion;
|
|
16
18
|
// ERD capability tracking - remember which ERDs are not supported
|
|
17
19
|
unsupportedErds = new Set();
|
|
18
|
-
|
|
20
|
+
// HAP-specific properties
|
|
21
|
+
accessory;
|
|
22
|
+
// Matter-specific properties
|
|
23
|
+
matterAccessory;
|
|
24
|
+
matterUuid;
|
|
25
|
+
userId;
|
|
26
|
+
// Protocol flag
|
|
27
|
+
useMatter = false;
|
|
28
|
+
/**
|
|
29
|
+
* Get the HAP accessory (throws if not in HAP mode)
|
|
30
|
+
*/
|
|
31
|
+
get hapAccessory() {
|
|
32
|
+
if (!this.accessory) {
|
|
33
|
+
throw new Error('Accessory is not available - not in HAP mode');
|
|
34
|
+
}
|
|
35
|
+
return this.accessory;
|
|
36
|
+
}
|
|
37
|
+
constructor(platform, accessoryOrDevice, deviceOrUserId) {
|
|
19
38
|
this.platform = platform;
|
|
20
|
-
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
24
|
-
this.config = this.platform.config;
|
|
39
|
+
// Initialize platform references
|
|
40
|
+
this.api = platform.api;
|
|
41
|
+
this.log = platform.log;
|
|
42
|
+
this.config = platform.config;
|
|
25
43
|
this.hap = this.api.hap;
|
|
44
|
+
// Determine if this is HAP or Matter based on constructor arguments
|
|
45
|
+
let device;
|
|
46
|
+
let isHAP = false;
|
|
47
|
+
let accessoryTemp;
|
|
48
|
+
let userIdTemp;
|
|
49
|
+
if ('UUID' in accessoryOrDevice) {
|
|
50
|
+
// HAP mode: first arg is PlatformAccessory
|
|
51
|
+
accessoryTemp = accessoryOrDevice;
|
|
52
|
+
device = deviceOrUserId;
|
|
53
|
+
isHAP = true;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// Matter mode: first arg is device, second is userId
|
|
57
|
+
device = accessoryOrDevice;
|
|
58
|
+
userIdTemp = deviceOrUserId;
|
|
59
|
+
}
|
|
60
|
+
// Initialize config settings
|
|
26
61
|
this.getDeviceLogSettings(device);
|
|
27
62
|
this.getDeviceRateSettings(device);
|
|
28
63
|
this.getDeviceConfigSettings(device);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
.setCharacteristic(this.hap.Characteristic.SoftwareRevision, this.deviceFirmwareVersion)
|
|
40
|
-
.setCharacteristic(this.hap.Characteristic.FirmwareRevision, this.deviceFirmwareVersion)
|
|
41
|
-
.getCharacteristic(this.hap.Characteristic.FirmwareRevision)
|
|
42
|
-
.updateValue(this.deviceFirmwareVersion);
|
|
64
|
+
// Set instance properties
|
|
65
|
+
if (isHAP) {
|
|
66
|
+
this.accessory = accessoryTemp;
|
|
67
|
+
this.useMatter = false;
|
|
68
|
+
this.initializeHAPAccessory();
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
this.userId = userIdTemp;
|
|
72
|
+
this.useMatter = device.useMatter ?? false;
|
|
73
|
+
}
|
|
43
74
|
}
|
|
44
75
|
async getDeviceLogSettings(device) {
|
|
45
76
|
this.deviceLogging = this.platform.debugMode ? 'debugMode' : device.logging ?? this.platform.platformLogging ?? 'standard';
|
|
@@ -54,7 +85,7 @@ export class deviceBase {
|
|
|
54
85
|
// updateRate
|
|
55
86
|
this.deviceUpdateRate = device.updateRate ?? this.platform.platformUpdateRate ?? 5;
|
|
56
87
|
const updateRate = device.updateRate ? 'Device Config' : this.platform.platformUpdateRate ? 'Platform Config' : 'Default';
|
|
57
|
-
this.
|
|
88
|
+
await this.debugLog(`Using ${updateRate} updateRate: ${this.deviceUpdateRate}`);
|
|
58
89
|
// pushRate
|
|
59
90
|
this.devicePushRate = device.pushRate ?? this.platform.platformPushRate ?? 1;
|
|
60
91
|
const pushRate = device.pushRate ? 'Device Config' : this.platform.platformPushRate ? 'Platform Config' : 'Default';
|
|
@@ -68,6 +99,7 @@ export class deviceBase {
|
|
|
68
99
|
'updateRate',
|
|
69
100
|
'pushRate',
|
|
70
101
|
'hide_device',
|
|
102
|
+
'useMatter',
|
|
71
103
|
];
|
|
72
104
|
properties.forEach((prop) => {
|
|
73
105
|
if (device[prop] !== undefined) {
|
|
@@ -78,102 +110,125 @@ export class deviceBase {
|
|
|
78
110
|
this.infoLog(`Config: ${JSON.stringify(deviceConfig)}`);
|
|
79
111
|
}
|
|
80
112
|
}
|
|
81
|
-
|
|
82
|
-
|
|
113
|
+
/**
|
|
114
|
+
* Get and parse device firmware version
|
|
115
|
+
*/
|
|
116
|
+
async parseFirmwareVersion(firmware) {
|
|
117
|
+
const deviceFirmwareVersion = firmware ?? this.platform.version ?? '0.0.0';
|
|
83
118
|
const version = deviceFirmwareVersion.toString();
|
|
84
119
|
this.debugLog(`Firmware Version: ${version.replace(/^V|-.*$/g, '')}`);
|
|
85
120
|
if (version?.includes('.') === false) {
|
|
86
121
|
const replace = version?.replace(/^V|-.*$/g, '');
|
|
87
122
|
const match = replace?.match(/./g);
|
|
88
123
|
const validVersion = match?.join('.');
|
|
89
|
-
|
|
124
|
+
return validVersion ?? '0.0.0';
|
|
90
125
|
}
|
|
91
126
|
else {
|
|
92
|
-
|
|
127
|
+
return version.replace(/^V|-.*$/g, '') ?? '0.0.0';
|
|
93
128
|
}
|
|
94
|
-
|
|
95
|
-
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Initialize HAP accessory information
|
|
132
|
+
*/
|
|
133
|
+
initializeHAPAccessory() {
|
|
134
|
+
if (!this.accessory) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
this.getDeviceContext(this.accessory, this.accessory.context.device);
|
|
138
|
+
// Set accessory information
|
|
139
|
+
this.accessory
|
|
96
140
|
.getService(this.hap.Service.AccessoryInformation)
|
|
141
|
+
.setCharacteristic(this.hap.Characteristic.Manufacturer, this.accessory.context.device.brand && this.accessory.context.device.brand !== 'Unknown' ? this.accessory.context.device.brand : 'GE Appliances')
|
|
142
|
+
.setCharacteristic(this.hap.Characteristic.Name, this.accessory.context.device.nickname)
|
|
143
|
+
.setCharacteristic(this.hap.Characteristic.ConfiguredName, this.accessory.context.device.nickname)
|
|
144
|
+
.setCharacteristic(this.hap.Characteristic.Model, this.accessory.context.device.model)
|
|
145
|
+
.setCharacteristic(this.hap.Characteristic.SerialNumber, this.accessory.context.device.serial)
|
|
97
146
|
.setCharacteristic(this.hap.Characteristic.HardwareRevision, this.deviceFirmwareVersion)
|
|
98
147
|
.setCharacteristic(this.hap.Characteristic.SoftwareRevision, this.deviceFirmwareVersion)
|
|
99
148
|
.setCharacteristic(this.hap.Characteristic.FirmwareRevision, this.deviceFirmwareVersion)
|
|
100
149
|
.getCharacteristic(this.hap.Characteristic.FirmwareRevision)
|
|
101
150
|
.updateValue(this.deviceFirmwareVersion);
|
|
102
|
-
this.debugSuccessLog(`deviceFirmwareVersion: ${this.deviceFirmwareVersion}`);
|
|
103
151
|
}
|
|
104
152
|
/**
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
* @param Service Service
|
|
108
|
-
* @param Characteristic Characteristic
|
|
109
|
-
* @param CharacteristicValue CharacteristicValue | undefined
|
|
110
|
-
* @param CharacteristicName string
|
|
111
|
-
* @return: void
|
|
112
|
-
*
|
|
153
|
+
* Get the appliance ID for ERD operations
|
|
113
154
|
*/
|
|
114
|
-
|
|
115
|
-
if (
|
|
116
|
-
this.
|
|
155
|
+
getApplianceId() {
|
|
156
|
+
if (this.accessory) {
|
|
157
|
+
return this.accessory.context.device.applianceId;
|
|
117
158
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
159
|
+
// Fallback for Matter mode - should be set via userId path
|
|
160
|
+
return '';
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Get the user ID for ERD operations
|
|
164
|
+
*/
|
|
165
|
+
getUserId() {
|
|
166
|
+
if (this.accessory) {
|
|
167
|
+
return this.accessory.context.userId;
|
|
124
168
|
}
|
|
169
|
+
return this.userId ?? '';
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get the device display name for logging
|
|
173
|
+
*/
|
|
174
|
+
getDisplayName() {
|
|
175
|
+
if (this.accessory) {
|
|
176
|
+
return this.accessory.displayName;
|
|
177
|
+
}
|
|
178
|
+
const protocol = this.useMatter ? 'Matter' : 'HAP';
|
|
179
|
+
return `[${protocol}] SmartHQ Device`;
|
|
125
180
|
}
|
|
126
181
|
/**
|
|
127
182
|
* Logging for Device
|
|
128
183
|
*/
|
|
129
184
|
async infoLog(...log) {
|
|
130
185
|
if (await this.enablingDeviceLogging()) {
|
|
131
|
-
this.log.info(`${this.
|
|
186
|
+
this.log.info(`${this.getDisplayName()}`, String(...log));
|
|
132
187
|
}
|
|
133
188
|
}
|
|
134
189
|
async successLog(...log) {
|
|
135
190
|
if (await this.enablingDeviceLogging()) {
|
|
136
|
-
this.log.success(`${this.
|
|
191
|
+
this.log.success(`${this.getDisplayName()}`, String(...log));
|
|
137
192
|
}
|
|
138
193
|
}
|
|
139
194
|
async debugSuccessLog(...log) {
|
|
140
195
|
if (await this.enablingDeviceLogging()) {
|
|
141
196
|
if (await this.loggingIsDebug()) {
|
|
142
|
-
this.log.success(`[DEBUG] ${this.
|
|
197
|
+
this.log.success(`[DEBUG] ${this.getDisplayName()}`, String(...log));
|
|
143
198
|
}
|
|
144
199
|
}
|
|
145
200
|
}
|
|
146
201
|
async warnLog(...log) {
|
|
147
202
|
if (await this.enablingDeviceLogging()) {
|
|
148
|
-
this.log.warn(`${this.
|
|
203
|
+
this.log.warn(`${this.getDisplayName()}`, String(...log));
|
|
149
204
|
}
|
|
150
205
|
}
|
|
151
206
|
async debugWarnLog(...log) {
|
|
152
207
|
if (await this.enablingDeviceLogging()) {
|
|
153
208
|
if (await this.loggingIsDebug()) {
|
|
154
|
-
this.log.warn(`[DEBUG] ${this.
|
|
209
|
+
this.log.warn(`[DEBUG] ${this.getDisplayName()}`, String(...log));
|
|
155
210
|
}
|
|
156
211
|
}
|
|
157
212
|
}
|
|
158
213
|
async errorLog(...log) {
|
|
159
214
|
if (await this.enablingDeviceLogging()) {
|
|
160
|
-
this.log.error(`${this.
|
|
215
|
+
this.log.error(`${this.getDisplayName()}`, String(...log));
|
|
161
216
|
}
|
|
162
217
|
}
|
|
163
218
|
async debugErrorLog(...log) {
|
|
164
219
|
if (await this.enablingDeviceLogging()) {
|
|
165
220
|
if (await this.loggingIsDebug()) {
|
|
166
|
-
this.log.error(`[DEBUG] ${this.
|
|
221
|
+
this.log.error(`[DEBUG] ${this.getDisplayName()}`, String(...log));
|
|
167
222
|
}
|
|
168
223
|
}
|
|
169
224
|
}
|
|
170
225
|
async debugLog(...log) {
|
|
171
226
|
if (await this.enablingDeviceLogging()) {
|
|
172
227
|
if (this.deviceLogging === 'debug') {
|
|
173
|
-
this.log.info(`[DEBUG] ${this.
|
|
228
|
+
this.log.info(`[DEBUG] ${this.getDisplayName()}`, String(...log));
|
|
174
229
|
}
|
|
175
230
|
else if (this.deviceLogging === 'debugMode') {
|
|
176
|
-
this.log.debug(`${this.
|
|
231
|
+
this.log.debug(`${this.getDisplayName()}`, String(...log));
|
|
177
232
|
}
|
|
178
233
|
}
|
|
179
234
|
}
|
|
@@ -185,8 +240,6 @@ export class deviceBase {
|
|
|
185
240
|
}
|
|
186
241
|
/**
|
|
187
242
|
* Check if an ERD code is supported by this appliance
|
|
188
|
-
* @param erd - The ERD code to check
|
|
189
|
-
* @returns true if the ERD is available, false otherwise
|
|
190
243
|
*/
|
|
191
244
|
async has_erd_code(erd) {
|
|
192
245
|
try {
|
|
@@ -199,8 +252,6 @@ export class deviceBase {
|
|
|
199
252
|
}
|
|
200
253
|
/**
|
|
201
254
|
* Try to get an ERD value without throwing errors
|
|
202
|
-
* @param erd - The ERD code to read
|
|
203
|
-
* @returns The ERD value or undefined if not available
|
|
204
255
|
*/
|
|
205
256
|
async try_get_erd_value(erd) {
|
|
206
257
|
try {
|
|
@@ -212,8 +263,6 @@ export class deviceBase {
|
|
|
212
263
|
}
|
|
213
264
|
/**
|
|
214
265
|
* Read an ERD (Electronic Refrigerator Descriptor) value from the SmartHQ API
|
|
215
|
-
* @param erd - The ERD code to read
|
|
216
|
-
* @returns The ERD value as a string (JSON stringified if object), or undefined if not supported/error
|
|
217
266
|
*/
|
|
218
267
|
async readErd(erd) {
|
|
219
268
|
// Check if we already know this ERD is not supported
|
|
@@ -223,7 +272,7 @@ export class deviceBase {
|
|
|
223
272
|
try {
|
|
224
273
|
await this.debugLog(`Reading ERD ${erd}`);
|
|
225
274
|
const d = await axios
|
|
226
|
-
.get(`/appliance/${this.
|
|
275
|
+
.get(`/appliance/${this.getApplianceId()}/erd/${erd}`);
|
|
227
276
|
// If API returns undefined/null, return undefined without logging
|
|
228
277
|
if (d.data.value === undefined || d.data.value === null) {
|
|
229
278
|
return undefined;
|
|
@@ -246,14 +295,12 @@ export class deviceBase {
|
|
|
246
295
|
return undefined;
|
|
247
296
|
}
|
|
248
297
|
// For other errors, log warning and return undefined
|
|
249
|
-
this.warnLog
|
|
298
|
+
await this.warnLog(`readErd ${erd} error: ${error?.message ?? error}`);
|
|
250
299
|
return undefined;
|
|
251
300
|
}
|
|
252
301
|
}
|
|
253
302
|
/**
|
|
254
303
|
* Write an ERD (Electronic Refrigerator Descriptor) value to the SmartHQ API
|
|
255
|
-
* @param erd - The ERD code to write
|
|
256
|
-
* @param value - The value to write (boolean or string)
|
|
257
304
|
*/
|
|
258
305
|
async writeErd(erd, value) {
|
|
259
306
|
// Check if we already know this ERD is not supported
|
|
@@ -264,10 +311,10 @@ export class deviceBase {
|
|
|
264
311
|
try {
|
|
265
312
|
await this.debugLog(`Writing ERD ${erd} with value: ${value}`);
|
|
266
313
|
await axios
|
|
267
|
-
.post(`/appliance/${this.
|
|
314
|
+
.post(`/appliance/${this.getApplianceId()}/erd/${erd}`, {
|
|
268
315
|
kind: 'appliance#erdListEntry',
|
|
269
|
-
userId: this.
|
|
270
|
-
applianceId: this.
|
|
316
|
+
userId: this.getUserId(),
|
|
317
|
+
applianceId: this.getApplianceId(),
|
|
271
318
|
erd,
|
|
272
319
|
value: typeof value === 'boolean' ? (value ? '01' : '00') : value,
|
|
273
320
|
});
|
|
@@ -280,9 +327,108 @@ export class deviceBase {
|
|
|
280
327
|
await this.debugLog(`ERD ${erd} write failed - not supported or invalid value (400) - will not retry`);
|
|
281
328
|
}
|
|
282
329
|
else {
|
|
283
|
-
this.warnLog
|
|
330
|
+
await this.warnLog(`writeErd ${erd} error: ${error?.message ?? error}`);
|
|
284
331
|
}
|
|
285
332
|
}
|
|
286
333
|
}
|
|
334
|
+
/**
|
|
335
|
+
* Get device context for HAP accessories
|
|
336
|
+
*/
|
|
337
|
+
async getDeviceContext(accessory, device) {
|
|
338
|
+
const deviceFirmwareVersion = device.firmware ?? this.platform.version ?? '0.0.0';
|
|
339
|
+
this.deviceFirmwareVersion = await this.parseFirmwareVersion(deviceFirmwareVersion);
|
|
340
|
+
accessory.context.device.firmware = this.deviceFirmwareVersion;
|
|
341
|
+
accessory
|
|
342
|
+
.getService(this.hap.Service.AccessoryInformation)
|
|
343
|
+
.setCharacteristic(this.hap.Characteristic.HardwareRevision, this.deviceFirmwareVersion)
|
|
344
|
+
.setCharacteristic(this.hap.Characteristic.SoftwareRevision, this.deviceFirmwareVersion)
|
|
345
|
+
.setCharacteristic(this.hap.Characteristic.FirmwareRevision, this.deviceFirmwareVersion)
|
|
346
|
+
.getCharacteristic(this.hap.Characteristic.FirmwareRevision)
|
|
347
|
+
.updateValue(this.deviceFirmwareVersion);
|
|
348
|
+
this.debugSuccessLog(`deviceFirmwareVersion: ${this.deviceFirmwareVersion}`);
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Get device firmware version for Matter devices
|
|
352
|
+
*/
|
|
353
|
+
async getDeviceFirmwareVersion(device) {
|
|
354
|
+
const deviceFirmwareVersion = device.firmware ?? this.platform.version ?? '0.0.0';
|
|
355
|
+
this.deviceFirmwareVersion = await this.parseFirmwareVersion(deviceFirmwareVersion);
|
|
356
|
+
await this.debugLog(`deviceFirmwareVersion: ${this.deviceFirmwareVersion}`);
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Update HAP characteristic value and log the change
|
|
360
|
+
*/
|
|
361
|
+
async updateCharacteristic(Service, Characteristic, CharacteristicValue, CharacteristicName) {
|
|
362
|
+
if (!this.accessory) {
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
if (CharacteristicValue === undefined) {
|
|
366
|
+
this.debugLog(`${CharacteristicName}: ${CharacteristicValue}`);
|
|
367
|
+
}
|
|
368
|
+
else {
|
|
369
|
+
Service.updateCharacteristic(Characteristic, CharacteristicValue);
|
|
370
|
+
this.debugLog(`updateCharacteristic ${CharacteristicName}: ${CharacteristicValue}`);
|
|
371
|
+
this.debugWarnLog(`${CharacteristicName} context before: ${this.accessory.context[CharacteristicName]}`);
|
|
372
|
+
this.accessory.context[CharacteristicName] = CharacteristicValue;
|
|
373
|
+
this.debugWarnLog(`${CharacteristicName} context after: ${this.accessory.context[CharacteristicName]}`);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Create Matter accessory configuration
|
|
378
|
+
* Should be overridden by device-specific implementations that support Matter
|
|
379
|
+
*/
|
|
380
|
+
createMatterAccessory() {
|
|
381
|
+
return undefined;
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Get the Matter accessory instance
|
|
385
|
+
*/
|
|
386
|
+
getMatterAccessory() {
|
|
387
|
+
if (!this.matterAccessory && this.useMatter) {
|
|
388
|
+
this.matterAccessory = this.createMatterAccessory();
|
|
389
|
+
}
|
|
390
|
+
return this.matterAccessory;
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Helper to create base Matter accessory info
|
|
394
|
+
*/
|
|
395
|
+
createBaseMatterConfig() {
|
|
396
|
+
const device = this.accessory ? this.accessory.context.device : {};
|
|
397
|
+
const displayName = device.nickname || 'SmartHQ Device';
|
|
398
|
+
const serialNumber = device.applianceId || 'unknown';
|
|
399
|
+
// Type assertion for Matter API (will be properly typed in Homebridge 2.0)
|
|
400
|
+
const matterAPI = this.api.matter;
|
|
401
|
+
return {
|
|
402
|
+
UUID: matterAPI.uuid.generate(serialNumber),
|
|
403
|
+
displayName,
|
|
404
|
+
serialNumber,
|
|
405
|
+
manufacturer: device.brand && device.brand !== 'Unknown' ? device.brand : 'GE Appliances',
|
|
406
|
+
model: device.model || 'SmartHQ',
|
|
407
|
+
firmwareRevision: this.deviceFirmwareVersion,
|
|
408
|
+
hardwareRevision: this.deviceFirmwareVersion,
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Update Matter cluster state
|
|
413
|
+
*/
|
|
414
|
+
async updateMatterState(clusterName, attributes) {
|
|
415
|
+
if (!this.matterUuid) {
|
|
416
|
+
await this.debugLog('Cannot update Matter state - UUID not set');
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
try {
|
|
420
|
+
// Type assertion for Matter API (will be properly typed in Homebridge 2.0)
|
|
421
|
+
const matterAPI = this.api.matter;
|
|
422
|
+
if (!matterAPI) {
|
|
423
|
+
await this.debugLog('Matter API not available');
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
426
|
+
await matterAPI.updateAccessoryState(this.matterUuid, clusterName, attributes);
|
|
427
|
+
await this.debugLog(`Updated Matter cluster ${clusterName}: ${JSON.stringify(attributes)}`);
|
|
428
|
+
}
|
|
429
|
+
catch (error) {
|
|
430
|
+
await this.errorLog(`Failed to update Matter cluster ${clusterName}: ${error?.message ?? error}`);
|
|
431
|
+
}
|
|
432
|
+
}
|
|
287
433
|
}
|
|
288
434
|
//# sourceMappingURL=device.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/devices/device.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/devices/device.ts"],"names":[],"mappings":"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"}
|