matterbridge 3.0.0-edge.4 → 3.0.0-edge.5

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
@@ -47,12 +47,17 @@ Modified clusters:
47
47
  ### Added
48
48
 
49
49
  - [addEndpoint]: Added an error handler with deep stack on aggregatorNode.add() and serverNode.add() calls.
50
+ - [endpoint]: Added createOffOnlyOnOffClusterServer().
51
+ - [endpoint]: Added createBaseFanControlClusterServer().
52
+ - [endpoint]: Added createDefaultHepaFilterMonitoringClusterServer().
53
+ - [endpoint]: Added createDefaultActivatedCarbonFilterMonitoringClusterServer().
50
54
 
51
55
  ### Changed
52
56
 
53
57
  - [deviceTypes]: Updated device types to Matter 1.4
54
58
  - [matter.js]: Update to 0.13.0-alpha.0-20250405-7fc7db48.
55
59
  - [matter.js]: Update to 0.13.0-alpha.0-20250408-c916c7e8.
60
+ - [matter.js]: Update to 0.13.0-alpha.0-20250412-5fad64e7b.
56
61
 
57
62
  ### Fixed
58
63
 
@@ -1735,7 +1735,7 @@ export class Matterbridge extends EventEmitter {
1735
1735
  await new Promise((resolve) => setTimeout(resolve, delay));
1736
1736
  }
1737
1737
  if (delay > 0)
1738
- await new Promise((resolve) => setTimeout(resolve, delay * 2));
1738
+ await new Promise((resolve) => setTimeout(resolve, 2000));
1739
1739
  }
1740
1740
  async subscribeAttributeChanged(plugin, device) {
1741
1741
  this.log.info(`Subscribing attributes for endpoint ${dev}${device.deviceName}${nf} (${dev}${device.id}${nf}) plugin ${plg}${plugin.name}${nf}`);
@@ -369,7 +369,7 @@ export const modeSelect = DeviceTypeDefinition({
369
369
  revision: 1,
370
370
  requiredServerClusters: [ModeSelect.Cluster.id],
371
371
  });
372
- export const bridge = DeviceTypeDefinition({
372
+ export const aggregator = DeviceTypeDefinition({
373
373
  name: 'MA-aggregator',
374
374
  code: 0x000e,
375
375
  deviceClass: DeviceClasses.Dynamic,
@@ -377,7 +377,7 @@ export const bridge = DeviceTypeDefinition({
377
377
  requiredServerClusters: [],
378
378
  optionalServerClusters: [Actions.Cluster.id, Identify.Cluster.id, CommissionerControl.Cluster.id],
379
379
  });
380
- export const aggregator = bridge;
380
+ export const bridge = aggregator;
381
381
  export const roboticVacuumCleaner = DeviceTypeDefinition({
382
382
  name: 'MA-roboticvacuumcleaner',
383
383
  code: 0x74,
@@ -386,11 +386,3 @@ export const roboticVacuumCleaner = DeviceTypeDefinition({
386
386
  requiredServerClusters: [Identify.Cluster.id, RvcRunMode.Cluster.id, RvcOperationalState.Cluster.id],
387
387
  optionalServerClusters: [RvcCleanMode.Cluster.id, ServiceArea.Cluster.id],
388
388
  });
389
- export const airConditioner = DeviceTypeDefinition({
390
- name: 'MA-airConditioner',
391
- code: 0x72,
392
- deviceClass: DeviceClasses.Simple,
393
- revision: 2,
394
- requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, Thermostat.Cluster.id],
395
- optionalServerClusters: [Groups.Cluster.id, FanControl.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, TemperatureMeasurement.Cluster.id, RelativeHumidityMeasurement.Cluster.id],
396
- });
@@ -55,6 +55,10 @@ import { Pm25ConcentrationMeasurementServer } from '@matter/main/behaviors/pm25-
55
55
  import { Pm10ConcentrationMeasurementServer } from '@matter/main/behaviors/pm10-concentration-measurement';
56
56
  import { RadonConcentrationMeasurementServer } from '@matter/main/behaviors/radon-concentration-measurement';
57
57
  import { TotalVolatileOrganicCompoundsConcentrationMeasurementServer } from '@matter/main/behaviors/total-volatile-organic-compounds-concentration-measurement';
58
+ import { FanControlServer } from '@matter/main/behaviors/fan-control';
59
+ import { ResourceMonitoring } from '@matter/main/clusters/resource-monitoring';
60
+ import { HepaFilterMonitoringServer } from '@matter/main/behaviors/hepa-filter-monitoring';
61
+ import { ActivatedCarbonFilterMonitoringServer } from '@matter/main/behaviors/activated-carbon-filter-monitoring';
58
62
  export class MatterbridgeEndpoint extends Endpoint {
59
63
  static bridgeMode = '';
60
64
  static logLevel = "info";
@@ -530,6 +534,12 @@ export class MatterbridgeEndpoint extends Endpoint {
530
534
  });
531
535
  return this;
532
536
  }
537
+ createOffOnlyOnOffClusterServer(onOff = false) {
538
+ this.behaviors.require(MatterbridgeOnOffServer.with(OnOff.Feature.OffOnly), {
539
+ onOff,
540
+ });
541
+ return this;
542
+ }
533
543
  createDefaultLevelControlClusterServer(currentLevel = 254, minLevel = 1, maxLevel = 254, onLevel = null, startUpCurrentLevel = null) {
534
544
  this.behaviors.require(MatterbridgeLevelControlServer.with(LevelControl.Feature.OnOff, LevelControl.Feature.Lighting), {
535
545
  currentLevel,
@@ -762,6 +772,31 @@ export class MatterbridgeEndpoint extends Endpoint {
762
772
  });
763
773
  return this;
764
774
  }
775
+ createBaseFanControlClusterServer(fanMode = FanControl.FanMode.Off) {
776
+ this.behaviors.require(FanControlServer, {
777
+ fanMode,
778
+ fanModeSequence: FanControl.FanModeSequence.OffLowMedHigh,
779
+ percentSetting: 0,
780
+ percentCurrent: 0,
781
+ });
782
+ return this;
783
+ }
784
+ createDefaultHepaFilterMonitoringClusterServer(changeIndication = ResourceMonitoring.ChangeIndication.Ok, inPlaceIndicator = undefined, lastChangedTime = undefined) {
785
+ this.behaviors.require(HepaFilterMonitoringServer, {
786
+ changeIndication,
787
+ inPlaceIndicator,
788
+ lastChangedTime,
789
+ });
790
+ return this;
791
+ }
792
+ createDefaultActivatedCarbonFilterMonitoringClusterServer(changeIndication = ResourceMonitoring.ChangeIndication.Ok, inPlaceIndicator = undefined, lastChangedTime = undefined) {
793
+ this.behaviors.require(ActivatedCarbonFilterMonitoringServer, {
794
+ changeIndication,
795
+ inPlaceIndicator,
796
+ lastChangedTime,
797
+ });
798
+ return this;
799
+ }
765
800
  createDefaultDoorLockClusterServer(lockState = DoorLock.LockState.Locked, lockType = DoorLock.LockType.DeadBolt) {
766
801
  this.behaviors.require(MatterbridgeDoorLockServer.enable({ events: { doorLockAlarm: true, lockOperation: true, lockOperationError: true } }), {
767
802
  lockState,
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "matterbridge",
3
- "version": "3.0.0-edge.4",
3
+ "version": "3.0.0-edge.5",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "matterbridge",
9
- "version": "3.0.0-edge.4",
9
+ "version": "3.0.0-edge.5",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
- "@matter/main": "^0.13.0-alpha.0-20250408-c916c7e8",
12
+ "@matter/main": "0.13.0-alpha.0-20250412-5fad64e7b",
13
13
  "archiver": "7.0.1",
14
14
  "express": "4.21.2",
15
15
  "glob": "11.0.1",
@@ -47,65 +47,65 @@
47
47
  }
48
48
  },
49
49
  "node_modules/@matter/general": {
50
- "version": "0.13.0-alpha.0-20250408-c916c7e8",
51
- "resolved": "https://registry.npmjs.org/@matter/general/-/general-0.13.0-alpha.0-20250408-c916c7e8.tgz",
52
- "integrity": "sha512-iQ2EnGzoMieFUW56ALFXkbwWihm68wHLhvRlV0V/PJ4yVBY8JAxn+L2RZ6UzzKmLIL7Smzd4YtfwphhI2yAdyg==",
50
+ "version": "0.13.0-alpha.0-20250412-5fad64e7b",
51
+ "resolved": "https://registry.npmjs.org/@matter/general/-/general-0.13.0-alpha.0-20250412-5fad64e7b.tgz",
52
+ "integrity": "sha512-Ol+AWbTAcoiEM3Rr9SBRdm0hljFIqFJqRd/ClbPV9CSUNyQFe8NR4J7bFmI+eCgahQBkPmtIpGhj6ebDDkCyEA==",
53
53
  "license": "Apache-2.0",
54
54
  "dependencies": {
55
55
  "@noble/curves": "^1.8.1"
56
56
  }
57
57
  },
58
58
  "node_modules/@matter/main": {
59
- "version": "0.13.0-alpha.0-20250408-c916c7e8",
60
- "resolved": "https://registry.npmjs.org/@matter/main/-/main-0.13.0-alpha.0-20250408-c916c7e8.tgz",
61
- "integrity": "sha512-LBaN3bzAcj676BzNvhLbaiFuNs+zda38MPQLmm7w2vmrK1HeYZhtCr2Xlt76oTNIR5bwh5oiYI22n2CpNYa4iQ==",
59
+ "version": "0.13.0-alpha.0-20250412-5fad64e7b",
60
+ "resolved": "https://registry.npmjs.org/@matter/main/-/main-0.13.0-alpha.0-20250412-5fad64e7b.tgz",
61
+ "integrity": "sha512-rXPMESZm4nmq/QRYhunddSbeNMLfM/flGfv45IWY++tezwI2yzJu4dVU5QDPmfsyehagVMD0sLwo5x0UwLgDiA==",
62
62
  "license": "Apache-2.0",
63
63
  "dependencies": {
64
- "@matter/general": "0.13.0-alpha.0-20250408-c916c7e8",
65
- "@matter/model": "0.13.0-alpha.0-20250408-c916c7e8",
66
- "@matter/node": "0.13.0-alpha.0-20250408-c916c7e8",
67
- "@matter/protocol": "0.13.0-alpha.0-20250408-c916c7e8",
68
- "@matter/types": "0.13.0-alpha.0-20250408-c916c7e8",
64
+ "@matter/general": "0.13.0-alpha.0-20250412-5fad64e7b",
65
+ "@matter/model": "0.13.0-alpha.0-20250412-5fad64e7b",
66
+ "@matter/node": "0.13.0-alpha.0-20250412-5fad64e7b",
67
+ "@matter/protocol": "0.13.0-alpha.0-20250412-5fad64e7b",
68
+ "@matter/types": "0.13.0-alpha.0-20250412-5fad64e7b",
69
69
  "@noble/curves": "^1.8.1"
70
70
  },
71
71
  "optionalDependencies": {
72
- "@matter/nodejs": "0.13.0-alpha.0-20250408-c916c7e8"
72
+ "@matter/nodejs": "0.13.0-alpha.0-20250412-5fad64e7b"
73
73
  }
74
74
  },
75
75
  "node_modules/@matter/model": {
76
- "version": "0.13.0-alpha.0-20250408-c916c7e8",
77
- "resolved": "https://registry.npmjs.org/@matter/model/-/model-0.13.0-alpha.0-20250408-c916c7e8.tgz",
78
- "integrity": "sha512-1pczrCHWxGRY85V7idsFBV4O7t/yXfy29c2vWtQdTQ5IP4qILqocf6qgSK/6jqvKag8x8Ph8Dt/L2EHe/Rjc4A==",
76
+ "version": "0.13.0-alpha.0-20250412-5fad64e7b",
77
+ "resolved": "https://registry.npmjs.org/@matter/model/-/model-0.13.0-alpha.0-20250412-5fad64e7b.tgz",
78
+ "integrity": "sha512-b73rqLywpSOSV7ITiuEdvG5QPEBcsc3cuRWVt1kgmrrlxh5nWw6r37vAqrGyNCgimYURMLLFDhVs/AYcV298BA==",
79
79
  "license": "Apache-2.0",
80
80
  "dependencies": {
81
- "@matter/general": "0.13.0-alpha.0-20250408-c916c7e8",
81
+ "@matter/general": "0.13.0-alpha.0-20250412-5fad64e7b",
82
82
  "@noble/curves": "^1.8.1"
83
83
  }
84
84
  },
85
85
  "node_modules/@matter/node": {
86
- "version": "0.13.0-alpha.0-20250408-c916c7e8",
87
- "resolved": "https://registry.npmjs.org/@matter/node/-/node-0.13.0-alpha.0-20250408-c916c7e8.tgz",
88
- "integrity": "sha512-i43KtL4ybHW4NuvSBPeyjvFCUekIL/EF054YFP9/+XioplgsSVRskaeLr0YVvCIfDfAmEwCcdmfvaFLjc/vlDw==",
86
+ "version": "0.13.0-alpha.0-20250412-5fad64e7b",
87
+ "resolved": "https://registry.npmjs.org/@matter/node/-/node-0.13.0-alpha.0-20250412-5fad64e7b.tgz",
88
+ "integrity": "sha512-KJCaAla7ZDs4HwHo6gcMPsmiT2OvMtA7EZ+SwNVqd8CUNEslnktEyn9Y8scxylkcppf4mwwOnPl10rGqHqQ27g==",
89
89
  "license": "Apache-2.0",
90
90
  "dependencies": {
91
- "@matter/general": "0.13.0-alpha.0-20250408-c916c7e8",
92
- "@matter/model": "0.13.0-alpha.0-20250408-c916c7e8",
93
- "@matter/protocol": "0.13.0-alpha.0-20250408-c916c7e8",
94
- "@matter/types": "0.13.0-alpha.0-20250408-c916c7e8",
91
+ "@matter/general": "0.13.0-alpha.0-20250412-5fad64e7b",
92
+ "@matter/model": "0.13.0-alpha.0-20250412-5fad64e7b",
93
+ "@matter/protocol": "0.13.0-alpha.0-20250412-5fad64e7b",
94
+ "@matter/types": "0.13.0-alpha.0-20250412-5fad64e7b",
95
95
  "@noble/curves": "^1.8.1"
96
96
  }
97
97
  },
98
98
  "node_modules/@matter/nodejs": {
99
- "version": "0.13.0-alpha.0-20250408-c916c7e8",
100
- "resolved": "https://registry.npmjs.org/@matter/nodejs/-/nodejs-0.13.0-alpha.0-20250408-c916c7e8.tgz",
101
- "integrity": "sha512-3vA1mPacdP4SF4mdaRFyzev+Fjsznte3bMYCIhz93Qji/8DuKVTtHEcxq9gqLbcAkfisbguwe63O+axg4vzf4w==",
99
+ "version": "0.13.0-alpha.0-20250412-5fad64e7b",
100
+ "resolved": "https://registry.npmjs.org/@matter/nodejs/-/nodejs-0.13.0-alpha.0-20250412-5fad64e7b.tgz",
101
+ "integrity": "sha512-cs3H+/vtpOvZhRyza/4dNMmxOJF+kehvv+TSQIWpb4bFvh+k2wgKgs+2dNrjUjdbKC4+0ObEmjDLti7KLgN7Gw==",
102
102
  "license": "Apache-2.0",
103
103
  "optional": true,
104
104
  "dependencies": {
105
- "@matter/general": "0.13.0-alpha.0-20250408-c916c7e8",
106
- "@matter/node": "0.13.0-alpha.0-20250408-c916c7e8",
107
- "@matter/protocol": "0.13.0-alpha.0-20250408-c916c7e8",
108
- "@matter/types": "0.13.0-alpha.0-20250408-c916c7e8",
105
+ "@matter/general": "0.13.0-alpha.0-20250412-5fad64e7b",
106
+ "@matter/node": "0.13.0-alpha.0-20250412-5fad64e7b",
107
+ "@matter/protocol": "0.13.0-alpha.0-20250412-5fad64e7b",
108
+ "@matter/types": "0.13.0-alpha.0-20250412-5fad64e7b",
109
109
  "node-localstorage": "^3.0.5"
110
110
  },
111
111
  "engines": {
@@ -113,25 +113,25 @@
113
113
  }
114
114
  },
115
115
  "node_modules/@matter/protocol": {
116
- "version": "0.13.0-alpha.0-20250408-c916c7e8",
117
- "resolved": "https://registry.npmjs.org/@matter/protocol/-/protocol-0.13.0-alpha.0-20250408-c916c7e8.tgz",
118
- "integrity": "sha512-HchrugjNPnR7ZcPoWcGX+7bRdHlBofWWJVoD6z7deZVLCycaddq/o3W5KsRol4HBFyVVmxlnaK5GE14VcdWw4g==",
116
+ "version": "0.13.0-alpha.0-20250412-5fad64e7b",
117
+ "resolved": "https://registry.npmjs.org/@matter/protocol/-/protocol-0.13.0-alpha.0-20250412-5fad64e7b.tgz",
118
+ "integrity": "sha512-VLRyFSSwShpdG5PGRxp0LGDJ2zpcQJs8MecuQtJuPAfCifXKVdtXGQhxe6ESDBLNDYn41bFQvF0IFjriJVWS2g==",
119
119
  "license": "Apache-2.0",
120
120
  "dependencies": {
121
- "@matter/general": "0.13.0-alpha.0-20250408-c916c7e8",
122
- "@matter/model": "0.13.0-alpha.0-20250408-c916c7e8",
123
- "@matter/types": "0.13.0-alpha.0-20250408-c916c7e8",
121
+ "@matter/general": "0.13.0-alpha.0-20250412-5fad64e7b",
122
+ "@matter/model": "0.13.0-alpha.0-20250412-5fad64e7b",
123
+ "@matter/types": "0.13.0-alpha.0-20250412-5fad64e7b",
124
124
  "@noble/curves": "^1.8.1"
125
125
  }
126
126
  },
127
127
  "node_modules/@matter/types": {
128
- "version": "0.13.0-alpha.0-20250408-c916c7e8",
129
- "resolved": "https://registry.npmjs.org/@matter/types/-/types-0.13.0-alpha.0-20250408-c916c7e8.tgz",
130
- "integrity": "sha512-zd7OXUbsWEdgD6J1CxPuCyHvtLHbaPGoYXmgLtVAgT6sjnmDH/4wFWdYVavTOIhhenVzg4aQ30sdi62HGyHGrw==",
128
+ "version": "0.13.0-alpha.0-20250412-5fad64e7b",
129
+ "resolved": "https://registry.npmjs.org/@matter/types/-/types-0.13.0-alpha.0-20250412-5fad64e7b.tgz",
130
+ "integrity": "sha512-+V17rduApurHl4H7iivF3DO6Zzy+4ZYdQUtrTyeFIH1rma4B29fPIxKVRjXsBPi2oIWtbQcL522Y0LhdLwBPUA==",
131
131
  "license": "Apache-2.0",
132
132
  "dependencies": {
133
- "@matter/general": "0.13.0-alpha.0-20250408-c916c7e8",
134
- "@matter/model": "0.13.0-alpha.0-20250408-c916c7e8",
133
+ "@matter/general": "0.13.0-alpha.0-20250412-5fad64e7b",
134
+ "@matter/model": "0.13.0-alpha.0-20250412-5fad64e7b",
135
135
  "@noble/curves": "^1.8.1"
136
136
  }
137
137
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "matterbridge",
3
- "version": "3.0.0-edge.4",
3
+ "version": "3.0.0-edge.5",
4
4
  "description": "Matterbridge plugin manager for Matter",
5
5
  "author": "https://github.com/Luligu",
6
6
  "license": "Apache-2.0",
@@ -94,7 +94,7 @@
94
94
  }
95
95
  },
96
96
  "dependencies": {
97
- "@matter/main": "^0.13.0-alpha.0-20250408-c916c7e8",
97
+ "@matter/main": "0.13.0-alpha.0-20250412-5fad64e7b",
98
98
  "archiver": "7.0.1",
99
99
  "express": "4.21.2",
100
100
  "glob": "11.0.1",