@@ -70,7 +70,7 @@ bool MatterWindowCovering::begin(uint8_t liftPercent, uint8_t tiltPercent, Windo
7070 if (feature::lift::add (window_covering_cluster, &lift_config) != ESP_OK) {
7171 log_e (" Failed to add Lift feature" );
7272 }
73-
73+
7474 // Add Position Aware Lift feature
7575 feature::position_aware_lift::config_t position_aware_lift_config;
7676 position_aware_lift_config.current_position_lift_percentage = nullable<uint8_t >(0 );
@@ -79,7 +79,7 @@ bool MatterWindowCovering::begin(uint8_t liftPercent, uint8_t tiltPercent, Windo
7979 if (feature::position_aware_lift::add (window_covering_cluster, &position_aware_lift_config) != ESP_OK) {
8080 log_e (" Failed to add Position Aware Lift feature" );
8181 }
82-
82+
8383 // Add Tilt feature if the covering type supports it
8484 bool supportsTilt = (coveringType == SHUTTER || coveringType == BLIND_TILT_ONLY || coveringType == BLIND_LIFT_AND_TILT);
8585 if (supportsTilt) {
@@ -88,7 +88,7 @@ bool MatterWindowCovering::begin(uint8_t liftPercent, uint8_t tiltPercent, Windo
8888 if (feature::tilt::add (window_covering_cluster, &tilt_config) != ESP_OK) {
8989 log_e (" Failed to add Tilt feature" );
9090 }
91-
91+
9292 // Add Position Aware Tilt feature
9393 feature::position_aware_tilt::config_t position_aware_tilt_config;
9494 position_aware_tilt_config.current_position_tilt_percentage = nullable<uint8_t >(0 );
@@ -98,7 +98,7 @@ bool MatterWindowCovering::begin(uint8_t liftPercent, uint8_t tiltPercent, Windo
9898 log_e (" Failed to add Position Aware Tilt feature" );
9999 }
100100 }
101-
101+
102102 // Add Absolute Position feature (creates InstalledOpenLimitLift/ClosedLimitLift/Tilt attributes)
103103 // Must be added AFTER all lift and tilt features for all attributes to be created
104104 feature::absolute_position::config_t absolute_position_config;
@@ -109,7 +109,7 @@ bool MatterWindowCovering::begin(uint8_t liftPercent, uint8_t tiltPercent, Windo
109109 if (feature::absolute_position::add (window_covering_cluster, &absolute_position_config) != ESP_OK) {
110110 log_e (" Failed to add Absolute Position feature" );
111111 }
112-
112+
113113 // Create Window Covering commands
114114 create_up_or_open (window_covering_cluster);
115115 create_down_or_close (window_covering_cluster);
@@ -153,7 +153,8 @@ bool MatterWindowCovering::attributeChangeCB(uint16_t endpoint_id, uint32_t clus
153153 if (endpoint_id == getEndPointId () && cluster_id == WindowCovering::Id) {
154154 switch (attribute_id) {
155155 // Current position attributes (read-only to external Matter controllers; updated internally by device)
156- case WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id: {
156+ case WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id:
157+ {
157158 uint16_t liftPercent100ths = val->val .u16 ;
158159 uint8_t liftPercent = (uint8_t )(liftPercent100ths / 100 );
159160 log_d (" Window Covering Lift Percentage changed to %d%%" , liftPercent);
@@ -167,7 +168,8 @@ bool MatterWindowCovering::attributeChangeCB(uint16_t endpoint_id, uint32_t clus
167168 }
168169 break ;
169170 }
170- case WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id: {
171+ case WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id:
172+ {
171173 uint16_t tiltPercent100ths = val->val .u16 ;
172174 uint8_t tiltPercent = (uint8_t )(tiltPercent100ths / 100 );
173175 log_d (" Window Covering Tilt Percentage changed to %d%%" , tiltPercent);
@@ -189,17 +191,14 @@ bool MatterWindowCovering::attributeChangeCB(uint16_t endpoint_id, uint32_t clus
189191 log_d (" Window Covering Tilt Position changed to %d" , val->val .u16 );
190192 currentTiltPosition = val->val .u16 ;
191193 break ;
192- case WindowCovering::Attributes::CurrentPositionLiftPercentage::Id:
193- log_d (" Window Covering Lift Percentage (legacy) changed to %d%%" , val->val .u8 );
194- break ;
195- case WindowCovering::Attributes::CurrentPositionTiltPercentage::Id:
196- log_d (" Window Covering Tilt Percentage (legacy) changed to %d%%" , val->val .u8 );
197- break ;
194+ case WindowCovering::Attributes::CurrentPositionLiftPercentage::Id: log_d (" Window Covering Lift Percentage (legacy) changed to %d%%" , val->val .u8 ); break ;
195+ case WindowCovering::Attributes::CurrentPositionTiltPercentage::Id: log_d (" Window Covering Tilt Percentage (legacy) changed to %d%%" , val->val .u8 ); break ;
198196
199197 // Target position attributes (writable, trigger movement)
200198 // Note: TargetPosition is where the device SHOULD go, not where it is.
201199 // CurrentPosition should only be updated when the physical device actually moves.
202- case WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id: {
200+ case WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id:
201+ {
203202 if (!chip::app::NumericAttributeTraits<uint16_t >::IsNullValue (val->val .u16 )) {
204203 uint16_t targetLiftPercent100ths = val->val .u16 ;
205204 uint8_t targetLiftPercent = (uint8_t )(targetLiftPercent100ths / 100 );
@@ -214,7 +213,8 @@ bool MatterWindowCovering::attributeChangeCB(uint16_t endpoint_id, uint32_t clus
214213 }
215214 break ;
216215 }
217- case WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id: {
216+ case WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id:
217+ {
218218 if (!chip::app::NumericAttributeTraits<uint16_t >::IsNullValue (val->val .u16 )) {
219219 uint16_t targetTiltPercent100ths = val->val .u16 ;
220220 uint8_t targetTiltPercent = (uint8_t )(targetTiltPercent100ths / 100 );
@@ -235,55 +235,27 @@ bool MatterWindowCovering::attributeChangeCB(uint16_t endpoint_id, uint32_t clus
235235 log_d (" Window Covering Type changed to %d" , val->val .u8 );
236236 coveringType = (WindowCoveringType_t)val->val .u8 ;
237237 break ;
238- case WindowCovering::Attributes::EndProductType::Id:
239- log_d (" Window Covering End Product Type changed to %d" , val->val .u8 );
240- break ;
241- case WindowCovering::Attributes::ConfigStatus::Id:
242- log_d (" Window Covering Config Status changed to 0x%02X" , val->val .u8 );
243- break ;
244- case WindowCovering::Attributes::Mode::Id:
245- log_d (" Window Covering Mode changed to 0x%02X" , val->val .u8 );
246- break ;
238+ case WindowCovering::Attributes::EndProductType::Id: log_d (" Window Covering End Product Type changed to %d" , val->val .u8 ); break ;
239+ case WindowCovering::Attributes::ConfigStatus::Id: log_d (" Window Covering Config Status changed to 0x%02X" , val->val .u8 ); break ;
240+ case WindowCovering::Attributes::Mode::Id: log_d (" Window Covering Mode changed to 0x%02X" , val->val .u8 ); break ;
247241
248242 // Operational status attributes
249- case WindowCovering::Attributes::OperationalStatus::Id:
250- log_d (" Window Covering Operational Status changed to 0x%02X" , val->val .u8 );
251- break ;
252- case WindowCovering::Attributes::SafetyStatus::Id:
253- log_d (" Window Covering Safety Status changed to 0x%04X" , val->val .u16 );
254- break ;
243+ case WindowCovering::Attributes::OperationalStatus::Id: log_d (" Window Covering Operational Status changed to 0x%02X" , val->val .u8 ); break ;
244+ case WindowCovering::Attributes::SafetyStatus::Id: log_d (" Window Covering Safety Status changed to 0x%04X" , val->val .u16 ); break ;
255245
256246 // Limit attributes
257- case WindowCovering::Attributes::PhysicalClosedLimitLift::Id:
258- log_d (" Window Covering Physical Closed Limit Lift changed to %d" , val->val .u16 );
259- break ;
260- case WindowCovering::Attributes::PhysicalClosedLimitTilt::Id:
261- log_d (" Window Covering Physical Closed Limit Tilt changed to %d" , val->val .u16 );
262- break ;
263- case WindowCovering::Attributes::InstalledOpenLimitLift::Id:
264- log_d (" Window Covering Installed Open Limit Lift changed to %d" , val->val .u16 );
265- break ;
266- case WindowCovering::Attributes::InstalledClosedLimitLift::Id:
267- log_d (" Window Covering Installed Closed Limit Lift changed to %d" , val->val .u16 );
268- break ;
269- case WindowCovering::Attributes::InstalledOpenLimitTilt::Id:
270- log_d (" Window Covering Installed Open Limit Tilt changed to %d" , val->val .u16 );
271- break ;
272- case WindowCovering::Attributes::InstalledClosedLimitTilt::Id:
273- log_d (" Window Covering Installed Closed Limit Tilt changed to %d" , val->val .u16 );
274- break ;
247+ case WindowCovering::Attributes::PhysicalClosedLimitLift::Id: log_d (" Window Covering Physical Closed Limit Lift changed to %d" , val->val .u16 ); break ;
248+ case WindowCovering::Attributes::PhysicalClosedLimitTilt::Id: log_d (" Window Covering Physical Closed Limit Tilt changed to %d" , val->val .u16 ); break ;
249+ case WindowCovering::Attributes::InstalledOpenLimitLift::Id: log_d (" Window Covering Installed Open Limit Lift changed to %d" , val->val .u16 ); break ;
250+ case WindowCovering::Attributes::InstalledClosedLimitLift::Id: log_d (" Window Covering Installed Closed Limit Lift changed to %d" , val->val .u16 ); break ;
251+ case WindowCovering::Attributes::InstalledOpenLimitTilt::Id: log_d (" Window Covering Installed Open Limit Tilt changed to %d" , val->val .u16 ); break ;
252+ case WindowCovering::Attributes::InstalledClosedLimitTilt::Id: log_d (" Window Covering Installed Closed Limit Tilt changed to %d" , val->val .u16 ); break ;
275253
276254 // Actuation count attributes
277- case WindowCovering::Attributes::NumberOfActuationsLift::Id:
278- log_d (" Window Covering Number of Actuations Lift changed to %d" , val->val .u16 );
279- break ;
280- case WindowCovering::Attributes::NumberOfActuationsTilt::Id:
281- log_d (" Window Covering Number of Actuations Tilt changed to %d" , val->val .u16 );
282- break ;
255+ case WindowCovering::Attributes::NumberOfActuationsLift::Id: log_d (" Window Covering Number of Actuations Lift changed to %d" , val->val .u16 ); break ;
256+ case WindowCovering::Attributes::NumberOfActuationsTilt::Id: log_d (" Window Covering Number of Actuations Tilt changed to %d" , val->val .u16 ); break ;
283257
284- default :
285- log_d (" Window Covering Unknown attribute %u changed" , attribute_id);
286- break ;
258+ default : log_d (" Window Covering Unknown attribute %u changed" , attribute_id); break ;
287259 }
288260 }
289261 return ret;
@@ -809,10 +781,10 @@ bool MatterWindowCovering::setOperationalState(OperationalStatusField_t field, O
809781 // 3. Recalculate Global based on priority: Lift (if not Stall) > Tilt
810782 uint8_t liftState = (currentStatus & LIFT) >> 2 ;
811783 uint8_t tiltState = (currentStatus & TILT) >> 4 ;
812-
784+
813785 // Global follows Lift by priority, or Tilt if Lift is not active (Stall = 0)
814786 uint8_t globalState = (liftState != STALL) ? liftState : tiltState;
815-
787+
816788 // Update Global field (bits 0-1)
817789 currentStatus = (currentStatus & ~GLOBAL) | (globalState << 0 );
818790
@@ -855,4 +827,3 @@ void MatterWindowCovering::updateAccessory() {
855827}
856828
857829#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */
858-
0 commit comments