Can only speak to TP-Link/Kasa, not Wemo, but I suspect they are similar in operation.
- Sense sends out a UDP broadcast every 2 seconds asking all the smartplugs their status.
- All receiving smartplugs reply with status packet that includes power.
- If there are network issues (latency, collisions) or if the Sense monitor is overloaded, data gets lost, and shows up as zero.
- If you have a switch/access point between the Sense monitor and the smartplug in question, that tries to minimize the effects of broadcast packets, that might also stop information from flowing to the monitor. I have flushed a Netgear managed switch and a mesh system because it was too painful to stop them from “eating” multicast packets.
- I don’t think there is any real-time checking of incoming smartplug data beyond making sure it came from a legitimate status response packet.
- The Kasa app doesn’t do any real-time charting so it isn’t helpful in spotting the missed data.
- You can write your own code to do real-time sampling.
-
@duanetiemann has some pointers to both documentation and code here:
Anyone have any info on the TP-Link Kasa HS110 Energy Monitoring Plug API - #5 by duanetiemann