2323)
2424from ..connection import StickController
2525from ..constants import (
26+ DEFAULT_CONS_INTERVAL ,
2627 MAX_TIME_DRIFT ,
2728 MINIMAL_POWER_UPDATE ,
29+ NO_PRODUCTION_INTERVAL ,
2830 PULSES_PER_KW_SECOND ,
2931 SECOND_IN_NANOSECONDS ,
3032)
4244from ..messages .responses import NodeInfoResponse , NodeResponseType
4345from .helpers import EnergyCalibration , raise_not_loaded
4446from .helpers .counter import EnergyCounters
45- from .helpers .firmware import CIRCLE_FIRMWARE_SUPPORT
46- from .helpers .pulses import PulseCollection , PulseLogRecord , calc_log_address
47+ from .network import StickNetwork
4748from .node import PlugwiseBaseNode
4849
4950CACHE_CURRENT_LOG_ADDRESS = "current_log_address"
@@ -1249,6 +1250,15 @@ async def energy_reset_request(self) -> None:
12491250 )
12501251
12511252 _LOGGER .warning ("Energy reset for Node %s successful" , self ._mac_in_bytes )
1253+ # Follow up by an energy-intervals (re)set
1254+ network = StickNetwork ()
1255+ if not (
1256+ result := await network .set_energy_intervals (
1257+ mac , DEFAULT_CONS_INTERVAL , NO_PRODUCTION_INTERVAL
1258+ )
1259+ ):
1260+ _LOGGER .warning ("Failed enery-intervals (re)set after an energy-reset" )
1261+
12521262 # Clear the cached energy_collection
12531263 if self ._cache_enabled :
12541264 self ._node_cache .update_state (CACHE_ENERGY_COLLECTION , "" )
@@ -1263,3 +1273,22 @@ async def energy_reset_request(self) -> None:
12631273 _LOGGER .warning ("Node info update failed after energy-reset" )
12641274 else :
12651275 _LOGGER .warning ("Node info update after energy-reset successful" )
1276+
1277+
1278+ async def energy_reset_request (self , mac : str ) -> bool :
1279+ """Send an energy-reset request to a Node."""
1280+ _LOGGER .debug ("Resetting energy logs for %s" , mac )
1281+ try :
1282+ await self ._network .energy_reset_request (mac )
1283+ except (MessageError , NodeError ) as exc :
1284+ raise NodeError (f"{ exc } " ) from exc
1285+
1286+ # Follow up by an energy-intervals (re)set
1287+ if (
1288+ result := await self .set_energy_intervals (
1289+ mac , DEFAULT_CONS_INTERVAL , NO_PRODUCTION_INTERVAL
1290+ )
1291+ ):
1292+ return result
1293+
1294+ return False
0 commit comments