2828 PULSES_PER_KW_SECOND ,
2929 SECOND_IN_NANOSECONDS ,
3030)
31- from ..exceptions import FeatureError , NodeError
31+ from ..exceptions import FeatureError , MessageError , NodeError
3232from ..messages .requests import (
3333 CircleClockGetRequest ,
3434 CircleClockSetRequest ,
4343from .helpers import EnergyCalibration , raise_not_loaded
4444from .helpers .counter import EnergyCounters
4545from .helpers .firmware import CIRCLE_FIRMWARE_SUPPORT
46- from .helpers .pulses import PulseLogRecord , calc_log_address
46+ from .helpers .pulses import PulseCollection , PulseLogRecord , calc_log_address
4747from .node import PlugwiseBaseNode
4848
4949CACHE_CURRENT_LOG_ADDRESS = "current_log_address"
@@ -1228,6 +1228,11 @@ async def get_state(self, features: tuple[NodeFeature]) -> dict[NodeFeature, Any
12281228
12291229 async def energy_reset_request (self ) -> None :
12301230 """Send an energy-reset to a Node."""
1231+ if self ._node_protocols is None :
1232+ raise NodeError (
1233+ "Unable to energy-rest when protocol version is unknown"
1234+ )
1235+
12311236 request = CircleClockSetRequest (
12321237 self ._send ,
12331238 self ._mac_in_bytes ,
@@ -1236,18 +1241,25 @@ async def energy_reset_request(self) -> None:
12361241 True ,
12371242 )
12381243 if (response := await request .send ()) is None :
1239- raise NodeError (f"Energy-reset for { mac } failed" )
1244+ raise NodeError (f"Energy-reset for { self . _mac_in_str } failed" )
12401245
12411246 if response .ack_id != NodeResponseType .CLOCK_ACCEPTED :
12421247 raise MessageError (
12431248 f"Unexpected NodeResponseType { response .ack_id !r} received as response to CircleClockSetRequest"
12441249 )
12451250
1251+ _LOGGER .warning ("Energy reset for Node %s successful" , self ._mac_in_bytes )
12461252 # Clear the cached energy_collection
12471253 if self ._cache_enabled :
12481254 self ._node_cache .update_state (CACHE_ENERGY_COLLECTION , "" )
1255+ _LOGGER .warning ("Energy-collection cache cleared successfully" )
12491256 await self ._node_cache .save_cache ()
12501257
1258+ # Clear PulseCollection._logs
1259+ self ._energy_counters .reset_pulse_collection ()
1260+
12511261 # Request a NodeInfo update
12521262 if await self .node_info_update () is None :
12531263 _LOGGER .warning ("Node info update failed after energy-reset" )
1264+ else :
1265+ _LOGGER .warning ("Node info update after energy-reset successful" )
0 commit comments