@@ -155,6 +155,20 @@ class SEDimmingCurve(t.enum8):
155155 Exponential = 2 # Not supported in current FW, but defined in the spec
156156
157157
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+
158172class SEBallast (CustomCluster , Ballast ):
159173 """Schneider Electric Ballast cluster."""
160174
@@ -180,49 +194,85 @@ class SEWindowCovering(CustomCluster, WindowCovering):
180194 class AttributeDefs (WindowCovering .AttributeDefs ):
181195 """Attribute definitions."""
182196
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 (
189199 id = 0xE000 ,
190200 type = t .uint16_t ,
201+ access = "rw" ,
191202 is_manufacturer_specific = True ,
192203 )
193- unknown_attribute_57360 : Final = ZCLAttributeDef (
204+ se_sun_protection_status : Final = ZCLAttributeDef (
194205 id = 0xE010 ,
195- type = t .bitmap8 ,
206+ type = SESunProtectionStatus ,
207+ access = "r" ,
196208 is_manufacturer_specific = True ,
197209 )
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 (
199214 id = 0xE012 ,
200215 type = t .uint16_t ,
216+ access = "rw" ,
201217 is_manufacturer_specific = True ,
202218 )
203- unknown_attribute_57363 : Final = ZCLAttributeDef (
219+ se_sun_protection_sensor : Final = ZCLAttributeDef (
204220 id = 0xE013 ,
205- type = t .bitmap8 ,
221+ type = SESunProtectionSensor ,
222+ access = "rw" ,
206223 is_manufacturer_specific = True ,
207224 )
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 (
209227 id = 0xE014 ,
210228 type = t .uint16_t ,
229+ access = "rw" ,
211230 is_manufacturer_specific = True ,
212231 )
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 (
214234 id = 0xE015 ,
215235 type = t .uint16_t ,
236+ access = "rw" ,
216237 is_manufacturer_specific = True ,
217238 )
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 (
219243 id = 0xE016 ,
220244 type = t .uint16_t ,
245+ access = "rw" ,
221246 is_manufacturer_specific = True ,
222247 )
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 (
224255 id = 0xE017 ,
225256 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+ },
226276 is_manufacturer_specific = True ,
227277 )
228278
@@ -305,11 +355,11 @@ class SESwitchAction(t.enum8):
305355 NotUsed = 0x7F
306356
307357
308- class SESpecific (CustomCluster ):
309- """Schneider Electric manufacturer specific cluster."""
358+ class SESwitchConfiguration (CustomCluster ):
359+ """Schneider Electric manufacturer specific switch configuration cluster."""
310360
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 "
313363 cluster_id = 0xFF17
314364
315365 class AttributeDefs (BaseAttributeDefs ):
0 commit comments