S505 Matter Support of StartUpOnOff attribute appears to be incorrect.
The S505's support of the Matter StartUpOnOff attribute appears to be incorrect. This attribute controls the behavior (On/Off) of the switch following power up and is (as I read it) mantatory for Matter compliance.
Testing Formula:
- S505 at firmware version 1.2.2.
- Factory Default S505 (Hold reset button for > 10 secs)
- Pair with Home Assistant (HA) using it's Matter Integration (currently 8.0.0)
For Each Test:
- Verify that the Matter integration is working by verifying the switch follows commands from HA (On/Off) and that the on/off status in HA is correct if the switch is manually switched On/Off
- For each step set the StartUpOnOff to one of the 4 possible values (On/Off/Toggle/Previous) using HA and verify that the status value is updated in HA's Matter AddOn.
- Power Cycle the switch (remove power for > 15 secs and then restore)
- Observe whether S505 is On or Off in each case after the power is restored
- Toggle Power State manually (from paddle) and repeat step's 3 & 4
The results are as follows:
Option Set | StartUpOnOff Attribute Set | Value Set by HA Matches Matter Spec | Operation after power cycle | S505 Operation Matches Matter Spec |
---|---|---|---|---|
Off |
0 |
Y |
Off |
Y |
On |
1 |
Y |
On |
Y |
Toggle |
2 | Y |
On |
N (Value should toggle) |
Previous | null | Y | Off | N (Switch is always Off) |
As can be seen from the above the "Toggle" and "Previous" values are simply ignored.
I would appreciate a comment from TP-Link engineering as to whether this is an issue that they plan to fix. The "Previous" attribute is the one that is of the most interest to me.
Thanks
Note: The following is a text extract copied from the "Matter Application Clusters" specification for reference.
1.5.6.6. StartUpOnOff Attribute
This attribute SHALL define the desired startup behavior of a device when it is supplied with power and this state SHALL be reflected in the OnOff attribute. If the value is null, the OnOff attribute is set to its previous value. Otherwise, the behavior is defined in the table defining StartUpOnOffEnum.
This behavior does not apply to reboots associated with OTA. After an OTA restart, the OnOff attribute SHALL return to its value prior to the restart.
1.5.7. Commands
ID | Name | Direction | Response | Access | Conformance |
---|---|---|---|---|---|
0x00 |
Off |
client ⇒ server |
Y |
O |
M |
0x01 |
On |
client ⇒ server |
Y |
O |
M |
0x02 |
Toggle |
client ⇒ server |
Y |
O |
M |
0x40 |
OffWithEffect |
client ⇒ server |
Y |
O |
LT |
0x41 |
OnWithRecallGlobalScene |
client ⇒ server |
Y |
O |
LT |
0x42 |
OnWithTimedOff |
client ⇒ server |
Y |
O |
LT |