@@ -490,6 +490,131 @@ cluster OnOff = 6 {
490
490
command OnWithTimedOff(OnWithTimedOffRequest): DefaultSuccess = 66;
491
491
}
492
492
493
+ /** Attributes and commands for controlling devices that can be set to a level between fully 'On' and fully 'Off.' */
494
+ cluster LevelControl = 8 {
495
+ revision 6;
496
+
497
+ enum MoveModeEnum : enum8 {
498
+ kUp = 0;
499
+ kDown = 1;
500
+ }
501
+
502
+ enum StepModeEnum : enum8 {
503
+ kUp = 0;
504
+ kDown = 1;
505
+ }
506
+
507
+ bitmap Feature : bitmap32 {
508
+ kOnOff = 0x1;
509
+ kLighting = 0x2;
510
+ kFrequency = 0x4;
511
+ }
512
+
513
+ bitmap OptionsBitmap : bitmap8 {
514
+ kExecuteIfOff = 0x1;
515
+ kCoupleColorTempToLevel = 0x2;
516
+ }
517
+
518
+ readonly attribute nullable int8u currentLevel = 0;
519
+ readonly attribute optional int16u remainingTime = 1;
520
+ readonly attribute optional int8u minLevel = 2;
521
+ readonly attribute optional int8u maxLevel = 3;
522
+ readonly attribute optional int16u currentFrequency = 4;
523
+ readonly attribute optional int16u minFrequency = 5;
524
+ readonly attribute optional int16u maxFrequency = 6;
525
+ attribute OptionsBitmap options = 15;
526
+ attribute optional int16u onOffTransitionTime = 16;
527
+ attribute nullable int8u onLevel = 17;
528
+ attribute optional nullable int16u onTransitionTime = 18;
529
+ attribute optional nullable int16u offTransitionTime = 19;
530
+ attribute optional nullable int8u defaultMoveRate = 20;
531
+ attribute access(write: manage) optional nullable int8u startUpCurrentLevel = 16384;
532
+ readonly attribute command_id generatedCommandList[] = 65528;
533
+ readonly attribute command_id acceptedCommandList[] = 65529;
534
+ readonly attribute event_id eventList[] = 65530;
535
+ readonly attribute attrib_id attributeList[] = 65531;
536
+ readonly attribute bitmap32 featureMap = 65532;
537
+ readonly attribute int16u clusterRevision = 65533;
538
+
539
+ request struct MoveToLevelRequest {
540
+ int8u level = 0;
541
+ nullable int16u transitionTime = 1;
542
+ OptionsBitmap optionsMask = 2;
543
+ OptionsBitmap optionsOverride = 3;
544
+ }
545
+
546
+ request struct MoveRequest {
547
+ MoveModeEnum moveMode = 0;
548
+ nullable int8u rate = 1;
549
+ OptionsBitmap optionsMask = 2;
550
+ OptionsBitmap optionsOverride = 3;
551
+ }
552
+
553
+ request struct StepRequest {
554
+ StepModeEnum stepMode = 0;
555
+ int8u stepSize = 1;
556
+ nullable int16u transitionTime = 2;
557
+ OptionsBitmap optionsMask = 3;
558
+ OptionsBitmap optionsOverride = 4;
559
+ }
560
+
561
+ request struct StopRequest {
562
+ OptionsBitmap optionsMask = 0;
563
+ OptionsBitmap optionsOverride = 1;
564
+ }
565
+
566
+ request struct MoveToLevelWithOnOffRequest {
567
+ int8u level = 0;
568
+ nullable int16u transitionTime = 1;
569
+ OptionsBitmap optionsMask = 2;
570
+ OptionsBitmap optionsOverride = 3;
571
+ }
572
+
573
+ request struct MoveWithOnOffRequest {
574
+ MoveModeEnum moveMode = 0;
575
+ nullable int8u rate = 1;
576
+ OptionsBitmap optionsMask = 2;
577
+ OptionsBitmap optionsOverride = 3;
578
+ }
579
+
580
+ request struct StepWithOnOffRequest {
581
+ StepModeEnum stepMode = 0;
582
+ int8u stepSize = 1;
583
+ nullable int16u transitionTime = 2;
584
+ OptionsBitmap optionsMask = 3;
585
+ OptionsBitmap optionsOverride = 4;
586
+ }
587
+
588
+ request struct StopWithOnOffRequest {
589
+ OptionsBitmap optionsMask = 0;
590
+ OptionsBitmap optionsOverride = 1;
591
+ }
592
+
593
+ request struct MoveToClosestFrequencyRequest {
594
+ int16u frequency = 0;
595
+ }
596
+
597
+ /** Command description for MoveToLevel */
598
+ command MoveToLevel(MoveToLevelRequest): DefaultSuccess = 0;
599
+ /** Command description for Move */
600
+ command Move(MoveRequest): DefaultSuccess = 1;
601
+ /** Command description for Step */
602
+ command Step(StepRequest): DefaultSuccess = 2;
603
+ /** Command description for Stop */
604
+ command Stop(StopRequest): DefaultSuccess = 3;
605
+ /** Command description for MoveToLevelWithOnOff */
606
+ command MoveToLevelWithOnOff(MoveToLevelWithOnOffRequest): DefaultSuccess = 4;
607
+ /** Command description for MoveWithOnOff */
608
+ command MoveWithOnOff(MoveWithOnOffRequest): DefaultSuccess = 5;
609
+ /** Command description for StepWithOnOff */
610
+ command StepWithOnOff(StepWithOnOffRequest): DefaultSuccess = 6;
611
+ /** Command description for StopWithOnOff */
612
+ command StopWithOnOff(StopWithOnOffRequest): DefaultSuccess = 7;
613
+ /** Change the currrent frequency to the provided one, or a close
614
+ approximation if the exact provided one is not possible. */
615
+ command MoveToClosestFrequency(MoveToClosestFrequencyRequest): DefaultSuccess = 8;
616
+ }
617
+
493
618
/** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */
494
619
cluster Descriptor = 29 {
495
620
revision 2;
@@ -3158,10 +3283,11 @@ endpoint 0 {
3158
3283
}
3159
3284
}
3160
3285
endpoint 1 {
3161
- device type ma_onofflightswitch = 259 , version 1;
3286
+ device type ma_dimmerswitch = 260 , version 1;
3162
3287
3163
3288
binding cluster Identify;
3164
3289
binding cluster OnOff;
3290
+ binding cluster LevelControl;
3165
3291
binding cluster ScenesManagement;
3166
3292
binding cluster ColorControl;
3167
3293
0 commit comments