I want to monitor the energy/power consumption of household appliances (for example an oven) by using a smart plug. The problem is that I cannot get the raw data to my computer. The measurements are usually plotted in a graph on a phone app, but what I need is the raw data in my computer (power, energy, time stamps..etc.). Does anyone have any idea on how to do this? Or which products allow this?
-
maybe is the best we can say. You would have to reverse-engineer the plugs's communication. It might be trivial, like a rest API, or it might be a nightmare of custom protocols, auth, and un-intuitive organisation. There are open-source plugs that you could use instead.– dandavisMar 8, 2019 at 22:31
-
are you certain that your smart plug is able to provide the data?– jsotolaMar 14, 2019 at 19:57
-
@jsotola yes, it can provide energy consumption data and the time stamps– xoaniMar 21, 2019 at 14:25
-
@dandavis do you know which open-source plugs can be useful ? or how i can start with this? the matter is time-sensitve– xoaniMar 21, 2019 at 14:26
-
I've seen a few on instructables, iirc. They are based around the arduino and the ESP8266 MCU, which is only a few dollars, leaving plenty of budget to add a (<$3) hall-effect current sensor and a high-res ADC (<$2), compared to a commercial pod or something way overkill like a PC/pi. If you have the parts, it's an afternoon project rolling example sketches together.– dandavisMar 21, 2019 at 17:04
2 Answers
I have seen systems like this built using the TP-Link sockets with a raspberry pi that polls the sockets regularly enough to determine what mode a product was in (the product draws different amounts of current for different modes).
The problem will be monitoring an oven as these tend to be wired directly to high current supplies with no where to put a monitoring socket (They probably wouldn't be safe either).
You should be able to get a current clamp monitoring device to use for hard wired devices, but you would need to be able to clamp round the live line, not both the live and neutral
One solution would be with the help of Rasberry Pi. Make raspberry Pi as an access point and bridge the internet via the ethernet port. Make Rasberry Pi as your wifi connection to the smart plug. Now install Wireshark and collect all network data from the wireless interface in the form of pcap file. You can use SCAPY or Zeek(BRO) IDS for packet inspections or electric data reading.
Link:
Command to install wireshark: sudo apt-get install wireshark.