matterbridge 3.2.3-dev-20250813-099c5df → 3.2.3-dev-20250815-4335c74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -0
- package/dist/devices/cooktop.js +21 -0
- package/dist/devices/dishwasher.js +3 -20
- package/dist/devices/export.js +1 -0
- package/dist/devices/laundryDryer.js +3 -20
- package/dist/devices/oven.js +1 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,7 @@ If you like this project and find it useful, please consider giving it a star on
|
|
|
14
14
|
|
|
15
15
|
- [Oven]: Added Oven class and Jest test. It is not supported by the Home app.
|
|
16
16
|
- [MicrowaveOven]: Added MicrowaveOven class and Jest test. It is not supported by the Home app.
|
|
17
|
+
- [Cooktop]: Added Cooktop class and Jest test. It is not supported by the Home app.
|
|
17
18
|
- [Matter]: Added Matter Specification Version 1.4 pdf files.
|
|
18
19
|
|
|
19
20
|
### Changed
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { cookSurface, cooktop, powerSource } from '../matterbridgeDeviceTypes.js';
|
|
2
|
+
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
3
|
+
import { createLevelTemperatureControlClusterServer } from './temperatureControl.js';
|
|
4
|
+
export class Cooktop extends MatterbridgeEndpoint {
|
|
5
|
+
constructor(name, serial) {
|
|
6
|
+
super([cooktop, powerSource], { uniqueStorageKey: `${name.replaceAll(' ', '')}-${serial.replaceAll(' ', '')}` }, true);
|
|
7
|
+
this.createDefaultIdentifyClusterServer();
|
|
8
|
+
this.createDefaultBasicInformationClusterServer(name, serial, 0xfff1, 'Matterbridge', 0x8000, 'Cooktop');
|
|
9
|
+
this.createDefaultPowerSourceWiredClusterServer();
|
|
10
|
+
this.createOffOnlyOnOffClusterServer(true);
|
|
11
|
+
this.addFixedLabel('composed', 'Cooktop');
|
|
12
|
+
}
|
|
13
|
+
addSurface(name, tagList, selectedTemperatureLevel = 2, supportedTemperatureLevels = ['Level 1', 'Level 2', 'Level 3', 'Level 4', 'Level 5']) {
|
|
14
|
+
const surface = this.addChildDeviceType(name, cookSurface, { tagList }, true);
|
|
15
|
+
surface.log.logName = name;
|
|
16
|
+
createLevelTemperatureControlClusterServer(surface, selectedTemperatureLevel, supportedTemperatureLevels);
|
|
17
|
+
surface.createDefaultTemperatureMeasurementClusterServer(2000);
|
|
18
|
+
surface.createOffOnlyOnOffClusterServer(true);
|
|
19
|
+
return surface;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { TemperatureControl } from '@matter/main/clusters/temperature-control';
|
|
2
1
|
import { ModeBase } from '@matter/main/clusters/mode-base';
|
|
3
2
|
import { DishwasherModeServer } from '@matter/main/behaviors/dishwasher-mode';
|
|
4
3
|
import { DishwasherAlarmServer } from '@matter/main/behaviors/dishwasher-alarm';
|
|
@@ -6,7 +5,7 @@ import { DishwasherMode } from '@matter/main/clusters/dishwasher-mode';
|
|
|
6
5
|
import { dishwasher, powerSource } from '../matterbridgeDeviceTypes.js';
|
|
7
6
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
8
7
|
import { MatterbridgeOnOffServer, MatterbridgeServer } from '../matterbridgeBehaviors.js';
|
|
9
|
-
import {
|
|
8
|
+
import { createLevelTemperatureControlClusterServer, createNumberTemperatureControlClusterServer } from './temperatureControl.js';
|
|
10
9
|
export class Dishwasher extends MatterbridgeEndpoint {
|
|
11
10
|
constructor(name, serial, currentMode, supportedModes, selectedTemperatureLevel, supportedTemperatureLevels, temperatureSetpoint, minTemperature, maxTemperature, step, operationalState) {
|
|
12
11
|
super([dishwasher, powerSource], { uniqueStorageKey: `${name.replaceAll(' ', '')}-${serial.replaceAll(' ', '')}` }, true);
|
|
@@ -17,27 +16,11 @@ export class Dishwasher extends MatterbridgeEndpoint {
|
|
|
17
16
|
this.createDefaultDishwasherModeClusterServer(currentMode, supportedModes);
|
|
18
17
|
this.createDefaultDishwasherAlarmClusterServer();
|
|
19
18
|
if (temperatureSetpoint)
|
|
20
|
-
|
|
19
|
+
createNumberTemperatureControlClusterServer(this, temperatureSetpoint, minTemperature, maxTemperature, step);
|
|
21
20
|
else
|
|
22
|
-
|
|
21
|
+
createLevelTemperatureControlClusterServer(this, selectedTemperatureLevel, supportedTemperatureLevels);
|
|
23
22
|
this.createDefaultOperationalStateClusterServer(operationalState);
|
|
24
23
|
}
|
|
25
|
-
createLevelTemperatureControlClusterServer(selectedTemperatureLevel = 1, supportedTemperatureLevels = ['Cold', 'Warm', 'Hot', '30°', '40°', '60°', '80°']) {
|
|
26
|
-
this.behaviors.require(MatterbridgeLevelTemperatureControlServer.with(TemperatureControl.Feature.TemperatureLevel), {
|
|
27
|
-
selectedTemperatureLevel,
|
|
28
|
-
supportedTemperatureLevels,
|
|
29
|
-
});
|
|
30
|
-
return this;
|
|
31
|
-
}
|
|
32
|
-
createNumberTemperatureControlClusterServer(temperatureSetpoint = 40 * 100, minTemperature = 30 * 100, maxTemperature = 60 * 100, step = 10 * 100) {
|
|
33
|
-
this.behaviors.require(MatterbridgeNumberTemperatureControlServer.with(TemperatureControl.Feature.TemperatureNumber, TemperatureControl.Feature.TemperatureStep), {
|
|
34
|
-
temperatureSetpoint,
|
|
35
|
-
minTemperature,
|
|
36
|
-
maxTemperature,
|
|
37
|
-
step,
|
|
38
|
-
});
|
|
39
|
-
return this;
|
|
40
|
-
}
|
|
41
24
|
createDefaultDishwasherModeClusterServer(currentMode = 2, supportedModes = [
|
|
42
25
|
{ label: 'Light', mode: 1, modeTags: [{ value: DishwasherMode.ModeTag.Light }] },
|
|
43
26
|
{ label: 'Normal', mode: 2, modeTags: [{ value: DishwasherMode.ModeTag.Normal }] },
|
package/dist/devices/export.js
CHANGED
|
@@ -4,6 +4,7 @@ export * from './extractorHood.js';
|
|
|
4
4
|
export * from './dishwasher.js';
|
|
5
5
|
export * from './microwaveOven.js';
|
|
6
6
|
export * from './oven.js';
|
|
7
|
+
export * from './cooktop.js';
|
|
7
8
|
export * from './waterHeater.js';
|
|
8
9
|
export * from './evse.js';
|
|
9
10
|
export * from './solarPower.js';
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { LaundryWasherMode } from '@matter/main/clusters/laundry-washer-mode';
|
|
2
|
-
import { TemperatureControl } from '@matter/main/clusters/temperature-control';
|
|
3
2
|
import { LaundryDryerControls } from '@matter/main/clusters/laundry-dryer-controls';
|
|
4
3
|
import { LaundryDryerControlsServer } from '@matter/main/behaviors/laundry-dryer-controls';
|
|
5
4
|
import { laundryDryer, powerSource } from '../matterbridgeDeviceTypes.js';
|
|
6
5
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
7
6
|
import { MatterbridgeLaundryWasherModeServer } from './laundryWasher.js';
|
|
8
|
-
import {
|
|
7
|
+
import { createLevelTemperatureControlClusterServer, createNumberTemperatureControlClusterServer } from './temperatureControl.js';
|
|
9
8
|
export class LaundryDryer extends MatterbridgeEndpoint {
|
|
10
9
|
constructor(name, serial, currentMode, supportedModes, selectedTemperatureLevel, supportedTemperatureLevels, temperatureSetpoint, minTemperature, maxTemperature, step, operationalState) {
|
|
11
10
|
super([laundryDryer, powerSource], { uniqueStorageKey: `${name.replaceAll(' ', '')}-${serial.replaceAll(' ', '')}` }, true);
|
|
@@ -16,9 +15,9 @@ export class LaundryDryer extends MatterbridgeEndpoint {
|
|
|
16
15
|
this.createDefaultLaundryWasherModeClusterServer(currentMode, supportedModes);
|
|
17
16
|
this.createDefaultLaundryDryerControlsClusterServer(1);
|
|
18
17
|
if (temperatureSetpoint)
|
|
19
|
-
|
|
18
|
+
createNumberTemperatureControlClusterServer(this, temperatureSetpoint, minTemperature, maxTemperature, step);
|
|
20
19
|
else
|
|
21
|
-
|
|
20
|
+
createLevelTemperatureControlClusterServer(this, selectedTemperatureLevel, supportedTemperatureLevels);
|
|
22
21
|
this.createDefaultOperationalStateClusterServer(operationalState);
|
|
23
22
|
}
|
|
24
23
|
createDefaultLaundryWasherModeClusterServer(currentMode = 2, supportedModes = [
|
|
@@ -40,20 +39,4 @@ export class LaundryDryer extends MatterbridgeEndpoint {
|
|
|
40
39
|
});
|
|
41
40
|
return this;
|
|
42
41
|
}
|
|
43
|
-
createLevelTemperatureControlClusterServer(selectedTemperatureLevel = 1, supportedTemperatureLevels = ['Cold', 'Warm', 'Hot', '30°', '40°', '60°', '80°']) {
|
|
44
|
-
this.behaviors.require(MatterbridgeLevelTemperatureControlServer.with(TemperatureControl.Feature.TemperatureLevel), {
|
|
45
|
-
selectedTemperatureLevel,
|
|
46
|
-
supportedTemperatureLevels,
|
|
47
|
-
});
|
|
48
|
-
return this;
|
|
49
|
-
}
|
|
50
|
-
createNumberTemperatureControlClusterServer(temperatureSetpoint = 40 * 100, minTemperature = 30 * 100, maxTemperature = 60 * 100, step = 10 * 100) {
|
|
51
|
-
this.behaviors.require(MatterbridgeNumberTemperatureControlServer.with(TemperatureControl.Feature.TemperatureNumber, TemperatureControl.Feature.TemperatureStep), {
|
|
52
|
-
temperatureSetpoint,
|
|
53
|
-
minTemperature,
|
|
54
|
-
maxTemperature,
|
|
55
|
-
step,
|
|
56
|
-
});
|
|
57
|
-
return this;
|
|
58
|
-
}
|
|
59
42
|
}
|
package/dist/devices/oven.js
CHANGED
|
@@ -13,6 +13,7 @@ export class Oven extends MatterbridgeEndpoint {
|
|
|
13
13
|
this.createDefaultIdentifyClusterServer();
|
|
14
14
|
this.createDefaultBasicInformationClusterServer(name, serial, 0xfff1, 'Matterbridge', 0x8000, 'Oven');
|
|
15
15
|
this.createDefaultPowerSourceWiredClusterServer();
|
|
16
|
+
this.addFixedLabel('composed', 'Oven');
|
|
16
17
|
}
|
|
17
18
|
addCabinet(name, tagList, currentMode = 2, supportedModes = [
|
|
18
19
|
{ label: 'Bake', mode: 1, modeTags: [{ value: OvenMode.ModeTag.Bake }] },
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge",
|
|
3
|
-
"version": "3.2.3-dev-
|
|
3
|
+
"version": "3.2.3-dev-20250815-4335c74",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "matterbridge",
|
|
9
|
-
"version": "3.2.3-dev-
|
|
9
|
+
"version": "3.2.3-dev-20250815-4335c74",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@matter/main": "0.15.3",
|
package/package.json
CHANGED