matterbridge 2.2.8-dev.1 → 3.0.0-edge.2
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 +31 -2
- package/dist/cluster/export.js +205 -1
- package/dist/matterbridge.js +43 -13
- package/dist/matterbridgeBehaviors.js +88 -10
- package/dist/matterbridgeDeviceTypes.js +145 -121
- package/dist/matterbridgeEndpoint.js +77 -25
- package/dist/matterbridgeEndpointHelpers.js +21 -18
- package/frontend/build/asset-manifest.json +3 -3
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/js/{main.eb2f3e01.js → main.fe57dcc8.js} +3 -3
- package/frontend/build/static/js/{main.eb2f3e01.js.map → main.fe57dcc8.js.map} +1 -1
- package/npm-shrinkwrap.json +44 -44
- package/package.json +2 -2
- /package/frontend/build/static/js/{main.eb2f3e01.js.LICENSE.txt → main.fe57dcc8.js.LICENSE.txt} +0 -0
|
@@ -10,7 +10,6 @@ import { DoorLock } from '@matter/main/clusters/door-lock';
|
|
|
10
10
|
import { ElectricalEnergyMeasurement } from '@matter/main/clusters/electrical-energy-measurement';
|
|
11
11
|
import { ElectricalPowerMeasurement } from '@matter/main/clusters/electrical-power-measurement';
|
|
12
12
|
import { FanControl } from '@matter/main/clusters/fan-control';
|
|
13
|
-
import { FixedLabel } from '@matter/main/clusters/fixed-label';
|
|
14
13
|
import { FlowMeasurement } from '@matter/main/clusters/flow-measurement';
|
|
15
14
|
import { FormaldehydeConcentrationMeasurement } from '@matter/main/clusters/formaldehyde-concentration-measurement';
|
|
16
15
|
import { Groups } from '@matter/main/clusters/groups';
|
|
@@ -32,10 +31,9 @@ import { PumpConfigurationAndControl } from '@matter/main/clusters/pump-configur
|
|
|
32
31
|
import { RadonConcentrationMeasurement } from '@matter/main/clusters/radon-concentration-measurement';
|
|
33
32
|
import { RelativeHumidityMeasurement } from '@matter/main/clusters/relative-humidity-measurement';
|
|
34
33
|
import { SmokeCoAlarm } from '@matter/main/clusters/smoke-co-alarm';
|
|
35
|
-
import {
|
|
34
|
+
import { Switch } from '@matter/main/clusters/switch';
|
|
36
35
|
import { TemperatureMeasurement } from '@matter/main/clusters/temperature-measurement';
|
|
37
36
|
import { Thermostat } from '@matter/main/clusters/thermostat';
|
|
38
|
-
import { TimeSynchronization } from '@matter/main/clusters/time-synchronization';
|
|
39
37
|
import { TotalVolatileOrganicCompoundsConcentrationMeasurement } from '@matter/main/clusters/total-volatile-organic-compounds-concentration-measurement';
|
|
40
38
|
import { ValveConfigurationAndControl } from '@matter/main/clusters/valve-configuration-and-control';
|
|
41
39
|
import { WindowCovering } from '@matter/main/clusters/window-covering';
|
|
@@ -50,6 +48,11 @@ import { ScenesManagement } from '@matter/main/clusters/scenes-management';
|
|
|
50
48
|
import { HepaFilterMonitoring } from '@matter/main/clusters/hepa-filter-monitoring';
|
|
51
49
|
import { ActivatedCarbonFilterMonitoring } from '@matter/main/clusters/activated-carbon-filter-monitoring';
|
|
52
50
|
import { DeviceEnergyManagementMode } from '@matter/main/clusters/device-energy-management-mode';
|
|
51
|
+
import { AdministratorCommissioning } from '@matter/main/clusters/administrator-commissioning';
|
|
52
|
+
import { EcosystemInformation } from '@matter/main/clusters/ecosystem-information';
|
|
53
|
+
import { AccessControl } from '@matter/main/clusters/access-control';
|
|
54
|
+
import { CommissionerControl } from '@matter/main/clusters/commissioner-control';
|
|
55
|
+
import { ServiceArea } from '@matter/main/clusters';
|
|
53
56
|
export var DeviceClasses;
|
|
54
57
|
(function (DeviceClasses) {
|
|
55
58
|
DeviceClasses["Node"] = "Node";
|
|
@@ -77,20 +80,6 @@ export const DeviceTypeDefinition = ({ name, code, deviceClass, superSet, revisi
|
|
|
77
80
|
optionalClientClusters,
|
|
78
81
|
unknown,
|
|
79
82
|
});
|
|
80
|
-
export const bridge = DeviceTypeDefinition({
|
|
81
|
-
name: 'MA-aggregator',
|
|
82
|
-
code: 0x000e,
|
|
83
|
-
deviceClass: DeviceClasses.Dynamic,
|
|
84
|
-
revision: 1,
|
|
85
|
-
optionalServerClusters: [Identify.Cluster.id, Actions.Cluster.id],
|
|
86
|
-
});
|
|
87
|
-
export const aggregator = DeviceTypeDefinition({
|
|
88
|
-
name: 'MA-aggregator',
|
|
89
|
-
code: 0x000e,
|
|
90
|
-
deviceClass: DeviceClasses.Dynamic,
|
|
91
|
-
revision: 1,
|
|
92
|
-
optionalServerClusters: [Identify.Cluster.id, Actions.Cluster.id],
|
|
93
|
-
});
|
|
94
83
|
export const powerSource = DeviceTypeDefinition({
|
|
95
84
|
name: 'MA-powerSource',
|
|
96
85
|
code: 0x0011,
|
|
@@ -103,17 +92,25 @@ export const bridgedNode = DeviceTypeDefinition({
|
|
|
103
92
|
name: 'MA-bridgedNode',
|
|
104
93
|
code: 0x0013,
|
|
105
94
|
deviceClass: DeviceClasses.Utility,
|
|
106
|
-
revision:
|
|
95
|
+
revision: 3,
|
|
107
96
|
requiredServerClusters: [BridgedDeviceBasicInformation.Cluster.id],
|
|
108
|
-
optionalServerClusters: [PowerSource.Cluster.id],
|
|
97
|
+
optionalServerClusters: [PowerSource.Cluster.id, EcosystemInformation.Cluster.id, AdministratorCommissioning.Cluster.id],
|
|
109
98
|
});
|
|
110
|
-
export const
|
|
111
|
-
name: 'MA-
|
|
112
|
-
code:
|
|
113
|
-
deviceClass: DeviceClasses.
|
|
99
|
+
export const electricalSensor = DeviceTypeDefinition({
|
|
100
|
+
name: 'MA-electricalSensor',
|
|
101
|
+
code: 0x0510,
|
|
102
|
+
deviceClass: DeviceClasses.Utility,
|
|
114
103
|
revision: 1,
|
|
115
|
-
requiredServerClusters: [
|
|
116
|
-
optionalServerClusters: [
|
|
104
|
+
requiredServerClusters: [PowerTopology.Cluster.id],
|
|
105
|
+
optionalServerClusters: [ElectricalPowerMeasurement.Cluster.id, ElectricalEnergyMeasurement.Cluster.id],
|
|
106
|
+
});
|
|
107
|
+
export const deviceEnergyManagement = DeviceTypeDefinition({
|
|
108
|
+
name: 'MA-deviceEnergyManagement',
|
|
109
|
+
code: 0x050d,
|
|
110
|
+
deviceClass: DeviceClasses.Utility,
|
|
111
|
+
revision: 2,
|
|
112
|
+
requiredServerClusters: [DeviceEnergyManagement.Cluster.id, DeviceEnergyManagementMode.Cluster.id],
|
|
113
|
+
optionalServerClusters: [],
|
|
117
114
|
});
|
|
118
115
|
export const onOffLight = DeviceTypeDefinition({
|
|
119
116
|
name: 'MA-onofflight',
|
|
@@ -121,7 +118,7 @@ export const onOffLight = DeviceTypeDefinition({
|
|
|
121
118
|
deviceClass: DeviceClasses.Simple,
|
|
122
119
|
revision: 3,
|
|
123
120
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
|
|
124
|
-
optionalServerClusters: [LevelControl.Cluster.id
|
|
121
|
+
optionalServerClusters: [LevelControl.Cluster.id],
|
|
125
122
|
});
|
|
126
123
|
export const dimmableLight = DeviceTypeDefinition({
|
|
127
124
|
name: 'MA-dimmablelight',
|
|
@@ -129,7 +126,7 @@ export const dimmableLight = DeviceTypeDefinition({
|
|
|
129
126
|
deviceClass: DeviceClasses.Simple,
|
|
130
127
|
revision: 3,
|
|
131
128
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
132
|
-
optionalServerClusters: [
|
|
129
|
+
optionalServerClusters: [],
|
|
133
130
|
});
|
|
134
131
|
export const colorTemperatureLight = DeviceTypeDefinition({
|
|
135
132
|
name: 'MA-colortemperaturelight',
|
|
@@ -139,6 +136,14 @@ export const colorTemperatureLight = DeviceTypeDefinition({
|
|
|
139
136
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
140
137
|
optionalServerClusters: [],
|
|
141
138
|
});
|
|
139
|
+
export const extendedColorLight = DeviceTypeDefinition({
|
|
140
|
+
name: 'MA-extendedcolorlight',
|
|
141
|
+
code: 0x010d,
|
|
142
|
+
deviceClass: DeviceClasses.Simple,
|
|
143
|
+
revision: 4,
|
|
144
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
145
|
+
optionalServerClusters: [],
|
|
146
|
+
});
|
|
142
147
|
export const onOffOutlet = DeviceTypeDefinition({
|
|
143
148
|
name: 'MA-onoffpluginunit',
|
|
144
149
|
code: 0x010a,
|
|
@@ -151,41 +156,73 @@ export const dimmableOutlet = DeviceTypeDefinition({
|
|
|
151
156
|
name: 'MA-dimmablepluginunit',
|
|
152
157
|
code: 0x010b,
|
|
153
158
|
deviceClass: DeviceClasses.Simple,
|
|
154
|
-
revision:
|
|
159
|
+
revision: 4,
|
|
155
160
|
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
156
161
|
optionalServerClusters: [],
|
|
157
162
|
});
|
|
158
|
-
export const
|
|
159
|
-
name: 'MA-
|
|
160
|
-
code:
|
|
163
|
+
export const onOffMountedSwitch = DeviceTypeDefinition({
|
|
164
|
+
name: 'MA-onoffswitch',
|
|
165
|
+
code: 0x010f,
|
|
166
|
+
deviceClass: DeviceClasses.Simple,
|
|
167
|
+
revision: 1,
|
|
168
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
|
|
169
|
+
optionalServerClusters: [LevelControl.Cluster.id],
|
|
170
|
+
});
|
|
171
|
+
export const dimmableMountedSwitch = DeviceTypeDefinition({
|
|
172
|
+
name: 'MA-dimmableswitch',
|
|
173
|
+
code: 0x0110,
|
|
174
|
+
deviceClass: DeviceClasses.Simple,
|
|
175
|
+
revision: 1,
|
|
176
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
177
|
+
optionalServerClusters: [],
|
|
178
|
+
});
|
|
179
|
+
export const pumpDevice = DeviceTypeDefinition({
|
|
180
|
+
name: 'MA-pump',
|
|
181
|
+
code: 0x303,
|
|
161
182
|
deviceClass: DeviceClasses.Simple,
|
|
162
183
|
revision: 3,
|
|
163
|
-
requiredServerClusters: [
|
|
164
|
-
optionalServerClusters: [Groups.Cluster.id],
|
|
184
|
+
requiredServerClusters: [OnOff.Cluster.id, PumpConfigurationAndControl.Cluster.id, Identify.Cluster.id],
|
|
185
|
+
optionalServerClusters: [LevelControl.Cluster.id, Groups.Cluster.id, ScenesManagement.Cluster.id, TemperatureMeasurement.Cluster.id, PressureMeasurement.Cluster.id, FlowMeasurement.Cluster.id],
|
|
165
186
|
});
|
|
166
|
-
export const
|
|
167
|
-
name: 'MA-
|
|
168
|
-
code:
|
|
187
|
+
export const waterValve = DeviceTypeDefinition({
|
|
188
|
+
name: 'MA-waterValve',
|
|
189
|
+
code: 0x42,
|
|
190
|
+
deviceClass: DeviceClasses.Simple,
|
|
191
|
+
revision: 1,
|
|
192
|
+
requiredServerClusters: [Identify.Cluster.id, ValveConfigurationAndControl.Cluster.id],
|
|
193
|
+
optionalServerClusters: [FlowMeasurement.Cluster.id],
|
|
194
|
+
});
|
|
195
|
+
export const onOffSwitch = DeviceTypeDefinition({
|
|
196
|
+
name: 'MA-onoffswitch',
|
|
197
|
+
code: 0x0103,
|
|
169
198
|
deviceClass: DeviceClasses.Simple,
|
|
170
199
|
revision: 3,
|
|
171
|
-
requiredServerClusters: [Identify.Cluster.id,
|
|
172
|
-
optionalServerClusters: [Groups.Cluster.id],
|
|
200
|
+
requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id],
|
|
201
|
+
optionalServerClusters: [Groups.Cluster.id, ScenesManagement.Cluster.id],
|
|
173
202
|
});
|
|
174
|
-
export const
|
|
175
|
-
name: 'MA-
|
|
176
|
-
code:
|
|
203
|
+
export const dimmableSwitch = DeviceTypeDefinition({
|
|
204
|
+
name: 'MA-dimmableswitch',
|
|
205
|
+
code: 0x0104,
|
|
177
206
|
deviceClass: DeviceClasses.Simple,
|
|
178
|
-
revision:
|
|
179
|
-
requiredServerClusters: [Identify.Cluster.id,
|
|
180
|
-
optionalServerClusters: [],
|
|
207
|
+
revision: 3,
|
|
208
|
+
requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
209
|
+
optionalServerClusters: [Groups.Cluster.id, ScenesManagement.Cluster.id],
|
|
181
210
|
});
|
|
182
|
-
export const
|
|
183
|
-
name: 'MA-
|
|
184
|
-
code:
|
|
211
|
+
export const colorTemperatureSwitch = DeviceTypeDefinition({
|
|
212
|
+
name: 'MA-colortemperatureswitch',
|
|
213
|
+
code: 0x0105,
|
|
185
214
|
deviceClass: DeviceClasses.Simple,
|
|
186
215
|
revision: 3,
|
|
187
|
-
requiredServerClusters: [Identify.Cluster.id,
|
|
188
|
-
optionalServerClusters: [Groups.Cluster.id,
|
|
216
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
217
|
+
optionalServerClusters: [Groups.Cluster.id, ScenesManagement.Cluster.id],
|
|
218
|
+
});
|
|
219
|
+
export const genericSwitch = DeviceTypeDefinition({
|
|
220
|
+
name: 'MA-genericswitch',
|
|
221
|
+
code: 0x000f,
|
|
222
|
+
deviceClass: DeviceClasses.Simple,
|
|
223
|
+
revision: 3,
|
|
224
|
+
requiredServerClusters: [Identify.Cluster.id, Switch.Cluster.id],
|
|
225
|
+
optionalServerClusters: [],
|
|
189
226
|
});
|
|
190
227
|
export const contactSensor = DeviceTypeDefinition({
|
|
191
228
|
name: 'MA-contactsensor',
|
|
@@ -193,6 +230,7 @@ export const contactSensor = DeviceTypeDefinition({
|
|
|
193
230
|
deviceClass: DeviceClasses.Simple,
|
|
194
231
|
revision: 2,
|
|
195
232
|
requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
|
|
233
|
+
optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
|
|
196
234
|
});
|
|
197
235
|
export const lightSensor = DeviceTypeDefinition({
|
|
198
236
|
name: 'MA-lightsensor',
|
|
@@ -205,8 +243,9 @@ export const occupancySensor = DeviceTypeDefinition({
|
|
|
205
243
|
name: 'MA-occupancysensor',
|
|
206
244
|
code: 0x0107,
|
|
207
245
|
deviceClass: DeviceClasses.Simple,
|
|
208
|
-
revision:
|
|
246
|
+
revision: 4,
|
|
209
247
|
requiredServerClusters: [Identify.Cluster.id, OccupancySensing.Cluster.id],
|
|
248
|
+
optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
|
|
210
249
|
});
|
|
211
250
|
export const temperatureSensor = DeviceTypeDefinition({
|
|
212
251
|
name: 'MA-tempsensor',
|
|
@@ -236,44 +275,13 @@ export const humiditySensor = DeviceTypeDefinition({
|
|
|
236
275
|
revision: 2,
|
|
237
276
|
requiredServerClusters: [Identify.Cluster.id, RelativeHumidityMeasurement.Cluster.id],
|
|
238
277
|
});
|
|
239
|
-
export const
|
|
240
|
-
name: 'MA-
|
|
241
|
-
code:
|
|
278
|
+
export const smokeCoAlarm = DeviceTypeDefinition({
|
|
279
|
+
name: 'MA-smokeCoAlarm',
|
|
280
|
+
code: 0x0076,
|
|
242
281
|
deviceClass: DeviceClasses.Simple,
|
|
243
282
|
revision: 1,
|
|
244
|
-
requiredServerClusters: [
|
|
245
|
-
|
|
246
|
-
export const roboticVacuumCleaner = DeviceTypeDefinition({
|
|
247
|
-
name: 'MA-roboticvacuumcleaner',
|
|
248
|
-
code: 0x74,
|
|
249
|
-
deviceClass: DeviceClasses.Simple,
|
|
250
|
-
revision: 2,
|
|
251
|
-
requiredServerClusters: [Identify.Cluster.id, RvcRunMode.Cluster.id, RvcOperationalState.Cluster.id],
|
|
252
|
-
optionalServerClusters: [RvcCleanMode.Cluster.id],
|
|
253
|
-
});
|
|
254
|
-
export const onOffSwitch = DeviceTypeDefinition({
|
|
255
|
-
name: 'MA-onoffswitch',
|
|
256
|
-
code: 0x0103,
|
|
257
|
-
deviceClass: DeviceClasses.Simple,
|
|
258
|
-
revision: 3,
|
|
259
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id],
|
|
260
|
-
optionalServerClusters: [LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
261
|
-
});
|
|
262
|
-
export const dimmableSwitch = DeviceTypeDefinition({
|
|
263
|
-
name: 'MA-dimmableswitch',
|
|
264
|
-
code: 0x0104,
|
|
265
|
-
deviceClass: DeviceClasses.Simple,
|
|
266
|
-
revision: 3,
|
|
267
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id],
|
|
268
|
-
optionalServerClusters: [ColorControl.Cluster.id],
|
|
269
|
-
});
|
|
270
|
-
export const colorTemperatureSwitch = DeviceTypeDefinition({
|
|
271
|
-
name: 'MA-colortemperatureswitch',
|
|
272
|
-
code: 0x0105,
|
|
273
|
-
deviceClass: DeviceClasses.Simple,
|
|
274
|
-
revision: 3,
|
|
275
|
-
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, OnOff.Cluster.id, LevelControl.Cluster.id, ColorControl.Cluster.id],
|
|
276
|
-
optionalServerClusters: [],
|
|
283
|
+
requiredServerClusters: [Identify.Cluster.id, SmokeCoAlarm.Cluster.id],
|
|
284
|
+
optionalServerClusters: [Groups.Cluster.id, TemperatureMeasurement.Cluster.id, RelativeHumidityMeasurement.Cluster.id, CarbonMonoxideConcentrationMeasurement.Cluster.id],
|
|
277
285
|
});
|
|
278
286
|
export const airQualitySensor = DeviceTypeDefinition({
|
|
279
287
|
name: 'MA-airQualitySensor',
|
|
@@ -320,37 +328,69 @@ export const rainSensor = DeviceTypeDefinition({
|
|
|
320
328
|
requiredServerClusters: [Identify.Cluster.id, BooleanState.Cluster.id],
|
|
321
329
|
optionalServerClusters: [BooleanStateConfiguration.Cluster.id],
|
|
322
330
|
});
|
|
323
|
-
export const
|
|
324
|
-
name: 'MA-
|
|
325
|
-
code:
|
|
331
|
+
export const doorLockDevice = DeviceTypeDefinition({
|
|
332
|
+
name: 'MA-doorLock',
|
|
333
|
+
code: 0xa,
|
|
326
334
|
deviceClass: DeviceClasses.Simple,
|
|
327
|
-
revision:
|
|
328
|
-
requiredServerClusters: [Identify.Cluster.id,
|
|
329
|
-
optionalServerClusters: [
|
|
335
|
+
revision: 3,
|
|
336
|
+
requiredServerClusters: [Identify.Cluster.id, DoorLock.Cluster.id, AccessControl.Cluster.id],
|
|
337
|
+
optionalServerClusters: [],
|
|
330
338
|
});
|
|
331
|
-
export const
|
|
332
|
-
name: 'MA-
|
|
333
|
-
code:
|
|
339
|
+
export const coverDevice = DeviceTypeDefinition({
|
|
340
|
+
name: 'MA-windowCovering',
|
|
341
|
+
code: 0x202,
|
|
334
342
|
deviceClass: DeviceClasses.Simple,
|
|
335
343
|
revision: 3,
|
|
336
|
-
requiredServerClusters: [
|
|
337
|
-
optionalServerClusters: [
|
|
344
|
+
requiredServerClusters: [Identify.Cluster.id, WindowCovering.Cluster.id],
|
|
345
|
+
optionalServerClusters: [Groups.Cluster.id],
|
|
338
346
|
});
|
|
339
|
-
export const
|
|
340
|
-
name: 'MA-
|
|
341
|
-
code:
|
|
347
|
+
export const thermostatDevice = DeviceTypeDefinition({
|
|
348
|
+
name: 'MA-thermostat',
|
|
349
|
+
code: 0x301,
|
|
342
350
|
deviceClass: DeviceClasses.Simple,
|
|
343
|
-
revision:
|
|
344
|
-
requiredServerClusters: [Identify.Cluster.id,
|
|
345
|
-
optionalServerClusters: [
|
|
351
|
+
revision: 4,
|
|
352
|
+
requiredServerClusters: [Identify.Cluster.id, Thermostat.Cluster.id],
|
|
353
|
+
optionalServerClusters: [Groups.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, EnergyPreference.Cluster.id],
|
|
354
|
+
});
|
|
355
|
+
export const fanDevice = DeviceTypeDefinition({
|
|
356
|
+
name: 'MA-fan',
|
|
357
|
+
code: 0x2b,
|
|
358
|
+
deviceClass: DeviceClasses.Simple,
|
|
359
|
+
revision: 3,
|
|
360
|
+
requiredServerClusters: [Identify.Cluster.id, Groups.Cluster.id, FanControl.Cluster.id],
|
|
361
|
+
optionalServerClusters: [OnOff.Cluster.id],
|
|
346
362
|
});
|
|
347
363
|
export const airPurifier = DeviceTypeDefinition({
|
|
348
364
|
name: 'MA-airPurifier',
|
|
349
365
|
code: 0x2d,
|
|
350
366
|
deviceClass: DeviceClasses.Simple,
|
|
351
|
-
revision:
|
|
367
|
+
revision: 2,
|
|
352
368
|
requiredServerClusters: [Identify.Cluster.id, FanControl.Cluster.id],
|
|
353
|
-
optionalServerClusters: [Groups.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
|
|
369
|
+
optionalServerClusters: [Groups.Cluster.id, OnOff.Cluster.id, HepaFilterMonitoring.Cluster.id, ActivatedCarbonFilterMonitoring.Cluster.id],
|
|
370
|
+
});
|
|
371
|
+
export const modeSelect = DeviceTypeDefinition({
|
|
372
|
+
name: 'MA-modeselect',
|
|
373
|
+
code: 0x27,
|
|
374
|
+
deviceClass: DeviceClasses.Simple,
|
|
375
|
+
revision: 1,
|
|
376
|
+
requiredServerClusters: [ModeSelect.Cluster.id],
|
|
377
|
+
});
|
|
378
|
+
export const bridge = DeviceTypeDefinition({
|
|
379
|
+
name: 'MA-aggregator',
|
|
380
|
+
code: 0x000e,
|
|
381
|
+
deviceClass: DeviceClasses.Dynamic,
|
|
382
|
+
revision: 2,
|
|
383
|
+
requiredServerClusters: [],
|
|
384
|
+
optionalServerClusters: [Actions.Cluster.id, Identify.Cluster.id, CommissionerControl.Cluster.id],
|
|
385
|
+
});
|
|
386
|
+
export const aggregator = bridge;
|
|
387
|
+
export const roboticVacuumCleaner = DeviceTypeDefinition({
|
|
388
|
+
name: 'MA-roboticvacuumcleaner',
|
|
389
|
+
code: 0x74,
|
|
390
|
+
deviceClass: DeviceClasses.Simple,
|
|
391
|
+
revision: 3,
|
|
392
|
+
requiredServerClusters: [Identify.Cluster.id, RvcRunMode.Cluster.id, RvcOperationalState.Cluster.id],
|
|
393
|
+
optionalServerClusters: [RvcCleanMode.Cluster.id, ServiceArea.Cluster.id],
|
|
354
394
|
});
|
|
355
395
|
export const airConditioner = DeviceTypeDefinition({
|
|
356
396
|
name: 'MA-airConditioner',
|
|
@@ -360,19 +400,3 @@ export const airConditioner = DeviceTypeDefinition({
|
|
|
360
400
|
requiredServerClusters: [Identify.Cluster.id, OnOff.Cluster.id, Thermostat.Cluster.id],
|
|
361
401
|
optionalServerClusters: [Groups.Cluster.id, ScenesManagement.Cluster.id, FanControl.Cluster.id, ThermostatUserInterfaceConfiguration.Cluster.id, TemperatureMeasurement.Cluster.id, RelativeHumidityMeasurement.Cluster.id],
|
|
362
402
|
});
|
|
363
|
-
export const electricalSensor = DeviceTypeDefinition({
|
|
364
|
-
name: 'MA-electricalSensor',
|
|
365
|
-
code: 0x0510,
|
|
366
|
-
deviceClass: DeviceClasses.Utility,
|
|
367
|
-
revision: 1,
|
|
368
|
-
requiredServerClusters: [PowerTopology.Cluster.id],
|
|
369
|
-
optionalServerClusters: [ElectricalPowerMeasurement.Cluster.id, ElectricalEnergyMeasurement.Cluster.id],
|
|
370
|
-
});
|
|
371
|
-
export const deviceEnergyManagement = DeviceTypeDefinition({
|
|
372
|
-
name: 'MA-deviceEnergyManagement',
|
|
373
|
-
code: 0x050d,
|
|
374
|
-
deviceClass: DeviceClasses.Utility,
|
|
375
|
-
revision: 1,
|
|
376
|
-
requiredServerClusters: [DeviceEnergyManagement.Cluster.id, DeviceEnergyManagementMode.Cluster.id],
|
|
377
|
-
optionalServerClusters: [],
|
|
378
|
-
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AnsiLogger, BLUE, CYAN, YELLOW, db, debugStringify, er, hk, or, zb } from './logger/export.js';
|
|
2
2
|
import { bridgedNode } from './matterbridgeDeviceTypes.js';
|
|
3
3
|
import { isValidNumber, isValidObject } from './utils/export.js';
|
|
4
|
-
import { MatterbridgeBehavior, MatterbridgeBehaviorDevice, MatterbridgeIdentifyServer, MatterbridgeOnOffServer, MatterbridgeLevelControlServer, MatterbridgeColorControlServer, MatterbridgeWindowCoveringServer, MatterbridgeThermostatServer, MatterbridgeFanControlServer, MatterbridgeDoorLockServer, MatterbridgeModeSelectServer, MatterbridgeValveConfigurationAndControlServer, MatterbridgeSmokeCoAlarmServer, MatterbridgeBooleanStateConfigurationServer, MatterbridgeSwitchServer, } from './matterbridgeBehaviors.js';
|
|
4
|
+
import { MatterbridgeBehavior, MatterbridgeBehaviorDevice, MatterbridgeIdentifyServer, MatterbridgeOnOffServer, MatterbridgeLevelControlServer, MatterbridgeColorControlServer, MatterbridgeWindowCoveringServer, MatterbridgeThermostatServer, MatterbridgeFanControlServer, MatterbridgeDoorLockServer, MatterbridgeModeSelectServer, MatterbridgeValveConfigurationAndControlServer, MatterbridgeSmokeCoAlarmServer, MatterbridgeBooleanStateConfigurationServer, MatterbridgeSwitchServer, MatterbridgeRvcRunModeServer, MatterbridgeRvcCleanModeServer, MatterbridgeRvcOperationalStateServer, } from './matterbridgeBehaviors.js';
|
|
5
5
|
import { addClusterServers, addFixedLabel, addOptionalClusterServers, addRequiredClusterServers, addUserLabel, capitalizeFirstLetter, createUniqueId, getBehavior, getBehaviourTypesFromClusterClientIds, getBehaviourTypesFromClusterServerIds, getDefaultFlowMeasurementClusterServer, getDefaultIlluminanceMeasurementClusterServer, getDefaultPressureMeasurementClusterServer, getDefaultRelativeHumidityMeasurementClusterServer, getDefaultTemperatureMeasurementClusterServer, getDefaultOccupancySensingClusterServer, lowercaseFirstLetter, updateAttribute, getClusterId, getAttributeId, setAttribute, getAttribute, checkNotLatinCharacters, generateUniqueId, subscribeAttribute, } from './matterbridgeEndpointHelpers.js';
|
|
6
6
|
import { Endpoint, Lifecycle, MutableEndpoint, NamedHandler, SupportedBehaviors, VendorId } from '@matter/main';
|
|
7
7
|
import { ClusterType, getClusterNameById, MeasurementType } from '@matter/main/types';
|
|
@@ -26,6 +26,9 @@ import { ElectricalPowerMeasurement } from '@matter/main/clusters/electrical-pow
|
|
|
26
26
|
import { ElectricalEnergyMeasurement } from '@matter/main/clusters/electrical-energy-measurement';
|
|
27
27
|
import { AirQuality } from '@matter/main/clusters/air-quality';
|
|
28
28
|
import { ConcentrationMeasurement } from '@matter/main/clusters/concentration-measurement';
|
|
29
|
+
import { RvcRunMode } from '@matter/main/clusters/rvc-run-mode';
|
|
30
|
+
import { RvcOperationalState } from '@matter/main/clusters/rvc-operational-state';
|
|
31
|
+
import { OccupancySensing } from '@matter/main/clusters/occupancy-sensing';
|
|
29
32
|
import { DescriptorServer } from '@matter/main/behaviors/descriptor';
|
|
30
33
|
import { PowerSourceServer } from '@matter/main/behaviors/power-source';
|
|
31
34
|
import { BridgedDeviceBasicInformationServer } from '@matter/main/behaviors/bridged-device-basic-information';
|
|
@@ -54,6 +57,7 @@ import { Pm25ConcentrationMeasurementServer } from '@matter/main/behaviors/pm25-
|
|
|
54
57
|
import { Pm10ConcentrationMeasurementServer } from '@matter/main/behaviors/pm10-concentration-measurement';
|
|
55
58
|
import { RadonConcentrationMeasurementServer } from '@matter/main/behaviors/radon-concentration-measurement';
|
|
56
59
|
import { TotalVolatileOrganicCompoundsConcentrationMeasurementServer } from '@matter/main/behaviors/total-volatile-organic-compounds-concentration-measurement';
|
|
60
|
+
import { RvcCleanMode } from '@matter/main/clusters/rvc-clean-mode';
|
|
57
61
|
export class MatterbridgeEndpoint extends Endpoint {
|
|
58
62
|
static bridgeMode = '';
|
|
59
63
|
static logLevel = "info";
|
|
@@ -752,11 +756,12 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
752
756
|
}
|
|
753
757
|
createDefaultDoorLockClusterServer(lockState = DoorLock.LockState.Locked, lockType = DoorLock.LockType.DeadBolt) {
|
|
754
758
|
this.behaviors.require(MatterbridgeDoorLockServer.enable({ events: { doorLockAlarm: true, lockOperation: true, lockOperationError: true } }), {
|
|
755
|
-
operatingMode: DoorLock.OperatingMode.Normal,
|
|
756
759
|
lockState,
|
|
757
760
|
lockType,
|
|
758
761
|
actuatorEnabled: false,
|
|
759
|
-
|
|
762
|
+
operatingMode: DoorLock.OperatingMode.Normal,
|
|
763
|
+
supportedOperatingModes: { normal: false, vacation: true, privacy: true, noRemoteLockUnlock: true, passage: true, alwaysSet: 2047 },
|
|
764
|
+
alarmMask: { lockJammed: false, lockFactoryReset: false, lockRadioPowerCycled: false, wrongCodeEntryLimit: false, frontEscutcheonRemoved: false, doorForcedOpen: false },
|
|
760
765
|
});
|
|
761
766
|
return this;
|
|
762
767
|
}
|
|
@@ -779,6 +784,9 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
779
784
|
openDuration: null,
|
|
780
785
|
defaultOpenDuration: null,
|
|
781
786
|
remainingDuration: null,
|
|
787
|
+
defaultOpenLevel: 100,
|
|
788
|
+
valveFault: { generalFault: false, blocked: false, leaking: false, notConnected: false, shortCircuit: false, currentExceeded: false },
|
|
789
|
+
levelStep: 1,
|
|
782
790
|
});
|
|
783
791
|
return this;
|
|
784
792
|
}
|
|
@@ -999,28 +1007,28 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
999
1007
|
});
|
|
1000
1008
|
return this;
|
|
1001
1009
|
}
|
|
1002
|
-
createDefaultTemperatureMeasurementClusterServer(measuredValue =
|
|
1003
|
-
this.behaviors.require(TemperatureMeasurementServer, getDefaultTemperatureMeasurementClusterServer(measuredValue));
|
|
1010
|
+
createDefaultTemperatureMeasurementClusterServer(measuredValue = null, minMeasuredValue = null, maxMeasuredValue = null) {
|
|
1011
|
+
this.behaviors.require(TemperatureMeasurementServer, getDefaultTemperatureMeasurementClusterServer(measuredValue, minMeasuredValue, maxMeasuredValue));
|
|
1004
1012
|
return this;
|
|
1005
1013
|
}
|
|
1006
|
-
createDefaultRelativeHumidityMeasurementClusterServer(measuredValue =
|
|
1007
|
-
this.behaviors.require(RelativeHumidityMeasurementServer, getDefaultRelativeHumidityMeasurementClusterServer(measuredValue));
|
|
1014
|
+
createDefaultRelativeHumidityMeasurementClusterServer(measuredValue = null, minMeasuredValue = null, maxMeasuredValue = null) {
|
|
1015
|
+
this.behaviors.require(RelativeHumidityMeasurementServer, getDefaultRelativeHumidityMeasurementClusterServer(measuredValue, minMeasuredValue, maxMeasuredValue));
|
|
1008
1016
|
return this;
|
|
1009
1017
|
}
|
|
1010
|
-
createDefaultPressureMeasurementClusterServer(measuredValue =
|
|
1011
|
-
this.behaviors.require(PressureMeasurementServer, getDefaultPressureMeasurementClusterServer(measuredValue));
|
|
1018
|
+
createDefaultPressureMeasurementClusterServer(measuredValue = null, minMeasuredValue = null, maxMeasuredValue = null) {
|
|
1019
|
+
this.behaviors.require(PressureMeasurementServer, getDefaultPressureMeasurementClusterServer(measuredValue, minMeasuredValue, maxMeasuredValue));
|
|
1012
1020
|
return this;
|
|
1013
1021
|
}
|
|
1014
|
-
createDefaultIlluminanceMeasurementClusterServer(measuredValue =
|
|
1015
|
-
this.behaviors.require(IlluminanceMeasurementServer, getDefaultIlluminanceMeasurementClusterServer(measuredValue));
|
|
1022
|
+
createDefaultIlluminanceMeasurementClusterServer(measuredValue = null, minMeasuredValue = null, maxMeasuredValue = null) {
|
|
1023
|
+
this.behaviors.require(IlluminanceMeasurementServer, getDefaultIlluminanceMeasurementClusterServer(measuredValue, minMeasuredValue, maxMeasuredValue));
|
|
1016
1024
|
return this;
|
|
1017
1025
|
}
|
|
1018
|
-
createDefaultFlowMeasurementClusterServer(measuredValue =
|
|
1019
|
-
this.behaviors.require(FlowMeasurementServer, getDefaultFlowMeasurementClusterServer(measuredValue));
|
|
1026
|
+
createDefaultFlowMeasurementClusterServer(measuredValue = null, minMeasuredValue = null, maxMeasuredValue = null) {
|
|
1027
|
+
this.behaviors.require(FlowMeasurementServer, getDefaultFlowMeasurementClusterServer(measuredValue, minMeasuredValue, maxMeasuredValue));
|
|
1020
1028
|
return this;
|
|
1021
1029
|
}
|
|
1022
|
-
createDefaultOccupancySensingClusterServer(occupied = false) {
|
|
1023
|
-
this.behaviors.require(OccupancySensingServer, getDefaultOccupancySensingClusterServer(occupied));
|
|
1030
|
+
createDefaultOccupancySensingClusterServer(occupied = false, holdTime = 30, holdTimeMin = 1, holdTimeMax = 300) {
|
|
1031
|
+
this.behaviors.require(OccupancySensingServer.with(OccupancySensing.Feature.PassiveInfrared), getDefaultOccupancySensingClusterServer(occupied, holdTime, holdTimeMin, holdTimeMax));
|
|
1024
1032
|
return this;
|
|
1025
1033
|
}
|
|
1026
1034
|
createDefaultAirQualityClusterServer(airQuality = AirQuality.AirQualityEnum.Unknown) {
|
|
@@ -1029,7 +1037,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1029
1037
|
});
|
|
1030
1038
|
return this;
|
|
1031
1039
|
}
|
|
1032
|
-
createDefaultTvocMeasurementClusterServer(measuredValue =
|
|
1040
|
+
createDefaultTvocMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air, uncertainty) {
|
|
1033
1041
|
this.behaviors.require(TotalVolatileOrganicCompoundsConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1034
1042
|
measuredValue,
|
|
1035
1043
|
minMeasuredValue: null,
|
|
@@ -1047,7 +1055,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1047
1055
|
});
|
|
1048
1056
|
return this;
|
|
1049
1057
|
}
|
|
1050
|
-
createDefaultCarbonMonoxideConcentrationMeasurementClusterServer(measuredValue =
|
|
1058
|
+
createDefaultCarbonMonoxideConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1051
1059
|
this.behaviors.require(CarbonMonoxideConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1052
1060
|
measuredValue,
|
|
1053
1061
|
minMeasuredValue: null,
|
|
@@ -1058,7 +1066,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1058
1066
|
});
|
|
1059
1067
|
return this;
|
|
1060
1068
|
}
|
|
1061
|
-
createDefaultCarbonDioxideConcentrationMeasurementClusterServer(measuredValue =
|
|
1069
|
+
createDefaultCarbonDioxideConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1062
1070
|
this.behaviors.require(CarbonDioxideConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1063
1071
|
measuredValue,
|
|
1064
1072
|
minMeasuredValue: null,
|
|
@@ -1069,7 +1077,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1069
1077
|
});
|
|
1070
1078
|
return this;
|
|
1071
1079
|
}
|
|
1072
|
-
createDefaultFormaldehydeConcentrationMeasurementClusterServer(measuredValue =
|
|
1080
|
+
createDefaultFormaldehydeConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1073
1081
|
this.behaviors.require(FormaldehydeConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1074
1082
|
measuredValue,
|
|
1075
1083
|
minMeasuredValue: null,
|
|
@@ -1080,7 +1088,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1080
1088
|
});
|
|
1081
1089
|
return this;
|
|
1082
1090
|
}
|
|
1083
|
-
createDefaultPm1ConcentrationMeasurementClusterServer(measuredValue =
|
|
1091
|
+
createDefaultPm1ConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1084
1092
|
this.behaviors.require(Pm1ConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1085
1093
|
measuredValue,
|
|
1086
1094
|
minMeasuredValue: null,
|
|
@@ -1091,7 +1099,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1091
1099
|
});
|
|
1092
1100
|
return this;
|
|
1093
1101
|
}
|
|
1094
|
-
createDefaultPm25ConcentrationMeasurementClusterServer(measuredValue =
|
|
1102
|
+
createDefaultPm25ConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1095
1103
|
this.behaviors.require(Pm25ConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1096
1104
|
measuredValue,
|
|
1097
1105
|
minMeasuredValue: null,
|
|
@@ -1102,7 +1110,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1102
1110
|
});
|
|
1103
1111
|
return this;
|
|
1104
1112
|
}
|
|
1105
|
-
createDefaultPm10ConcentrationMeasurementClusterServer(measuredValue =
|
|
1113
|
+
createDefaultPm10ConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1106
1114
|
this.behaviors.require(Pm10ConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1107
1115
|
measuredValue,
|
|
1108
1116
|
minMeasuredValue: null,
|
|
@@ -1113,7 +1121,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1113
1121
|
});
|
|
1114
1122
|
return this;
|
|
1115
1123
|
}
|
|
1116
|
-
createDefaultOzoneConcentrationMeasurementClusterServer(measuredValue =
|
|
1124
|
+
createDefaultOzoneConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1117
1125
|
this.behaviors.require(OzoneConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1118
1126
|
measuredValue,
|
|
1119
1127
|
minMeasuredValue: null,
|
|
@@ -1124,7 +1132,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1124
1132
|
});
|
|
1125
1133
|
return this;
|
|
1126
1134
|
}
|
|
1127
|
-
createDefaultRadonConcentrationMeasurementClusterServer(measuredValue =
|
|
1135
|
+
createDefaultRadonConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ppm, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1128
1136
|
this.behaviors.require(RadonConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1129
1137
|
measuredValue,
|
|
1130
1138
|
minMeasuredValue: null,
|
|
@@ -1135,7 +1143,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1135
1143
|
});
|
|
1136
1144
|
return this;
|
|
1137
1145
|
}
|
|
1138
|
-
createDefaultNitrogenDioxideConcentrationMeasurementClusterServer(measuredValue =
|
|
1146
|
+
createDefaultNitrogenDioxideConcentrationMeasurementClusterServer(measuredValue = null, measurementUnit = ConcentrationMeasurement.MeasurementUnit.Ugm3, measurementMedium = ConcentrationMeasurement.MeasurementMedium.Air) {
|
|
1139
1147
|
this.behaviors.require(NitrogenDioxideConcentrationMeasurementServer.with(ConcentrationMeasurement.Feature.NumericMeasurement), {
|
|
1140
1148
|
measuredValue,
|
|
1141
1149
|
minMeasuredValue: null,
|
|
@@ -1146,4 +1154,48 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1146
1154
|
});
|
|
1147
1155
|
return this;
|
|
1148
1156
|
}
|
|
1157
|
+
createDefaultRvcRunModeClusterServer() {
|
|
1158
|
+
this.behaviors.require(MatterbridgeRvcRunModeServer.with(RvcRunMode.Feature.OnOff), {
|
|
1159
|
+
supportedModes: [
|
|
1160
|
+
{ label: 'Idle', mode: 1, modeTags: [{ value: RvcRunMode.ModeTag.Idle }] },
|
|
1161
|
+
{ label: 'Cleaning', mode: 2, modeTags: [{ value: RvcRunMode.ModeTag.Cleaning }] },
|
|
1162
|
+
{ label: 'SpotCleaning', mode: 3, modeTags: [{ value: RvcRunMode.ModeTag.Cleaning }] },
|
|
1163
|
+
],
|
|
1164
|
+
currentMode: 1,
|
|
1165
|
+
startUpMode: null,
|
|
1166
|
+
onMode: null,
|
|
1167
|
+
});
|
|
1168
|
+
return this;
|
|
1169
|
+
}
|
|
1170
|
+
createDefaultRvcCleanModeClusterServer() {
|
|
1171
|
+
this.behaviors.require(MatterbridgeRvcCleanModeServer.with(RvcCleanMode.Feature.OnOff), {
|
|
1172
|
+
supportedModes: [
|
|
1173
|
+
{ label: 'Vacuum', mode: 1, modeTags: [{ value: RvcCleanMode.ModeTag.Vacuum }] },
|
|
1174
|
+
{ label: 'Mop', mode: 2, modeTags: [{ value: RvcCleanMode.ModeTag.Mop }] },
|
|
1175
|
+
{ label: 'Clean', mode: 3, modeTags: [{ value: RvcCleanMode.ModeTag.DeepClean }] },
|
|
1176
|
+
],
|
|
1177
|
+
currentMode: 1,
|
|
1178
|
+
startUpMode: null,
|
|
1179
|
+
onMode: null,
|
|
1180
|
+
});
|
|
1181
|
+
return this;
|
|
1182
|
+
}
|
|
1183
|
+
createDefaultRvcOperationalStateClusterServer() {
|
|
1184
|
+
this.behaviors.require(MatterbridgeRvcOperationalStateServer, {
|
|
1185
|
+
phaseList: [],
|
|
1186
|
+
currentPhase: null,
|
|
1187
|
+
operationalStateList: [
|
|
1188
|
+
{ operationalStateId: RvcOperationalState.OperationalState.Stopped, operationalStateLabel: 'Stopped' },
|
|
1189
|
+
{ operationalStateId: RvcOperationalState.OperationalState.Running, operationalStateLabel: 'Running' },
|
|
1190
|
+
{ operationalStateId: RvcOperationalState.OperationalState.Paused, operationalStateLabel: 'Paused' },
|
|
1191
|
+
{ operationalStateId: RvcOperationalState.OperationalState.Error, operationalStateLabel: 'Error' },
|
|
1192
|
+
{ operationalStateId: RvcOperationalState.OperationalState.SeekingCharger, operationalStateLabel: 'SeekingCharger' },
|
|
1193
|
+
{ operationalStateId: RvcOperationalState.OperationalState.Charging, operationalStateLabel: 'Charging' },
|
|
1194
|
+
{ operationalStateId: RvcOperationalState.OperationalState.Docked, operationalStateLabel: 'Docked' },
|
|
1195
|
+
],
|
|
1196
|
+
operationalState: RvcOperationalState.OperationalState.Docked,
|
|
1197
|
+
operationalError: { errorStateId: RvcOperationalState.ErrorState.NoError, errorStateLabel: 'No Error', errorStateDetails: 'Fully operative' },
|
|
1198
|
+
});
|
|
1199
|
+
return this;
|
|
1200
|
+
}
|
|
1149
1201
|
}
|