@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,6 +1,6 @@
|
|
|
1
1
|
import { AtLeastOne } from '@matter/general';
|
|
2
2
|
import { ActionContext, Behavior, Endpoint, ServerNode } from '@matter/node';
|
|
3
|
-
import { ClusterType } from '@matter/types/cluster';
|
|
3
|
+
import { ClusterType, type ClusterTyping } from '@matter/types/cluster';
|
|
4
4
|
import { AirQuality } from '@matter/types/clusters/air-quality';
|
|
5
5
|
import { ColorControl } from '@matter/types/clusters/color-control';
|
|
6
6
|
import { ConcentrationMeasurement } from '@matter/types/clusters/concentration-measurement';
|
|
@@ -26,22 +26,34 @@ import { AnsiLogger, LogLevel } from 'node-ansi-logger';
|
|
|
26
26
|
import { DeviceTypeDefinition } from './matterbridgeDeviceTypes.js';
|
|
27
27
|
import { CommandHandler, CommandHandlerData, CommandHandlerExecutionResult, CommandHandlerFunction, CommandHandlers } from './matterbridgeEndpointCommandHandler.js';
|
|
28
28
|
import { MatterbridgeEndpointOptions, SerializedMatterbridgeEndpoint } from './matterbridgeEndpointTypes.js';
|
|
29
|
-
type
|
|
30
|
-
[K in keyof CommandsOfBehavior<T>]: K;
|
|
31
|
-
}[keyof CommandsOfBehavior<T>] & string;
|
|
29
|
+
type FirstCommandParam<Params extends unknown[]> = Params extends [] ? undefined : Params[0];
|
|
32
30
|
type BehaviorCluster<T extends Behavior.Type> = T extends {
|
|
33
31
|
cluster: infer C extends ClusterType;
|
|
34
|
-
} ? C : ClusterType
|
|
35
|
-
type
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
type
|
|
40
|
-
type
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
type
|
|
32
|
+
} ? C : ClusterType;
|
|
33
|
+
type CommandsOfBehavior<T extends Behavior.Type> = BehaviorCluster<T>['Typing'] extends {
|
|
34
|
+
Commands: infer Commands;
|
|
35
|
+
} ? Commands : Record<string, never>;
|
|
36
|
+
type BehaviorCommandName<T extends Behavior.Type> = keyof CommandsOfBehavior<T> & string;
|
|
37
|
+
type BehaviorCommandParams<T extends Behavior.Type, C extends BehaviorCommandName<T>> = CommandsOfBehavior<T>[C] extends (...args: infer P) => unknown ? FirstCommandParam<P> : never;
|
|
38
|
+
type BehaviorInterface<T extends Behavior.Type> = T extends {
|
|
39
|
+
Interface: infer N extends ClusterTyping;
|
|
40
|
+
} ? N : ClusterTyping;
|
|
41
|
+
type BehaviorEvents<T extends Behavior.Type> = NonNullable<BehaviorInterface<T>['Events']>;
|
|
42
|
+
type BehaviorEventName<T extends Behavior.Type> = keyof BehaviorEvents<T> & string;
|
|
43
|
+
type BehaviorEventPayload<T extends Behavior.Type, E extends string> = E extends BehaviorEventName<T> ? BehaviorEvents<T>[E] : never;
|
|
44
|
+
type ClusterAttributesOf<T extends ClusterType> = T['Typing'] extends {
|
|
45
|
+
Attributes: infer Attributes;
|
|
46
|
+
} ? Attributes : {};
|
|
47
|
+
type ClusterCommandsOf<T extends ClusterType> = T['Typing'] extends {
|
|
48
|
+
Commands: infer Commands;
|
|
49
|
+
} ? Commands : Record<string, never>;
|
|
50
|
+
type ClusterCommandName<T extends ClusterType> = keyof ClusterCommandsOf<T> & string;
|
|
51
|
+
type ClusterCommandParams<T extends ClusterType, C extends ClusterCommandName<T>> = ClusterCommandsOf<T>[C] extends (...args: infer P) => unknown ? FirstCommandParam<P> : never;
|
|
52
|
+
type ClusterEventsOf<T extends ClusterType> = T['Typing'] extends {
|
|
53
|
+
Events: infer Events;
|
|
54
|
+
} ? Events : Record<string, never>;
|
|
55
|
+
type ClusterEventName<T extends ClusterType> = keyof ClusterEventsOf<T> & string;
|
|
56
|
+
type ClusterEventPayload<T extends ClusterType, E extends string> = E extends keyof ClusterEventsOf<T> ? ClusterEventsOf<T>[E] : never;
|
|
45
57
|
export declare function isMatterbridgeEndpoint(value: unknown): value is MatterbridgeEndpoint;
|
|
46
58
|
export declare function assertMatterbridgeEndpoint(value: unknown, context?: string): asserts value is MatterbridgeEndpoint;
|
|
47
59
|
export declare class MatterbridgeEndpoint extends Endpoint {
|
|
@@ -76,22 +88,22 @@ export declare class MatterbridgeEndpoint extends Endpoint {
|
|
|
76
88
|
hasAttributeServer(cluster: Behavior.Type | ClusterType | ClusterId | string, attribute: string): boolean;
|
|
77
89
|
getClusterServerOptions(cluster: Behavior.Type | ClusterType | ClusterId | string): Record<string, boolean | number | bigint | string | object | null> | undefined;
|
|
78
90
|
getAttribute<T extends Behavior.Type, A extends keyof Behavior.StateOf<T>>(cluster: T, attribute: A, log?: AnsiLogger): Behavior.StateOf<T>[A] | undefined;
|
|
79
|
-
getAttribute<T extends ClusterType, A extends keyof
|
|
91
|
+
getAttribute<T extends ClusterType, A extends keyof ClusterAttributesOf<T>>(cluster: T, attribute: A, log?: AnsiLogger): ClusterAttributesOf<T>[A] | undefined;
|
|
80
92
|
getAttribute(cluster: ClusterId | string, attribute: string, log?: AnsiLogger): any;
|
|
81
93
|
setAttribute<T extends Behavior.Type, A extends keyof Behavior.StateOf<T>>(clusterId: T, attribute: A, value: Behavior.StateOf<T>[A], log?: AnsiLogger): Promise<boolean>;
|
|
82
|
-
setAttribute<T extends ClusterType, A extends keyof
|
|
94
|
+
setAttribute<T extends ClusterType, A extends keyof ClusterAttributesOf<T>>(clusterId: T, attribute: A, value: ClusterAttributesOf<T>[A], log?: AnsiLogger): Promise<boolean>;
|
|
83
95
|
setAttribute(clusterId: ClusterId | string, attribute: string, value: boolean | number | bigint | string | object | null, log?: AnsiLogger): Promise<boolean>;
|
|
84
96
|
updateAttribute<T extends Behavior.Type, A extends keyof Behavior.StateOf<T>>(cluster: T, attribute: A, value: Behavior.StateOf<T>[A], log?: AnsiLogger): Promise<boolean>;
|
|
85
|
-
updateAttribute<T extends ClusterType, A extends keyof
|
|
97
|
+
updateAttribute<T extends ClusterType, A extends keyof ClusterAttributesOf<T>>(cluster: T, attribute: A, value: ClusterAttributesOf<T>[A], log?: AnsiLogger): Promise<boolean>;
|
|
86
98
|
updateAttribute(cluster: ClusterId | string, attribute: string, value: boolean | number | bigint | string | object | null, log?: AnsiLogger): Promise<boolean>;
|
|
87
99
|
subscribeAttribute<T extends Behavior.Type, A extends keyof Behavior.StateOf<T>>(cluster: T, attribute: A, listener: (newValue: Behavior.StateOf<T>[A], oldValue: Behavior.StateOf<T>[A], context: ActionContext) => void, log?: AnsiLogger): Promise<boolean>;
|
|
88
|
-
subscribeAttribute<T extends ClusterType, A extends keyof
|
|
100
|
+
subscribeAttribute<T extends ClusterType, A extends keyof ClusterAttributesOf<T>>(cluster: T, attribute: A, listener: (newValue: ClusterAttributesOf<T>[A], oldValue: ClusterAttributesOf<T>[A], context: ActionContext) => void, log?: AnsiLogger): Promise<boolean>;
|
|
89
101
|
subscribeAttribute(cluster: ClusterId | string, attribute: string, listener: (newValue: any, oldValue: any, context: ActionContext) => void, log?: AnsiLogger): Promise<boolean>;
|
|
90
102
|
setCluster<T extends Behavior.Type>(cluster: T, value: Behavior.StateOf<T>, log?: AnsiLogger): Promise<boolean>;
|
|
91
|
-
setCluster<T extends ClusterType>(cluster: T, value:
|
|
103
|
+
setCluster<T extends ClusterType>(cluster: T, value: ClusterAttributesOf<T>, log?: AnsiLogger): Promise<boolean>;
|
|
92
104
|
setCluster(cluster: ClusterId | string, value: Record<string, boolean | number | bigint | string | object | undefined | null>, log?: AnsiLogger): Promise<boolean>;
|
|
93
105
|
getCluster<T extends Behavior.Type>(cluster: T, log?: AnsiLogger): Behavior.StateOf<T> | undefined;
|
|
94
|
-
getCluster<T extends ClusterType>(cluster: T, log?: AnsiLogger):
|
|
106
|
+
getCluster<T extends ClusterType>(cluster: T, log?: AnsiLogger): ClusterAttributesOf<T> | undefined;
|
|
95
107
|
getCluster(cluster: ClusterId | string, log?: AnsiLogger): Record<string, boolean | number | bigint | string | object | undefined | null> | undefined;
|
|
96
108
|
triggerEvent<T extends Behavior.Type, E extends BehaviorEventName<T>>(cluster: T, event: E, payload: BehaviorEventPayload<T, E>, log?: AnsiLogger): Promise<boolean>;
|
|
97
109
|
triggerEvent<T extends ClusterType, E extends ClusterEventName<T>>(cluster: T, event: E, payload: ClusterEventPayload<T, E>, log?: AnsiLogger): Promise<boolean>;
|
|
@@ -103,9 +115,7 @@ export declare class MatterbridgeEndpoint extends Endpoint {
|
|
|
103
115
|
removeCommandHandler<C extends CommandHandlers>(command: C, handler: CommandHandlerFunction<C>): this;
|
|
104
116
|
executeCommandHandler<C extends CommandHandlers>(command: C, request: CommandHandlerData<C>['request'], cluster: CommandHandlerData<C>['cluster'], attributes: CommandHandlerData<C>['attributes'], endpoint: CommandHandlerData<C>['endpoint']): Promise<CommandHandlerExecutionResult<C>>;
|
|
105
117
|
invokeBehaviorCommand<T extends Behavior.Type, C extends BehaviorCommandName<T>>(cluster: T, command: C, params?: BehaviorCommandParams<T, C>): Promise<void>;
|
|
106
|
-
invokeBehaviorCommand<T extends ClusterType, C extends
|
|
107
|
-
requestSchema: infer S extends import('@matter/types/tlv').TlvSchema<unknown>;
|
|
108
|
-
} ? import('@matter/types/tlv').TypeFromSchema<S> : never): Promise<void>;
|
|
118
|
+
invokeBehaviorCommand<T extends ClusterType, C extends ClusterCommandName<T>>(cluster: T, command: C, params?: ClusterCommandParams<T, C>): Promise<void>;
|
|
109
119
|
invokeBehaviorCommand(cluster: ClusterId | string, command: CommandHandlers, params?: Record<string, boolean | number | bigint | string | object | null>): Promise<void>;
|
|
110
120
|
addRequiredClusterServers(): MatterbridgeEndpoint;
|
|
111
121
|
addOptionalClusterServers(): MatterbridgeEndpoint;
|
|
@@ -158,7 +168,7 @@ export declare class MatterbridgeEndpoint extends Endpoint {
|
|
|
158
168
|
setWindowCoveringTargetAndCurrentPosition(liftPosition: number, tiltPosition?: number): Promise<void>;
|
|
159
169
|
createDefaultThermostatClusterServer(localTemperature?: number, occupiedHeatingSetpoint?: number, occupiedCoolingSetpoint?: number, minSetpointDeadBand?: number, minHeatSetpointLimit?: number, maxHeatSetpointLimit?: number, minCoolSetpointLimit?: number, maxCoolSetpointLimit?: number, unoccupiedHeatingSetpoint?: number | undefined, unoccupiedCoolingSetpoint?: number | undefined, occupied?: boolean | undefined, outdoorTemperature?: number | null | undefined): this;
|
|
160
170
|
createDefaultHeatingThermostatClusterServer(localTemperature?: number, occupiedHeatingSetpoint?: number, minHeatSetpointLimit?: number, maxHeatSetpointLimit?: number, unoccupiedHeatingSetpoint?: number | undefined, occupied?: boolean | undefined, outdoorTemperature?: number | null | undefined): this;
|
|
161
|
-
createDefaultPresetsThermostatClusterServer(localTemperature?: number, occupiedHeatingSetpoint?: number, occupiedCoolingSetpoint?: number, minSetpointDeadBand?: number, minHeatSetpointLimit?: number, maxHeatSetpointLimit?: number, minCoolSetpointLimit?: number, maxCoolSetpointLimit?: number, unoccupiedHeatingSetpoint?: number | undefined, unoccupiedCoolingSetpoint?: number | undefined, occupied?: boolean | undefined, outdoorTemperature?: number | null | undefined, activePresetHandle?: Uint8Array | null,
|
|
171
|
+
createDefaultPresetsThermostatClusterServer(localTemperature?: number, occupiedHeatingSetpoint?: number, occupiedCoolingSetpoint?: number, minSetpointDeadBand?: number, minHeatSetpointLimit?: number, maxHeatSetpointLimit?: number, minCoolSetpointLimit?: number, maxCoolSetpointLimit?: number, unoccupiedHeatingSetpoint?: number | undefined, unoccupiedCoolingSetpoint?: number | undefined, occupied?: boolean | undefined, outdoorTemperature?: number | null | undefined, activePresetHandle?: Uint8Array | null, presets?: Thermostat.Preset[], presetTypes?: Thermostat.PresetType[]): this;
|
|
162
172
|
createDefaultCoolingThermostatClusterServer(localTemperature?: number, occupiedCoolingSetpoint?: number, minCoolSetpointLimit?: number, maxCoolSetpointLimit?: number, unoccupiedCoolingSetpoint?: number | undefined, occupied?: boolean | undefined, outdoorTemperature?: number | null | undefined): this;
|
|
163
173
|
createDefaultThermostatUserInterfaceConfigurationClusterServer(temperatureDisplayMode?: ThermostatUserInterfaceConfiguration.TemperatureDisplayMode, keypadLockout?: ThermostatUserInterfaceConfiguration.KeypadLockout, scheduleProgrammingVisibility?: ThermostatUserInterfaceConfiguration.ScheduleProgrammingVisibility): this;
|
|
164
174
|
createDefaultFanControlClusterServer(fanMode?: FanControl.FanMode, fanModeSequence?: FanControl.FanModeSequence, percentSetting?: number, percentCurrent?: number): this;
|
|
@@ -905,7 +905,10 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
905
905
|
});
|
|
906
906
|
return this;
|
|
907
907
|
}
|
|
908
|
-
createDefaultPresetsThermostatClusterServer(localTemperature = 23, occupiedHeatingSetpoint = 21, occupiedCoolingSetpoint = 25, minSetpointDeadBand = 0, minHeatSetpointLimit = 0, maxHeatSetpointLimit = 50, minCoolSetpointLimit = 0, maxCoolSetpointLimit = 50, unoccupiedHeatingSetpoint = undefined, unoccupiedCoolingSetpoint = undefined, occupied = undefined, outdoorTemperature = undefined, activePresetHandle = null,
|
|
908
|
+
createDefaultPresetsThermostatClusterServer(localTemperature = 23, occupiedHeatingSetpoint = 21, occupiedCoolingSetpoint = 25, minSetpointDeadBand = 0, minHeatSetpointLimit = 0, maxHeatSetpointLimit = 50, minCoolSetpointLimit = 0, maxCoolSetpointLimit = 50, unoccupiedHeatingSetpoint = undefined, unoccupiedCoolingSetpoint = undefined, occupied = undefined, outdoorTemperature = undefined, activePresetHandle = null, presets = [], presetTypes = [
|
|
909
|
+
{ presetScenario: Thermostat.PresetScenario.Occupied, numberOfPresets: 2, presetTypeFeatures: { automatic: false, supportsNames: true } },
|
|
910
|
+
{ presetScenario: Thermostat.PresetScenario.Unoccupied, numberOfPresets: 2, presetTypeFeatures: { automatic: false, supportsNames: true } },
|
|
911
|
+
]) {
|
|
909
912
|
this.behaviors.require(MatterbridgeThermostatServer.with(Thermostat.Feature.Heating, Thermostat.Feature.Cooling, Thermostat.Feature.AutoMode, ...(occupied !== undefined ? [Thermostat.Feature.Occupancy] : []), Thermostat.Feature.Presets), {
|
|
910
913
|
localTemperature: localTemperature * 100,
|
|
911
914
|
externalMeasuredIndoorTemperature: localTemperature * 100,
|
|
@@ -928,9 +931,9 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
928
931
|
...(occupied !== undefined ? { unoccupiedCoolingSetpoint: unoccupiedCoolingSetpoint !== undefined ? unoccupiedCoolingSetpoint * 100 : 2700 } : {}),
|
|
929
932
|
...(occupied !== undefined ? { occupancy: { occupied } } : {}),
|
|
930
933
|
...(occupied !== undefined ? { externallyMeasuredOccupancy: true } : {}),
|
|
931
|
-
numberOfPresets: Math.max(Array.isArray(
|
|
934
|
+
numberOfPresets: Math.max(Array.isArray(presets) ? presets.length : 0, 10),
|
|
932
935
|
activePresetHandle: activePresetHandle ? Uint8Array.from([activePresetHandle]) : null,
|
|
933
|
-
presets: (
|
|
936
|
+
presets: (presets ?? []).map((p) => ({
|
|
934
937
|
presetHandle: p.presetHandle ? Uint8Array.from(p.presetHandle) : null,
|
|
935
938
|
presetScenario: p.presetScenario,
|
|
936
939
|
name: p.name,
|
|
@@ -1139,9 +1142,7 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1139
1142
|
this.behaviors.require(MatterbridgeSmokeCoAlarmServer.with(SmokeCoAlarm.Feature.SmokeAlarm, SmokeCoAlarm.Feature.CoAlarm).enable({
|
|
1140
1143
|
events: {
|
|
1141
1144
|
smokeAlarm: true,
|
|
1142
|
-
interconnectSmokeAlarm: false,
|
|
1143
1145
|
coAlarm: true,
|
|
1144
|
-
interconnectCoAlarm: false,
|
|
1145
1146
|
lowBattery: true,
|
|
1146
1147
|
hardwareFault: true,
|
|
1147
1148
|
endOfService: true,
|
|
@@ -1166,7 +1167,6 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1166
1167
|
this.behaviors.require(MatterbridgeSmokeCoAlarmServer.with(SmokeCoAlarm.Feature.SmokeAlarm).enable({
|
|
1167
1168
|
events: {
|
|
1168
1169
|
smokeAlarm: true,
|
|
1169
|
-
interconnectSmokeAlarm: false,
|
|
1170
1170
|
lowBattery: true,
|
|
1171
1171
|
hardwareFault: true,
|
|
1172
1172
|
endOfService: true,
|
|
@@ -1190,7 +1190,6 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
1190
1190
|
this.behaviors.require(MatterbridgeSmokeCoAlarmServer.with(SmokeCoAlarm.Feature.CoAlarm).enable({
|
|
1191
1191
|
events: {
|
|
1192
1192
|
coAlarm: true,
|
|
1193
|
-
interconnectCoAlarm: false,
|
|
1194
1193
|
lowBattery: true,
|
|
1195
1194
|
hardwareFault: true,
|
|
1196
1195
|
endOfService: true,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HandlerFunction } from '@matter/general';
|
|
2
|
-
import { ActionContext } from '@matter/
|
|
3
|
-
import type {
|
|
2
|
+
import { ActionContext } from '@matter/main';
|
|
3
|
+
import type { ClusterType } from '@matter/types/cluster';
|
|
4
4
|
import { ActivatedCarbonFilterMonitoring } from '@matter/types/clusters/activated-carbon-filter-monitoring';
|
|
5
5
|
import { BooleanStateConfiguration } from '@matter/types/clusters/boolean-state-configuration';
|
|
6
6
|
import { ColorControl } from '@matter/types/clusters/color-control';
|
|
@@ -118,7 +118,7 @@ type OptionalKeys<T> = {
|
|
|
118
118
|
optional: true;
|
|
119
119
|
} ? K : never;
|
|
120
120
|
}[keyof T];
|
|
121
|
-
type AttributeValue<T> = T extends Attribute<infer JsType
|
|
121
|
+
type AttributeValue<T> = T extends ClusterType.Attribute<infer JsType> ? JsType : never;
|
|
122
122
|
export type ClusterAttributeValues<T extends Record<string, unknown>> = {
|
|
123
123
|
-readonly [K in Exclude<keyof T, OptionalKeys<T>>]: AttributeValue<T[K]>;
|
|
124
124
|
} & {
|
|
@@ -411,62 +411,6 @@ export type CommandHandlerDataMap = {
|
|
|
411
411
|
attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
|
|
412
412
|
endpoint: MatterbridgeEndpoint;
|
|
413
413
|
};
|
|
414
|
-
'DoorLock.setPinCode': {
|
|
415
|
-
command: 'setPinCode';
|
|
416
|
-
request: DoorLock.SetPinCodeRequest;
|
|
417
|
-
cluster: 'doorLock';
|
|
418
|
-
attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
|
|
419
|
-
endpoint: MatterbridgeEndpoint;
|
|
420
|
-
};
|
|
421
|
-
'DoorLock.getPinCode': {
|
|
422
|
-
command: 'getPinCode';
|
|
423
|
-
request: DoorLock.GetPinCodeRequest;
|
|
424
|
-
cluster: 'doorLock';
|
|
425
|
-
attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
|
|
426
|
-
endpoint: MatterbridgeEndpoint;
|
|
427
|
-
};
|
|
428
|
-
'DoorLock.clearPinCode': {
|
|
429
|
-
command: 'clearPinCode';
|
|
430
|
-
request: DoorLock.ClearPinCodeRequest;
|
|
431
|
-
cluster: 'doorLock';
|
|
432
|
-
attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
|
|
433
|
-
endpoint: MatterbridgeEndpoint;
|
|
434
|
-
};
|
|
435
|
-
'DoorLock.clearAllPinCodes': {
|
|
436
|
-
command: 'clearAllPinCodes';
|
|
437
|
-
request: {};
|
|
438
|
-
cluster: 'doorLock';
|
|
439
|
-
attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
|
|
440
|
-
endpoint: MatterbridgeEndpoint;
|
|
441
|
-
};
|
|
442
|
-
'DoorLock.setUserStatus': {
|
|
443
|
-
command: 'setUserStatus';
|
|
444
|
-
request: DoorLock.SetUserStatusRequest;
|
|
445
|
-
cluster: 'doorLock';
|
|
446
|
-
attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
|
|
447
|
-
endpoint: MatterbridgeEndpoint;
|
|
448
|
-
};
|
|
449
|
-
'DoorLock.getUserStatus': {
|
|
450
|
-
command: 'getUserStatus';
|
|
451
|
-
request: DoorLock.GetUserStatusRequest;
|
|
452
|
-
cluster: 'doorLock';
|
|
453
|
-
attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
|
|
454
|
-
endpoint: MatterbridgeEndpoint;
|
|
455
|
-
};
|
|
456
|
-
'DoorLock.setUserType': {
|
|
457
|
-
command: 'setUserType';
|
|
458
|
-
request: DoorLock.SetUserTypeRequest;
|
|
459
|
-
cluster: 'doorLock';
|
|
460
|
-
attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
|
|
461
|
-
endpoint: MatterbridgeEndpoint;
|
|
462
|
-
};
|
|
463
|
-
'DoorLock.getUserType': {
|
|
464
|
-
command: 'getUserType';
|
|
465
|
-
request: DoorLock.GetUserTypeRequest;
|
|
466
|
-
cluster: 'doorLock';
|
|
467
|
-
attributes: ClusterAttributeValues<(typeof DoorLock.Complete)['attributes']>;
|
|
468
|
-
endpoint: MatterbridgeEndpoint;
|
|
469
|
-
};
|
|
470
414
|
'DoorLock.setUser': {
|
|
471
415
|
command: 'setUser';
|
|
472
416
|
request: DoorLock.SetUserRequest;
|