@homebridge-plugins/homebridge-smarthq 0.5.0-beta.3 → 0.5.0-beta.30
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/.github/ISSUE_TEMPLATE/config.yml +1 -1
- package/.github/copilot-instructions.md +90 -0
- package/.github/scripts/branch-helper.sh +41 -0
- package/.github/workflows/beta-release.yml +1 -1
- package/.github/workflows/release.yml +53 -17
- package/CHANGELOG.md +563 -18
- package/MATTER.md +304 -0
- package/README.md +15 -0
- package/config.schema.json +14 -5
- package/dist/devices/OpalIceMaker/Managers/OpalDescaleSvcManager.d.ts.map +1 -1
- package/dist/devices/OpalIceMaker/Managers/OpalDescaleSvcManager.js +3 -1
- package/dist/devices/OpalIceMaker/Managers/OpalDescaleSvcManager.js.map +1 -1
- package/dist/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.d.ts.map +1 -1
- package/dist/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.js +3 -1
- package/dist/devices/OpalIceMaker/Managers/OpalFilterMaintenanceSvcManager.js.map +1 -1
- package/dist/devices/OpalIceMaker/Managers/OpalPowerSvcManager.js +1 -1
- package/dist/devices/OpalIceMaker/Managers/OpalPowerSvcManager.js.map +1 -1
- package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.d.ts +1 -1
- package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.d.ts.map +1 -1
- package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.js +12 -5
- package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.js.map +1 -1
- package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.d.ts.map +1 -1
- package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.js +4 -2
- package/dist/devices/OpalIceMaker/Managers/StatusManagers/OpalStatusBase.js.map +1 -1
- package/dist/devices/OpalIceMaker/OpalDeviceBase.d.ts +3 -4
- package/dist/devices/OpalIceMaker/OpalDeviceBase.d.ts.map +1 -1
- package/dist/devices/OpalIceMaker/OpalDeviceBase.js +3 -18
- package/dist/devices/OpalIceMaker/OpalDeviceBase.js.map +1 -1
- package/dist/devices/advantium.d.ts +10 -0
- package/dist/devices/advantium.d.ts.map +1 -0
- package/dist/devices/advantium.js +75 -0
- package/dist/devices/advantium.js.map +1 -0
- package/dist/devices/airConditioner.d.ts +11 -2
- package/dist/devices/airConditioner.d.ts.map +1 -1
- package/dist/devices/airConditioner.js +108 -17
- package/dist/devices/airConditioner.js.map +1 -1
- package/dist/devices/beverageCenter.d.ts +10 -0
- package/dist/devices/beverageCenter.d.ts.map +1 -0
- package/dist/devices/beverageCenter.js +125 -0
- package/dist/devices/beverageCenter.js.map +1 -0
- package/dist/devices/clothesDryer.d.ts +21 -0
- package/dist/devices/clothesDryer.d.ts.map +1 -0
- package/dist/devices/clothesDryer.js +240 -0
- package/dist/devices/clothesDryer.js.map +1 -0
- package/dist/devices/clothesWasher.d.ts +21 -0
- package/dist/devices/clothesWasher.d.ts.map +1 -0
- package/dist/devices/clothesWasher.js +251 -0
- package/dist/devices/clothesWasher.js.map +1 -0
- package/dist/devices/coffeeMaker.d.ts +10 -0
- package/dist/devices/coffeeMaker.d.ts.map +1 -0
- package/dist/devices/coffeeMaker.js +79 -0
- package/dist/devices/coffeeMaker.js.map +1 -0
- package/dist/devices/device.d.ts +107 -13
- package/dist/devices/device.d.ts.map +1 -1
- package/dist/devices/device.js +386 -60
- package/dist/devices/device.js.map +1 -1
- package/dist/devices/dishwasher.d.ts +9 -3
- package/dist/devices/dishwasher.d.ts.map +1 -1
- package/dist/devices/dishwasher.js +142 -29
- package/dist/devices/dishwasher.js.map +1 -1
- package/dist/devices/hood.d.ts +41 -0
- package/dist/devices/hood.d.ts.map +1 -0
- package/dist/devices/hood.js +332 -0
- package/dist/devices/hood.js.map +1 -0
- package/dist/devices/microwave.d.ts +19 -0
- package/dist/devices/microwave.d.ts.map +1 -0
- package/dist/devices/microwave.js +144 -0
- package/dist/devices/microwave.js.map +1 -0
- package/dist/devices/oven.d.ts +9 -2
- package/dist/devices/oven.d.ts.map +1 -1
- package/dist/devices/oven.js +245 -43
- package/dist/devices/oven.js.map +1 -1
- package/dist/devices/refrigerator.d.ts +37 -2
- package/dist/devices/refrigerator.d.ts.map +1 -1
- package/dist/devices/refrigerator.js +548 -34
- package/dist/devices/refrigerator.js.map +1 -1
- package/dist/devices/waterFilter.d.ts +10 -0
- package/dist/devices/waterFilter.d.ts.map +1 -0
- package/dist/devices/waterFilter.js +67 -0
- package/dist/devices/waterFilter.js.map +1 -0
- package/dist/devices/waterHeater.d.ts +19 -0
- package/dist/devices/waterHeater.d.ts.map +1 -0
- package/dist/devices/waterHeater.js +158 -0
- package/dist/devices/waterHeater.js.map +1 -0
- package/dist/devices/waterSoftener.d.ts +10 -0
- package/dist/devices/waterSoftener.d.ts.map +1 -0
- package/dist/devices/waterSoftener.js +67 -0
- package/dist/devices/waterSoftener.js.map +1 -0
- package/dist/getAccessToken.d.ts.map +1 -1
- package/dist/getAccessToken.js +6 -0
- package/dist/getAccessToken.js.map +1 -1
- package/dist/platform.d.ts +25 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +548 -70
- package/dist/platform.js.map +1 -1
- package/dist/platform.test.d.ts +2 -0
- package/dist/platform.test.d.ts.map +1 -0
- package/dist/platform.test.js +80 -0
- package/dist/platform.test.js.map +1 -0
- package/dist/settings.d.ts +23 -0
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +13 -0
- package/dist/settings.js.map +1 -1
- package/docs/assets/highlight.css +7 -0
- package/docs/assets/main.js +5 -5
- package/docs/assets/navigation.js +1 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +248 -226
- package/docs/classes/SmartHQPlatform.html +51 -56
- package/docs/hierarchy.html +1 -0
- package/docs/index.html +22 -12
- package/docs/interfaces/DeviceOptions.html +2 -3
- package/docs/interfaces/SmartHQPlatformConfig.html +6 -17
- package/docs/interfaces/SmartHqContext.html +6 -4
- package/docs/interfaces/SmartHqERDResponse.html +7 -8
- package/docs/interfaces/credentials.html +3 -4
- package/docs/interfaces/devicesConfig.html +8 -8
- package/docs/interfaces/options.html +7 -8
- package/docs/media/copilot-instructions.md +90 -0
- package/docs/modules.html +1 -2
- package/docs/variables/API_URL.html +1 -2
- package/docs/variables/ERD_CODES.html +1 -2
- package/docs/variables/ERD_TYPES.html +1 -2
- package/docs/variables/KEEPALIVE_TIMEOUT.html +1 -2
- package/docs/variables/LOGIN_URL.html +2 -3
- package/docs/variables/OAUTH2_CLIENT_ID.html +1 -2
- package/docs/variables/OAUTH2_CLIENT_SECRET.html +1 -2
- package/docs/variables/OAUTH2_REDIRECT_URI.html +1 -2
- package/docs/variables/PLATFORM_NAME.html +2 -3
- package/docs/variables/PLUGIN_NAME.html +2 -3
- package/docs/variables/SECURE_URL.html +2 -3
- package/docs/variables/default.html +1 -0
- package/package.json +22 -33
- package/typedoc.json +0 -4
- package/vitest.config.ts +6 -5
- package/.github/workflows/build.yml +0 -18
- package/.github/workflows/changerelease.yml +0 -11
- package/.github/workflows/labeler.yml +0 -9
- package/.github/workflows/release-drafter.yml +0 -14
- package/docs/assets/dmt/dmt-component-data.js +0 -1
- package/docs/assets/dmt/dmt-components.css +0 -20
- package/docs/assets/dmt/dmt-components.js +0 -67
- package/docs/assets/dmt/dmt-search.cmp +0 -0
- package/docs/assets/dmt/dmt-theme.css +0 -1
- package/docs/functions/default.html +0 -2
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { deviceBase } from './device.js';
|
|
2
|
+
export class SmartHQMicrowave extends deviceBase {
|
|
3
|
+
platform;
|
|
4
|
+
device;
|
|
5
|
+
// Matter support override flag
|
|
6
|
+
useMatterOverride = false;
|
|
7
|
+
constructor(platform, accessory, device) {
|
|
8
|
+
super(platform, accessory, device);
|
|
9
|
+
this.platform = platform;
|
|
10
|
+
this.device = device;
|
|
11
|
+
// Check if we should use Matter protocol
|
|
12
|
+
this.useMatterOverride = device.useMatter ?? false;
|
|
13
|
+
this.debugLog(`Microwave Features: ${JSON.stringify(accessory.context.device.features)}`);
|
|
14
|
+
this.debugLog(`Using protocol: ${this.useMatterOverride ? 'Matter' : 'HAP'}`);
|
|
15
|
+
// Initialize the appropriate protocol
|
|
16
|
+
if (this.useMatterOverride) {
|
|
17
|
+
this.initializeMatter();
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
this.initializeHAP();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Initialize Matter protocol
|
|
25
|
+
*/
|
|
26
|
+
initializeMatter() {
|
|
27
|
+
const { valid, api: matterAPI } = this.validateMatterAPI();
|
|
28
|
+
if (!valid) {
|
|
29
|
+
this.errorLog('Matter API not available or incomplete - falling back to HAP');
|
|
30
|
+
this.initializeHAP();
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const serialNumber = this.device.applianceId || 'unknown';
|
|
34
|
+
this.matterUuid = matterAPI.uuid.generate(serialNumber);
|
|
35
|
+
const matterAccessory = {
|
|
36
|
+
UUID: this.matterUuid,
|
|
37
|
+
displayName: this.device.nickname || 'SmartHQ Microwave',
|
|
38
|
+
serialNumber,
|
|
39
|
+
manufacturer: this.device.brand && this.device.brand !== 'Unknown' ? this.device.brand : 'GE Appliances',
|
|
40
|
+
model: this.device.model || 'SmartHQ',
|
|
41
|
+
firmwareRevision: this.deviceFirmwareVersion,
|
|
42
|
+
hardwareRevision: this.deviceFirmwareVersion,
|
|
43
|
+
deviceType: matterAPI.deviceTypes.MicrowaveOven,
|
|
44
|
+
clusters: {
|
|
45
|
+
// On/Off cluster for light
|
|
46
|
+
onOff: {
|
|
47
|
+
onOff: false,
|
|
48
|
+
},
|
|
49
|
+
// Operational State for microwave running
|
|
50
|
+
operationalState: {
|
|
51
|
+
operationalState: 0,
|
|
52
|
+
operationalError: { errorStateID: 0 },
|
|
53
|
+
},
|
|
54
|
+
// Timer cluster for cook time
|
|
55
|
+
timer: {
|
|
56
|
+
timerState: 0,
|
|
57
|
+
duration: 0,
|
|
58
|
+
remainingTime: 0,
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
handlers: {},
|
|
62
|
+
};
|
|
63
|
+
matterAPI.registerAccessory(matterAccessory);
|
|
64
|
+
this.infoLog('Created Matter Microwave with operational state and timer clusters');
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Initialize HAP (HomeKit) protocol
|
|
68
|
+
*/
|
|
69
|
+
initializeHAP() {
|
|
70
|
+
// Microwave Light
|
|
71
|
+
const light = this.accessory.getService('Microwave Light') ?? this.accessory.addService(this.platform.Service.Lightbulb, 'Microwave Light', 'MicrowaveLight');
|
|
72
|
+
light.setCharacteristic(this.platform.Characteristic.Name, 'Microwave Light');
|
|
73
|
+
light
|
|
74
|
+
.getCharacteristic(this.platform.Characteristic.On)
|
|
75
|
+
.onGet(async () => {
|
|
76
|
+
try {
|
|
77
|
+
// TODO: Implement light state ERD
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
this.warnLog?.(`Microwave Light error: ${error?.message ?? error}`);
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
})
|
|
85
|
+
.onSet(async (value) => {
|
|
86
|
+
try {
|
|
87
|
+
// TODO: Implement light control ERD
|
|
88
|
+
this.debugLog(`Microwave Light set to: ${value}`);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
this.warnLog?.(`Microwave Light set error: ${error?.message ?? error}`);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
// Microwave Running State (Switch)
|
|
95
|
+
const runningSwitch = this.accessory.getService('Microwave') ?? this.accessory.addService(this.platform.Service.Switch, 'Microwave', 'Microwave');
|
|
96
|
+
runningSwitch.setCharacteristic(this.platform.Characteristic.Name, 'Microwave');
|
|
97
|
+
runningSwitch
|
|
98
|
+
.getCharacteristic(this.platform.Characteristic.On)
|
|
99
|
+
.onGet(async () => {
|
|
100
|
+
try {
|
|
101
|
+
// TODO: Implement running state ERD
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
this.warnLog?.(`Microwave Running error: ${error?.message ?? error}`);
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
})
|
|
109
|
+
.onSet(async (value) => {
|
|
110
|
+
try {
|
|
111
|
+
// TODO: Implement running control ERD
|
|
112
|
+
this.debugLog(`Microwave Running set to: ${value}`);
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
this.warnLog?.(`Microwave Running set error: ${error?.message ?? error}`);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
// Ventilation Fan (if applicable)
|
|
119
|
+
const fan = this.accessory.getService('Microwave Fan') ?? this.accessory.addService(this.platform.Service.Fanv2, 'Microwave Fan', 'MicrowaveFan');
|
|
120
|
+
fan.setCharacteristic(this.platform.Characteristic.Name, 'Microwave Fan');
|
|
121
|
+
fan
|
|
122
|
+
.getCharacteristic(this.platform.Characteristic.Active)
|
|
123
|
+
.onGet(async () => {
|
|
124
|
+
try {
|
|
125
|
+
// TODO: Implement fan state ERD
|
|
126
|
+
return this.platform.Characteristic.Active.INACTIVE;
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
this.warnLog?.(`Microwave Fan error: ${error?.message ?? error}`);
|
|
130
|
+
return this.platform.Characteristic.Active.INACTIVE;
|
|
131
|
+
}
|
|
132
|
+
})
|
|
133
|
+
.onSet(async (value) => {
|
|
134
|
+
try {
|
|
135
|
+
// TODO: Implement fan control ERD
|
|
136
|
+
this.debugLog(`Microwave Fan set to: ${value}`);
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
this.warnLog?.(`Microwave Fan set error: ${error?.message ?? error}`);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=microwave.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"microwave.js","sourceRoot":"","sources":["../../src/devices/microwave.ts"],"names":[],"mappings":"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"}
|
package/dist/devices/oven.d.ts
CHANGED
|
@@ -5,8 +5,15 @@ import { deviceBase } from './device.js';
|
|
|
5
5
|
export declare class SmartHQOven extends deviceBase {
|
|
6
6
|
readonly platform: SmartHQPlatform;
|
|
7
7
|
readonly device: SmartHqContext['device'] & devicesConfig;
|
|
8
|
+
private useMatterOverride;
|
|
8
9
|
constructor(platform: SmartHQPlatform, accessory: PlatformAccessory<SmartHqContext>, device: SmartHqContext['device'] & devicesConfig);
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Initialize Matter protocol
|
|
12
|
+
*/
|
|
13
|
+
private initializeMatter;
|
|
14
|
+
/**
|
|
15
|
+
* Initialize HAP (HomeKit) protocol
|
|
16
|
+
*/
|
|
17
|
+
private initializeHAP;
|
|
11
18
|
}
|
|
12
19
|
//# sourceMappingURL=oven.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oven.d.ts","sourceRoot":"","sources":["../../src/devices/oven.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"oven.d.ts","sourceRoot":"","sources":["../../src/devices/oven.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAKnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,qBAAa,WAAY,SAAQ,UAAU;IAKvC,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAL3D,OAAO,CAAC,iBAAiB,CAAiB;gBAG/B,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAkB3D;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyFxB;;OAEG;IACH,OAAO,CAAC,aAAa;CAkJtB"}
|
package/dist/devices/oven.js
CHANGED
|
@@ -1,64 +1,266 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
|
-
import axios from 'axios';
|
|
3
2
|
import { ERD_TYPES } from '../settings.js';
|
|
4
3
|
import { deviceBase } from './device.js';
|
|
5
4
|
export class SmartHQOven extends deviceBase {
|
|
6
5
|
platform;
|
|
7
6
|
device;
|
|
7
|
+
// Matter support override flag
|
|
8
|
+
useMatterOverride = false;
|
|
8
9
|
constructor(platform, accessory, device) {
|
|
9
10
|
super(platform, accessory, device);
|
|
10
11
|
this.platform = platform;
|
|
11
12
|
this.device = device;
|
|
13
|
+
// Check if we should use Matter protocol
|
|
14
|
+
this.useMatterOverride = device.useMatter ?? false;
|
|
12
15
|
this.debugLog(`Oven Features: ${JSON.stringify(accessory.context.device.features)}`);
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
16
|
+
this.debugLog(`Using protocol: ${this.useMatterOverride ? 'Matter' : 'HAP'}`);
|
|
17
|
+
// Initialize the appropriate protocol
|
|
18
|
+
if (this.useMatterOverride) {
|
|
19
|
+
this.initializeMatter();
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
this.initializeHAP();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Initialize Matter protocol
|
|
27
|
+
*/
|
|
28
|
+
initializeMatter() {
|
|
29
|
+
const { valid, api: matterAPI } = this.validateMatterAPI();
|
|
30
|
+
if (!valid) {
|
|
31
|
+
this.errorLog('Matter API not available or incomplete - falling back to HAP');
|
|
32
|
+
this.initializeHAP();
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const serialNumber = this.device.applianceId || 'unknown';
|
|
36
|
+
this.matterUuid = matterAPI.uuid.generate(serialNumber);
|
|
37
|
+
// Create Matter accessory configuration with oven-specific clusters
|
|
38
|
+
const matterAccessory = {
|
|
39
|
+
UUID: this.matterUuid,
|
|
40
|
+
displayName: this.device.nickname || 'SmartHQ Oven',
|
|
41
|
+
serialNumber,
|
|
42
|
+
manufacturer: this.device.brand && this.device.brand !== 'Unknown' ? this.device.brand : 'GE Appliances',
|
|
43
|
+
model: this.device.model || 'SmartHQ',
|
|
44
|
+
firmwareRevision: this.deviceFirmwareVersion,
|
|
45
|
+
hardwareRevision: this.deviceFirmwareVersion,
|
|
46
|
+
deviceType: matterAPI.deviceTypes.OvenDevice,
|
|
47
|
+
clusters: {
|
|
48
|
+
// On/Off cluster for oven light
|
|
49
|
+
onOff: {
|
|
50
|
+
onOff: false,
|
|
51
|
+
},
|
|
52
|
+
// Temperature Measurement for oven cavity (maps to UPPER_OVEN_DISPLAY_TEMPERATURE)
|
|
53
|
+
temperatureMeasurement: {
|
|
54
|
+
measuredValue: 2000, // 20°C in 0.01°C units
|
|
55
|
+
minMeasuredValue: 0,
|
|
56
|
+
maxMeasuredValue: 26000, // 260°C max
|
|
57
|
+
},
|
|
58
|
+
// Thermostat cluster for temperature setpoint control
|
|
59
|
+
thermostat: {
|
|
60
|
+
localTemperature: 2000,
|
|
61
|
+
occupiedHeatingSetpoint: 17500, // 175°C default
|
|
62
|
+
systemMode: 0, // 0=Off, 4=Heat
|
|
63
|
+
thermostatRunningMode: 0,
|
|
64
|
+
controlSequenceOfOperation: 2, // Heating only
|
|
65
|
+
},
|
|
66
|
+
// Oven Mode cluster for cooking modes (maps to UPPER_OVEN_COOK_MODE)
|
|
67
|
+
ovenMode: {
|
|
68
|
+
supportedModes: [
|
|
69
|
+
{ label: 'Off', mode: 0 },
|
|
70
|
+
{ label: 'Bake', mode: 1 },
|
|
71
|
+
{ label: 'Convection Bake', mode: 2 },
|
|
72
|
+
{ label: 'Broil High', mode: 3 },
|
|
73
|
+
{ label: 'Broil Low', mode: 4 },
|
|
74
|
+
{ label: 'Convection Multi', mode: 5 },
|
|
75
|
+
],
|
|
76
|
+
currentMode: 0,
|
|
77
|
+
},
|
|
78
|
+
// Timer cluster for cook time remaining (maps to UPPER_OVEN_COOK_TIME_REMAINING)
|
|
79
|
+
timer: {
|
|
80
|
+
timerState: 0,
|
|
81
|
+
duration: 0,
|
|
82
|
+
remainingTime: 0,
|
|
83
|
+
},
|
|
84
|
+
// Alarm cluster for preheat complete, cooking done
|
|
85
|
+
alarm: {
|
|
86
|
+
mask: 0,
|
|
87
|
+
state: 0,
|
|
88
|
+
supported: 3, // Bits: 0=preheat complete, 1=cook complete
|
|
89
|
+
},
|
|
90
|
+
// Door Lock cluster for oven door
|
|
91
|
+
doorLock: {
|
|
92
|
+
lockState: 0, // 0=Unlocked, 1=Locked
|
|
93
|
+
lockType: 0,
|
|
94
|
+
actuatorEnabled: true,
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
handlers: {
|
|
98
|
+
onOff: {
|
|
99
|
+
on: async () => {
|
|
100
|
+
await this.writeErd(ERD_TYPES.UPPER_OVEN_LIGHT, true);
|
|
101
|
+
},
|
|
102
|
+
off: async () => {
|
|
103
|
+
await this.writeErd(ERD_TYPES.UPPER_OVEN_LIGHT, false);
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
// Register Matter accessory
|
|
109
|
+
matterAPI.registerAccessory(matterAccessory);
|
|
110
|
+
this.infoLog('Created Matter Oven with thermostat, mode selection, timer, alarm, and door lock clusters');
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Initialize HAP (HomeKit) protocol
|
|
114
|
+
*/
|
|
115
|
+
initializeHAP() {
|
|
116
|
+
// Oven Light
|
|
117
|
+
const ovenLight = this.accessory.getService('Oven Light') ?? this.accessory.addService(this.platform.Service.Lightbulb, 'Oven Light', 'OvenLight');
|
|
118
|
+
ovenLight.setCharacteristic(this.platform.Characteristic.Name, 'Oven Light');
|
|
119
|
+
ovenLight
|
|
120
|
+
.getCharacteristic(this.platform.Characteristic.On)
|
|
121
|
+
.onGet(async () => {
|
|
122
|
+
try {
|
|
123
|
+
const r = await this.readErd(ERD_TYPES.UPPER_OVEN_LIGHT);
|
|
124
|
+
return r ? Number.parseInt(r) !== 0 : false;
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
this.warnLog?.(`Oven Light handleGetOn error: ${error?.message ?? error}`);
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
})
|
|
131
|
+
.onSet(async (value) => {
|
|
132
|
+
try {
|
|
133
|
+
await this.writeErd(ERD_TYPES.UPPER_OVEN_LIGHT, value);
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
this.warnLog?.(`Oven Light handleSetOn error: ${error?.message ?? error}`);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
// Oven Current Temperature Sensor
|
|
140
|
+
const ovenTempSensor = this.accessory.getService('Oven Temperature') ?? this.accessory.addService(this.platform.Service.TemperatureSensor, 'Oven Temperature', 'OvenTemp');
|
|
141
|
+
ovenTempSensor.setCharacteristic(this.platform.Characteristic.Name, 'Oven Temperature');
|
|
142
|
+
ovenTempSensor
|
|
143
|
+
.getCharacteristic(this.platform.Characteristic.CurrentTemperature)
|
|
144
|
+
.onGet(async () => {
|
|
145
|
+
try {
|
|
146
|
+
const erdVal = await this.readErd(ERD_TYPES.UPPER_OVEN_COOK_MODE);
|
|
147
|
+
if (!erdVal) {
|
|
148
|
+
return 0;
|
|
38
149
|
}
|
|
150
|
+
const b = Buffer.from(erdVal, 'hex');
|
|
151
|
+
return fToC(b.readUint16BE(1));
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
this.warnLog?.(`Oven Temperature error: ${error?.message ?? error}`);
|
|
155
|
+
return 0;
|
|
39
156
|
}
|
|
40
157
|
});
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
158
|
+
(async () => {
|
|
159
|
+
const probePresent = await this.has_erd_code(ERD_TYPES.UPPER_OVEN_PROBE_PRESENT);
|
|
160
|
+
if (probePresent) {
|
|
161
|
+
const probeTempSensor = this.accessory.getService('Probe Temperature') ?? this.accessory.addService(this.platform.Service.TemperatureSensor, 'Probe Temperature', 'ProbeTemp');
|
|
162
|
+
probeTempSensor.setCharacteristic(this.platform.Characteristic.Name, 'Probe Temperature');
|
|
163
|
+
probeTempSensor
|
|
164
|
+
.getCharacteristic(this.platform.Characteristic.CurrentTemperature)
|
|
165
|
+
.onGet(async () => {
|
|
166
|
+
const r = await this.readErd(ERD_TYPES.UPPER_OVEN_PROBE_DISPLAY_TEMP);
|
|
167
|
+
if (!r) {
|
|
168
|
+
return 0;
|
|
169
|
+
}
|
|
170
|
+
const tempF = Number.parseInt(r);
|
|
171
|
+
return fToC(tempF);
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
})();
|
|
175
|
+
// Cook Time Remaining (using a valve to show remaining duration)
|
|
176
|
+
const cookTimeValve = this.accessory.getService('Cook Time') ?? this.accessory.addService(this.platform.Service.Valve, 'Cook Time', 'CookTime');
|
|
177
|
+
cookTimeValve.setCharacteristic(this.platform.Characteristic.Name, 'Cook Time');
|
|
178
|
+
cookTimeValve.setCharacteristic(this.platform.Characteristic.ValveType, this.platform.Characteristic.ValveType.GENERIC_VALVE);
|
|
179
|
+
cookTimeValve
|
|
180
|
+
.getCharacteristic(this.platform.Characteristic.Active)
|
|
181
|
+
.onGet(async () => {
|
|
182
|
+
const r = await this.readErd(ERD_TYPES.UPPER_OVEN_COOK_TIME_REMAINING);
|
|
183
|
+
// Active if time remaining is non-zero
|
|
184
|
+
return r && Number.parseInt(r, 16) > 0
|
|
185
|
+
? this.platform.Characteristic.Active.ACTIVE
|
|
186
|
+
: this.platform.Characteristic.Active.INACTIVE;
|
|
187
|
+
});
|
|
188
|
+
cookTimeValve
|
|
189
|
+
.getCharacteristic(this.platform.Characteristic.InUse)
|
|
190
|
+
.onGet(async () => {
|
|
191
|
+
const r = await this.readErd(ERD_TYPES.UPPER_OVEN_COOK_TIME_REMAINING);
|
|
192
|
+
return r && Number.parseInt(r, 16) > 0
|
|
193
|
+
? this.platform.Characteristic.InUse.IN_USE
|
|
194
|
+
: this.platform.Characteristic.InUse.NOT_IN_USE;
|
|
195
|
+
});
|
|
196
|
+
cookTimeValve
|
|
197
|
+
.getCharacteristic(this.platform.Characteristic.RemainingDuration)
|
|
198
|
+
.onGet(async () => {
|
|
199
|
+
const r = await this.readErd(ERD_TYPES.UPPER_OVEN_COOK_TIME_REMAINING);
|
|
200
|
+
if (!r) {
|
|
201
|
+
return 0;
|
|
202
|
+
}
|
|
203
|
+
// Cook time remaining is stored as minutes in hex, convert to seconds
|
|
204
|
+
const minutes = Number.parseInt(r, 16);
|
|
205
|
+
const seconds = minutes * 60;
|
|
206
|
+
this.debugLog(`Cook Time Remaining - Hex: ${r}, Minutes: ${minutes}, Seconds: ${seconds}`);
|
|
207
|
+
return seconds;
|
|
208
|
+
});
|
|
209
|
+
// Remote Enabled Status (binary sensor)
|
|
210
|
+
const remoteEnabledSensor = this.accessory.getService('Remote Enabled') ?? this.accessory.addService(this.platform.Service.ContactSensor, 'Remote Enabled', 'RemoteEnabled');
|
|
211
|
+
remoteEnabledSensor.setCharacteristic(this.platform.Characteristic.Name, 'Remote Enabled');
|
|
212
|
+
remoteEnabledSensor
|
|
213
|
+
.getCharacteristic(this.platform.Characteristic.ContactSensorState)
|
|
214
|
+
.onGet(async () => {
|
|
215
|
+
const r = await this.readErd(ERD_TYPES.UPPER_OVEN_REMOTE_ENABLED);
|
|
216
|
+
// 1=enabled (open/not detected), 0=disabled (closed/detected)
|
|
217
|
+
return r && Number.parseInt(r) === 1
|
|
218
|
+
? this.platform.Characteristic.ContactSensorState.CONTACT_NOT_DETECTED
|
|
219
|
+
: this.platform.Characteristic.ContactSensorState.CONTACT_DETECTED;
|
|
220
|
+
});
|
|
221
|
+
// Oven Door Lock (Security System for lock state)
|
|
222
|
+
const ovenDoorLock = this.accessory.getService('Oven Door Lock') ?? this.accessory.addService(this.platform.Service.LockMechanism, 'Oven Door Lock', 'OvenDoorLock');
|
|
223
|
+
ovenDoorLock.setCharacteristic(this.platform.Characteristic.Name, 'Oven Door Lock');
|
|
224
|
+
ovenDoorLock
|
|
225
|
+
.getCharacteristic(this.platform.Characteristic.LockCurrentState)
|
|
226
|
+
.onGet(async () => {
|
|
227
|
+
try {
|
|
228
|
+
// TODO: Use actual ERD for door lock state when available
|
|
229
|
+
return this.platform.Characteristic.LockCurrentState.UNSECURED;
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
this.warnLog?.(`Oven Door Lock error: ${error?.message ?? error}`);
|
|
233
|
+
return this.platform.Characteristic.LockCurrentState.UNSECURED;
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
ovenDoorLock
|
|
237
|
+
.getCharacteristic(this.platform.Characteristic.LockTargetState)
|
|
238
|
+
.onGet(async () => {
|
|
239
|
+
try {
|
|
240
|
+
// TODO: Use actual ERD for door lock state when available
|
|
241
|
+
return this.platform.Characteristic.LockTargetState.UNSECURED;
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
this.warnLog?.(`Oven Door Lock error: ${error?.message ?? error}`);
|
|
245
|
+
return this.platform.Characteristic.LockTargetState.UNSECURED;
|
|
246
|
+
}
|
|
247
|
+
})
|
|
248
|
+
.onSet(async (value) => {
|
|
249
|
+
try {
|
|
250
|
+
// TODO: Implement door lock control when ERD is available
|
|
251
|
+
this.debugLog(`Oven Door Lock set to: ${value}`);
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
this.warnLog?.(`Oven Door Lock set error: ${error?.message ?? error}`);
|
|
255
|
+
}
|
|
55
256
|
});
|
|
56
|
-
return undefined;
|
|
57
257
|
}
|
|
58
258
|
}
|
|
59
|
-
|
|
60
|
-
|
|
259
|
+
/*
|
|
260
|
+
function cToF(celsius: number) {
|
|
261
|
+
return (celsius * 9) / 5 + 32
|
|
61
262
|
}
|
|
263
|
+
*/
|
|
62
264
|
function fToC(fahrenheit) {
|
|
63
265
|
return ((fahrenheit - 32) * 5) / 9;
|
|
64
266
|
}
|
package/dist/devices/oven.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oven.js","sourceRoot":"","sources":["../../src/devices/oven.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,
|
|
1
|
+
{"version":3,"file":"oven.js","sourceRoot":"","sources":["../../src/devices/oven.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,48 @@ import type { PlatformAccessory } from 'homebridge';
|
|
|
2
2
|
import type { SmartHQPlatform } from '../platform.js';
|
|
3
3
|
import type { devicesConfig, SmartHqContext } from '../settings.js';
|
|
4
4
|
import { deviceBase } from './device.js';
|
|
5
|
+
/**
|
|
6
|
+
* SmartHQ Refrigerator - Unified HAP/Matter Implementation
|
|
7
|
+
* Supports both HomeKit Accessory Protocol and Matter protocol
|
|
8
|
+
*/
|
|
5
9
|
export declare class SmartHQRefrigerator extends deviceBase {
|
|
6
10
|
readonly platform: SmartHQPlatform;
|
|
7
11
|
readonly device: SmartHqContext['device'] & devicesConfig;
|
|
8
12
|
SensorUpdateInProgress: boolean;
|
|
9
13
|
deviceStatus: any;
|
|
14
|
+
private useMatterOverride;
|
|
10
15
|
constructor(platform: SmartHQPlatform, accessory: PlatformAccessory<SmartHqContext>, device: SmartHqContext['device'] & devicesConfig);
|
|
11
|
-
|
|
12
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Initialize Matter protocol
|
|
18
|
+
*/
|
|
19
|
+
private initializeMatter;
|
|
20
|
+
/**
|
|
21
|
+
* Initialize HAP (HomeKit) protocol
|
|
22
|
+
*/
|
|
23
|
+
private initializeHAP;
|
|
24
|
+
/**
|
|
25
|
+
* Shared helper: Parse temperature from ERD (works for both HAP and Matter)
|
|
26
|
+
*/
|
|
27
|
+
private parseTemperature;
|
|
28
|
+
/**
|
|
29
|
+
* Shared helper: Parse setpoint from ERD
|
|
30
|
+
*/
|
|
31
|
+
private parseSetpoint;
|
|
32
|
+
/**
|
|
33
|
+
* Shared helper: Write setpoint to ERD
|
|
34
|
+
*/
|
|
35
|
+
private writeSetpoint;
|
|
36
|
+
/**
|
|
37
|
+
* Handle Matter setpoint change
|
|
38
|
+
*/
|
|
39
|
+
private handleMatterSetpointChange;
|
|
40
|
+
/**
|
|
41
|
+
* Handle Matter mode change (Normal, Rapid Cool, Rapid Freeze)
|
|
42
|
+
*/
|
|
43
|
+
private handleMatterModeChange;
|
|
44
|
+
/**
|
|
45
|
+
* Refresh device status - update both HAP and Matter states
|
|
46
|
+
*/
|
|
47
|
+
private refreshDeviceStatus;
|
|
13
48
|
}
|
|
14
49
|
//# sourceMappingURL=refrigerator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refrigerator.d.ts","sourceRoot":"","sources":["../../src/devices/refrigerator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"refrigerator.d.ts","sourceRoot":"","sources":["../../src/devices/refrigerator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAKnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;IAS/C,QAAQ,CAAC,QAAQ,EAAE,eAAe;IAElC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IAT3D,sBAAsB,EAAG,OAAO,CAAA;IAChC,YAAY,EAAE,GAAG,CAAA;IAGjB,OAAO,CAAC,iBAAiB,CAAiB;gBAG/B,QAAQ,EAAE,eAAe,EAClC,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAAC,EACnC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,aAAa;IA6B3D;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqHxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAyOrB;;OAEG;YACW,gBAAgB;IAsB9B;;OAEG;YACW,aAAa;IAoB3B;;OAEG;YACW,aAAa;IAW3B;;OAEG;YACW,0BAA0B;IAcxC;;OAEG;YACW,sBAAsB;IAkCpC;;OAEG;YACW,mBAAmB;CA2JlC"}
|