Smart plugs are convenient, but they’re not always the right tool for the job. They generally max out at 15 to 20 amps, and they won’t work with hardwired appliances like a water heater or dryer. Besides, at roughly $20 a piece, buying one for each appliance in your house becomes expensive fast.
But just like a $5 ESP32 can do a lot for your home network, it can also do a lot for your smart home. Pair up with the appropriate sensor, and there are tons of ways you can monitor your appliance without ever having to deal with a smart sensor.
I wasted money on the wrong ESP board because nobody explained this upfront
Buying ESP boards shouldn’t feel like gambling.
See exactly how much power your appliances use
CT clamps turn any appliance into a real-time energy monitor
If you want real watt-hour data—the kind that tells you exactly how much electricity your refrigerator or washing machine is pulling—a current transformer (CT) clamp is the way to go. A split-core sensor like the SCT-013 is a popular choice here and can clip directly around a single live or neutral wire without cutting into the circuit at all. As the name suggests, it works by magnetic induction, meaning when AC current flows through the wire, it induces a proportional voltage in the sensor’s secondary winding, which your ESP32 can read.
The SCT-013-000 variant can handle up to 100 amps and outputs a small AC voltage via a 3.5mm jack. Now this might seem unconventional, especially if you’re not used to dealing with electrical circuits, but for the non-invasive nature of the sensor, it’s not that big of a hassle. You will need a small bias circuit, which consists of a pair of equal resistors, to center the signal around 1.65V as the ESP32’s ADC can only read 0 to 3.3V DC.
On the software side, ESPHome’s built-in ct_clamp sensor component handles all the RMS math for you. Simply wire up the sensor output to any ADC-capable GPIO pin on the ESP32, write a few lines of YAML, and your ESP32 starts reporting real-time current draw directly to Home Assistant. From there, you can set automations to alert you if an appliance runs too long or consumes too much power.
- Brand
-
Espressif
- Connectivity Features
-
Wi-Fi, Bluetooth
ESP32 is a low-cost microcontroller with built-in Wi-Fi and Bluetooth, widely used for IoT projects and DIY electronics.
Sometimes movement tells you enough
Using vibration sensors to detect when machines are running
If all you need to know is whether an appliance is running or not, a vibration sensor is actually quite a capable solution. Appliances like your washing machine, dishwasher, HVAC unit, and many more produce subtle vibrations when they’re running and sit stably when they’re not. That difference can be used to determine whether they’re active.
You can buy an ADXL345 three-axis MEMS accelerometer and pair that with your ESP32 over I2C. It’s sensitive enough to detect the subtle vibration signature of a motor spinning inside an appliance and barely costs only $2 to $3 on the usual breakout boards (which make prototyping easy). The coding is also easy thanks to Adafruit’s ADXL345 library and ESPHome’s native support.
However, there’s another far cheaper and simpler method if you’ve got an old Android phone lying around. Your Android phone has sensors that can be used to trigger smart home automations, and the accelerometer inside can detect vibrations. It won’t be quite as sensitive as a dedicated sensor, but it avoids the hassle of building or coding anything entirely, as you can use the Home Assistant Companion app to read the sensor state, feed it back to your Home Assistant installation, and trigger whatever automations you want.
Read the LEDs instead of the appliance
LDR sensors can tell when devices switch states
You can connect a light-dependent resistor (also known as a photoresistor) to your ESP32, point at an appliance’s status LED, and your ESP32 can tell whether that LED is on or off. This is a bit of a crude solution and requires the appliance to have proper LED status indication, but it works surprisingly well, especially considering photoresistors can cost under a dollar.
An off-the-shelf LDR works fine for a binary on/off state check, but you can also use something like an ambient light BH1750 sensor for cleaner, better-calibrated readings over I2C. The key here is positioning. You need to mount the LDR as close to the target LED as possible, and ideally shield it from any ambient light with a small piece of black electrical tape or heat shrink.
Turning simple sensors into a complete monitoring system
These three methods aren’t mutually exclusive. A well-rounded ESP32 monitoring setup can use a CT clamp on your main panel for energy data, an ADXL345 on your washing machine for cycle detection, and a couple of LDRs on your appliances’ status LEDs for everything else. All of it can feed into Home Assistant via ESPHome, giving you a unified dashboard without a single smart plug in sight.
I turned my old tablet into a smart home dashboard, and it’s perfect
I use my 1st-gen iPad Pro as a smart home dashboard
The total cost of everything involved here is barely going to be more than $10-$15, but you will have to spend some time tinkering and figuring out how to get everything running. Thankfully, you’ve got amazing software support with ESPHome and tons of sensor libraries with code templates that’ll have your smart monitoring devices up and running in an afternoon.
