File tree 2 files changed +38
-0
lines changed
2 files changed +38
-0
lines changed Original file line number Diff line number Diff line change 9
9
ColorFeaturePut ,
10
10
ColorPoint ,
11
11
ColorTemperatureFeaturePut ,
12
+ DeltaAction ,
12
13
DimmingFeaturePut ,
14
+ DimmingDeltaFeaturePut ,
13
15
DynamicsFeaturePut ,
14
16
OnFeature ,
15
17
)
@@ -142,6 +144,23 @@ async def set_state(
142
144
143
145
await self .update (id , update_obj )
144
146
147
+ async def set_dimming_delta (
148
+ self , id : str , brightness_delta : float | None = None
149
+ ) -> None :
150
+ """
151
+ Set brightness_delta value and action via DimmingDeltaFeature.
152
+
153
+ The action to be send depends on brightness_delta value:
154
+ > 0: UP,
155
+ < 0: DOWN,
156
+ else: STOP (this immediately stops any dimming transition)
157
+ """
158
+ if brightness_delta is not None :
159
+ update_obj = GroupedLightPut ()
160
+ action = DeltaAction .DOWN if brightness_delta < 0 else DeltaAction .UP if brightness_delta > 0 else DeltaAction .STOP
161
+ update_obj .dimming_delta = DimmingDeltaFeaturePut (action = action , brightness_delta = brightness_delta )
162
+ await self .update (id , update_obj )
163
+
145
164
146
165
class GroupsController (GroupedControllerBase [Union [Room , Zone , GroupedLight ]]): # noqa: UP007
147
166
"""Controller grouping resources of both room and zone."""
Original file line number Diff line number Diff line change 6
6
ColorFeaturePut ,
7
7
ColorPoint ,
8
8
ColorTemperatureFeaturePut ,
9
+ DeltaAction ,
9
10
DimmingFeaturePut ,
11
+ DimmingDeltaFeaturePut ,
10
12
DynamicsFeaturePut ,
11
13
EffectsFeaturePut ,
12
14
EffectStatus ,
@@ -100,3 +102,20 @@ async def set_state(
100
102
elif effect is not None :
101
103
update_obj .effects = EffectsFeaturePut (effect = effect )
102
104
await self .update (id , update_obj )
105
+
106
+ async def set_dimming_delta (
107
+ self , id : str , brightness_delta : float | None = None
108
+ ) -> None :
109
+ """
110
+ Set brightness_delta value and action via DimmingDeltaFeature.
111
+
112
+ The action to be send depends on brightness_delta value:
113
+ > 0: UP,
114
+ < 0: DOWN,
115
+ else: STOP (this immediately stops any dimming transition)
116
+ """
117
+ if brightness_delta is not None :
118
+ update_obj = LightPut ()
119
+ action = DeltaAction .DOWN if brightness_delta < 0 else DeltaAction .UP if brightness_delta > 0 else DeltaAction .STOP
120
+ update_obj .dimming_delta = DimmingDeltaFeaturePut (action = action , brightness_delta = brightness_delta )
121
+ await self .update (id , update_obj )
You can’t perform that action at this time.
0 commit comments