@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.
Files changed (52) hide show
  1. package/dist/behaviors/activatedCarbonFilterMonitoringServer.d.ts +5 -2
  2. package/dist/behaviors/bindingServer.js +0 -2
  3. package/dist/behaviors/booleanStateConfigurationServer.d.ts +6 -1
  4. package/dist/behaviors/colorControlServer.d.ts +20 -774
  5. package/dist/behaviors/deviceEnergyManagementServer.d.ts +9 -299
  6. package/dist/behaviors/doorLockServer.d.ts +29 -47
  7. package/dist/behaviors/doorLockServer.js +11 -299
  8. package/dist/behaviors/fanControlServer.d.ts +8 -1
  9. package/dist/behaviors/hepaFilterMonitoringServer.d.ts +5 -2
  10. package/dist/behaviors/smokeCoAlarmServer.d.ts +4 -77
  11. package/dist/behaviors/thermostatServer.d.ts +20 -722
  12. package/dist/behaviors/valveConfigurationAndControlServer.d.ts +4 -1
  13. package/dist/behaviors/windowCoveringServer.d.ts +28 -564
  14. package/dist/clusters/closure-control.d.ts +130 -620
  15. package/dist/clusters/closure-control.js +15 -170
  16. package/dist/clusters/closure-dimension.d.ts +148 -814
  17. package/dist/clusters/closure-dimension.js +15 -202
  18. package/dist/clusters/export.d.ts +1 -3
  19. package/dist/clusters/export.js +1 -3
  20. package/dist/clusters/soil-measurement.d.ts +31 -31
  21. package/dist/clusters/soil-measurement.js +29 -19
  22. package/dist/devices/closure.d.ts +14 -291
  23. package/dist/devices/closure.js +6 -13
  24. package/dist/devices/closurePanel.d.ts +13 -370
  25. package/dist/devices/closurePanel.js +9 -15
  26. package/dist/devices/evse.d.ts +7 -1
  27. package/dist/devices/heatPump.js +5 -5
  28. package/dist/devices/irrigationSystem.js +2 -2
  29. package/dist/devices/microwaveOven.d.ts +5 -76
  30. package/dist/devices/roboticVacuumCleaner.js +5 -5
  31. package/dist/devices/soilSensor.d.ts +0 -15
  32. package/dist/devices/soilSensor.js +4 -20
  33. package/dist/devices/temperatureControl.d.ts +10 -130
  34. package/dist/frontend.js +9 -9
  35. package/dist/helpers.js +0 -8
  36. package/dist/jestutils/jestBroadcastServerSpy.d.ts +2 -2
  37. package/dist/jestutils/jestMatterTest.js +4 -4
  38. package/dist/jestutils/jestMatterbridgeEndpointSpy.d.ts +34 -37
  39. package/dist/jestutils/jestMatterbridgePlatformSpy.d.ts +4 -4
  40. package/dist/jestutils/jestMatterbridgeTest.js +1 -1
  41. package/dist/matter/export.d.ts +11 -0
  42. package/dist/matter/export.js +11 -0
  43. package/dist/matterbridge.d.ts +3 -0
  44. package/dist/matterbridge.js +10 -4
  45. package/dist/matterbridgeDeviceTypes.d.ts +15 -0
  46. package/dist/matterbridgeDeviceTypes.js +305 -162
  47. package/dist/matterbridgeEndpoint.d.ts +35 -25
  48. package/dist/matterbridgeEndpoint.js +6 -7
  49. package/dist/matterbridgeEndpointCommandHandler.d.ts +3 -59
  50. package/dist/matterbridgeEndpointHelpers.d.ts +83 -1382
  51. package/dist/matterbridgeEndpointHelpers.js +20 -5
  52. package/package.json +8 -8
@@ -1,202 +1,15 @@
1
- import { Attribute, ClusterRegistry, Command, FixedAttribute, MutableCluster, TlvNoResponse } from '@matter/types/cluster';
2
- import { BitFlag } from '@matter/types/schema';
3
- import { TlvBitmap, TlvBoolean, TlvEnum, TlvField, TlvInt16, TlvNullable, TlvObject, TlvOptionalField, TlvPercent100ths, TlvUInt8, TlvUInt16, } from '@matter/types/tlv';
4
- export var ClosureDimension;
5
- (function (ClosureDimension) {
6
- let Feature;
7
- (function (Feature) {
8
- Feature["Positioning"] = "Positioning";
9
- Feature["MotionLatching"] = "MotionLatching";
10
- Feature["Unit"] = "Unit";
11
- Feature["Limitation"] = "Limitation";
12
- Feature["Speed"] = "Speed";
13
- Feature["Translation"] = "Translation";
14
- Feature["Rotation"] = "Rotation";
15
- Feature["Modulation"] = "Modulation";
16
- })(Feature = ClosureDimension.Feature || (ClosureDimension.Feature = {}));
17
- let ClosureUnit;
18
- (function (ClosureUnit) {
19
- ClosureUnit[ClosureUnit["Millimeter"] = 0] = "Millimeter";
20
- ClosureUnit[ClosureUnit["Degree"] = 1] = "Degree";
21
- })(ClosureUnit = ClosureDimension.ClosureUnit || (ClosureDimension.ClosureUnit = {}));
22
- let ModulationType;
23
- (function (ModulationType) {
24
- ModulationType[ModulationType["SlatsOrientation"] = 0] = "SlatsOrientation";
25
- ModulationType[ModulationType["SlatsOpenwork"] = 1] = "SlatsOpenwork";
26
- ModulationType[ModulationType["StripesAlignment"] = 2] = "StripesAlignment";
27
- ModulationType[ModulationType["Opacity"] = 3] = "Opacity";
28
- ModulationType[ModulationType["Ventilation"] = 4] = "Ventilation";
29
- })(ModulationType = ClosureDimension.ModulationType || (ClosureDimension.ModulationType = {}));
30
- let Overflow;
31
- (function (Overflow) {
32
- Overflow[Overflow["NoOverflow"] = 0] = "NoOverflow";
33
- Overflow[Overflow["Inside"] = 1] = "Inside";
34
- Overflow[Overflow["Outside"] = 2] = "Outside";
35
- Overflow[Overflow["TopInside"] = 3] = "TopInside";
36
- Overflow[Overflow["TopOutside"] = 4] = "TopOutside";
37
- Overflow[Overflow["BottomInside"] = 5] = "BottomInside";
38
- Overflow[Overflow["BottomOutside"] = 6] = "BottomOutside";
39
- Overflow[Overflow["LeftInside"] = 7] = "LeftInside";
40
- Overflow[Overflow["LeftOutside"] = 8] = "LeftOutside";
41
- Overflow[Overflow["RightInside"] = 9] = "RightInside";
42
- Overflow[Overflow["RightOutside"] = 10] = "RightOutside";
43
- })(Overflow = ClosureDimension.Overflow || (ClosureDimension.Overflow = {}));
44
- let RotationAxis;
45
- (function (RotationAxis) {
46
- RotationAxis[RotationAxis["Left"] = 0] = "Left";
47
- RotationAxis[RotationAxis["CenteredVertical"] = 1] = "CenteredVertical";
48
- RotationAxis[RotationAxis["LeftAndRight"] = 2] = "LeftAndRight";
49
- RotationAxis[RotationAxis["Right"] = 3] = "Right";
50
- RotationAxis[RotationAxis["Top"] = 4] = "Top";
51
- RotationAxis[RotationAxis["CenteredHorizontal"] = 5] = "CenteredHorizontal";
52
- RotationAxis[RotationAxis["TopAndBottom"] = 6] = "TopAndBottom";
53
- RotationAxis[RotationAxis["Bottom"] = 7] = "Bottom";
54
- RotationAxis[RotationAxis["LeftBarrier"] = 8] = "LeftBarrier";
55
- RotationAxis[RotationAxis["LeftAndRightBarriers"] = 9] = "LeftAndRightBarriers";
56
- RotationAxis[RotationAxis["RightBarrier"] = 10] = "RightBarrier";
57
- })(RotationAxis = ClosureDimension.RotationAxis || (ClosureDimension.RotationAxis = {}));
58
- let StepDirection;
59
- (function (StepDirection) {
60
- StepDirection[StepDirection["Decrease"] = 0] = "Decrease";
61
- StepDirection[StepDirection["Increase"] = 1] = "Increase";
62
- })(StepDirection = ClosureDimension.StepDirection || (ClosureDimension.StepDirection = {}));
63
- let TranslationDirection;
64
- (function (TranslationDirection) {
65
- TranslationDirection[TranslationDirection["Downward"] = 0] = "Downward";
66
- TranslationDirection[TranslationDirection["Upward"] = 1] = "Upward";
67
- TranslationDirection[TranslationDirection["VerticalMask"] = 2] = "VerticalMask";
68
- TranslationDirection[TranslationDirection["VerticalSymmetry"] = 3] = "VerticalSymmetry";
69
- TranslationDirection[TranslationDirection["Leftward"] = 4] = "Leftward";
70
- TranslationDirection[TranslationDirection["Rightward"] = 5] = "Rightward";
71
- TranslationDirection[TranslationDirection["HorizontalMask"] = 6] = "HorizontalMask";
72
- TranslationDirection[TranslationDirection["HorizontalSymmetry"] = 7] = "HorizontalSymmetry";
73
- TranslationDirection[TranslationDirection["Forward"] = 8] = "Forward";
74
- TranslationDirection[TranslationDirection["Backward"] = 9] = "Backward";
75
- TranslationDirection[TranslationDirection["DepthMask"] = 10] = "DepthMask";
76
- TranslationDirection[TranslationDirection["DepthSymmetry"] = 11] = "DepthSymmetry";
77
- })(TranslationDirection = ClosureDimension.TranslationDirection || (ClosureDimension.TranslationDirection = {}));
78
- ClosureDimension.LatchControlModes = {
79
- remoteLatching: BitFlag(0),
80
- remoteUnlatching: BitFlag(1),
81
- };
82
- ClosureDimension.TlvDimensionState = TlvObject({
83
- position: TlvOptionalField(0, TlvNullable(TlvPercent100ths)),
84
- latch: TlvOptionalField(1, TlvNullable(TlvBoolean)),
85
- speed: TlvOptionalField(2, TlvEnum()),
86
- });
87
- ClosureDimension.TlvRangePercent100ths = TlvObject({
88
- min: TlvField(0, TlvPercent100ths),
89
- max: TlvField(1, TlvPercent100ths),
90
- });
91
- ClosureDimension.TlvUnitRange = TlvObject({
92
- min: TlvField(0, TlvInt16),
93
- max: TlvField(1, TlvInt16),
94
- });
95
- ClosureDimension.TlvSetTargetRequest = TlvObject({
96
- position: TlvOptionalField(0, TlvPercent100ths),
97
- latch: TlvOptionalField(1, TlvBoolean),
98
- speed: TlvOptionalField(2, TlvEnum()),
99
- });
100
- ClosureDimension.TlvStepRequest = TlvObject({
101
- direction: TlvField(0, TlvEnum()),
102
- numberOfSteps: TlvField(1, TlvUInt16.bound({ min: 1 })),
103
- speed: TlvOptionalField(2, TlvEnum()),
104
- });
105
- ClosureDimension.PositioningComponent = MutableCluster.Component({
106
- attributes: {
107
- resolution: FixedAttribute(0x2, TlvPercent100ths, { default: 1 }),
108
- stepValue: FixedAttribute(0x3, TlvPercent100ths, { default: 1 }),
109
- },
110
- commands: {
111
- step: Command(0x1, ClosureDimension.TlvStepRequest, 0x1, TlvNoResponse, { timed: true }),
112
- },
113
- });
114
- ClosureDimension.MotionLatchingComponent = MutableCluster.Component({
115
- attributes: {
116
- latchControlModes: FixedAttribute(0xb, TlvBitmap(TlvUInt8, ClosureDimension.LatchControlModes)),
117
- },
118
- });
119
- ClosureDimension.UnitComponent = MutableCluster.Component({
120
- attributes: {
121
- unit: FixedAttribute(0x4, TlvEnum()),
122
- unitRange: Attribute(0x5, TlvNullable(ClosureDimension.TlvUnitRange), { default: null }),
123
- },
124
- });
125
- ClosureDimension.LimitationComponent = MutableCluster.Component({
126
- attributes: {
127
- limitRange: Attribute(0x6, ClosureDimension.TlvRangePercent100ths),
128
- },
129
- });
130
- ClosureDimension.TranslationComponent = MutableCluster.Component({
131
- attributes: {
132
- translationDirection: FixedAttribute(0x7, TlvEnum()),
133
- },
134
- });
135
- ClosureDimension.RotationComponent = MutableCluster.Component({
136
- attributes: {
137
- rotationAxis: FixedAttribute(0x8, TlvEnum()),
138
- overflow: FixedAttribute(0x9, TlvEnum()),
139
- },
140
- });
141
- ClosureDimension.ModulationComponent = MutableCluster.Component({
142
- attributes: {
143
- modulationType: FixedAttribute(0xa, TlvEnum()),
144
- },
145
- });
146
- ClosureDimension.Base = MutableCluster.Component({
147
- id: 0x0105,
148
- name: 'ClosureDimension',
149
- revision: 1,
150
- features: {
151
- positioning: BitFlag(0),
152
- motionLatching: BitFlag(1),
153
- unit: BitFlag(2),
154
- limitation: BitFlag(3),
155
- speed: BitFlag(4),
156
- translation: BitFlag(5),
157
- rotation: BitFlag(6),
158
- modulation: BitFlag(7),
159
- },
160
- attributes: {
161
- currentState: Attribute(0x0, TlvNullable(ClosureDimension.TlvDimensionState), { default: null }),
162
- targetState: Attribute(0x1, TlvNullable(ClosureDimension.TlvDimensionState), { default: null }),
163
- },
164
- commands: {
165
- setTarget: Command(0x0, ClosureDimension.TlvSetTargetRequest, 0x0, TlvNoResponse, { timed: true }),
166
- },
167
- extensions: MutableCluster.Extensions({ flags: { positioning: true }, component: ClosureDimension.PositioningComponent }, { flags: { motionLatching: true }, component: ClosureDimension.MotionLatchingComponent }, { flags: { unit: true }, component: ClosureDimension.UnitComponent }, { flags: { limitation: true }, component: ClosureDimension.LimitationComponent }, { flags: { translation: true }, component: ClosureDimension.TranslationComponent }, { flags: { rotation: true }, component: ClosureDimension.RotationComponent }, { flags: { modulation: true }, component: ClosureDimension.ModulationComponent }, { flags: { positioning: false, motionLatching: false }, component: false }, { flags: { unit: true, positioning: false }, component: false }, { flags: { limitation: true, positioning: false }, component: false }, { flags: { speed: true, positioning: false }, component: false }, { flags: { translation: true, positioning: false }, component: false }, { flags: { rotation: true, positioning: false }, component: false }, { flags: { modulation: true, positioning: false }, component: false }, { flags: { translation: true, rotation: true }, component: false }, { flags: { translation: true, modulation: true }, component: false }, { flags: { rotation: true, modulation: true }, component: false }),
168
- });
169
- ClosureDimension.Cluster = MutableCluster.ExtensibleOnly(ClosureDimension.Base);
170
- const PS = { positioning: true };
171
- const LT = { motionLatching: true };
172
- const UT = { unit: true };
173
- const LM = { limitation: true };
174
- const TR = { translation: true };
175
- const RO = { rotation: true };
176
- const MD = { modulation: true };
177
- ClosureDimension.Complete = MutableCluster({
178
- id: ClosureDimension.Base.id,
179
- name: ClosureDimension.Base.name,
180
- revision: ClosureDimension.Base.revision,
181
- features: ClosureDimension.Base.features,
182
- attributes: {
183
- ...ClosureDimension.Base.attributes,
184
- resolution: MutableCluster.AsConditional(ClosureDimension.PositioningComponent.attributes.resolution, { mandatoryIf: [PS] }),
185
- stepValue: MutableCluster.AsConditional(ClosureDimension.PositioningComponent.attributes.stepValue, { mandatoryIf: [PS] }),
186
- unit: MutableCluster.AsConditional(ClosureDimension.UnitComponent.attributes.unit, { mandatoryIf: [UT] }),
187
- unitRange: MutableCluster.AsConditional(ClosureDimension.UnitComponent.attributes.unitRange, { mandatoryIf: [UT] }),
188
- limitRange: MutableCluster.AsConditional(ClosureDimension.LimitationComponent.attributes.limitRange, { mandatoryIf: [LM] }),
189
- translationDirection: MutableCluster.AsConditional(ClosureDimension.TranslationComponent.attributes.translationDirection, { mandatoryIf: [TR] }),
190
- rotationAxis: MutableCluster.AsConditional(ClosureDimension.RotationComponent.attributes.rotationAxis, { mandatoryIf: [RO] }),
191
- overflow: MutableCluster.AsConditional(ClosureDimension.RotationComponent.attributes.overflow, { mandatoryIf: [RO] }),
192
- modulationType: MutableCluster.AsConditional(ClosureDimension.ModulationComponent.attributes.modulationType, { mandatoryIf: [MD] }),
193
- latchControlModes: MutableCluster.AsConditional(ClosureDimension.MotionLatchingComponent.attributes.latchControlModes, { mandatoryIf: [LT] }),
194
- },
195
- commands: {
196
- ...ClosureDimension.Base.commands,
197
- step: MutableCluster.AsConditional(ClosureDimension.PositioningComponent.commands.step, { mandatoryIf: [PS] }),
198
- },
199
- });
200
- })(ClosureDimension || (ClosureDimension = {}));
201
- export const ClosureDimensionCluster = ClosureDimension.Cluster;
202
- ClusterRegistry.register(ClosureDimension.Complete);
1
+ import { AttributeElement, ClusterElement, ClusterModel, CommandElement, DatatypeElement, FieldElement, Matter, MatterDefinition } from '@matter/main/model';
2
+ import { ClusterType } from '@matter/types/cluster';
3
+ export const ClosureDimensionDefinition = ClusterElement({
4
+ name: 'ClosureDimension',
5
+ id: 0x0105,
6
+ classification: 'application',
7
+ }, AttributeElement({ name: 'ClusterRevision', id: 0xfffd, type: 'ClusterRevision', default: 1 }), AttributeElement({ name: 'FeatureMap', id: 0xfffc, type: 'FeatureMap' }, FieldElement({ name: 'PS', conformance: 'O', constraint: '0', title: 'Positioning' }), FieldElement({ name: 'LT', conformance: 'O', constraint: '1', title: 'MotionLatching' }), FieldElement({ name: 'UT', conformance: '[PS]', constraint: '2', title: 'Unit' }), FieldElement({ name: 'LM', conformance: '[PS]', constraint: '3', title: 'Limitation' }), FieldElement({ name: 'SP', conformance: '[PS]', constraint: '4', title: 'Speed' }), FieldElement({ name: 'TR', conformance: '[PS]', constraint: '5', title: 'Translation' }), FieldElement({ name: 'RO', conformance: '[PS]', constraint: '6', title: 'Rotation' }), FieldElement({ name: 'MD', conformance: '[PS]', constraint: '7', title: 'Modulation' })), AttributeElement({ name: 'CurrentState', id: 0x0000, type: 'DimensionStateStruct', access: 'R V', conformance: 'M', default: null, quality: 'X' }), AttributeElement({ name: 'TargetState', id: 0x0001, type: 'DimensionStateStruct', access: 'R V', conformance: 'M', default: null, quality: 'X' }), AttributeElement({ name: 'Resolution', id: 0x0002, type: 'percent100ths', access: 'R V', conformance: 'PS', default: 1, quality: 'F' }), AttributeElement({ name: 'StepValue', id: 0x0003, type: 'percent100ths', access: 'R V', conformance: 'PS', default: 1, quality: 'F' }), AttributeElement({ name: 'Unit', id: 0x0004, type: 'ClosureUnitEnum', access: 'R V', conformance: 'UT', quality: 'F' }), AttributeElement({ name: 'UnitRange', id: 0x0005, type: 'UnitRangeStruct', access: 'R V', conformance: 'UT', default: null, quality: 'X' }), AttributeElement({ name: 'LimitRange', id: 0x0006, type: 'RangePercent100thsStruct', access: 'R V', conformance: 'LM' }), AttributeElement({ name: 'TranslationDirection', id: 0x0007, type: 'TranslationDirectionEnum', access: 'R V', conformance: 'TR', quality: 'F' }), AttributeElement({ name: 'RotationAxis', id: 0x0008, type: 'RotationAxisEnum', access: 'R V', conformance: 'RO', quality: 'F' }), AttributeElement({ name: 'Overflow', id: 0x0009, type: 'OverflowEnum', access: 'R V', conformance: 'RO', quality: 'F' }), AttributeElement({ name: 'ModulationType', id: 0x000a, type: 'ModulationTypeEnum', access: 'R V', conformance: 'MD', quality: 'F' }), AttributeElement({ name: 'LatchControlModes', id: 0x000b, type: 'LatchControlModesBitmap', access: 'R V', conformance: 'LT', quality: 'F' }), CommandElement({ name: 'SetTarget', id: 0x0000, access: 'O T', conformance: 'M', direction: 'request', response: 'status' }, FieldElement({ name: 'Position', id: 0x0, type: 'percent100ths', conformance: 'O' }), FieldElement({ name: 'Latch', id: 0x1, type: 'bool', conformance: 'O' }), FieldElement({ name: 'Speed', id: 0x2, type: 'ThreeLevelAutoEnum', conformance: 'O' })), CommandElement({ name: 'Step', id: 0x0001, access: 'O T', conformance: 'PS', direction: 'request', response: 'status' }, FieldElement({ name: 'Direction', id: 0x0, type: 'StepDirectionEnum', conformance: 'M' }), FieldElement({ name: 'NumberOfSteps', id: 0x1, type: 'uint16', conformance: 'M', constraint: 'min 1' }), FieldElement({ name: 'Speed', id: 0x2, type: 'ThreeLevelAutoEnum', conformance: 'O' })), DatatypeElement({ name: 'ClosureUnitEnum', type: 'enum8' }, FieldElement({ name: 'Millimeter', id: 0x0, conformance: 'M' }), FieldElement({ name: 'Degree', id: 0x1, conformance: 'M' })), DatatypeElement({ name: 'ModulationTypeEnum', type: 'enum8' }, FieldElement({ name: 'SlatsOrientation', id: 0x0, conformance: 'M' }), FieldElement({ name: 'SlatsOpenwork', id: 0x1, conformance: 'M' }), FieldElement({ name: 'StripesAlignment', id: 0x2, conformance: 'M' }), FieldElement({ name: 'Opacity', id: 0x3, conformance: 'M' }), FieldElement({ name: 'Ventilation', id: 0x4, conformance: 'M' })), DatatypeElement({ name: 'OverflowEnum', type: 'enum8' }, FieldElement({ name: 'NoOverflow', id: 0x0, conformance: 'M' }), FieldElement({ name: 'Inside', id: 0x1, conformance: 'M' }), FieldElement({ name: 'Outside', id: 0x2, conformance: 'M' }), FieldElement({ name: 'TopInside', id: 0x3, conformance: 'M' }), FieldElement({ name: 'TopOutside', id: 0x4, conformance: 'M' }), FieldElement({ name: 'BottomInside', id: 0x5, conformance: 'M' }), FieldElement({ name: 'BottomOutside', id: 0x6, conformance: 'M' }), FieldElement({ name: 'LeftInside', id: 0x7, conformance: 'M' }), FieldElement({ name: 'LeftOutside', id: 0x8, conformance: 'M' }), FieldElement({ name: 'RightInside', id: 0x9, conformance: 'M' }), FieldElement({ name: 'RightOutside', id: 0x0a, conformance: 'M' })), DatatypeElement({ name: 'RotationAxisEnum', type: 'enum8' }, FieldElement({ name: 'Left', id: 0x0, conformance: 'M' }), FieldElement({ name: 'CenteredVertical', id: 0x1, conformance: 'M' }), FieldElement({ name: 'LeftAndRight', id: 0x2, conformance: 'M' }), FieldElement({ name: 'Right', id: 0x3, conformance: 'M' }), FieldElement({ name: 'Top', id: 0x4, conformance: 'M' }), FieldElement({ name: 'CenteredHorizontal', id: 0x5, conformance: 'M' }), FieldElement({ name: 'TopAndBottom', id: 0x6, conformance: 'M' }), FieldElement({ name: 'Bottom', id: 0x7, conformance: 'M' }), FieldElement({ name: 'LeftBarrier', id: 0x8, conformance: 'M' }), FieldElement({ name: 'LeftAndRightBarriers', id: 0x9, conformance: 'M' }), FieldElement({ name: 'RightBarrier', id: 0x0a, conformance: 'M' })), DatatypeElement({ name: 'StepDirectionEnum', type: 'enum8' }, FieldElement({ name: 'Decrease', id: 0x0, conformance: 'M' }), FieldElement({ name: 'Increase', id: 0x1, conformance: 'M' })), DatatypeElement({ name: 'TranslationDirectionEnum', type: 'enum8' }, FieldElement({ name: 'Downward', id: 0x0, conformance: 'M' }), FieldElement({ name: 'Upward', id: 0x1, conformance: 'M' }), FieldElement({ name: 'VerticalMask', id: 0x2, conformance: 'M' }), FieldElement({ name: 'VerticalSymmetry', id: 0x3, conformance: 'M' }), FieldElement({ name: 'Leftward', id: 0x4, conformance: 'M' }), FieldElement({ name: 'Rightward', id: 0x5, conformance: 'M' }), FieldElement({ name: 'HorizontalMask', id: 0x6, conformance: 'M' }), FieldElement({ name: 'HorizontalSymmetry', id: 0x7, conformance: 'M' }), FieldElement({ name: 'Forward', id: 0x8, conformance: 'M' }), FieldElement({ name: 'Backward', id: 0x9, conformance: 'M' }), FieldElement({ name: 'DepthMask', id: 0x0a, conformance: 'M' }), FieldElement({ name: 'DepthSymmetry', id: 0x0b, conformance: 'M' })), DatatypeElement({ name: 'LatchControlModesBitmap', type: 'map8' }, FieldElement({ name: 'RemoteLatching', constraint: '0' }), FieldElement({ name: 'RemoteUnlatching', constraint: '1' })), DatatypeElement({ name: 'DimensionStateStruct', type: 'struct' }, FieldElement({ name: 'Position', id: 0x0, type: 'percent100ths', conformance: 'O', default: null, quality: 'X' }), FieldElement({ name: 'Latch', id: 0x1, type: 'bool', conformance: 'O', default: null, quality: 'X' }), FieldElement({ name: 'Speed', id: 0x2, type: 'ThreeLevelAutoEnum', conformance: 'O' })), DatatypeElement({ name: 'RangePercent100thsStruct', type: 'struct' }, FieldElement({ name: 'Min', id: 0x0, type: 'percent100ths', conformance: 'M' }), FieldElement({ name: 'Max', id: 0x1, type: 'percent100ths', conformance: 'M' })), DatatypeElement({ name: 'UnitRangeStruct', type: 'struct' }, FieldElement({ name: 'Min', id: 0x0, type: 'int16', conformance: 'M' }), FieldElement({ name: 'Max', id: 0x1, type: 'int16', conformance: 'M' })));
8
+ export const ClosureDimensionModel = new ClusterModel(ClosureDimensionDefinition);
9
+ if (!MatterDefinition.children.some((child) => child.id === ClosureDimensionDefinition.id)) {
10
+ MatterDefinition.children.push(ClosureDimensionDefinition);
11
+ }
12
+ if (Matter.clusters(ClosureDimensionModel.id) === undefined) {
13
+ Matter.children.push(ClosureDimensionModel);
14
+ }
15
+ export const ClosureDimension = ClusterType(ClosureDimensionModel);
@@ -1,3 +1 @@
1
- export * from './closure-control.js';
2
- export * from './closure-dimension.js';
3
- export * from './soil-measurement.js';
1
+ export {};
@@ -1,3 +1 @@
1
- export * from './closure-control.js';
2
- export * from './closure-dimension.js';
3
- export * from './soil-measurement.js';
1
+ export {};
@@ -1,34 +1,34 @@
1
- import { Identity } from '@matter/general';
2
- import { Attribute, FixedAttribute, MutableCluster } from '@matter/types/cluster';
1
+ import { ClusterElement, ClusterModel } from '@matter/main/model';
2
+ import { ClusterType, type ClusterTyping } from '@matter/types/cluster';
3
+ import { type ClusterId } from '@matter/types/datatype';
4
+ import { type MeasurementAccuracy } from '@matter/types/globals';
5
+ export declare const SoilMeasurementDefinition: ClusterElement;
6
+ export declare const SoilMeasurementModel: ClusterModel;
3
7
  export declare namespace SoilMeasurement {
4
- const ClusterInstance: MutableCluster<{
5
- readonly id: 1072;
6
- readonly name: "SoilMeasurement";
7
- readonly revision: 1;
8
- readonly attributes: {
9
- readonly soilMoistureMeasurementLimits: FixedAttribute<import("@matter/types/tlv").TypeFromFields<{
10
- measurementType: import("@matter/types/tlv").FieldType<import("@matter/types/globals").MeasurementType>;
11
- measured: import("@matter/types/tlv").FieldType<boolean>;
12
- minMeasuredValue: import("@matter/types/tlv").FieldType<number | bigint>;
13
- maxMeasuredValue: import("@matter/types/tlv").FieldType<number | bigint>;
14
- accuracyRanges: import("@matter/types/tlv").FieldType<import("@matter/types/tlv").TypeFromFields<{
15
- rangeMin: import("@matter/types/tlv").FieldType<number | bigint>;
16
- rangeMax: import("@matter/types/tlv").FieldType<number | bigint>;
17
- percentMax: import("@matter/types/tlv").OptionalFieldType<number>;
18
- percentMin: import("@matter/types/tlv").OptionalFieldType<number>;
19
- percentTypical: import("@matter/types/tlv").OptionalFieldType<number>;
20
- fixedMax: import("@matter/types/tlv").OptionalFieldType<number | bigint>;
21
- fixedMin: import("@matter/types/tlv").OptionalFieldType<number | bigint>;
22
- fixedTypical: import("@matter/types/tlv").OptionalFieldType<number | bigint>;
23
- }>[]>;
24
- }>, any>;
25
- readonly soilMoistureMeasuredValue: Attribute<number | null, any>;
26
- };
27
- }, []>;
28
- interface Cluster extends Identity<typeof ClusterInstance> {
8
+ interface BaseAttributes {
9
+ soilMoistureMeasurementLimits: MeasurementAccuracy;
10
+ soilMoistureMeasuredValue: number | null;
11
+ }
12
+ interface Attributes {
13
+ soilMoistureMeasurementLimits: MeasurementAccuracy;
14
+ soilMoistureMeasuredValue: number | null;
15
+ }
16
+ type Components = [{
17
+ flags: {};
18
+ attributes: BaseAttributes;
19
+ }];
20
+ interface Typing extends ClusterTyping {
21
+ Attributes: Attributes;
22
+ Components: Components;
29
23
  }
30
- const Cluster: Cluster;
31
- const Complete: Cluster;
32
24
  }
33
- export type SoilMeasurementCluster = SoilMeasurement.Cluster;
34
- export declare const SoilMeasurementCluster: SoilMeasurement.Cluster;
25
+ export declare const SoilMeasurement: ClusterType.Concrete & {
26
+ readonly id: ClusterId & 1072;
27
+ readonly name: "SoilMeasurement";
28
+ readonly revision: 1;
29
+ readonly schema: ClusterModel;
30
+ readonly attributes: ClusterType.AttributeObjects<SoilMeasurement.Attributes>;
31
+ readonly Typing: SoilMeasurement.Typing;
32
+ readonly Cluster: typeof SoilMeasurement;
33
+ readonly Complete: typeof SoilMeasurement;
34
+ };
@@ -1,19 +1,29 @@
1
- import { Attribute, ClusterRegistry, FixedAttribute, MutableCluster } from '@matter/types/cluster';
2
- import { TlvMeasurementAccuracy } from '@matter/types/globals';
3
- import { TlvNullable, TlvPercent } from '@matter/types/tlv';
4
- export var SoilMeasurement;
5
- (function (SoilMeasurement) {
6
- SoilMeasurement.ClusterInstance = MutableCluster({
7
- id: 0x0430,
8
- name: 'SoilMeasurement',
9
- revision: 1,
10
- attributes: {
11
- soilMoistureMeasurementLimits: FixedAttribute(0x0, TlvMeasurementAccuracy),
12
- soilMoistureMeasuredValue: Attribute(0x1, TlvNullable(TlvPercent)),
13
- },
14
- });
15
- SoilMeasurement.Cluster = SoilMeasurement.ClusterInstance;
16
- SoilMeasurement.Complete = SoilMeasurement.Cluster;
17
- })(SoilMeasurement || (SoilMeasurement = {}));
18
- export const SoilMeasurementCluster = SoilMeasurement.Cluster;
19
- ClusterRegistry.register(SoilMeasurement.Complete);
1
+ import { AttributeElement, ClusterElement, ClusterModel, Matter, MatterDefinition } from '@matter/main/model';
2
+ import { ClusterType } from '@matter/types/cluster';
3
+ export const SoilMeasurementDefinition = ClusterElement({
4
+ name: 'SoilMeasurement',
5
+ id: 0x0430,
6
+ classification: 'application',
7
+ }, AttributeElement({ name: 'ClusterRevision', id: 0xfffd, type: 'ClusterRevision', default: 1 }), AttributeElement({ name: 'FeatureMap', id: 0xfffc, type: 'FeatureMap' }), AttributeElement({
8
+ name: 'SoilMoistureMeasurementLimits',
9
+ id: 0x0000,
10
+ type: 'MeasurementAccuracyStruct',
11
+ access: 'R V',
12
+ conformance: 'M',
13
+ }), AttributeElement({
14
+ name: 'SoilMoistureMeasuredValue',
15
+ id: 0x0001,
16
+ type: 'percent',
17
+ access: 'R V',
18
+ conformance: 'M',
19
+ quality: 'X',
20
+ default: null,
21
+ }));
22
+ export const SoilMeasurementModel = new ClusterModel(SoilMeasurementDefinition);
23
+ if (!MatterDefinition.children.some((child) => child.id === SoilMeasurementDefinition.id)) {
24
+ MatterDefinition.children.push(SoilMeasurementDefinition);
25
+ }
26
+ if (Matter.clusters(SoilMeasurementModel.id) === undefined) {
27
+ Matter.children.push(SoilMeasurementModel);
28
+ }
29
+ export const SoilMeasurement = ClusterType(SoilMeasurementModel);