Contents

Track Your Home's Energy Usage with Home Assistant

The average American household spends about $1,500 a year on electricity. Most of that money walks out the door with no clear sense of where. Your utility’s smart meter can tell you how many kilowatt-hours you used yesterday. It won’t tell you that your old gaming console quietly pulls 30W while it sits “off.” It won’t tell you that your water heater runs each morning right when grid prices peak. Home Assistant fixes that. Pair the right hardware with the built-in Energy Dashboard, and you get per-device, per-circuit visibility that changes how you use power.

Why Monitor Home Energy Usage?

Start with the behavior case. Studies show that homes with real-time energy data cut use by 10 to 15 percent, with no other changes. Visibility creates accountability. Watch the meter tick up live on a dashboard, and leaving lights on starts to feel wasteful. So does running a half-empty dishwasher. A monthly bill never quite gets that across.

Standard AMI smart meters, the digital meters your utility likely already put on your house, are a start. Still, they are limited. They report daily or hourly kWh totals to the utility. Many utilities then expose that data through a third-party portal with a 24-hour lag. That is not useful in the moment. Home Assistant’s Energy Dashboard drops down to the single circuit or appliance, and updates every few seconds.

One of the biggest wins from real-time data is spotting “vampire loads.” These are devices that pull 5 to 50 watts non-stop in standby. Think TVs, game consoles, desktops, streaming boxes, phone chargers left plugged in, and network gear. Each one seems tiny. Together, they can soak up 10 percent or more of a home’s yearly bill. Once you can see them, smart plugs and automations let you switch them off for good.

The last big reason is dynamic pricing. Time-of-Use (TOU) tariffs are now the default in many regions. That means power costs two or three times more in the evening peak than at 2 AM. Shift your dishwasher, washing machine, and EV charger to run off-peak on their own. Trigger them from live price signals rather than a fixed clock, and the savings pile up fast.

Monitoring Hardware Options

The right hardware depends on what you want to measure and how at home you feel inside a breaker panel. Here are the main types.

Whole-home CT clamp monitors are the best entry point for most homes. They use current transformer (CT) clamps that snap around the main feed cables inside your breaker panel, with no need to cut power. The clamp picks up a tiny current that tracks the current in the wire, and gives you live watt readings.

Circuit-level monitors go further. They put a CT sensor on each breaker, so you see usage by circuit, not just the whole-home total.

Smart plugs handle single appliances you want to track on their own: a chest freezer, a server rack, or an EV charger plugged into a standard outlet.

DevicePrice (approx.)AccuracyCircuitsHA IntegrationLocal API
Shelly EM3~$45±1%3 (whole-home or 3 circuits)Native (local)Yes
Emporia Vue Gen 3~$80±2%16 circuitsNative (local, 2026)Yes
IotaWatt~$120±0.5%Up to 14 circuitsNative (local)Yes
Sense Home Energy Monitor~$299±1%Whole-home + ML appliance IDVia cloud integrationNo
TP-Link Kasa Smart Plug~$15±2%Per-plugNative (local)Yes
IKEA TRETAKT (Zigbee)~$10±2%Per-plugVia Zigbee2MQTT or ZHAYes
Shelly Plug S~$18±1%Per-plugNative (local)Yes

Shelly EM Gen3 smart energy monitor showing the compact white device with DIN rail mount
The Shelly EM Gen3 - a compact WiFi energy monitor with CT clamp support that integrates natively with Home Assistant

The Shelly EM3 is the practical starting point for most people. At about $45, it handles three-phase setups and runs on your local Wi-Fi with no cloud. It also ships with a mature native Home Assistant integration. That gives you power, voltage, current, and cumulative energy sensors out of the box.

The Emporia Vue Gen 3 is the right pick if you want circuit-level detail without paying IotaWatt prices. Its 16-sensor kit covers a typical panel. It now supports a fully local API, which kills the cloud dependency of earlier generations.

The IotaWatt is the gold standard for precision. Its ±0.5% accuracy, open-source firmware, and solid local web API make it the pick for billing-accurate reports. It costs more. For solar owners tracking feed-in credits down to the cent, that extra accuracy pays for itself.

The Sense monitor takes a different tack. It runs machine learning on the high-frequency waveform of your main feed. It then tags single appliances by their electrical “fingerprint.” Results are impressive when they work. Still, the detection is probabilistic, the device is cloud-only, and at $299 it is a steep buy-in.

A Safety Note on CT Clamp Installation

Working inside a breaker panel is dangerous. The main lugs (the thick cables entering at the top of the panel from the utility) carry line voltage. No breaker protects them. They stay live as long as utility power is on, even with your main breaker switched off.

If you are not at ease working around live conductors, hire a licensed electrician. The CT clamps themselves are low-voltage and safe to handle. Putting them in place, however, means reaching past or near the live main lugs. In many regions, opening the main panel also needs a permit. Check local rules first.

If you do go ahead yourself: work slowly, use insulated tools, and don’t touch the main lugs or bus bars. Think about rubber gloves rated for the panel voltage. Snap the CT clamps around the conductors before you wire them into the monitor. Mount the monitor itself outside the panel or in a safe enclosure.

Setting Up the Home Assistant Energy Dashboard

Once your hardware is in place and its sensors show up in Home Assistant, the Energy Dashboard takes about ten minutes to set up. Go to Settings → Energy to open the wizard.

The wizard splits energy sources into four buckets: Grid Consumption, Grid Return (solar feed-in), Solar Production, and Battery Storage. For a basic setup, you only need Grid Consumption.

The key idea: the Energy Dashboard needs sensors that report cumulative energy in kilowatt-hours (kWh), not live power in watts. Your Shelly EM3 exposes both. Pick the energy entity (kWh) rather than the power entity (W). If your device only exposes a watt sensor, you need a helper to convert it.

The integration helper (or its YAML form, riemann_sum_integral) does the conversion:

# configuration.yaml
sensor:
  - platform: integration
    source: sensor.my_device_power
    name: "My Device Energy"
    unit_prefix: k
    round: 2
    method: left

That makes a new sensor (sensor.my_device_energy) that adds up kilowatt-hours over time from the watt readings. Add it to the Energy Dashboard and Home Assistant handles the rest.

For solar production, pick the cumulative kWh sensor from your inverter integration. Fronius, SolarEdge, and Enphase all expose this directly. If you also send power back to the grid, set the Grid Return field to your feed-in kWh sensor. That switches on net metering. Home Assistant then shows how much solar you made, how much you used yourself, and how much you sent out for credit.

Battery storage needs two sensors: one for energy charged into the battery, and one for energy drawn out of it. They stay split because charging is not 100% efficient. The dashboard tracks round-trip efficiency through the gap between the two.

Device-level tracking handles up to ten appliances. Add your smart plug sensors here: the washing machine, the chest freezer, the gaming PC. Each one shows up by name in the device breakdown view. You get daily, weekly, and monthly kWh totals and costs right next to it.

Home Assistant Energy Dashboard distribution card showing energy flow between grid, solar, home, and return to grid
The Energy Distribution card visualizes real-time energy flow - solar production, grid consumption, and return-to-grid at a glance

Identifying Energy Hogs with Statistics

Home Assistant Energy Dashboard devices graph showing per-device energy consumption breakdown with colored bars
The devices breakdown ranks your tracked appliances by energy consumption - making energy hogs immediately visible

Once the dashboard fills up, the real analysis starts. The device breakdown panel is the most useful view straight away. It ranks your tracked devices by energy use over any time window you pick. If your server is eating more kWh per month than your fridge, that jumps out right away.

The “Power Flow” card (a Lovelace dashboard card) shows live energy flow as an animated diagram. Solar panels feed the home and battery. The grid covers any shortfall. Heavy-draw devices show up as labeled branches. It is the single best way to share the state of your home’s energy system with the rest of the family. A wall-mounted DIY smart mirror with Home Assistant integration makes a great permanent home for this card. The energy state stays visible without anyone reaching for a phone.

For deeper analysis, the Statistics developer tool (under Developer Tools → Statistics) lets you export sensor history to CSV. Drop that into a spreadsheet, and you can ask things like “what share of my use happens between 4 PM and 9 PM.” That kind of insight pushes people to shift habits.

Standby power is worth a special look. A handy template sensor takes the wattage of devices you know are on purpose, and subtracts it from the whole-home total:

# configuration.yaml
template:
  - sensor:
      - name: "Baseline Standby Power"
        unit_of_measurement: "W"
        state: >
          {% set total = states('sensor.grid_power') | float(0) %}
          {% set known = states('sensor.server_power') | float(0)
                       + states('sensor.ev_charger_power') | float(0)
                       + states('sensor.washing_machine_power') | float(0) %}
          {{ [total - known, 0] | max | round(1) }}

When this sensor reads 80W at 3 AM with the house empty, you have found your vampire load budget. Start flipping smart plugs off one by one and watch it drop.

The history_stats integration is also great for spotting usage patterns:

sensor:
  - platform: history_stats
    name: "Washing Machine Daily Runtime"
    entity_id: binary_sensor.washing_machine_running
    state: "on"
    type: time
    start: "{{ now().replace(hour=0, minute=0, second=0) }}"
    end: "{{ now() }}"

Automating Based on Energy Data

Visibility is good. Automation is where the real shift happens. Home Assistant’s energy sensors turn into triggers and conditions for automations that actively trim your use.

EV Charger Scheduler: Instead of charging on a fixed overnight schedule, kick off a charge when the grid price drops below a threshold. Use the Octopus Energy integration (UK) or Tibber (US/EU):

automation:
  - alias: "EV Charging - Start on Cheap Rate"
    trigger:
      - platform: numeric_state
        entity_id: sensor.octopus_energy_electricity_current_rate
        below: 0.10
    condition:
      - condition: numeric_state
        entity_id: sensor.ev_battery_level
        below: 85
    action:
      - service: switch.turn_on
        target:
          entity_id: switch.ev_charger

Standby Cutter: When total home use drops below 150W (everyone asleep or out), shut off known vampire loads:

automation:
  - alias: "Standby Power Cutter"
    trigger:
      - platform: numeric_state
        entity_id: sensor.grid_power
        below: 150
        for:
          minutes: 10
    action:
      - service: switch.turn_off
        target:
          entity_id:
            - switch.living_room_tv_plug
            - switch.gaming_console_plug
            - switch.office_monitor_plug

Solar Surplus Router: When solar output beats home use by 500W for ten minutes (energy you would otherwise export for a small credit), send it to a water heater or pool pump:

automation:
  - alias: "Solar Surplus - Heat Water"
    trigger:
      - platform: template
        value_template: >
          {{ (states('sensor.solar_power') | float(0) -
              states('sensor.home_consumption_power') | float(0)) > 500 }}
        for:
          minutes: 10
    action:
      - service: switch.turn_on
        target:
          entity_id: switch.water_heater_boost

The utility_meter integration is key for reporting that lines up with your billing cycle:

utility_meter:
  daily_energy:
    source: sensor.grid_energy_total
    cycle: daily
  monthly_energy:
    source: sensor.grid_energy_total
    cycle: monthly
  monthly_energy_peak:
    source: sensor.grid_energy_total
    cycle: monthly
    tariffs:
      - peak
      - offpeak

That makes separate sensors that reset at the set cycle boundaries. They line up with your utility bill’s billing period, and they track TOU tariff periods on their own.

Integrating Dynamic Energy Pricing

Flat per-kWh rates are getting rare. Most utilities now offer (or push) Time-of-Use tariffs. Some offer fully dynamic pricing tied to wholesale market rates.

Octopus Energy (UK) offers the Agile tariff , where prices refresh every 30 minutes from wholesale rates. The Octopus Energy Home Assistant integration exposes current and forecast prices as sensors, which makes truly smart scheduling possible. It also has native smart EV charging support that talks directly to the car’s API.

Amber Electric (Australia) offers similar wholesale price exposure. Their integration runs on the same idea: a sensor reporting the current spot price in cents per kWh that you can use as an automation trigger or condition.

In the US, Tibber provides real-time pricing in some markets. For utilities without a direct integration, scrape TOU schedule data into a rest sensor. Or use a schedule helper that mirrors your utility’s published peak and off-peak windows.

A clean pattern is a binary_sensor that boils it down to “is power cheap right now?”:

template:
  - binary_sensor:
      - name: "Electricity Cheap Rate"
        state: >
          {{ states('sensor.current_electricity_rate') | float(0) < 0.12 }}
        device_class: power

Use this sensor as a condition in any automation that uses optional power: the dishwasher, the washing machine, pre-heating or pre-cooling the house. Each one then adapts on its own as your tariff structure shifts.

One pattern that works really well: use the weather forecast integration to read tomorrow’s high. If the forecast is above 35°C (95°F) and the rate is cheap, pre-cool the house an hour before peak opens. The thermal mass of a well-insulated home will hold that cool feel through several hours of pricey peak rates. Your AC then runs when power is cheapest.

Putting It All Together

The path from a single-line monthly bill to a fully wired, auto-tuned home energy system is step by step. Start with a Shelly EM3 on your main panel feed. Watch the Energy Dashboard for a week. You will spot your biggest consumers within days. Then add smart plugs to the top two or three and build the standby-cutter automation. If you have solar, connect the inverter integration and set up net metering tracking. Finally, if your utility offers TOU or dynamic pricing, layer in the pricing integration and let the automations do the scheduling.

At each stage you add visibility, then control, then intelligence. At each stage the returns are easy to measure. The 10 to 15 percent cut from behavior change alone is a floor, not a ceiling. Homes with solar, batteries, EVs, and dynamic pricing report 25 to 40 percent cuts in net power costs. That is against an unmonitored, no-automation baseline. The hardware pays for itself fast. Unlike most smart home projects, this one has a clear, calculable return on investment.