My first thought is that the reading is only current [ edit: OP does say undervoltage, so probably not a problem] so not real power, and that reading is intermittent, blocked by code in some way.
I'm curious if delay(500) ....is in there somewhere.....