File tree 2 files changed +50
-0
lines changed
2 files changed +50
-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,29 @@ 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
+ None: STOP (this immediately stops any dimming transition)
155
+ > 0: UP,
156
+ < 0: DOWN
157
+ """
158
+ if brightness_delta in (None , 0 ):
159
+ dimming_delta = DimmingDeltaFeaturePut (action = DeltaAction .STOP )
160
+ else :
161
+ dimming_delta = DimmingDeltaFeaturePut (
162
+ action = DeltaAction .UP if brightness_delta > 0 else DeltaAction .DOWN ,
163
+ brightness_delta = abs (brightness_delta ),
164
+ )
165
+
166
+ update_obj = GroupedLightPut ()
167
+ update_obj .dimming_delta = dimming_delta
168
+ await self .update (id , update_obj )
169
+
145
170
146
171
class GroupsController (GroupedControllerBase [Union [Room , Zone , GroupedLight ]]): # noqa: UP007
147
172
"""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,26 @@ 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
+ None: STOP (this immediately stops any dimming transition)
114
+ > 0: UP,
115
+ < 0: DOWN
116
+ """
117
+ if brightness_delta in (None , 0 ):
118
+ dimming_delta = DimmingDeltaFeaturePut (action = DeltaAction .STOP )
119
+ else :
120
+ dimming_delta = DimmingDeltaFeaturePut (
121
+ action = DeltaAction .UP if brightness_delta > 0 else DeltaAction .DOWN ,
122
+ brightness_delta = abs (brightness_delta ),
123
+ )
124
+
125
+ update_obj = LightPut ()
126
+ update_obj .dimming_delta = dimming_delta
127
+ await self .update (id , update_obj )
You can’t perform that action at this time.
0 commit comments