@@ -578,6 +578,8 @@ async def remove_node(self, node_id: int) -> None:
578
578
self .server .storage .save (immediate = True )
579
579
LOGGER .info ("Node ID %s successfully removed from Matter server." , node_id )
580
580
581
+ self .server .signal_event (EventType .NODE_REMOVED , node_id )
582
+
581
583
assert node is not None
582
584
583
585
attribute_path = create_attribute_path_from_attribute (
@@ -586,15 +588,25 @@ async def remove_node(self, node_id: int) -> None:
586
588
)
587
589
fabric_index = node .attributes [attribute_path ]
588
590
589
- self . server . signal_event ( EventType . NODE_REMOVED , node_id )
590
-
591
- await self . chip_controller . SendCommand (
592
- nodeid = node_id ,
593
- endpoint = 0 ,
594
- payload = Clusters . OperationalCredentials . Commands . RemoveFabric (
595
- fabricIndex = fabric_index ,
596
- ),
591
+ result : Clusters . OperationalCredentials . Commands . NOCResponse = (
592
+ await self . chip_controller . SendCommand (
593
+ nodeid = node_id ,
594
+ endpoint = 0 ,
595
+ payload = Clusters . OperationalCredentials . Commands . RemoveFabric (
596
+ fabricIndex = fabric_index ,
597
+ ) ,
598
+ )
597
599
)
600
+ if (
601
+ result .statusCode
602
+ == Clusters .OperationalCredentials .Enums .NodeOperationalCertStatusEnum .kOk
603
+ ):
604
+ LOGGER .info ("Successfully removed Home Assistant fabric from device." )
605
+ else :
606
+ LOGGER .warning (
607
+ "Removing current fabric from device failed with status code %d." ,
608
+ result .statusCode ,
609
+ )
598
610
599
611
@api_command (APICommand .SUBSCRIBE_ATTRIBUTE )
600
612
async def subscribe_attribute (
0 commit comments