matterbridge 3.2.3-dev-20250813-34745fd → 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 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 { MatterbridgeLevelTemperatureControlServer, MatterbridgeNumberTemperatureControlServer } from './temperatureControl.js';
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
- this.createNumberTemperatureControlClusterServer(temperatureSetpoint, minTemperature, maxTemperature, step);
19
+ createNumberTemperatureControlClusterServer(this, temperatureSetpoint, minTemperature, maxTemperature, step);
21
20
  else
22
- this.createLevelTemperatureControlClusterServer(selectedTemperatureLevel, supportedTemperatureLevels);
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 }] },
@@ -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 { MatterbridgeLevelTemperatureControlServer, MatterbridgeNumberTemperatureControlServer } from './temperatureControl.js';
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
- this.createNumberTemperatureControlClusterServer(temperatureSetpoint, minTemperature, maxTemperature, step);
18
+ createNumberTemperatureControlClusterServer(this, temperatureSetpoint, minTemperature, maxTemperature, step);
20
19
  else
21
- this.createLevelTemperatureControlClusterServer(selectedTemperatureLevel, supportedTemperatureLevels);
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
  }
@@ -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 }] },
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "matterbridge",
3
- "version": "3.2.3-dev-20250813-34745fd",
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-20250813-34745fd",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "matterbridge",
3
- "version": "3.2.3-dev-20250813-34745fd",
3
+ "version": "3.2.3-dev-20250815-4335c74",
4
4
  "description": "Matterbridge plugin manager for Matter",
5
5
  "author": "https://github.com/Luligu",
6
6
  "license": "Apache-2.0",