As others have reported, the m5stack "AC-Measure-Unit" (HLW8032) stops updating after about 18seconds if no current is flowing through it.
Specifically the LED on the unit goes out, and the Voltage and Current registers stop updating (the UNIT_ACMEASURE_GET_READY_REG returns 0=not-ready).
However you can still use functions such as "Serial.printf("getFirmwareVersion()=%u\n",sensor.getFirmwareVersion());"
But when current starts again (even as little as 5mA) the "AC-Measure-Unit's" LED turns on again it starts reporing the voltage and current again. (AC Voltage changes do not cause it to start reporting again.)
There is a "sensor.jumpBootloader()" function, but this seems to lock up the i2c bus, so you can no longer talk to the module.
I am uncertain whether this "stops updating" issue is caused by the m5stack-firmware in the module, or caused by the HLW8032-chip itself stopping updating.
The only way I have found to resolve this is to disconnect the 5V power to the AC Measure Unit, and then reconnect it. The "JFET-reset" circuit I use is shown below.
Note that the AC-Measure-Unit draws about 30mA at all times, irrespective of if it is reporting data or not.
Note also that the AC-Measure-Unit very ocasionally says its working but always returns 0V and 0W. The unit needs resetting to fix this, which can be achieved by completely removing the 5V power (eg. using the below "JFET-reset" circuit).
Finally note that (strangelly) the Voltage measurement reported by the AC-Measure-Unit appears to be more accurate when current is flowing: It appears to overread the voltage by approx 5% when it is first turned-on/rebooted (which you need to do if you want a voltage reading when no current is flowing).
83c27bf4-5301-4a3c-bb6d-db6ec9c4d3dd-BS250_MOSFET_Switch.jpg