File tree 2 files changed +54
-0
lines changed
2 files changed +54
-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,31 @@ 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 is None :
159
+ dimming_delta = DimmingDeltaFeaturePut (
160
+ action = DeltaAction .STOP
161
+ )
162
+ else :
163
+ dimming_delta = DimmingDeltaFeaturePut (
164
+ action = DeltaAction .UP if brightness_delta > 0 else DeltaAction .Down ,
165
+ brightness_delta = abs (brightness_delta )
166
+ )
167
+
168
+ update_obj = GroupedLightPut ()
169
+ update_obj .dimming_delta = dimming_delta
170
+ await self .update (id , update_obj )
171
+
145
172
146
173
class GroupsController (GroupedControllerBase [Union [Room , Zone , GroupedLight ]]): # noqa: UP007
147
174
"""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,28 @@ 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 is None :
118
+ dimming_delta = DimmingDeltaFeaturePut (
119
+ action = DeltaAction .STOP
120
+ )
121
+ else :
122
+ dimming_delta = DimmingDeltaFeaturePut (
123
+ action = DeltaAction .UP if brightness_delta > 0 else DeltaAction .Down ,
124
+ brightness_delta = abs (brightness_delta )
125
+ )
126
+
127
+ update_obj = LightPut ()
128
+ update_obj .dimming_delta = dimming_delta
129
+ await self .update (id , update_obj )
You can’t perform that action at this time.
0 commit comments