@matterbridge/core 3.6.2-dev-20260317-e291a17 → 3.7.0-dev-20260318-5bb831c
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/devices/basicVideoPlayer.d.ts +8 -9
- package/dist/devices/basicVideoPlayer.js +64 -16
- package/dist/devices/closure.d.ts +2 -3
- package/dist/devices/closure.js +16 -4
- package/dist/devices/closurePanel.d.ts +2 -3
- package/dist/devices/closurePanel.js +16 -4
- package/dist/devices/dishwasher.d.ts +1 -2
- package/dist/devices/dishwasher.js +8 -2
- package/dist/devices/evse.d.ts +3 -3
- package/dist/devices/evse.js +24 -6
- package/dist/devices/laundryWasher.d.ts +1 -2
- package/dist/devices/laundryWasher.js +8 -2
- package/dist/devices/microwaveOven.d.ts +1 -2
- package/dist/devices/microwaveOven.js +15 -3
- package/dist/devices/roboticVacuumCleaner.d.ts +5 -6
- package/dist/devices/roboticVacuumCleaner.js +40 -10
- package/dist/devices/temperatureControl.d.ts +2 -3
- package/dist/devices/temperatureControl.js +16 -4
- package/dist/devices/waterHeater.d.ts +3 -4
- package/dist/devices/waterHeater.js +24 -6
- package/dist/export.d.ts +1 -0
- package/dist/export.js +1 -0
- package/dist/jestutils/jestHelpers.js +1 -1
- package/dist/matterbridgeBehaviorsServer.d.ts +55 -53
- package/dist/matterbridgeBehaviorsServer.js +403 -139
- package/dist/matterbridgeEndpoint.d.ts +9 -7
- package/dist/matterbridgeEndpoint.js +11 -6
- package/dist/matterbridgeEndpointCommandHandler.d.ts +806 -0
- package/dist/matterbridgeEndpointCommandHandler.js +31 -0
- package/dist/matterbridgeEndpointHelpers.d.ts +2 -2
- package/dist/matterbridgeEndpointHelpers.js +1 -0
- package/dist/matterbridgeEndpointTypes.d.ts +0 -83
- package/package.json +5 -5
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { MaybePromise } from '@matter/general';
|
|
2
1
|
import { KeypadInputServer } from '@matter/node/behaviors/keypad-input';
|
|
3
2
|
import { MediaPlaybackServer } from '@matter/node/behaviors/media-playback';
|
|
4
3
|
import { KeypadInput } from '@matter/types/clusters/keypad-input';
|
|
@@ -16,15 +15,15 @@ export declare class BasicVideoPlayer extends MatterbridgeEndpoint {
|
|
|
16
15
|
export declare class MatterbridgeMediaPlaybackServer extends MediaPlaybackServer {
|
|
17
16
|
initialize(): void;
|
|
18
17
|
protected handleOnOffChange(_onOff: boolean): void;
|
|
19
|
-
play():
|
|
20
|
-
pause():
|
|
21
|
-
stop():
|
|
22
|
-
previous():
|
|
23
|
-
next():
|
|
24
|
-
skipForward():
|
|
25
|
-
skipBackward():
|
|
18
|
+
play(): Promise<MediaPlayback.PlaybackResponse>;
|
|
19
|
+
pause(): Promise<MediaPlayback.PlaybackResponse>;
|
|
20
|
+
stop(): Promise<MediaPlayback.PlaybackResponse>;
|
|
21
|
+
previous(): Promise<MediaPlayback.PlaybackResponse>;
|
|
22
|
+
next(): Promise<MediaPlayback.PlaybackResponse>;
|
|
23
|
+
skipForward(request: MediaPlayback.SkipForwardRequest): Promise<MediaPlayback.PlaybackResponse>;
|
|
24
|
+
skipBackward(request: MediaPlayback.SkipBackwardRequest): Promise<MediaPlayback.PlaybackResponse>;
|
|
26
25
|
}
|
|
27
26
|
export declare class MatterbridgeKeypadInputServer extends KeypadInputServer {
|
|
28
27
|
initialize(): void;
|
|
29
|
-
sendKey(request: KeypadInput.SendKeyRequest):
|
|
28
|
+
sendKey(request: KeypadInput.SendKeyRequest): Promise<KeypadInput.SendKeyResponse>;
|
|
30
29
|
}
|
|
@@ -37,52 +37,94 @@ export class MatterbridgeMediaPlaybackServer extends MediaPlaybackServer {
|
|
|
37
37
|
handleOnOffChange(_onOff) {
|
|
38
38
|
this.state.currentState = MediaPlayback.PlaybackState.NotPlaying;
|
|
39
39
|
}
|
|
40
|
-
play() {
|
|
40
|
+
async play() {
|
|
41
41
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
42
42
|
device.log.info(`Play (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
43
|
-
device.commandHandler.executeHandler('play', {
|
|
43
|
+
await device.commandHandler.executeHandler('MediaPlayback.play', {
|
|
44
|
+
command: 'play',
|
|
45
|
+
request: {},
|
|
46
|
+
cluster: MediaPlaybackServer.id,
|
|
47
|
+
attributes: this.state,
|
|
48
|
+
endpoint: this.endpoint,
|
|
49
|
+
});
|
|
44
50
|
if (this.endpoint.stateOf(MatterbridgeOnOffServer).onOff === true)
|
|
45
51
|
this.state.currentState = MediaPlayback.PlaybackState.Playing;
|
|
46
52
|
return { status: MediaPlayback.Status.Success };
|
|
47
53
|
}
|
|
48
|
-
pause() {
|
|
54
|
+
async pause() {
|
|
49
55
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
50
56
|
device.log.info(`Pause (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
51
|
-
device.commandHandler.executeHandler('pause', {
|
|
57
|
+
await device.commandHandler.executeHandler('MediaPlayback.pause', {
|
|
58
|
+
command: 'pause',
|
|
59
|
+
request: {},
|
|
60
|
+
cluster: MediaPlaybackServer.id,
|
|
61
|
+
attributes: this.state,
|
|
62
|
+
endpoint: this.endpoint,
|
|
63
|
+
});
|
|
52
64
|
if (this.endpoint.stateOf(MatterbridgeOnOffServer).onOff === true)
|
|
53
65
|
this.state.currentState = MediaPlayback.PlaybackState.Paused;
|
|
54
66
|
return { status: MediaPlayback.Status.Success };
|
|
55
67
|
}
|
|
56
|
-
stop() {
|
|
68
|
+
async stop() {
|
|
57
69
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
58
70
|
device.log.info(`Stop (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
59
|
-
device.commandHandler.executeHandler('stop', {
|
|
71
|
+
await device.commandHandler.executeHandler('MediaPlayback.stop', {
|
|
72
|
+
command: 'stop',
|
|
73
|
+
request: {},
|
|
74
|
+
cluster: MediaPlaybackServer.id,
|
|
75
|
+
attributes: this.state,
|
|
76
|
+
endpoint: this.endpoint,
|
|
77
|
+
});
|
|
60
78
|
if (this.endpoint.stateOf(MatterbridgeOnOffServer).onOff === true)
|
|
61
79
|
this.state.currentState = MediaPlayback.PlaybackState.NotPlaying;
|
|
62
80
|
return { status: MediaPlayback.Status.Success };
|
|
63
81
|
}
|
|
64
|
-
previous() {
|
|
82
|
+
async previous() {
|
|
65
83
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
66
84
|
device.log.info(`Previous (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
67
|
-
device.commandHandler.executeHandler('previous', {
|
|
85
|
+
await device.commandHandler.executeHandler('MediaPlayback.previous', {
|
|
86
|
+
command: 'previous',
|
|
87
|
+
request: {},
|
|
88
|
+
cluster: MediaPlaybackServer.id,
|
|
89
|
+
attributes: this.state,
|
|
90
|
+
endpoint: this.endpoint,
|
|
91
|
+
});
|
|
68
92
|
return { status: MediaPlayback.Status.Success };
|
|
69
93
|
}
|
|
70
|
-
next() {
|
|
94
|
+
async next() {
|
|
71
95
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
72
96
|
device.log.info(`Next (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
73
|
-
device.commandHandler.executeHandler('next', {
|
|
97
|
+
await device.commandHandler.executeHandler('MediaPlayback.next', {
|
|
98
|
+
command: 'next',
|
|
99
|
+
request: {},
|
|
100
|
+
cluster: MediaPlaybackServer.id,
|
|
101
|
+
attributes: this.state,
|
|
102
|
+
endpoint: this.endpoint,
|
|
103
|
+
});
|
|
74
104
|
return { status: MediaPlayback.Status.Success };
|
|
75
105
|
}
|
|
76
|
-
skipForward() {
|
|
106
|
+
async skipForward(request) {
|
|
77
107
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
78
108
|
device.log.info(`SkipForward (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
79
|
-
device.commandHandler.executeHandler('skipForward', {
|
|
109
|
+
await device.commandHandler.executeHandler('MediaPlayback.skipForward', {
|
|
110
|
+
command: 'skipForward',
|
|
111
|
+
request,
|
|
112
|
+
cluster: MediaPlaybackServer.id,
|
|
113
|
+
attributes: this.state,
|
|
114
|
+
endpoint: this.endpoint,
|
|
115
|
+
});
|
|
80
116
|
return { status: MediaPlayback.Status.Success };
|
|
81
117
|
}
|
|
82
|
-
skipBackward() {
|
|
118
|
+
async skipBackward(request) {
|
|
83
119
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
84
120
|
device.log.info(`SkipBackward (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
85
|
-
device.commandHandler.executeHandler('skipBackward', {
|
|
121
|
+
await device.commandHandler.executeHandler('MediaPlayback.skipBackward', {
|
|
122
|
+
command: 'skipBackward',
|
|
123
|
+
request,
|
|
124
|
+
cluster: MediaPlaybackServer.id,
|
|
125
|
+
attributes: this.state,
|
|
126
|
+
endpoint: this.endpoint,
|
|
127
|
+
});
|
|
86
128
|
return { status: MediaPlayback.Status.Success };
|
|
87
129
|
}
|
|
88
130
|
}
|
|
@@ -91,10 +133,16 @@ export class MatterbridgeKeypadInputServer extends KeypadInputServer {
|
|
|
91
133
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
92
134
|
device.log.info(`MatterbridgeKeypadInputServer initialized`);
|
|
93
135
|
}
|
|
94
|
-
sendKey(request) {
|
|
136
|
+
async sendKey(request) {
|
|
95
137
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
96
138
|
device.log.info(`SendKey keyCode ${request.keyCode} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
97
|
-
device.commandHandler.executeHandler('sendKey', {
|
|
139
|
+
await device.commandHandler.executeHandler('KeypadInput.sendKey', {
|
|
140
|
+
command: 'sendKey',
|
|
141
|
+
request,
|
|
142
|
+
cluster: KeypadInputServer.id,
|
|
143
|
+
attributes: this.state,
|
|
144
|
+
endpoint: this.endpoint,
|
|
145
|
+
});
|
|
98
146
|
return { status: KeypadInput.Status.Success };
|
|
99
147
|
}
|
|
100
148
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { MaybePromise } from '@matter/general';
|
|
2
1
|
import { ClusterBehavior } from '@matter/node';
|
|
3
2
|
import { ClusterType } from '@matter/types';
|
|
4
3
|
import { ClosureControl } from '../clusters/closure-control.js';
|
|
@@ -291,8 +290,8 @@ declare const ClosureControlServer_base: ClusterBehavior.Type<import("@matter/ty
|
|
|
291
290
|
}>;
|
|
292
291
|
export declare class ClosureControlServer extends ClosureControlServer_base {
|
|
293
292
|
state: ClosureControlServer.State;
|
|
294
|
-
moveTo: (request: ClosureControl.MoveToRequest) =>
|
|
295
|
-
stop: () =>
|
|
293
|
+
moveTo: (request: ClosureControl.MoveToRequest) => Promise<void>;
|
|
294
|
+
stop: () => Promise<void>;
|
|
296
295
|
}
|
|
297
296
|
export interface ClosureOptions {
|
|
298
297
|
mainState?: ClosureControl.MainState;
|
package/dist/devices/closure.js
CHANGED
|
@@ -12,10 +12,16 @@ const ClosureControlSchema = ClusterElement({
|
|
|
12
12
|
}, AttributeElement({ id: 0xfffd, name: 'ClusterRevision', type: 'ClusterRevision', conformance: 'M', default: ClosureControl.Base.revision }), AttributeElement({ id: 0xfffc, name: 'FeatureMap', type: 'FeatureMap', conformance: 'M' }, FieldElement({ name: 'POS', constraint: '0', title: 'Positioning' }), FieldElement({ name: 'ML', constraint: '1', title: 'MotionLatching' }), FieldElement({ name: 'INS', constraint: '2', title: 'Instantaneous' }), FieldElement({ name: 'SPD', constraint: '3', title: 'Speed' }), FieldElement({ name: 'VNT', constraint: '4', title: 'Ventilation' }), FieldElement({ name: 'PED', constraint: '5', title: 'Pedestrian' }), FieldElement({ name: 'CAL', constraint: '6', title: 'Calibration' }), FieldElement({ name: 'PRT', constraint: '7', title: 'Protection' }), FieldElement({ name: 'MAN', constraint: '8', title: 'ManuallyOperable' })), AttributeElement({ name: 'CountdownTime', id: 0x0000, type: 'uint32', conformance: 'POS', default: null, quality: 'X' }), AttributeElement({ name: 'MainState', id: 0x0001, type: 'MainStateEnum', conformance: 'M', constraint: 'desc' }), AttributeElement({ name: 'CurrentErrorList', id: 0x0002, type: 'list', conformance: 'M', default: [] }, FieldElement({ name: 'entry', type: 'ClosureErrorEnum' })), AttributeElement({ name: 'OverallCurrentState', id: 0x0003, type: 'OverallCurrentStateStruct', conformance: 'M', default: null, quality: 'X' }), AttributeElement({ name: 'OverallTargetState', id: 0x0004, type: 'OverallTargetStateStruct', conformance: 'M', default: null, quality: 'X' }), CommandElement({ name: 'Stop', id: 0x0000, conformance: 'M', direction: 'request', response: 'status' }), CommandElement({ name: 'MoveTo', id: 0x0001, conformance: 'M', direction: 'request', response: 'status' }, FieldElement({ name: 'Position', id: 0, type: 'TargetPositionEnum', conformance: 'O' }), FieldElement({ name: 'Latch', id: 1, type: 'bool', conformance: 'O' }), FieldElement({ name: 'Speed', id: 2, type: 'ThreeLevelAutoEnum', conformance: 'O' })), EventElement({ name: 'OperationalError', id: 0x0000, conformance: 'M', priority: 'critical' }, FieldElement({ name: 'ErrorState', id: 0, type: 'list', conformance: 'M', constraint: 'max 10' }, FieldElement({ name: 'entry', type: 'ClosureErrorEnum' }))), EventElement({ name: 'MovementCompleted', id: 0x0001, conformance: 'M', priority: 'info' }), EventElement({ name: 'SecureStateChanged', id: 0x0003, conformance: 'M', priority: 'info' }, FieldElement({ name: 'SecureValue', id: 0, type: 'bool', conformance: 'M' })), DatatypeElement({ name: 'ClosureErrorEnum', type: 'enum8' }, FieldElement({ name: 'PhysicallyBlocked', id: 0, conformance: 'M' }), FieldElement({ name: 'BlockedBySensor', id: 1, conformance: 'M' }), FieldElement({ name: 'TemperatureLimited', id: 2, conformance: 'M' }), FieldElement({ name: 'MaintenanceRequired', id: 3, conformance: 'M' }), FieldElement({ name: 'InternalInterference', id: 4, conformance: 'M' })), DatatypeElement({ name: 'CurrentPositionEnum', type: 'enum8' }, FieldElement({ name: 'FullyClosed', id: 0, conformance: 'M' }), FieldElement({ name: 'FullyOpened', id: 1, conformance: 'M' }), FieldElement({ name: 'PartiallyOpened', id: 2, conformance: 'M' }), FieldElement({ name: 'OpenedForPedestrian', id: 3, conformance: 'M' }), FieldElement({ name: 'OpenedForVentilation', id: 4, conformance: 'M' }), FieldElement({ name: 'OpenedAtSignature', id: 5, conformance: 'M' })), DatatypeElement({ name: 'MainStateEnum', type: 'enum8' }, FieldElement({ name: 'Stopped', id: 0, conformance: 'M' }), FieldElement({ name: 'Moving', id: 1, conformance: 'M' }), FieldElement({ name: 'WaitingForMotion', id: 2, conformance: 'M' }), FieldElement({ name: 'Error', id: 3, conformance: 'M' }), FieldElement({ name: 'Calibrating', id: 4, conformance: 'M' }), FieldElement({ name: 'Protected', id: 5, conformance: 'M' }), FieldElement({ name: 'Disengaged', id: 6, conformance: 'M' }), FieldElement({ name: 'SetupRequired', id: 7, conformance: 'M' })), DatatypeElement({ name: 'TargetPositionEnum', type: 'enum8' }, FieldElement({ name: 'MoveToFullyClosed', id: 0, conformance: 'M' }), FieldElement({ name: 'MoveToFullyOpen', id: 1, conformance: 'M' }), FieldElement({ name: 'MoveToPedestrianPosition', id: 2, conformance: 'M' }), FieldElement({ name: 'MoveToVentilationPosition', id: 3, conformance: 'M' }), FieldElement({ name: 'MoveToSignaturePosition', id: 4, conformance: 'M' })), DatatypeElement({ name: 'OverallCurrentStateStruct', type: 'struct' }, FieldElement({ name: 'Position', id: 0, type: 'CurrentPositionEnum', conformance: 'O', default: null, quality: 'X' }), FieldElement({ name: 'Latch', id: 1, type: 'bool', conformance: 'O', default: null, quality: 'X' }), FieldElement({ name: 'Speed', id: 2, type: 'ThreeLevelAutoEnum', conformance: 'O' }), FieldElement({ name: 'SecureState', id: 3, type: 'bool', conformance: 'O', default: null, quality: 'X' })), DatatypeElement({ name: 'OverallTargetStateStruct', type: 'struct' }, FieldElement({ name: 'Position', id: 0, type: 'TargetPositionEnum', conformance: 'O', default: null, quality: 'X' }), FieldElement({ name: 'Latch', id: 1, type: 'bool', conformance: 'O', default: null, quality: 'X' }), FieldElement({ name: 'Speed', id: 2, type: 'ThreeLevelAutoEnum', conformance: 'O' })));
|
|
13
13
|
const ClosureControlBehavior = ClusterBehavior.for(ClusterType(ClosureControl.Base), new ClusterModel(ClosureControlSchema));
|
|
14
14
|
export class ClosureControlServer extends ClosureControlBehavior.with(ClosureControl.Feature.Positioning) {
|
|
15
|
-
moveTo = (request) => {
|
|
15
|
+
moveTo = async (request) => {
|
|
16
16
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
17
17
|
device.log.info(`MoveTo (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
18
|
-
device.commandHandler.executeHandler('moveTo', {
|
|
18
|
+
await device.commandHandler.executeHandler('ClosureControl.moveTo', {
|
|
19
|
+
command: 'moveTo',
|
|
20
|
+
request,
|
|
21
|
+
cluster: ClosureControlServer.id,
|
|
22
|
+
attributes: this.state,
|
|
23
|
+
endpoint: this.endpoint,
|
|
24
|
+
});
|
|
19
25
|
const previousTarget = this.state.overallTargetState ?? {};
|
|
20
26
|
const nextTarget = {
|
|
21
27
|
...previousTarget,
|
|
@@ -26,10 +32,16 @@ export class ClosureControlServer extends ClosureControlBehavior.with(ClosureCon
|
|
|
26
32
|
this.state.overallTargetState = nextTarget;
|
|
27
33
|
this.state.mainState = ClosureControl.MainState.Moving;
|
|
28
34
|
};
|
|
29
|
-
stop = () => {
|
|
35
|
+
stop = async () => {
|
|
30
36
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
31
37
|
device.log.info(`Stop (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
32
|
-
device.commandHandler.executeHandler('stop', {
|
|
38
|
+
await device.commandHandler.executeHandler('ClosureControl.stop', {
|
|
39
|
+
command: 'stop',
|
|
40
|
+
request: {},
|
|
41
|
+
cluster: ClosureControlServer.id,
|
|
42
|
+
attributes: this.state,
|
|
43
|
+
endpoint: this.endpoint,
|
|
44
|
+
});
|
|
33
45
|
this.state.mainState = ClosureControl.MainState.Stopped;
|
|
34
46
|
};
|
|
35
47
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { MaybePromise } from '@matter/general';
|
|
2
1
|
import { ClusterBehavior } from '@matter/node';
|
|
3
2
|
import { ClusterType } from '@matter/types';
|
|
4
3
|
import { ClosureDimension } from '../clusters/closure-dimension.js';
|
|
@@ -370,8 +369,8 @@ declare const ClosureDimensionServer_base: ClusterBehavior.Type<import("@matter/
|
|
|
370
369
|
}>;
|
|
371
370
|
export declare class ClosureDimensionServer extends ClosureDimensionServer_base {
|
|
372
371
|
state: ClosureDimensionServer.State;
|
|
373
|
-
setTarget: (request: ClosureDimension.SetTargetRequest) =>
|
|
374
|
-
step: (request: ClosureDimension.StepRequest) =>
|
|
372
|
+
setTarget: (request: ClosureDimension.SetTargetRequest) => Promise<void>;
|
|
373
|
+
step: (request: ClosureDimension.StepRequest) => Promise<void>;
|
|
375
374
|
}
|
|
376
375
|
export interface ClosurePanelOptions {
|
|
377
376
|
resolution?: number;
|
|
@@ -12,10 +12,16 @@ const ClosureDimensionSchema = ClusterElement({
|
|
|
12
12
|
}, AttributeElement({ id: 0xfffd, name: 'ClusterRevision', type: 'ClusterRevision', conformance: 'M', default: ClosureDimension.Base.revision }), AttributeElement({ id: 0xfffc, name: 'FeatureMap', type: 'FeatureMap', conformance: 'M' }, FieldElement({ name: 'POS', constraint: '0', title: 'Positioning' }), FieldElement({ name: 'ML', constraint: '1', title: 'MotionLatching' }), FieldElement({ name: 'UNI', constraint: '2', title: 'Unit' }), FieldElement({ name: 'LIM', constraint: '3', title: 'Limitation' }), FieldElement({ name: 'SPD', constraint: '4', title: 'Speed' }), FieldElement({ name: 'TRN', constraint: '5', title: 'Translation' }), FieldElement({ name: 'ROT', constraint: '6', title: 'Rotation' }), FieldElement({ name: 'MOD', constraint: '7', title: 'Modulation' })), AttributeElement({ name: 'CurrentState', id: 0x0000, type: 'DimensionStateStruct', conformance: 'M', default: null, quality: 'X' }), AttributeElement({ name: 'TargetState', id: 0x0001, type: 'DimensionStateStruct', conformance: 'M', default: null, quality: 'X' }), AttributeElement({ name: 'Resolution', id: 0x0002, type: 'percent100ths', conformance: 'POS', default: 1 }), AttributeElement({ name: 'StepValue', id: 0x0003, type: 'percent100ths', conformance: 'POS', default: 1 }), CommandElement({ name: 'SetTarget', id: 0x0000, conformance: 'M', direction: 'request', response: 'status' }, FieldElement({ name: 'Position', id: 0, type: 'percent100ths', conformance: 'O' }), FieldElement({ name: 'Latch', id: 1, type: 'bool', conformance: 'O' }), FieldElement({ name: 'Speed', id: 2, type: 'ThreeLevelAutoEnum', conformance: 'O' })), CommandElement({ name: 'Step', id: 0x0001, conformance: 'POS', direction: 'request', response: 'status' }, FieldElement({ name: 'Direction', id: 0, type: 'StepDirectionEnum', conformance: 'M' }), FieldElement({ name: 'NumberOfSteps', id: 1, type: 'uint16', conformance: 'M', constraint: { min: 1 } }), FieldElement({ name: 'Speed', id: 2, type: 'ThreeLevelAutoEnum', conformance: 'O' })), DatatypeElement({ name: 'StepDirectionEnum', type: 'enum8' }, FieldElement({ name: 'Decrease', id: 0, conformance: 'M' }), FieldElement({ name: 'Increase', id: 1, conformance: 'M' })), DatatypeElement({ name: 'DimensionStateStruct', type: 'struct' }, FieldElement({ name: 'Position', id: 0, type: 'percent100ths', conformance: 'O', default: null, quality: 'X' }), FieldElement({ name: 'Latch', id: 1, type: 'bool', conformance: 'O', default: null, quality: 'X' }), FieldElement({ name: 'Speed', id: 2, type: 'ThreeLevelAutoEnum', conformance: 'O' })));
|
|
13
13
|
const ClosureDimensionBehavior = ClusterBehavior.for(ClusterType(ClosureDimension.Base), new ClusterModel(ClosureDimensionSchema));
|
|
14
14
|
export class ClosureDimensionServer extends ClosureDimensionBehavior.with(ClosureDimension.Feature.Positioning) {
|
|
15
|
-
setTarget = (request) => {
|
|
15
|
+
setTarget = async (request) => {
|
|
16
16
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
17
17
|
device.log.info(`SetTarget (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
18
|
-
device.commandHandler.executeHandler('setTarget', {
|
|
18
|
+
await device.commandHandler.executeHandler('ClosureDimension.setTarget', {
|
|
19
|
+
command: 'setTarget',
|
|
20
|
+
request,
|
|
21
|
+
cluster: ClosureDimensionServer.id,
|
|
22
|
+
attributes: this.state,
|
|
23
|
+
endpoint: this.endpoint,
|
|
24
|
+
});
|
|
19
25
|
const previousTarget = this.state.targetState ?? {};
|
|
20
26
|
const nextTarget = {
|
|
21
27
|
...previousTarget,
|
|
@@ -25,10 +31,16 @@ export class ClosureDimensionServer extends ClosureDimensionBehavior.with(Closur
|
|
|
25
31
|
};
|
|
26
32
|
this.state.targetState = nextTarget;
|
|
27
33
|
};
|
|
28
|
-
step = (request) => {
|
|
34
|
+
step = async (request) => {
|
|
29
35
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
30
36
|
device.log.info(`Step (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
31
|
-
device.commandHandler.executeHandler('step', {
|
|
37
|
+
await device.commandHandler.executeHandler('ClosureDimension.step', {
|
|
38
|
+
command: 'step',
|
|
39
|
+
request,
|
|
40
|
+
cluster: ClosureDimensionServer.id,
|
|
41
|
+
attributes: this.state,
|
|
42
|
+
endpoint: this.endpoint,
|
|
43
|
+
});
|
|
32
44
|
const stepValue = this.state.stepValue;
|
|
33
45
|
const numberOfSteps = request.numberOfSteps;
|
|
34
46
|
const delta = stepValue * numberOfSteps;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { MaybePromise } from '@matter/general';
|
|
2
1
|
import { DishwasherModeServer } from '@matter/node/behaviors/dishwasher-mode';
|
|
3
2
|
import { DishwasherMode } from '@matter/types/clusters/dishwasher-mode';
|
|
4
3
|
import { ModeBase } from '@matter/types/clusters/mode-base';
|
|
@@ -12,5 +11,5 @@ export declare class Dishwasher extends MatterbridgeEndpoint {
|
|
|
12
11
|
export declare class MatterbridgeDishwasherModeServer extends DishwasherModeServer {
|
|
13
12
|
initialize(): void;
|
|
14
13
|
protected handleOnOffChange(onOff: boolean): void;
|
|
15
|
-
changeToMode(request: ModeBase.ChangeToModeRequest):
|
|
14
|
+
changeToMode(request: ModeBase.ChangeToModeRequest): Promise<ModeBase.ChangeToModeResponse>;
|
|
16
15
|
}
|
|
@@ -55,10 +55,16 @@ export class MatterbridgeDishwasherModeServer extends DishwasherModeServer {
|
|
|
55
55
|
this.state.currentMode = 2;
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
-
changeToMode(request) {
|
|
58
|
+
async changeToMode(request) {
|
|
59
59
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
60
60
|
device.log.info(`ChangeToMode (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
61
|
-
device.commandHandler.executeHandler('changeToMode', {
|
|
61
|
+
await device.commandHandler.executeHandler('DishwasherMode.changeToMode', {
|
|
62
|
+
command: 'changeToMode',
|
|
63
|
+
request,
|
|
64
|
+
cluster: DishwasherModeServer.id,
|
|
65
|
+
attributes: this.state,
|
|
66
|
+
endpoint: this.endpoint,
|
|
67
|
+
});
|
|
62
68
|
const supportedMode = this.state.supportedModes.find((supportedMode) => supportedMode.mode === request.newMode);
|
|
63
69
|
if (supportedMode) {
|
|
64
70
|
device.log.info(`DishwasherModeServer: changeToMode called with mode ${supportedMode.mode} => ${supportedMode.label}`);
|
package/dist/devices/evse.d.ts
CHANGED
|
@@ -12,13 +12,13 @@ export declare class Evse extends MatterbridgeEndpoint {
|
|
|
12
12
|
}
|
|
13
13
|
declare const MatterbridgeEnergyEvseServer_base: import("@matter/node").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<EnergyEvse.Cluster, readonly [EnergyEvse.Feature.ChargingPreferences]>, typeof EnergyEvseServer, import("@matter/node/behaviors/energy-evse").EnergyEvseInterface>;
|
|
14
14
|
export declare class MatterbridgeEnergyEvseServer extends MatterbridgeEnergyEvseServer_base {
|
|
15
|
-
disable():
|
|
16
|
-
enableCharging(request: EnergyEvse.EnableChargingRequest):
|
|
15
|
+
disable(): Promise<void>;
|
|
16
|
+
enableCharging(request: EnergyEvse.EnableChargingRequest): Promise<void>;
|
|
17
17
|
setTargets(request: EnergyEvse.SetTargetsRequest): MaybePromise;
|
|
18
18
|
getTargets(): MaybePromise<EnergyEvse.GetTargetsResponse>;
|
|
19
19
|
clearTargets(): MaybePromise;
|
|
20
20
|
}
|
|
21
21
|
export declare class MatterbridgeEnergyEvseModeServer extends EnergyEvseModeServer {
|
|
22
|
-
changeToMode(request: ModeBase.ChangeToModeRequest):
|
|
22
|
+
changeToMode(request: ModeBase.ChangeToModeRequest): Promise<ModeBase.ChangeToModeResponse>;
|
|
23
23
|
}
|
|
24
24
|
export {};
|
package/dist/devices/evse.js
CHANGED
|
@@ -57,20 +57,32 @@ export class Evse extends MatterbridgeEndpoint {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
export class MatterbridgeEnergyEvseServer extends EnergyEvseServer.with(EnergyEvse.Feature.ChargingPreferences) {
|
|
60
|
-
disable() {
|
|
60
|
+
async disable() {
|
|
61
61
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
62
62
|
device.log.info(`Disable charging (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
63
|
-
device.commandHandler.executeHandler('disable', {
|
|
63
|
+
await device.commandHandler.executeHandler('EnergyEvse.disable', {
|
|
64
|
+
command: 'disable',
|
|
65
|
+
request: {},
|
|
66
|
+
cluster: EnergyEvseServer.id,
|
|
67
|
+
attributes: this.state,
|
|
68
|
+
endpoint: this.endpoint,
|
|
69
|
+
});
|
|
64
70
|
device.log.debug(`MatterbridgeEnergyEvseServer disable called`);
|
|
65
71
|
this.state.supplyState = EnergyEvse.SupplyState.Disabled;
|
|
66
72
|
if (this.state.state === EnergyEvse.State.PluggedInCharging) {
|
|
67
73
|
this.state.state = EnergyEvse.State.PluggedInDemand;
|
|
68
74
|
}
|
|
69
75
|
}
|
|
70
|
-
enableCharging(request) {
|
|
76
|
+
async enableCharging(request) {
|
|
71
77
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
72
78
|
device.log.info(`EnableCharging (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
73
|
-
device.commandHandler.executeHandler('enableCharging', {
|
|
79
|
+
await device.commandHandler.executeHandler('EnergyEvse.enableCharging', {
|
|
80
|
+
command: 'enableCharging',
|
|
81
|
+
request,
|
|
82
|
+
cluster: EnergyEvseServer.id,
|
|
83
|
+
attributes: this.state,
|
|
84
|
+
endpoint: this.endpoint,
|
|
85
|
+
});
|
|
74
86
|
device.log.debug(`MatterbridgeEnergyEvseServer enableCharging called`);
|
|
75
87
|
this.state.supplyState = EnergyEvse.SupplyState.ChargingEnabled;
|
|
76
88
|
if (this.state.state === EnergyEvse.State.PluggedInDemand) {
|
|
@@ -97,10 +109,16 @@ export class MatterbridgeEnergyEvseServer extends EnergyEvseServer.with(EnergyEv
|
|
|
97
109
|
}
|
|
98
110
|
}
|
|
99
111
|
export class MatterbridgeEnergyEvseModeServer extends EnergyEvseModeServer {
|
|
100
|
-
changeToMode(request) {
|
|
112
|
+
async changeToMode(request) {
|
|
101
113
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
102
114
|
device.log.info(`Changing mode to ${request.newMode} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
103
|
-
device.commandHandler.executeHandler('changeToMode', {
|
|
115
|
+
await device.commandHandler.executeHandler('EnergyEvseMode.changeToMode', {
|
|
116
|
+
command: 'changeToMode',
|
|
117
|
+
request,
|
|
118
|
+
cluster: EnergyEvseModeServer.id,
|
|
119
|
+
attributes: this.state,
|
|
120
|
+
endpoint: this.endpoint,
|
|
121
|
+
});
|
|
104
122
|
const supported = this.state.supportedModes.find((mode) => mode.mode === request.newMode);
|
|
105
123
|
if (!supported) {
|
|
106
124
|
device.log.error(`MatterbridgeEnergyEvseModeServer changeToMode called with unsupported newMode: ${request.newMode}`);
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { MaybePromise } from '@matter/general';
|
|
2
1
|
import { LaundryWasherModeServer } from '@matter/node/behaviors/laundry-washer-mode';
|
|
3
2
|
import { LaundryWasherControls } from '@matter/types/clusters/laundry-washer-controls';
|
|
4
3
|
import { LaundryWasherMode } from '@matter/types/clusters/laundry-washer-mode';
|
|
@@ -13,5 +12,5 @@ export declare class LaundryWasher extends MatterbridgeEndpoint {
|
|
|
13
12
|
export declare class MatterbridgeLaundryWasherModeServer extends LaundryWasherModeServer {
|
|
14
13
|
initialize(): void;
|
|
15
14
|
protected handleOnOffChange(onOff: boolean): void;
|
|
16
|
-
changeToMode(request: ModeBase.ChangeToModeRequest):
|
|
15
|
+
changeToMode(request: ModeBase.ChangeToModeRequest): Promise<ModeBase.ChangeToModeResponse>;
|
|
17
16
|
}
|
|
@@ -63,10 +63,16 @@ export class MatterbridgeLaundryWasherModeServer extends LaundryWasherModeServer
|
|
|
63
63
|
this.state.currentMode = 2;
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
changeToMode(request) {
|
|
66
|
+
async changeToMode(request) {
|
|
67
67
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
68
68
|
device.log.info(`ChangeToMode (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
69
|
-
device.commandHandler.executeHandler('changeToMode', {
|
|
69
|
+
await device.commandHandler.executeHandler('LaundryWasherMode.changeToMode', {
|
|
70
|
+
command: 'changeToMode',
|
|
71
|
+
request,
|
|
72
|
+
cluster: LaundryWasherModeServer.id,
|
|
73
|
+
attributes: this.state,
|
|
74
|
+
endpoint: this.endpoint,
|
|
75
|
+
});
|
|
70
76
|
const supportedMode = this.state.supportedModes.find((supportedMode) => supportedMode.mode === request.newMode);
|
|
71
77
|
if (supportedMode) {
|
|
72
78
|
device.log.debug(`MatterbridgeLaundryWasherModeServer: changeToMode called with mode ${supportedMode.mode} => ${supportedMode.label}`);
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { MaybePromise } from '@matter/general';
|
|
2
1
|
import { MicrowaveOvenControlServer } from '@matter/node/behaviors/microwave-oven-control';
|
|
3
2
|
import { MicrowaveOvenControl } from '@matter/types/clusters/microwave-oven-control';
|
|
4
3
|
import { MicrowaveOvenMode } from '@matter/types/clusters/microwave-oven-mode';
|
|
@@ -87,6 +86,6 @@ declare const MatterbridgeMicrowaveOvenControlServer_base: import("@matter/node"
|
|
|
87
86
|
export declare class MatterbridgeMicrowaveOvenControlServer extends MatterbridgeMicrowaveOvenControlServer_base {
|
|
88
87
|
initialize(): Promise<void>;
|
|
89
88
|
setCookingParameters(request: MicrowaveOvenControl.SetCookingParametersRequest): Promise<void>;
|
|
90
|
-
addMoreTime(request: MicrowaveOvenControl.AddMoreTimeRequest):
|
|
89
|
+
addMoreTime(request: MicrowaveOvenControl.AddMoreTimeRequest): Promise<void>;
|
|
91
90
|
}
|
|
92
91
|
export {};
|
|
@@ -50,7 +50,13 @@ export class MatterbridgeMicrowaveOvenControlServer extends MicrowaveOvenControl
|
|
|
50
50
|
async setCookingParameters(request) {
|
|
51
51
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
52
52
|
device.log.info(`MatterbridgeMicrowaveOvenControlServer: setCookingParameters (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
53
|
-
device.commandHandler.executeHandler('setCookingParameters', {
|
|
53
|
+
await device.commandHandler.executeHandler('MicrowaveOvenControl.setCookingParameters', {
|
|
54
|
+
command: 'setCookingParameters',
|
|
55
|
+
request,
|
|
56
|
+
cluster: MicrowaveOvenControlServer.id,
|
|
57
|
+
attributes: this.state,
|
|
58
|
+
endpoint: this.endpoint,
|
|
59
|
+
});
|
|
54
60
|
if (request.cookMode !== undefined) {
|
|
55
61
|
device.log.info(`MatterbridgeMicrowaveOvenControlServer: setCookingParameters called setting cookMode to ${request.cookMode}`);
|
|
56
62
|
await this.endpoint.setStateOf(MicrowaveOvenModeServer, { currentMode: request.cookMode });
|
|
@@ -82,10 +88,16 @@ export class MatterbridgeMicrowaveOvenControlServer extends MicrowaveOvenControl
|
|
|
82
88
|
await this.endpoint.setStateOf(MatterbridgeOperationalStateServer, { operationalState: OperationalState.OperationalStateEnum.Running });
|
|
83
89
|
}
|
|
84
90
|
}
|
|
85
|
-
addMoreTime(request) {
|
|
91
|
+
async addMoreTime(request) {
|
|
86
92
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
87
93
|
device.log.info(`MatterbridgeMicrowaveOvenControlServer: addMoreTime (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
88
|
-
device.commandHandler.executeHandler('addMoreTime', {
|
|
94
|
+
await device.commandHandler.executeHandler('MicrowaveOvenControl.addMoreTime', {
|
|
95
|
+
command: 'addMoreTime',
|
|
96
|
+
request,
|
|
97
|
+
cluster: MicrowaveOvenControlServer.id,
|
|
98
|
+
attributes: this.state,
|
|
99
|
+
endpoint: this.endpoint,
|
|
100
|
+
});
|
|
89
101
|
if (request.timeToAdd !== undefined && request.timeToAdd > 0 && this.state.cookTime + request.timeToAdd <= this.state.maxCookTime) {
|
|
90
102
|
device.log.info(`MatterbridgeMicrowaveOvenControlServer: addMoreTime called setting cookTime to ${this.state.cookTime + request.timeToAdd}`);
|
|
91
103
|
this.state.cookTime += request.timeToAdd;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { MaybePromise } from '@matter/general';
|
|
2
1
|
import { RvcCleanModeServer } from '@matter/node/behaviors/rvc-clean-mode';
|
|
3
2
|
import { RvcOperationalStateServer } from '@matter/node/behaviors/rvc-operational-state';
|
|
4
3
|
import { RvcRunModeServer } from '@matter/node/behaviors/rvc-run-mode';
|
|
@@ -17,13 +16,13 @@ export declare class RoboticVacuumCleaner extends MatterbridgeEndpoint {
|
|
|
17
16
|
createDefaultRvcOperationalStateClusterServer(phaseList?: string[] | null, currentPhase?: number | null, operationalStateList?: RvcOperationalState.OperationalStateStruct[], operationalState?: RvcOperationalState.OperationalState, operationalError?: RvcOperationalState.ErrorStateStruct): this;
|
|
18
17
|
}
|
|
19
18
|
export declare class MatterbridgeRvcRunModeServer extends RvcRunModeServer {
|
|
20
|
-
changeToMode(request: ModeBase.ChangeToModeRequest):
|
|
19
|
+
changeToMode(request: ModeBase.ChangeToModeRequest): Promise<ModeBase.ChangeToModeResponse>;
|
|
21
20
|
}
|
|
22
21
|
export declare class MatterbridgeRvcCleanModeServer extends RvcCleanModeServer {
|
|
23
|
-
changeToMode(request: ModeBase.ChangeToModeRequest):
|
|
22
|
+
changeToMode(request: ModeBase.ChangeToModeRequest): Promise<ModeBase.ChangeToModeResponse>;
|
|
24
23
|
}
|
|
25
24
|
export declare class MatterbridgeRvcOperationalStateServer extends RvcOperationalStateServer {
|
|
26
|
-
pause():
|
|
27
|
-
resume():
|
|
28
|
-
goHome():
|
|
25
|
+
pause(): Promise<OperationalState.OperationalCommandResponse>;
|
|
26
|
+
resume(): Promise<OperationalState.OperationalCommandResponse>;
|
|
27
|
+
goHome(): Promise<OperationalState.OperationalCommandResponse>;
|
|
29
28
|
}
|
|
@@ -97,10 +97,16 @@ export class RoboticVacuumCleaner extends MatterbridgeEndpoint {
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
export class MatterbridgeRvcRunModeServer extends RvcRunModeServer {
|
|
100
|
-
changeToMode(request) {
|
|
100
|
+
async changeToMode(request) {
|
|
101
101
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
102
102
|
device.log.info(`Changing mode to ${request.newMode} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
103
|
-
device.commandHandler.executeHandler('changeToMode', {
|
|
103
|
+
await device.commandHandler.executeHandler('RvcRunMode.changeToMode', {
|
|
104
|
+
command: 'changeToMode',
|
|
105
|
+
request,
|
|
106
|
+
cluster: RvcRunModeServer.id,
|
|
107
|
+
attributes: this.state,
|
|
108
|
+
endpoint: this.endpoint,
|
|
109
|
+
});
|
|
104
110
|
const supported = this.state.supportedModes.find((mode) => mode.mode === request.newMode);
|
|
105
111
|
if (!supported) {
|
|
106
112
|
device.log.error(`MatterbridgeRvcRunModeServer changeToMode called with unsupported newMode: ${request.newMode}`);
|
|
@@ -123,10 +129,16 @@ export class MatterbridgeRvcRunModeServer extends RvcRunModeServer {
|
|
|
123
129
|
}
|
|
124
130
|
}
|
|
125
131
|
export class MatterbridgeRvcCleanModeServer extends RvcCleanModeServer {
|
|
126
|
-
changeToMode(request) {
|
|
132
|
+
async changeToMode(request) {
|
|
127
133
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
128
134
|
device.log.info(`Changing mode to ${request.newMode} (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
129
|
-
device.commandHandler.executeHandler('changeToMode', {
|
|
135
|
+
await device.commandHandler.executeHandler('RvcCleanMode.changeToMode', {
|
|
136
|
+
command: 'changeToMode',
|
|
137
|
+
request,
|
|
138
|
+
cluster: RvcCleanModeServer.id,
|
|
139
|
+
attributes: this.state,
|
|
140
|
+
endpoint: this.endpoint,
|
|
141
|
+
});
|
|
130
142
|
const supported = this.state.supportedModes.find((mode) => mode.mode === request.newMode);
|
|
131
143
|
if (!supported) {
|
|
132
144
|
device.log.error(`MatterbridgeRvcCleanModeServer changeToMode called with unsupported newMode: ${request.newMode}`);
|
|
@@ -138,10 +150,16 @@ export class MatterbridgeRvcCleanModeServer extends RvcCleanModeServer {
|
|
|
138
150
|
}
|
|
139
151
|
}
|
|
140
152
|
export class MatterbridgeRvcOperationalStateServer extends RvcOperationalStateServer {
|
|
141
|
-
pause() {
|
|
153
|
+
async pause() {
|
|
142
154
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
143
155
|
device.log.info(`Pause (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
144
|
-
device.commandHandler.executeHandler('pause', {
|
|
156
|
+
await device.commandHandler.executeHandler('RvcOperationalState.pause', {
|
|
157
|
+
command: 'pause',
|
|
158
|
+
request: {},
|
|
159
|
+
cluster: RvcOperationalStateServer.id,
|
|
160
|
+
attributes: this.state,
|
|
161
|
+
endpoint: this.endpoint,
|
|
162
|
+
});
|
|
145
163
|
device.log.debug('MatterbridgeRvcOperationalStateServer: pause called setting operational state to Paused and currentMode to Idle');
|
|
146
164
|
this.agent.get(MatterbridgeRvcRunModeServer).state.currentMode = 1;
|
|
147
165
|
this.state.operationalState = RvcOperationalState.OperationalState.Paused;
|
|
@@ -150,10 +168,16 @@ export class MatterbridgeRvcOperationalStateServer extends RvcOperationalStateSe
|
|
|
150
168
|
commandResponseState: { errorStateId: OperationalState.ErrorState.NoError, errorStateDetails: 'Fully operational' },
|
|
151
169
|
};
|
|
152
170
|
}
|
|
153
|
-
resume() {
|
|
171
|
+
async resume() {
|
|
154
172
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
155
173
|
device.log.info(`Resume (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
156
|
-
device.commandHandler.executeHandler('resume', {
|
|
174
|
+
await device.commandHandler.executeHandler('RvcOperationalState.resume', {
|
|
175
|
+
command: 'resume',
|
|
176
|
+
request: {},
|
|
177
|
+
cluster: RvcOperationalStateServer.id,
|
|
178
|
+
attributes: this.state,
|
|
179
|
+
endpoint: this.endpoint,
|
|
180
|
+
});
|
|
157
181
|
device.log.debug('MatterbridgeRvcOperationalStateServer: resume called setting operational state to Running and currentMode to Cleaning');
|
|
158
182
|
this.agent.get(MatterbridgeRvcRunModeServer).state.currentMode = 2;
|
|
159
183
|
this.state.operationalState = RvcOperationalState.OperationalState.Running;
|
|
@@ -162,10 +186,16 @@ export class MatterbridgeRvcOperationalStateServer extends RvcOperationalStateSe
|
|
|
162
186
|
commandResponseState: { errorStateId: OperationalState.ErrorState.NoError, errorStateDetails: 'Fully operational' },
|
|
163
187
|
};
|
|
164
188
|
}
|
|
165
|
-
goHome() {
|
|
189
|
+
async goHome() {
|
|
166
190
|
const device = this.endpoint.stateOf(MatterbridgeServer);
|
|
167
191
|
device.log.info(`GoHome (endpoint ${this.endpoint.maybeId}.${this.endpoint.maybeNumber})`);
|
|
168
|
-
device.commandHandler.executeHandler('goHome', {
|
|
192
|
+
await device.commandHandler.executeHandler('RvcOperationalState.goHome', {
|
|
193
|
+
command: 'goHome',
|
|
194
|
+
request: {},
|
|
195
|
+
cluster: RvcOperationalStateServer.id,
|
|
196
|
+
attributes: this.state,
|
|
197
|
+
endpoint: this.endpoint,
|
|
198
|
+
});
|
|
169
199
|
device.log.debug('MatterbridgeRvcOperationalStateServer: goHome called setting operational state to Docked and currentMode to Idle');
|
|
170
200
|
this.agent.get(MatterbridgeRvcRunModeServer).state.currentMode = 1;
|
|
171
201
|
this.state.operationalState = RvcOperationalState.OperationalState.Docked;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { MaybePromise } from '@matter/general';
|
|
2
1
|
import { TemperatureControlServer } from '@matter/node/behaviors/temperature-control';
|
|
3
2
|
import { TemperatureControl } from '@matter/types/clusters/temperature-control';
|
|
4
3
|
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
@@ -71,7 +70,7 @@ declare const MatterbridgeLevelTemperatureControlServer_base: import("@matter/no
|
|
|
71
70
|
}>, readonly [TemperatureControl.Feature.TemperatureLevel]>, typeof TemperatureControlServer, import("@matter/node/behaviors/temperature-control").TemperatureControlInterface>;
|
|
72
71
|
export declare class MatterbridgeLevelTemperatureControlServer extends MatterbridgeLevelTemperatureControlServer_base {
|
|
73
72
|
initialize(): void;
|
|
74
|
-
setTemperature(request: TemperatureControl.SetTemperatureRequest):
|
|
73
|
+
setTemperature(request: TemperatureControl.SetTemperatureRequest): Promise<void>;
|
|
75
74
|
}
|
|
76
75
|
declare const MatterbridgeNumberTemperatureControlServer_base: import("@matter/node").ClusterBehavior.Type<import("@matter/types").ClusterComposer.WithFeatures<import("@matter/types").ClusterType.Of<{
|
|
77
76
|
readonly id: 86;
|
|
@@ -140,6 +139,6 @@ declare const MatterbridgeNumberTemperatureControlServer_base: import("@matter/n
|
|
|
140
139
|
}>, readonly [TemperatureControl.Feature.TemperatureNumber, TemperatureControl.Feature.TemperatureStep]>, typeof TemperatureControlServer, import("@matter/node/behaviors/temperature-control").TemperatureControlInterface>;
|
|
141
140
|
export declare class MatterbridgeNumberTemperatureControlServer extends MatterbridgeNumberTemperatureControlServer_base {
|
|
142
141
|
initialize(): void;
|
|
143
|
-
setTemperature(request: TemperatureControl.SetTemperatureRequest):
|
|
142
|
+
setTemperature(request: TemperatureControl.SetTemperatureRequest): Promise<void>;
|
|
144
143
|
}
|
|
145
144
|
export {};
|