@@ -1140,28 +1140,59 @@ async def _relay_init_get(self) -> bool | None:
11401140 "Retrieval of initial state of relay is not "
11411141 + f"supported for device { self .name } "
11421142 )
1143+
11431144 request = CircleRelayInitStateRequest (
11441145 self ._send , self ._mac_in_bytes , False , False
11451146 )
1146- if (response := await request .send ()) is not None :
1147+ if (response := await request .send ()) is None :
1148+ _LOGGER .warning (
1149+ "No response from %s to get relay init setting" , self ._mac_in_str
1150+ )
1151+ return None
1152+
1153+ if isinstance (response , CircleRelayInitStateResponse ):
1154+ _LOGGER .debug ("Successful get of relay init state for %s" , self ._mac_in_str )
11471155 await self ._relay_init_update_state (response .relay .value == 1 )
1148- return self ._relay_config .init_state
1149- return None
11501156
1151- async def _relay_init_set (self , state : bool ) -> bool | None :
1157+ _LOGGER .warning (
1158+ "Unexpected response type %s for %s" ,
1159+ response_type ,
1160+ self ._mac_in_str ,
1161+ )
1162+ return
1163+
1164+ async def _relay_init_set (self , state : bool ) -> None :
11521165 """Configure relay init state."""
11531166 if NodeFeature .RELAY_INIT not in self ._features :
11541167 raise NodeError (
11551168 "Configuring of initial state of relay is not"
11561169 + f"supported for device { self .name } "
11571170 )
1171+
11581172 request = CircleRelayInitStateRequest (
11591173 self ._send , self ._mac_in_bytes , True , state
11601174 )
1161- if (response := await request .send ()) is not None :
1175+ if (response := await request .send ()) is None :
1176+ _LOGGER .warning (
1177+ "No response from %s to configure relay init setting" , self ._mac_in_str
1178+ )
1179+ return None
1180+
1181+ if response .node_ack_type == NodeAckResponseType .DEFAULT_FAIL :
1182+ _LOGGER .warning ("Failed to set relay init state for %s" , self ._mac_in_str )
1183+ return None
1184+
1185+ if response .node_ack_type == NodeAckResponseType .DEFAULT_ACK :
1186+ _LOGGER .debug ("Successful set relay init state for %s" , self ._mac_in_str )
11621187 await self ._relay_init_update_state (response .relay .value == 1 )
1163- return self ._relay_config .init_state
1164- return None
1188+ return
1189+
1190+ _LOGGER .warning (
1191+ "Unexpected response ack type %s for %s" ,
1192+ response .node_ack_type ,
1193+ self .name ,
1194+ )
1195+ return
11651196
11661197 async def _relay_init_load_from_cache (self ) -> bool :
11671198 """Load relay init state from cache. Returns True if retrieval was successful."""
0 commit comments