@matterbridge/core 3.7.10 → 3.8.0-dev-20260524-eed6b4a
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/dist/behaviors/activatedCarbonFilterMonitoringServer.d.ts +5 -2
- package/dist/behaviors/bindingServer.js +0 -2
- package/dist/behaviors/booleanStateConfigurationServer.d.ts +6 -1
- package/dist/behaviors/colorControlServer.d.ts +20 -774
- package/dist/behaviors/deviceEnergyManagementServer.d.ts +9 -299
- package/dist/behaviors/doorLockServer.d.ts +29 -47
- package/dist/behaviors/doorLockServer.js +11 -299
- package/dist/behaviors/fanControlServer.d.ts +8 -1
- package/dist/behaviors/hepaFilterMonitoringServer.d.ts +5 -2
- package/dist/behaviors/smokeCoAlarmServer.d.ts +4 -77
- package/dist/behaviors/thermostatServer.d.ts +20 -722
- package/dist/behaviors/valveConfigurationAndControlServer.d.ts +4 -1
- package/dist/behaviors/windowCoveringServer.d.ts +28 -564
- package/dist/clusters/closure-control.d.ts +130 -620
- package/dist/clusters/closure-control.js +15 -170
- package/dist/clusters/closure-dimension.d.ts +148 -814
- package/dist/clusters/closure-dimension.js +15 -202
- package/dist/clusters/export.d.ts +1 -3
- package/dist/clusters/export.js +1 -3
- package/dist/clusters/soil-measurement.d.ts +31 -31
- package/dist/clusters/soil-measurement.js +29 -19
- package/dist/devices/closure.d.ts +14 -291
- package/dist/devices/closure.js +6 -13
- package/dist/devices/closurePanel.d.ts +13 -370
- package/dist/devices/closurePanel.js +9 -15
- package/dist/devices/evse.d.ts +7 -1
- package/dist/devices/heatPump.js +5 -5
- package/dist/devices/irrigationSystem.js +2 -2
- package/dist/devices/microwaveOven.d.ts +5 -76
- package/dist/devices/roboticVacuumCleaner.js +5 -5
- package/dist/devices/soilSensor.d.ts +0 -15
- package/dist/devices/soilSensor.js +4 -20
- package/dist/devices/temperatureControl.d.ts +10 -130
- package/dist/frontend.js +9 -9
- package/dist/helpers.js +0 -8
- package/dist/jestutils/jestBroadcastServerSpy.d.ts +2 -2
- package/dist/jestutils/jestMatterTest.js +4 -4
- package/dist/jestutils/jestMatterbridgeEndpointSpy.d.ts +34 -37
- package/dist/jestutils/jestMatterbridgePlatformSpy.d.ts +4 -4
- package/dist/jestutils/jestMatterbridgeTest.js +1 -1
- package/dist/matter/export.d.ts +11 -0
- package/dist/matter/export.js +11 -0
- package/dist/matterbridge.d.ts +3 -0
- package/dist/matterbridge.js +10 -4
- package/dist/matterbridgeDeviceTypes.d.ts +15 -0
- package/dist/matterbridgeDeviceTypes.js +305 -162
- package/dist/matterbridgeEndpoint.d.ts +35 -25
- package/dist/matterbridgeEndpoint.js +6 -7
- package/dist/matterbridgeEndpointCommandHandler.d.ts +3 -59
- package/dist/matterbridgeEndpointHelpers.d.ts +83 -1382
- package/dist/matterbridgeEndpointHelpers.js +20 -5
- package/package.json +8 -8
|
@@ -1,24 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { SoilMeasurementServer } from '@matter/node/behaviors/soil-measurement';
|
|
2
|
+
import { SoilMeasurement } from '@matter/types/clusters/soil-measurement';
|
|
3
3
|
import { MeasurementType } from '@matter/types/globals';
|
|
4
|
-
import { SoilMeasurement } from '../clusters/soil-measurement.js';
|
|
5
4
|
import { powerSource, soilSensor } from '../matterbridgeDeviceTypes.js';
|
|
6
5
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
7
|
-
const SoilMeasurementSchema = ClusterElement({
|
|
8
|
-
id: SoilMeasurement.Cluster.id,
|
|
9
|
-
name: SoilMeasurement.Cluster.name,
|
|
10
|
-
classification: 'application',
|
|
11
|
-
}, AttributeElement({ id: 0xfffd, name: 'ClusterRevision', type: 'ClusterRevision', conformance: 'M', default: SoilMeasurement.Cluster.revision }), AttributeElement({ id: 0xfffc, name: 'FeatureMap', type: 'FeatureMap', conformance: 'M', default: 0 }), AttributeElement({ id: 0x0000, name: 'soilMoistureMeasurementLimits', type: 'MeasurementAccuracyStruct', conformance: 'M' }), AttributeElement({
|
|
12
|
-
id: 0x0001,
|
|
13
|
-
name: 'soilMoistureMeasuredValue',
|
|
14
|
-
type: 'percent',
|
|
15
|
-
conformance: 'M',
|
|
16
|
-
quality: 'X',
|
|
17
|
-
default: null,
|
|
18
|
-
}));
|
|
19
|
-
const SoilMeasurementBehavior = ClusterBehavior.for(SoilMeasurement.Cluster, new ClusterModel(SoilMeasurementSchema));
|
|
20
|
-
export class SoilMeasurementServer extends SoilMeasurementBehavior {
|
|
21
|
-
}
|
|
22
6
|
export class SoilSensor extends MatterbridgeEndpoint {
|
|
23
7
|
constructor(name, serial, options = {}) {
|
|
24
8
|
super([soilSensor, powerSource], { id: `${name.replaceAll(' ', '')}-${serial.replaceAll(' ', '')}` });
|
|
@@ -44,9 +28,9 @@ export class SoilSensor extends MatterbridgeEndpoint {
|
|
|
44
28
|
this.createDefaultTemperatureMeasurementClusterServer(options.temperatureMeasuredValue);
|
|
45
29
|
}
|
|
46
30
|
async setSoilMoistureMeasuredValue(value) {
|
|
47
|
-
await this.setAttribute(SoilMeasurement.
|
|
31
|
+
await this.setAttribute(SoilMeasurement.id, 'soilMoistureMeasuredValue', value);
|
|
48
32
|
}
|
|
49
33
|
getSoilMoistureMeasuredValue() {
|
|
50
|
-
return this.getAttribute(SoilMeasurement
|
|
34
|
+
return this.getAttribute(SoilMeasurement, 'soilMoistureMeasuredValue');
|
|
51
35
|
}
|
|
52
36
|
}
|
|
@@ -3,140 +3,20 @@ import { TemperatureControl } from '@matter/types/clusters/temperature-control';
|
|
|
3
3
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
4
4
|
export declare function createLevelTemperatureControlClusterServer(endpoint: MatterbridgeEndpoint, selectedTemperatureLevel?: number, supportedTemperatureLevels?: string[]): MatterbridgeEndpoint;
|
|
5
5
|
export declare function createNumberTemperatureControlClusterServer(endpoint: MatterbridgeEndpoint, temperatureSetpoint?: number, minTemperature?: number, maxTemperature?: number, step?: number): MatterbridgeEndpoint;
|
|
6
|
-
declare const MatterbridgeLevelTemperatureControlServer_base: import("@matter/node").ClusterBehavior.Type<import("@matter/types").
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
readonly temperatureNumber: import("@matter/types").BitFlag;
|
|
12
|
-
readonly temperatureLevel: import("@matter/types").BitFlag;
|
|
13
|
-
readonly temperatureStep: import("@matter/types").BitFlag;
|
|
14
|
-
};
|
|
15
|
-
readonly commands: {
|
|
16
|
-
readonly setTemperature: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
|
|
17
|
-
targetTemperature: import("@matter/types").OptionalFieldType<number>;
|
|
18
|
-
targetTemperatureLevel: import("@matter/types").OptionalFieldType<number>;
|
|
19
|
-
}>, void, any>;
|
|
20
|
-
};
|
|
21
|
-
readonly extensions: readonly [{
|
|
22
|
-
readonly flags: {
|
|
23
|
-
readonly temperatureNumber: true;
|
|
24
|
-
};
|
|
25
|
-
readonly component: {
|
|
26
|
-
readonly attributes: {
|
|
27
|
-
readonly temperatureSetpoint: import("@matter/types").Attribute<number, any>;
|
|
28
|
-
readonly minTemperature: import("@matter/types").FixedAttribute<number, any>;
|
|
29
|
-
readonly maxTemperature: import("@matter/types").FixedAttribute<number, any>;
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
}, {
|
|
33
|
-
readonly flags: {
|
|
34
|
-
readonly temperatureStep: true;
|
|
35
|
-
};
|
|
36
|
-
readonly component: {
|
|
37
|
-
readonly attributes: {
|
|
38
|
-
readonly step: import("@matter/types").FixedAttribute<number, any>;
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
}, {
|
|
42
|
-
readonly flags: {
|
|
43
|
-
readonly temperatureLevel: true;
|
|
44
|
-
};
|
|
45
|
-
readonly component: {
|
|
46
|
-
readonly attributes: {
|
|
47
|
-
readonly selectedTemperatureLevel: import("@matter/types").Attribute<number, any>;
|
|
48
|
-
readonly supportedTemperatureLevels: import("@matter/types").Attribute<string[], any>;
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
|
-
}, {
|
|
52
|
-
readonly flags: {
|
|
53
|
-
readonly temperatureStep: true;
|
|
54
|
-
readonly temperatureNumber: false;
|
|
55
|
-
};
|
|
56
|
-
readonly component: false;
|
|
57
|
-
}, {
|
|
58
|
-
readonly flags: {
|
|
59
|
-
readonly temperatureNumber: true;
|
|
60
|
-
readonly temperatureLevel: true;
|
|
61
|
-
};
|
|
62
|
-
readonly component: false;
|
|
63
|
-
}, {
|
|
64
|
-
readonly flags: {
|
|
65
|
-
readonly temperatureNumber: false;
|
|
66
|
-
readonly temperatureLevel: false;
|
|
67
|
-
};
|
|
68
|
-
readonly component: false;
|
|
69
|
-
}];
|
|
70
|
-
}>, readonly [TemperatureControl.Feature.TemperatureLevel]>, typeof TemperatureControlServer, import("@matter/node/behaviors/temperature-control").TemperatureControlInterface>;
|
|
6
|
+
declare const MatterbridgeLevelTemperatureControlServer_base: import("@matter/node").ClusterBehavior.Type<typeof TemperatureControlServer, import("@matter/types").ClusterType.WithSupportedFeatures<TemperatureControl, {
|
|
7
|
+
temperatureNumber: false;
|
|
8
|
+
temperatureLevel: true;
|
|
9
|
+
temperatureStep: false;
|
|
10
|
+
}>, import("@matter/types").ClusterType.Concrete, new () => {}, "temperatureControl">;
|
|
71
11
|
export declare class MatterbridgeLevelTemperatureControlServer extends MatterbridgeLevelTemperatureControlServer_base {
|
|
72
12
|
initialize(): void;
|
|
73
13
|
setTemperature(request: TemperatureControl.SetTemperatureRequest): Promise<void>;
|
|
74
14
|
}
|
|
75
|
-
declare const MatterbridgeNumberTemperatureControlServer_base: import("@matter/node").ClusterBehavior.Type<import("@matter/types").
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
readonly temperatureNumber: import("@matter/types").BitFlag;
|
|
81
|
-
readonly temperatureLevel: import("@matter/types").BitFlag;
|
|
82
|
-
readonly temperatureStep: import("@matter/types").BitFlag;
|
|
83
|
-
};
|
|
84
|
-
readonly commands: {
|
|
85
|
-
readonly setTemperature: import("@matter/types").Command<import("@matter/types").TypeFromFields<{
|
|
86
|
-
targetTemperature: import("@matter/types").OptionalFieldType<number>;
|
|
87
|
-
targetTemperatureLevel: import("@matter/types").OptionalFieldType<number>;
|
|
88
|
-
}>, void, any>;
|
|
89
|
-
};
|
|
90
|
-
readonly extensions: readonly [{
|
|
91
|
-
readonly flags: {
|
|
92
|
-
readonly temperatureNumber: true;
|
|
93
|
-
};
|
|
94
|
-
readonly component: {
|
|
95
|
-
readonly attributes: {
|
|
96
|
-
readonly temperatureSetpoint: import("@matter/types").Attribute<number, any>;
|
|
97
|
-
readonly minTemperature: import("@matter/types").FixedAttribute<number, any>;
|
|
98
|
-
readonly maxTemperature: import("@matter/types").FixedAttribute<number, any>;
|
|
99
|
-
};
|
|
100
|
-
};
|
|
101
|
-
}, {
|
|
102
|
-
readonly flags: {
|
|
103
|
-
readonly temperatureStep: true;
|
|
104
|
-
};
|
|
105
|
-
readonly component: {
|
|
106
|
-
readonly attributes: {
|
|
107
|
-
readonly step: import("@matter/types").FixedAttribute<number, any>;
|
|
108
|
-
};
|
|
109
|
-
};
|
|
110
|
-
}, {
|
|
111
|
-
readonly flags: {
|
|
112
|
-
readonly temperatureLevel: true;
|
|
113
|
-
};
|
|
114
|
-
readonly component: {
|
|
115
|
-
readonly attributes: {
|
|
116
|
-
readonly selectedTemperatureLevel: import("@matter/types").Attribute<number, any>;
|
|
117
|
-
readonly supportedTemperatureLevels: import("@matter/types").Attribute<string[], any>;
|
|
118
|
-
};
|
|
119
|
-
};
|
|
120
|
-
}, {
|
|
121
|
-
readonly flags: {
|
|
122
|
-
readonly temperatureStep: true;
|
|
123
|
-
readonly temperatureNumber: false;
|
|
124
|
-
};
|
|
125
|
-
readonly component: false;
|
|
126
|
-
}, {
|
|
127
|
-
readonly flags: {
|
|
128
|
-
readonly temperatureNumber: true;
|
|
129
|
-
readonly temperatureLevel: true;
|
|
130
|
-
};
|
|
131
|
-
readonly component: false;
|
|
132
|
-
}, {
|
|
133
|
-
readonly flags: {
|
|
134
|
-
readonly temperatureNumber: false;
|
|
135
|
-
readonly temperatureLevel: false;
|
|
136
|
-
};
|
|
137
|
-
readonly component: false;
|
|
138
|
-
}];
|
|
139
|
-
}>, readonly [TemperatureControl.Feature.TemperatureNumber, TemperatureControl.Feature.TemperatureStep]>, typeof TemperatureControlServer, import("@matter/node/behaviors/temperature-control").TemperatureControlInterface>;
|
|
15
|
+
declare const MatterbridgeNumberTemperatureControlServer_base: import("@matter/node").ClusterBehavior.Type<typeof TemperatureControlServer, import("@matter/types").ClusterType.WithSupportedFeatures<TemperatureControl, {
|
|
16
|
+
temperatureNumber: true;
|
|
17
|
+
temperatureLevel: false;
|
|
18
|
+
temperatureStep: true;
|
|
19
|
+
}>, import("@matter/types").ClusterType.Concrete, new () => {}, "temperatureControl">;
|
|
140
20
|
export declare class MatterbridgeNumberTemperatureControlServer extends MatterbridgeNumberTemperatureControlServer_base {
|
|
141
21
|
initialize(): void;
|
|
142
22
|
setTemperature(request: TemperatureControl.SetTemperatureRequest): Promise<void>;
|
package/dist/frontend.js
CHANGED
|
@@ -896,9 +896,9 @@ export class Frontend extends EventEmitter {
|
|
|
896
896
|
matterMdnsInterface: this.matterbridge.mdnsInterface,
|
|
897
897
|
matterIpv4Address: this.matterbridge.ipv4Address,
|
|
898
898
|
matterIpv6Address: this.matterbridge.ipv6Address,
|
|
899
|
-
matterPort: this.matterbridge.
|
|
900
|
-
matterDiscriminator: this.matterbridge.
|
|
901
|
-
matterPasscode: this.matterbridge.
|
|
899
|
+
matterPort: this.matterbridge.initialPort || 5540,
|
|
900
|
+
matterDiscriminator: this.matterbridge.initialDiscriminator,
|
|
901
|
+
matterPasscode: this.matterbridge.initialPasscode,
|
|
902
902
|
readOnly: this.readOnly,
|
|
903
903
|
shellyBoard: this.shellyBoard,
|
|
904
904
|
shellySysUpdate: this.shellySysUpdate,
|
|
@@ -1826,7 +1826,7 @@ export class Frontend extends EventEmitter {
|
|
|
1826
1826
|
const port = isValidString(data.params.value) ? parseInt(data.params.value) : 0;
|
|
1827
1827
|
if (isValidNumber(port, 5540, 5600)) {
|
|
1828
1828
|
this.log.debug(`Set matter commissioning port to ${CYAN}${port}${db}`);
|
|
1829
|
-
this.matterbridge.port = port;
|
|
1829
|
+
this.matterbridge.port = this.matterbridge.initialPort = port;
|
|
1830
1830
|
await this.matterbridge.nodeContext?.set('matterport', port);
|
|
1831
1831
|
this.wssSendRestartRequired();
|
|
1832
1832
|
sendResponse({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, success: true });
|
|
@@ -1834,7 +1834,7 @@ export class Frontend extends EventEmitter {
|
|
|
1834
1834
|
}
|
|
1835
1835
|
else {
|
|
1836
1836
|
this.log.debug(`Reset matter commissioning port to ${CYAN}5540${db}`);
|
|
1837
|
-
this.matterbridge.port = 5540;
|
|
1837
|
+
this.matterbridge.port = this.matterbridge.initialPort = 5540;
|
|
1838
1838
|
await this.matterbridge.nodeContext?.set('matterport', 5540);
|
|
1839
1839
|
this.wssSendRestartRequired();
|
|
1840
1840
|
sendResponse({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, error: 'Invalid value: reset matter commissioning port to default 5540' });
|
|
@@ -1845,7 +1845,7 @@ export class Frontend extends EventEmitter {
|
|
|
1845
1845
|
const discriminator = isValidString(data.params.value) ? parseInt(data.params.value) : 0;
|
|
1846
1846
|
if (isValidNumber(discriminator, 0, 4095)) {
|
|
1847
1847
|
this.log.debug(`Set matter commissioning discriminator to ${CYAN}${discriminator}${db}`);
|
|
1848
|
-
this.matterbridge.discriminator = discriminator;
|
|
1848
|
+
this.matterbridge.discriminator = this.matterbridge.initialDiscriminator = discriminator;
|
|
1849
1849
|
await this.matterbridge.nodeContext?.set('matterdiscriminator', discriminator);
|
|
1850
1850
|
this.wssSendRestartRequired();
|
|
1851
1851
|
sendResponse({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, success: true });
|
|
@@ -1853,7 +1853,7 @@ export class Frontend extends EventEmitter {
|
|
|
1853
1853
|
}
|
|
1854
1854
|
else {
|
|
1855
1855
|
this.log.debug(`Reset matter commissioning discriminator to ${CYAN}undefined${db}`);
|
|
1856
|
-
this.matterbridge.discriminator = undefined;
|
|
1856
|
+
this.matterbridge.discriminator = this.matterbridge.initialDiscriminator = undefined;
|
|
1857
1857
|
await this.matterbridge.nodeContext?.remove('matterdiscriminator');
|
|
1858
1858
|
this.wssSendRestartRequired();
|
|
1859
1859
|
sendResponse({
|
|
@@ -1869,7 +1869,7 @@ export class Frontend extends EventEmitter {
|
|
|
1869
1869
|
case 'setmatterpasscode':
|
|
1870
1870
|
const passcode = isValidString(data.params.value) ? parseInt(data.params.value) : 0;
|
|
1871
1871
|
if (isValidNumber(passcode, 1, 99999998) && CommissioningOptions.FORBIDDEN_PASSCODES.includes(passcode) === false) {
|
|
1872
|
-
this.matterbridge.passcode = passcode;
|
|
1872
|
+
this.matterbridge.passcode = this.matterbridge.initialPasscode = passcode;
|
|
1873
1873
|
this.log.debug(`Set matter commissioning passcode to ${CYAN}${passcode}${db}`);
|
|
1874
1874
|
await this.matterbridge.nodeContext?.set('matterpasscode', passcode);
|
|
1875
1875
|
this.wssSendRestartRequired();
|
|
@@ -1878,7 +1878,7 @@ export class Frontend extends EventEmitter {
|
|
|
1878
1878
|
}
|
|
1879
1879
|
else {
|
|
1880
1880
|
this.log.debug(`Reset matter commissioning passcode to ${CYAN}undefined${db}`);
|
|
1881
|
-
this.matterbridge.passcode = undefined;
|
|
1881
|
+
this.matterbridge.passcode = this.matterbridge.initialPasscode = undefined;
|
|
1882
1882
|
await this.matterbridge.nodeContext?.remove('matterpasscode');
|
|
1883
1883
|
this.wssSendRestartRequired();
|
|
1884
1884
|
sendResponse({
|
package/dist/helpers.js
CHANGED
|
@@ -9,8 +9,6 @@ import { MountedOnOffControlDevice } from '@matter/node/devices/mounted-on-off-c
|
|
|
9
9
|
import { OnOffLightDevice } from '@matter/node/devices/on-off-light';
|
|
10
10
|
import { OnOffLightSwitchDevice } from '@matter/node/devices/on-off-light-switch';
|
|
11
11
|
import { OnOffPlugInUnitDevice } from '@matter/node/devices/on-off-plug-in-unit';
|
|
12
|
-
import { Identify } from '@matter/types/clusters/identify';
|
|
13
|
-
import { OnOff } from '@matter/types/clusters/on-off';
|
|
14
12
|
import { VendorId } from '@matter/types/datatype';
|
|
15
13
|
import { hasParameter } from '@matterbridge/utils/cli';
|
|
16
14
|
import { doorLockDevice } from './matterbridgeDeviceTypes.js';
|
|
@@ -51,12 +49,6 @@ export async function addVirtualDevice(aggregatorEndpoint, name, type, callback)
|
|
|
51
49
|
});
|
|
52
50
|
await aggregatorEndpoint.add(device);
|
|
53
51
|
await device.construction.ready;
|
|
54
|
-
if (type === 'switch') {
|
|
55
|
-
await device.act(async (agent) => {
|
|
56
|
-
const descriptor = await agent.load(DescriptorServer);
|
|
57
|
-
descriptor.state.clientList.push(Identify.Cluster.id, OnOff.Cluster.id);
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
52
|
if (type === 'mounted_switch') {
|
|
61
53
|
await device.act(async (agent) => {
|
|
62
54
|
const descriptor = await agent.load(DescriptorServer);
|
|
@@ -8,5 +8,5 @@ export declare const broadcastBroadcastServerSpy: import("jest-mock").SpiedFunct
|
|
|
8
8
|
export declare const requestBroadcastServerSpy: import("jest-mock").SpiedFunction<(<K extends keyof import("@matterbridge/types").WorkerMessageTypes>(message: import("@matterbridge/types").WorkerMessageRequest<K>) => void)>;
|
|
9
9
|
export declare const respondBroadcastServerSpy: import("jest-mock").SpiedFunction<(<K extends keyof import("@matterbridge/types").WorkerMessageTypes>(message: import("@matterbridge/types").WorkerMessageResponse<K>) => void)>;
|
|
10
10
|
export declare const fetchBroadcastServerSpy: import("jest-mock").SpiedFunction<(<T extends import("@matterbridge/types").WorkerMessageRequestAny, K extends Extract<keyof import("@matterbridge/types").WorkerMessageTypes, T["type"]>>(message: T, timeout?: number) => Promise<import("@matterbridge/types").WorkerMessageResponseSuccess<K>>)>;
|
|
11
|
-
export declare const broadcastMessageHandlerBroadcastServerSpy: import("jest-mock").
|
|
12
|
-
export declare const broadcastMessageErrorHandlerBroadcastServerSpy: import("jest-mock").
|
|
11
|
+
export declare const broadcastMessageHandlerBroadcastServerSpy: import("jest-mock").SpiedGetter<import("@matterbridge/types").WorkerSrcType> | import("jest-mock").SpiedSetter<import("@matterbridge/types").WorkerSrcType>;
|
|
12
|
+
export declare const broadcastMessageErrorHandlerBroadcastServerSpy: import("jest-mock").SpiedGetter<import("@matterbridge/types").WorkerSrcType> | import("jest-mock").SpiedSetter<import("@matterbridge/types").WorkerSrcType>;
|
|
@@ -57,10 +57,10 @@ export function getPlatformMatterbridge() {
|
|
|
57
57
|
matterbridgePluginDirectory: path.join(HOMEDIR, 'Matterbridge'),
|
|
58
58
|
matterbridgeCertDirectory: path.join(HOMEDIR, '.mattercert'),
|
|
59
59
|
globalModulesDirectory: path.join(HOMEDIR, 'node_modules'),
|
|
60
|
-
matterbridgeVersion: '3.
|
|
61
|
-
matterbridgeLatestVersion: '3.
|
|
62
|
-
matterbridgeDevVersion: '3.
|
|
63
|
-
frontendVersion: '3.
|
|
60
|
+
matterbridgeVersion: '3.8.0',
|
|
61
|
+
matterbridgeLatestVersion: '3.8.0',
|
|
62
|
+
matterbridgeDevVersion: '3.8.0',
|
|
63
|
+
frontendVersion: '3.8.0',
|
|
64
64
|
bridgeMode: '',
|
|
65
65
|
restartMode: '',
|
|
66
66
|
virtualMode: 'mounted_switch',
|
|
@@ -1,57 +1,54 @@
|
|
|
1
1
|
export declare const setClusterMatterbridgeEndpointSpy: import("jest-mock").SpiedFunction<{
|
|
2
2
|
<T extends import("@matter/node").Behavior.Type>(cluster: T, value: import("@matter/node").Behavior.StateOf<T>, log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
3
|
-
<T extends import("@matter/types").ClusterType>(cluster: T, value:
|
|
3
|
+
<T extends import("@matter/types").ClusterType>(cluster: T, value: T["Typing"] extends {
|
|
4
|
+
Attributes: infer Attributes;
|
|
5
|
+
} ? Attributes : {}, log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
4
6
|
(cluster: import("@matter/types").ClusterId | string, value: Record<string, boolean | number | bigint | string | object | undefined | null>, log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
5
7
|
}>;
|
|
6
8
|
export declare const setAttributeMatterbridgeEndpointSpy: import("jest-mock").SpiedFunction<{
|
|
7
9
|
<T extends import("@matter/node").Behavior.Type, A extends keyof import("@matter/node").Behavior.StateOf<T>>(clusterId: T, attribute: A, value: import("@matter/node").Behavior.StateOf<T>[A], log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
8
|
-
<T extends import("@matter/types").ClusterType, A extends keyof
|
|
10
|
+
<T extends import("@matter/types").ClusterType, A extends keyof (T["Typing"] extends {
|
|
11
|
+
Attributes: infer Attributes;
|
|
12
|
+
} ? Attributes : {})>(clusterId: T, attribute: A, value: (T["Typing"] extends {
|
|
13
|
+
Attributes: infer Attributes;
|
|
14
|
+
} ? Attributes : {})[A], log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
9
15
|
(clusterId: import("@matter/types").ClusterId | string, attribute: string, value: boolean | number | bigint | string | object | null, log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
10
16
|
}>;
|
|
11
17
|
export declare const updateAttributeMatterbridgeEndpointSpy: import("jest-mock").SpiedFunction<{
|
|
12
18
|
<T extends import("@matter/node").Behavior.Type, A extends keyof import("@matter/node").Behavior.StateOf<T>>(cluster: T, attribute: A, value: import("@matter/node").Behavior.StateOf<T>[A], log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
13
|
-
<T extends import("@matter/types").ClusterType, A extends keyof
|
|
19
|
+
<T extends import("@matter/types").ClusterType, A extends keyof (T["Typing"] extends {
|
|
20
|
+
Attributes: infer Attributes;
|
|
21
|
+
} ? Attributes : {})>(cluster: T, attribute: A, value: (T["Typing"] extends {
|
|
22
|
+
Attributes: infer Attributes;
|
|
23
|
+
} ? Attributes : {})[A], log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
14
24
|
(cluster: import("@matter/types").ClusterId | string, attribute: string, value: boolean | number | bigint | string | object | null, log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
15
25
|
}>;
|
|
16
26
|
export declare const subscribeAttributeMatterbridgeEndpointSpy: import("jest-mock").SpiedFunction<{
|
|
17
27
|
<T extends import("@matter/node").Behavior.Type, A extends keyof import("@matter/node").Behavior.StateOf<T>>(cluster: T, attribute: A, listener: (newValue: import("@matter/node").Behavior.StateOf<T>[A], oldValue: import("@matter/node").Behavior.StateOf<T>[A], context: import("@matter/node").ActionContext) => void, log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
18
|
-
<T extends import("@matter/types").ClusterType, A extends keyof
|
|
28
|
+
<T extends import("@matter/types").ClusterType, A extends keyof (T["Typing"] extends {
|
|
29
|
+
Attributes: infer Attributes;
|
|
30
|
+
} ? Attributes : {})>(cluster: T, attribute: A, listener: (newValue: (T["Typing"] extends {
|
|
31
|
+
Attributes: infer Attributes;
|
|
32
|
+
} ? Attributes : {})[A], oldValue: (T["Typing"] extends {
|
|
33
|
+
Attributes: infer Attributes;
|
|
34
|
+
} ? Attributes : {})[A], context: import("@matter/node").ActionContext) => void, log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
19
35
|
(cluster: import("@matter/types").ClusterId | string, attribute: string, listener: (newValue: any, oldValue: any, context: import("@matter/node").ActionContext) => void, log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
20
36
|
}>;
|
|
21
37
|
export declare const triggerEventMatterbridgeEndpointSpy: import("jest-mock").SpiedFunction<{
|
|
22
|
-
<T extends import("@matter/node").Behavior.Type, E extends keyof
|
|
23
|
-
|
|
24
|
-
} ?
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
} ?
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
readonly name: "Unknown";
|
|
37
|
-
readonly attributes: {};
|
|
38
|
-
readonly commands: {};
|
|
39
|
-
readonly events: {};
|
|
40
|
-
}>> ? import("@matter/types").ClusterType.EventsOf<T extends {
|
|
41
|
-
cluster: infer C extends import("@matter/types").ClusterType;
|
|
42
|
-
} ? C : import("@matter/types").ClusterType.Of<{
|
|
43
|
-
readonly id: 0;
|
|
44
|
-
readonly revision: 0;
|
|
45
|
-
readonly name: "Unknown";
|
|
46
|
-
readonly attributes: {};
|
|
47
|
-
readonly commands: {};
|
|
48
|
-
readonly events: {};
|
|
49
|
-
}>>[E] extends {
|
|
50
|
-
schema: infer S extends import("@matter/types").TlvSchema<unknown>;
|
|
51
|
-
} ? import("@matter/types").TypeFromSchema<S> : never : never, log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
52
|
-
<T extends import("@matter/types").ClusterType, E extends keyof import("@matter/types").ClusterType.EventsOf<T> & string>(cluster: T, event: E, payload: E extends keyof import("@matter/types").ClusterType.EventsOf<T> ? import("@matter/types").ClusterType.EventsOf<T>[E] extends {
|
|
53
|
-
schema: infer S extends import("@matter/types").TlvSchema<unknown>;
|
|
54
|
-
} ? import("@matter/types").TypeFromSchema<S> : never : never, log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
38
|
+
<T extends import("@matter/node").Behavior.Type, E extends keyof ((T extends {
|
|
39
|
+
Interface: infer N extends import("@matter/types").ClusterTyping;
|
|
40
|
+
} ? N : import("@matter/types").ClusterTyping)["Events"] & {}) & string>(cluster: T, event: E, payload: E extends keyof ((T extends {
|
|
41
|
+
Interface: infer N extends import("@matter/types").ClusterTyping;
|
|
42
|
+
} ? N : import("@matter/types").ClusterTyping)["Events"] & {}) & string ? ((T extends {
|
|
43
|
+
Interface: infer N extends import("@matter/types").ClusterTyping;
|
|
44
|
+
} ? N : import("@matter/types").ClusterTyping)["Events"] & {})[E] : never, log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
45
|
+
<T extends import("@matter/types").ClusterType, E extends keyof (T["Typing"] extends {
|
|
46
|
+
Events: infer Events;
|
|
47
|
+
} ? Events : Record<string, never>) & string>(cluster: T, event: E, payload: E extends keyof (T["Typing"] extends {
|
|
48
|
+
Events: infer Events;
|
|
49
|
+
} ? Events : Record<string, never>) ? (T["Typing"] extends {
|
|
50
|
+
Events: infer Events;
|
|
51
|
+
} ? Events : Record<string, never>)[E] : never, log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
55
52
|
(cluster: import("@matter/types").ClusterId | string, event: string, payload: Record<string, boolean | number | bigint | string | object | undefined | null>, log?: import("node-ansi-logger").AnsiLogger): Promise<boolean>;
|
|
56
53
|
}>;
|
|
57
54
|
export declare const triggerSwitchEventMatterbridgeEndpointSpy: import("jest-mock").SpiedFunction<(event: "Single" | "Double" | "Long" | "Press" | "Release", log?: import("node-ansi-logger").AnsiLogger) => Promise<boolean>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const destroyMatterbridgePlatformSpy: import("jest-mock").
|
|
1
|
+
export declare const destroyMatterbridgePlatformSpy: import("jest-mock").SpiedGetter<string | boolean | import("node-ansi-logger").AnsiLogger | Promise<void> | import("../matterbridgePlatform.js").PlatformConfig | import("../matterbridgePlatform.js").PlatformMatterbridge | import("node-persist-manager").NodeStorage> | import("jest-mock").SpiedSetter<string | boolean | import("node-ansi-logger").AnsiLogger | Promise<void> | import("../matterbridgePlatform.js").PlatformConfig | import("../matterbridgePlatform.js").PlatformMatterbridge | import("node-persist-manager").NodeStorage>;
|
|
2
2
|
export declare const onStartMatterbridgePlatformSpy: import("jest-mock").SpiedFunction<(reason?: string) => Promise<void>>;
|
|
3
3
|
export declare const onConfigureMatterbridgePlatformSpy: import("jest-mock").SpiedFunction<() => Promise<void>>;
|
|
4
4
|
export declare const onShutdownMatterbridgePlatformSpy: import("jest-mock").SpiedFunction<(reason?: string) => Promise<void>>;
|
|
@@ -24,7 +24,7 @@ export declare const registerVirtualDeviceMatterbridgePlatformSpy: import("jest-
|
|
|
24
24
|
export declare const registerDeviceMatterbridgePlatformSpy: import("jest-mock").SpiedFunction<(device: import("../matterbridgeEndpoint.js").MatterbridgeEndpoint) => Promise<void>>;
|
|
25
25
|
export declare const unregisterDeviceMatterbridgePlatformSpy: import("jest-mock").SpiedFunction<(device: import("../matterbridgeEndpoint.js").MatterbridgeEndpoint) => Promise<void>>;
|
|
26
26
|
export declare const unregisterAllDevicesMatterbridgePlatformSpy: import("jest-mock").SpiedFunction<(delay?: number) => Promise<void>>;
|
|
27
|
-
export declare const saveSelectsMatterbridgePlatformSpy: import("jest-mock").
|
|
27
|
+
export declare const saveSelectsMatterbridgePlatformSpy: import("jest-mock").SpiedGetter<string | boolean | import("node-ansi-logger").AnsiLogger | Promise<void> | import("../matterbridgePlatform.js").PlatformConfig | import("../matterbridgePlatform.js").PlatformMatterbridge | import("node-persist-manager").NodeStorage> | import("jest-mock").SpiedSetter<string | boolean | import("node-ansi-logger").AnsiLogger | Promise<void> | import("../matterbridgePlatform.js").PlatformConfig | import("../matterbridgePlatform.js").PlatformMatterbridge | import("node-persist-manager").NodeStorage>;
|
|
28
28
|
export declare const clearSelectMatterbridgePlatformSpy: import("jest-mock").SpiedFunction<() => Promise<void>>;
|
|
29
29
|
export declare const clearDeviceSelectMatterbridgePlatformSpy: import("jest-mock").SpiedFunction<(serial: string) => Promise<void>>;
|
|
30
30
|
export declare const clearEntitySelectMatterbridgePlatformSpy: import("jest-mock").SpiedFunction<(name: string) => Promise<void>>;
|
|
@@ -56,5 +56,5 @@ export declare const getSelectEntitiesMatterbridgePlatformSpy: import("jest-mock
|
|
|
56
56
|
export declare const verifyMatterbridgeVersionMatterbridgePlatformSpy: import("jest-mock").SpiedFunction<(requiredVersion: string, destroy?: boolean) => boolean>;
|
|
57
57
|
export declare const validateDeviceMatterbridgePlatformSpy: import("jest-mock").SpiedFunction<(device: string | string[], log?: boolean) => boolean>;
|
|
58
58
|
export declare const validateEntityMatterbridgePlatformSpy: import("jest-mock").SpiedFunction<(device: string, entity: string, log?: boolean) => boolean>;
|
|
59
|
-
export declare const clearEndpointNumbersMatterbridgePlatformSpy: import("jest-mock").
|
|
60
|
-
export declare const checkEndpointNumbersMatterbridgePlatformSpy: import("jest-mock").
|
|
59
|
+
export declare const clearEndpointNumbersMatterbridgePlatformSpy: import("jest-mock").SpiedGetter<string | boolean | import("node-ansi-logger").AnsiLogger | Promise<void> | import("../matterbridgePlatform.js").PlatformConfig | import("../matterbridgePlatform.js").PlatformMatterbridge | import("node-persist-manager").NodeStorage> | import("jest-mock").SpiedSetter<string | boolean | import("node-ansi-logger").AnsiLogger | Promise<void> | import("../matterbridgePlatform.js").PlatformConfig | import("../matterbridgePlatform.js").PlatformMatterbridge | import("node-persist-manager").NodeStorage>;
|
|
60
|
+
export declare const checkEndpointNumbersMatterbridgePlatformSpy: import("jest-mock").SpiedGetter<string | boolean | import("node-ansi-logger").AnsiLogger | Promise<void> | import("../matterbridgePlatform.js").PlatformConfig | import("../matterbridgePlatform.js").PlatformMatterbridge | import("node-persist-manager").NodeStorage> | import("jest-mock").SpiedSetter<string | boolean | import("node-ansi-logger").AnsiLogger | Promise<void> | import("../matterbridgePlatform.js").PlatformConfig | import("../matterbridgePlatform.js").PlatformMatterbridge | import("node-persist-manager").NodeStorage>;
|
|
@@ -109,7 +109,7 @@ export async function createMatterbridgeEnvironment() {
|
|
|
109
109
|
matterbridge = await Matterbridge.loadInstance(false);
|
|
110
110
|
expect(matterbridge).toBeDefined();
|
|
111
111
|
expect(matterbridge).toBeInstanceOf(Matterbridge);
|
|
112
|
-
matterbridge.matterbridgeVersion = '3.
|
|
112
|
+
matterbridge.matterbridgeVersion = '3.8.0';
|
|
113
113
|
matterbridge.bridgeMode = 'bridge';
|
|
114
114
|
matterbridge.rootDirectory = path.join(HOMEDIR);
|
|
115
115
|
matterbridge.homeDirectory = path.join(HOMEDIR);
|
package/dist/matter/export.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
1
|
export * from '@matter/main';
|
|
2
2
|
export { AttributeElement, ClusterElement, ClusterModel, CommandElement, EventElement, FieldElement, MatterDefinition } from '@matter/main/model';
|
|
3
3
|
export { MdnsService, Val } from '@matter/main/protocol';
|
|
4
|
+
export { CommonAreaNamespaceTag as AreaNamespaceTag } from '@matter/main/node';
|
|
5
|
+
export { CommonClosureTag as ClosureTag } from '@matter/main/node';
|
|
6
|
+
export { CommonCompassDirectionTag as CompassDirectionTag } from '@matter/main/node';
|
|
7
|
+
export { CommonCompassLocationTag as CompassLocationTag } from '@matter/main/node';
|
|
8
|
+
export { CommonDirectionTag as DirectionTag } from '@matter/main/node';
|
|
9
|
+
export { CommonLandmarkNamespaceTag as LandmarkNamespaceTag } from '@matter/main/node';
|
|
10
|
+
export { CommonLevelTag as LevelTag } from '@matter/main/node';
|
|
11
|
+
export { CommonLocationTag as LocationTag } from '@matter/main/node';
|
|
12
|
+
export { CommonNumberTag as NumberTag } from '@matter/main/node';
|
|
13
|
+
export { CommonPositionTag as PositionTag } from '@matter/main/node';
|
|
14
|
+
export { CommonRelativePositionTag as RelativePositionTag } from '@matter/main/node';
|
package/dist/matter/export.js
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
1
|
export * from '@matter/main';
|
|
2
2
|
export { AttributeElement, ClusterElement, ClusterModel, CommandElement, EventElement, FieldElement, MatterDefinition } from '@matter/main/model';
|
|
3
3
|
export { MdnsService, Val } from '@matter/main/protocol';
|
|
4
|
+
export { CommonAreaNamespaceTag as AreaNamespaceTag } from '@matter/main/node';
|
|
5
|
+
export { CommonClosureTag as ClosureTag } from '@matter/main/node';
|
|
6
|
+
export { CommonCompassDirectionTag as CompassDirectionTag } from '@matter/main/node';
|
|
7
|
+
export { CommonCompassLocationTag as CompassLocationTag } from '@matter/main/node';
|
|
8
|
+
export { CommonDirectionTag as DirectionTag } from '@matter/main/node';
|
|
9
|
+
export { CommonLandmarkNamespaceTag as LandmarkNamespaceTag } from '@matter/main/node';
|
|
10
|
+
export { CommonLevelTag as LevelTag } from '@matter/main/node';
|
|
11
|
+
export { CommonLocationTag as LocationTag } from '@matter/main/node';
|
|
12
|
+
export { CommonNumberTag as NumberTag } from '@matter/main/node';
|
|
13
|
+
export { CommonPositionTag as PositionTag } from '@matter/main/node';
|
|
14
|
+
export { CommonRelativePositionTag as RelativePositionTag } from '@matter/main/node';
|
package/dist/matterbridge.d.ts
CHANGED
|
@@ -90,8 +90,11 @@ export declare class Matterbridge extends EventEmitter<MatterbridgeEvents> {
|
|
|
90
90
|
ipv4Address: string | undefined;
|
|
91
91
|
ipv6Address: string | undefined;
|
|
92
92
|
port: number | undefined;
|
|
93
|
+
initialPort: number | undefined;
|
|
93
94
|
passcode: number | undefined;
|
|
95
|
+
initialPasscode: number | undefined;
|
|
94
96
|
discriminator: number | undefined;
|
|
97
|
+
initialDiscriminator: number | undefined;
|
|
95
98
|
certification: DeviceCertification.Configuration | undefined;
|
|
96
99
|
serverNode: ServerNode<ServerNode.RootEndpoint> | undefined;
|
|
97
100
|
aggregatorNode: Endpoint<AggregatorEndpoint> | undefined;
|
package/dist/matterbridge.js
CHANGED
|
@@ -122,8 +122,11 @@ export class Matterbridge extends EventEmitter {
|
|
|
122
122
|
ipv4Address;
|
|
123
123
|
ipv6Address;
|
|
124
124
|
port;
|
|
125
|
+
initialPort;
|
|
125
126
|
passcode;
|
|
127
|
+
initialPasscode;
|
|
126
128
|
discriminator;
|
|
129
|
+
initialDiscriminator;
|
|
127
130
|
certification;
|
|
128
131
|
serverNode;
|
|
129
132
|
aggregatorNode;
|
|
@@ -382,9 +385,10 @@ export class Matterbridge extends EventEmitter {
|
|
|
382
385
|
if (!this.nodeStorage || !this.nodeContext) {
|
|
383
386
|
throw new Error('Fatal error creating node storage manager and context for matterbridge');
|
|
384
387
|
}
|
|
385
|
-
this.port = getIntParameter('port') ?? (await this.nodeContext.get('matterport', 5540)) ?? 5540;
|
|
386
|
-
this.
|
|
387
|
-
|
|
388
|
+
this.initialPort = this.port = getIntParameter('port') ?? (await this.nodeContext.get('matterport', 5540)) ?? 5540;
|
|
389
|
+
this.initialPasscode = this.passcode =
|
|
390
|
+
getIntParameter('passcode') ?? (await this.nodeContext.get('matterpasscode')) ?? PaseClient.generateRandomPasscode(this.environment.get(Crypto));
|
|
391
|
+
this.initialDiscriminator = this.discriminator =
|
|
388
392
|
getIntParameter('discriminator') ?? (await this.nodeContext.get('matterdiscriminator')) ?? PaseClient.generateRandomDiscriminator(this.environment.get(Crypto));
|
|
389
393
|
const pairingFilePath = path.join(this.matterbridgeCertDirectory, 'pairing.json');
|
|
390
394
|
try {
|
|
@@ -652,7 +656,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
652
656
|
execSync(`${sudo ? 'sudo ' : ''}npm install -g ${path.join(this.matterbridgeDirectory, 'uploads', plugin.tarballPath)} --no-fund --no-audit --silent --omit=dev`);
|
|
653
657
|
}
|
|
654
658
|
else {
|
|
655
|
-
this.log.info(`Plugin ${plg}${plugin.name}${nf} not found. Trying to reinstall it from npm...`);
|
|
659
|
+
this.log.info(`Plugin ${plg}${plugin.name}${nf} not found. Trying to reinstall it from npm${plugin.version.includes('-dev-') ? ' with tag @dev' : ''}...`);
|
|
656
660
|
execSync(`${sudo ? 'sudo ' : ''}npm install -g ${plugin.name}${plugin.version.includes('-dev-') ? '@dev' : ''} --no-fund --no-audit --silent --omit=dev`);
|
|
657
661
|
}
|
|
658
662
|
this.log.info(`Plugin ${plg}${plugin.name}${nf} reinstalled.`);
|
|
@@ -1945,6 +1949,8 @@ export class Matterbridge extends EventEmitter {
|
|
|
1945
1949
|
listeningAddressIpv4: this.ipv4Address,
|
|
1946
1950
|
listeningAddressIpv6: this.ipv6Address,
|
|
1947
1951
|
port,
|
|
1952
|
+
tcp: true,
|
|
1953
|
+
transportPreference: 'udp',
|
|
1948
1954
|
},
|
|
1949
1955
|
operationalCredentials: {
|
|
1950
1956
|
certification: this.certification,
|
|
@@ -31,6 +31,7 @@ export declare const DeviceTypeDefinition: ({ name, code, deviceClass, revision,
|
|
|
31
31
|
requiredClientClusters?: ClusterId[];
|
|
32
32
|
optionalClientClusters?: ClusterId[];
|
|
33
33
|
}) => DeviceTypeDefinition;
|
|
34
|
+
export declare const baseDevice: DeviceTypeDefinition;
|
|
34
35
|
export declare const rootNode: DeviceTypeDefinition;
|
|
35
36
|
export declare const powerSource: DeviceTypeDefinition;
|
|
36
37
|
export declare const OTARequestor: DeviceTypeDefinition;
|
|
@@ -97,3 +98,17 @@ export declare const soilSensor: DeviceTypeDefinition;
|
|
|
97
98
|
export declare const irrigationSystem: DeviceTypeDefinition;
|
|
98
99
|
export declare const closure: DeviceTypeDefinition;
|
|
99
100
|
export declare const closurePanel: DeviceTypeDefinition;
|
|
101
|
+
export declare const closureController: DeviceTypeDefinition;
|
|
102
|
+
export declare const meterReferencePoint: DeviceTypeDefinition;
|
|
103
|
+
export declare const electricalEnergyTariff: DeviceTypeDefinition;
|
|
104
|
+
export declare const electricalMeter: DeviceTypeDefinition;
|
|
105
|
+
export declare const electricalUtilityMeter: DeviceTypeDefinition;
|
|
106
|
+
export declare const camera: DeviceTypeDefinition;
|
|
107
|
+
export declare const floodlightCamera: DeviceTypeDefinition;
|
|
108
|
+
export declare const videoDoorbell: DeviceTypeDefinition;
|
|
109
|
+
export declare const intercom: DeviceTypeDefinition;
|
|
110
|
+
export declare const audioDoorbell: DeviceTypeDefinition;
|
|
111
|
+
export declare const snapshotCamera: DeviceTypeDefinition;
|
|
112
|
+
export declare const chime: DeviceTypeDefinition;
|
|
113
|
+
export declare const cameraController: DeviceTypeDefinition;
|
|
114
|
+
export declare const doorbell: DeviceTypeDefinition;
|