@@ -155,6 +155,20 @@ class SEDimmingCurve(t.enum8):
155
155
Exponential = 2 # Not supported in current FW, but defined in the spec
156
156
157
157
158
+ class SESunProtectionStatus (t .bitmap8 ):
159
+ """Window covering protetion status."""
160
+
161
+ NotActive = 0
162
+ Active = 1
163
+
164
+
165
+ class SESunProtectionSensor (t .bitmap8 ):
166
+ """Window covering protetion status."""
167
+
168
+ NotConnected = 0
169
+ Connected = 1
170
+
171
+
158
172
class SEBallast (CustomCluster , Ballast ):
159
173
"""Schneider Electric Ballast cluster."""
160
174
@@ -180,49 +194,85 @@ class SEWindowCovering(CustomCluster, WindowCovering):
180
194
class AttributeDefs (WindowCovering .AttributeDefs ):
181
195
"""Attribute definitions."""
182
196
183
- unknown_attribute_65533 : Final = ZCLAttributeDef (
184
- id = 0xFFFD ,
185
- type = t .uint16_t ,
186
- is_manufacturer_specific = True ,
187
- )
188
- lift_duration : Final = ZCLAttributeDef (
197
+ # Obsolete, use se_lift_drive_up_time and se_lift_drive_down_time instead.
198
+ se_lift_duration : Final = ZCLAttributeDef (
189
199
id = 0xE000 ,
190
200
type = t .uint16_t ,
201
+ access = "rw" ,
191
202
is_manufacturer_specific = True ,
192
203
)
193
- unknown_attribute_57360 : Final = ZCLAttributeDef (
204
+ se_sun_protection_status : Final = ZCLAttributeDef (
194
205
id = 0xE010 ,
195
- type = t .bitmap8 ,
206
+ type = SESunProtectionStatus ,
207
+ access = "r" ,
196
208
is_manufacturer_specific = True ,
197
209
)
198
- unknown_attribute_57362 : Final = ZCLAttributeDef (
210
+ # SunProtectionIlluminanceThreshold = 10,000 x log10 Illuminance.
211
+ # Where 1 lx <= Illuminance <=3.576 Mlx, corresponding to a SunProtectionIlluminanceThreshold in the range 0 to 0xfffe.
212
+ # A value of 0xffff indicates that this attribute is not valid.
213
+ se_sun_protection_illuminance_thershold : Final = ZCLAttributeDef (
199
214
id = 0xE012 ,
200
215
type = t .uint16_t ,
216
+ access = "rw" ,
201
217
is_manufacturer_specific = True ,
202
218
)
203
- unknown_attribute_57363 : Final = ZCLAttributeDef (
219
+ se_sun_protection_sensor : Final = ZCLAttributeDef (
204
220
id = 0xE013 ,
205
- type = t .bitmap8 ,
221
+ type = SESunProtectionSensor ,
222
+ access = "rw" ,
206
223
is_manufacturer_specific = True ,
207
224
)
208
- unknown_attribute_57364 : Final = ZCLAttributeDef (
225
+ # Driving time from fully close to fully open state in 1/10 seconds
226
+ se_lift_drive_up_time : Final = ZCLAttributeDef (
209
227
id = 0xE014 ,
210
228
type = t .uint16_t ,
229
+ access = "rw" ,
211
230
is_manufacturer_specific = True ,
212
231
)
213
- unknown_attribute_57365 : Final = ZCLAttributeDef (
232
+ # Driving time from fully open to fully close state in 1/10 seconds
233
+ se_lift_drive_down_time : Final = ZCLAttributeDef (
214
234
id = 0xE015 ,
215
235
type = t .uint16_t ,
236
+ access = "rw" ,
216
237
is_manufacturer_specific = True ,
217
238
)
218
- unknown_attribute_57366 : Final = ZCLAttributeDef (
239
+ # Time from fully open to fully close tilt position in 1/100 seconds.
240
+ # This time is also taken as base for calculation of step size in Schneider manufacture specific command StopOrStepLiftPercentage.
241
+ # If set to 0, WindosCoveringType attribute is automatically set to 0 (lift only).
242
+ se_tilt_open_close_and_step_time : Final = ZCLAttributeDef (
219
243
id = 0xE016 ,
220
244
type = t .uint16_t ,
245
+ access = "rw" ,
221
246
is_manufacturer_specific = True ,
222
247
)
223
- unknown_attribute_57367 : Final = ZCLAttributeDef (
248
+ # Tilt position in percent adopted by tilt after receiving go to lift percentage command.
249
+ # Values 0-100 are absolute position of tilt with following meaning:
250
+ # 100: Position of tilt when shutter is moving up (usually up).
251
+ # 0: Position of tilt when shutter is moving down (usually down).
252
+ # 255: No action after command.
253
+ # 101-254: Tilt position before movement is restored.
254
+ se_tilt_position_percentage_after_move_to_level : Final = ZCLAttributeDef (
224
255
id = 0xE017 ,
225
256
type = t .uint8_t ,
257
+ access = "rw" ,
258
+ is_manufacturer_specific = True ,
259
+ )
260
+ se_cluster_revision : Final = ZCLAttributeDef (
261
+ id = 0xFFFD ,
262
+ type = t .uint16_t ,
263
+ access = "r" ,
264
+ is_manufacturer_specific = True ,
265
+ )
266
+
267
+ class ServerCommandDefs (WindowCovering .ServerCommandDefs ):
268
+ """Server command definitions."""
269
+
270
+ se_stop_or_step_lift_percentage : Final = foundation .ZCLCommandDef (
271
+ id = 0x80 ,
272
+ schema = {
273
+ "direction" : t .uint8_t ,
274
+ "step_value" : t .uint8_t ,
275
+ },
226
276
is_manufacturer_specific = True ,
227
277
)
228
278
@@ -305,11 +355,11 @@ class SESwitchAction(t.enum8):
305
355
NotUsed = 0x7F
306
356
307
357
308
- class SESpecific (CustomCluster ):
309
- """Schneider Electric manufacturer specific cluster."""
358
+ class SESwitchConfiguration (CustomCluster ):
359
+ """Schneider Electric manufacturer specific switch configuration cluster."""
310
360
311
- name = "Schneider Electric Manufacturer Specific"
312
- ep_attribute = "schneider_electric_manufacturer "
361
+ name = "Schneider Electric Manufacturer Specific Switch Configuration "
362
+ ep_attribute = "switch_configuration "
313
363
cluster_id = 0xFF17
314
364
315
365
class AttributeDefs (BaseAttributeDefs ):
0 commit comments