@@ -6642,6 +6642,155 @@ cluster ClosureControl = 260 {
6642
6642
command CancelFallback(): DefaultSuccess = 4;
6643
6643
}
6644
6644
6645
+ /** Ceiling values are dedicated for closures that close a ceiling, such as horizontal awnings, pergolas, etc. */
6646
+ provisional cluster ClosureDimension = 261 {
6647
+ revision 1;
6648
+
6649
+ enum ClosureUnitEnum : enum8 {
6650
+ kMillimeter = 0;
6651
+ kDegree = 1;
6652
+ }
6653
+
6654
+ enum LatchingEnum : enum8 {
6655
+ kLatchedAndSecured = 0;
6656
+ kLatchedButNotSecured = 1;
6657
+ kNotLatched = 2;
6658
+ }
6659
+
6660
+ enum ModulationTypeEnum : enum8 {
6661
+ kSlatsOrientation = 0;
6662
+ kSlatsOpenwork = 1;
6663
+ kStripesAlignment = 2;
6664
+ kOpacity = 3;
6665
+ kVentilation = 4;
6666
+ }
6667
+
6668
+ enum OverflowEnum : enum8 {
6669
+ kNoOverflow = 0;
6670
+ kInside = 1;
6671
+ kOutside = 2;
6672
+ kTopInside = 3;
6673
+ kTopOutside = 4;
6674
+ kBottomInside = 5;
6675
+ kBottomOutside = 6;
6676
+ kLeftInside = 7;
6677
+ kLeftOutside = 8;
6678
+ kRightInside = 9;
6679
+ kRightOutside = 10;
6680
+ }
6681
+
6682
+ enum RotationAxisEnum : enum8 {
6683
+ kLeft = 0;
6684
+ kCenteredVertical = 1;
6685
+ kLeftAndRight = 2;
6686
+ kRight = 3;
6687
+ kTop = 4;
6688
+ kCenteredHorizontal = 5;
6689
+ kTopAndBottom = 6;
6690
+ kBottom = 7;
6691
+ kLeftBarrier = 8;
6692
+ kLeftAndRightBarriers = 9;
6693
+ kRightBarrier = 10;
6694
+ }
6695
+
6696
+ enum StepDirectionEnum : enum8 {
6697
+ kDecrease = 0;
6698
+ kIncrease = 1;
6699
+ }
6700
+
6701
+ enum TargetLatchEnum : enum8 {
6702
+ kLatch = 0;
6703
+ kUnlatch = 1;
6704
+ }
6705
+
6706
+ enum TranslationDirectionEnum : enum8 {
6707
+ kDownward = 0;
6708
+ kUpward = 1;
6709
+ kVerticalMask = 2;
6710
+ kVerticalSymmetry = 3;
6711
+ kLeftward = 4;
6712
+ kRightward = 5;
6713
+ kHorizontalMask = 6;
6714
+ kHorizontalSymmetry = 7;
6715
+ kForward = 8;
6716
+ kBackward = 9;
6717
+ kDepthMask = 10;
6718
+ kDepthSymmetry = 11;
6719
+ kCeilingSimple = 12;
6720
+ kCeilingMask = 13;
6721
+ kCeilingSidedSymmetry = 14;
6722
+ kCeilingCenteredSymmetry = 15;
6723
+ }
6724
+
6725
+ bitmap Feature : bitmap32 {
6726
+ kPositioning = 0x1;
6727
+ kMotionLatching = 0x2;
6728
+ kUnit = 0x4;
6729
+ kLimitation = 0x8;
6730
+ kSpeed = 0x10;
6731
+ kTranslation = 0x20;
6732
+ kRotation = 0x40;
6733
+ kModulation = 0x80;
6734
+ }
6735
+
6736
+ struct CurrentStruct {
6737
+ optional percent100ths position = 0;
6738
+ optional LatchingEnum latching = 1;
6739
+ optional ThreeLevelAutoEnum speed = 2;
6740
+ }
6741
+
6742
+ struct RangePercent100thsStruct {
6743
+ percent100ths min = 0;
6744
+ percent100ths max = 1;
6745
+ }
6746
+
6747
+ struct TargetStruct {
6748
+ optional percent100ths position = 0;
6749
+ optional TargetLatchEnum latch = 1;
6750
+ optional ThreeLevelAutoEnum speed = 2;
6751
+ }
6752
+
6753
+ struct UnitRangeStruct {
6754
+ int16s min = 0;
6755
+ int16s max = 1;
6756
+ }
6757
+
6758
+ readonly attribute nullable CurrentStruct current = 0;
6759
+ readonly attribute nullable TargetStruct target = 1;
6760
+ readonly attribute optional percent100ths resolution = 2;
6761
+ readonly attribute optional percent100ths stepValue = 3;
6762
+ readonly attribute optional ClosureUnitEnum unit = 4;
6763
+ readonly attribute optional nullable UnitRangeStruct unitRange = 5;
6764
+ readonly attribute optional RangePercent100thsStruct limitRange = 6;
6765
+ readonly attribute optional TranslationDirectionEnum translationDirection = 7;
6766
+ readonly attribute optional RotationAxisEnum rotationAxis = 8;
6767
+ readonly attribute optional OverflowEnum overflow = 9;
6768
+ readonly attribute optional ModulationTypeEnum modulationType = 10;
6769
+ readonly attribute command_id generatedCommandList[] = 65528;
6770
+ readonly attribute command_id acceptedCommandList[] = 65529;
6771
+ readonly attribute event_id eventList[] = 65530;
6772
+ readonly attribute attrib_id attributeList[] = 65531;
6773
+ readonly attribute bitmap32 featureMap = 65532;
6774
+ readonly attribute int16u clusterRevision = 65533;
6775
+
6776
+ request struct SetTargetRequest {
6777
+ optional percent100ths position = 0;
6778
+ optional TargetLatchEnum latch = 1;
6779
+ optional ThreeLevelAutoEnum speed = 2;
6780
+ }
6781
+
6782
+ request struct StepRequest {
6783
+ StepDirectionEnum direction = 0;
6784
+ int16u numberOfSteps = 1;
6785
+ optional ThreeLevelAutoEnum speed = 2;
6786
+ }
6787
+
6788
+ /** Upon receipt, this SHALL move the product's dimension in the most fitting state following the data as follows: */
6789
+ command SetTarget(SetTargetRequest): DefaultSuccess = 0;
6790
+ /** Upon receipt, this SHALL update the Target.Position attribute value e.g. by sending multiple commands with short step by step or a single command with multiple steps. */
6791
+ command Step(StepRequest): DefaultSuccess = 1;
6792
+ }
6793
+
6645
6794
/** The Service Area cluster provides an interface for controlling the areas where a device should operate, and for querying the current area being serviced. */
6646
6795
provisional cluster ServiceArea = 336 {
6647
6796
revision 1;
0 commit comments