Monitoring a three-phase house: heat pump, EV charger and a day/night tariff

  • Tested on firmware v1.1.4
  • Intermediate
Diagram: an STD-U3I3 on the three-phase input and one Basic module per phase, measuring the heat pump, the EV charger and the kitchen, feed the RBgrid hub, which shows the load on each phase.

A house on a three-phase supply, with a heat pump for heating and an 11 kW wallbox in the garage. The tariff has a day rate from 06:00 to 22:00 and a cheaper night rate from 22:00 to 06:00. The car goes on charge when someone gets home, around six in the evening. Two questions follow: what does the evening charge cost compared with the night, and how much of the month is the heat pump?

This guide builds that house on a real RBgrid hub. An rbAmp STD-U3I3, a precise energy meter, measures the three-phase input, phase by phase. Three Basic modules, one per phase, measure the charger and the heat pump on each of their three conductors, plus the kitchen. The app prices every circuit at the two-zone tariff. It's the same house as the House with heat pump and EV site in the live demo, so you can look at the finished result before you build anything. The screenshots in this guide are from the demo and show demo data.

The demo house's Overview in money at 19:30: cost per hour now, today, the Insights, the Phases card and one tile per circuit (demo data)

What you'll have at the end

  • The power and cost of the whole house right now, and of each circuit.
  • Each phase of the input, measured: power, current, voltage and the load against the breaker.
  • The charger and the heat pump each shown as one load, though each is metered on three conductors.
  • Today and this month to date, at your day and night prices.
  • History for every circuit, kept on the hub: by hour for 60 days, by day for about 13 months, by month for 3 years. You can download any of it as CSV.
  • Notes from the app on where today's money went, and on charging that fell in the dearer zone.

Already monitoring in Home Assistant? The hub can send each point's power and energy to Home Assistant over MQTT as well; your existing setup can stay as it is. The per-phase readings of the three-phase input, the groups, the station status and the money stay in the RBgrid app, with the history views and the notes. → A power meter for Home Assistant

What you need

Hub An ESP32-WROVER board with PSRAM and 16 MB flash, and its USB power supply.
Input meter One rbAmp STD-U3I3, a precise energy meter, in the 60 A kit, on the three-phase input. Its three current sensors come paired with its channels at the factory, and it counts energy on the module itself, in both directions.
Circuit modules Three rbAmp Basic UI3 for SCT-013, one per phase: one voltage input and three current channels each.
Clamps Seven voltage-output SCT-013 clamps for the circuits (below). The input uses the STD-U3I3's own sensors.
To set it up A USB cable, a computer with Python (for esptool), your Wi-Fi password, and the short wires between the hub and the modules.

The STD-U3I3 is a precise energy meter: on the input it gives exact metering of the whole house, phase by phase. It comes as a 60 A or a 100 A kit; for this house's 35 A main breaker, the 60 A kit. Its sensors are paired with the module and aren't replaceable, so there's no clamp to buy for the input and no current sensor to choose in the app.

One Basic module per phase. A Basic module works out each channel's power from its own single voltage input. A clamp on a circuit of another phase would measure wrong. So each Basic module's voltage input goes on one phase, and its clamps go only on circuits of that phase. The charger and the heat pump draw on all three phases, so each phase needs its own module:

Module Voltage input I0 I1 I2
Basic UI3 (L1) L1 EV charger L1 Heat pump L1 Kitchen
Basic UI3 (L2) L2 EV charger L2 Heat pump L2 free
Basic UI3 (L3) L3 EV charger L3 Heat pump L3 free

Choose each circuit clamp as the smallest rating at or above the circuit's breaker (see Choosing the clamp sizes).

Circuit Breaker Clamp to buy
EV charger, L1 / L2 / L3 3 × 20 A SCT-013-020 on each conductor
Heat pump, L1 / L2 / L3 3 × 10 A SCT-013-010 on each conductor
Kitchen (L1) 16 A SCT-013-020

Many heat pumps are single-phase: then it's one clamp, on the module of the phase it's connected to, bound as one point.

The demo house has the same layout: the STD-U3I3 on the input and one Basic UI3 per phase, with the same circuits on the same channels. It fits an SCT-013-030 on every Basic channel; choose yours by the breaker, as above. Not sure which clamp you have? See Which SCT-013 do you have?

Safety. For any work inside an electrical panel, call a qualified electrician.

Clamp one conductor only (L) per circuit, never the whole cable: the currents in L and N cancel out.

A three-phase load gets one clamp on each of its L1, L2 and L3 conductors, each on the Basic module of that phase; no clamp on N.

1. Wire, flash, connect

  1. Wire the modules: the STD-U3I3 and the three Basic UI3, their voltage inputs and sensors.
    • The STD-U3I3: its voltage inputs are wired like a Basic module's: AWG26–22 wire, a fuse of up to 0.1 A in each L line, and it needs the neutral (terminals N, L1, L2, L3). Its three sensors go on the three input conductors, each with its arrow in the import direction, from the grid towards the house.
    • Each Basic UI3: its voltage input to its own phase and N through its fuse; its clamps on that phase's circuits (the table above), each with the arrow pointing towards the load. A Basic module counts one direction only, so a clamp the wrong way round reads nothing.

The conductor you call L1 must be the same one everywhere: the STD-U3I3's L1 sensor and L1 voltage terminal, the L1 Basic module's voltage input, and the clamps on that module. The same for L2 and L3. The check in step 5 confirms it.

Place each module within 15 cm of the hub. For longer runs see the bus-length section of the rbAmp wiring guide. The modules' I²C cables are connected to the hub one at a time later, during Add a module, with the hub off.

  1. Connect only the STD-U3I3 to the hub for now (power, GND, SDA, SCL), at its factory I²C address 0x50. → Quick start, step 1
  2. Flash the hub, join it to your Wi-Fi and open the app, at webapp.rbgrid.io or installed on the hub: follow the Quick start steps 2–4, then come back here.

A new hub makes the module at 0x50 your grid input by itself, plus a voltage point. There's nothing to bind for it. In step 3 you turn it into a three-phase input.

2. Run the setup wizard

The app opens with a banner, The hub still has its factory settings. Choose Set up →. → The setup wizard

  • Security: set an API token and write it down.
  • Site & time: scenario Home, a site name (the demo uses "Demo house"), your time zone; check that the clock shows synchronized.
  • Sensors: the grid input is already there. Leave the rest for step 5.
  • Tariff: use the quick form to enter the prices. Enter the day price, switch on There is a night rate (23:00–07:00) and enter the night price. Leave Price as on the bill — incl. VAT on if your bill prices include VAT, and check the VAT, %: a new hub starts at 21 %. Leave the export price empty: this house has no solar.

The quick form's night hours are fixed at 23:00–07:00. This house's night runs 22:00–06:00, so you move the hours in step 6.

The demo uses Day 06:00–22:00 at 0.38 and Night 22:00–06:00 at 0.29 per kWh including 19 % VAT (its plan stores them without VAT, as 0.3193 and 0.2437, which is what the Tariffs screenshot shows). Use your own bill's prices.

3. Make the input three-phase

A three-phase input is supported on one STD-U3I3. Open Points: the STD-U3I3's card shows the grid input.

  1. On the module card, press Use as the three-phase input.
  2. Confirm Use as the input. The input keeps its history.
  3. Press Restart now.

After the restart the input is one point, L1–L3, with a reading for each phase. → Use as the three-phase input

Then open Settings → Mains and choose Three phase. Mains system applies at once, and the Phase list on each point now offers L1, L2 and L3. Nominal voltage and frequency, if you change them, apply after a hub restart (Save and restart). The defaults are fine for a 230/400 V supply. → Settings

Settings, Mains in the demo house: Three phase, nominal 230/400 V and 50 Hz

On the grid input, open Point setup and set:

  • Input breaker, A: your main breaker (35 A here);
  • Input limit, kW: what your supply allows. Without a contracted figure, use the breaker: 35 A × 230 V × 3 conductors = 24.15 kW, as in the demo. If the two don't match, the app offers a value worked out from the breaker.

The STD-U3I3's sensors are calibrated with the module at the factory, so there's no current sensor to choose.

4. Add the three Basic modules

Connect the Basic modules one at a time, with Points → Add a module. Every module from the box answers at the same address, 0x50. So each time, the module answering at 0x50 is moved to a free address first, and the new module is then connected at 0x50. On the first round that's the STD-U3I3: it moves, and keeps its points, history and settings. → Adding modules

For each Basic UI3 (L1, then L2, then L3):

  1. The app offers a free address, for example 0x51, and moves the module now at 0x50 there.
  2. Switch the hub off and connect the new module's I²C cable to the hub. It answers at 0x50.
  3. Switch the hub on, open Add a module again and press Scan, then Add.

Each module's channels now show under Free sensors. The final addresses depend on the order you add the modules in, and they don't matter: points are known by their names. The demo's Points page shows a different set of addresses.

5. Set up the circuits

First make two groups: Settings → Consumer groups → Add group, "EV charger" and "Heat pump", then Save. → Consumer groups

Then Bind each free sensor with its name, role, phase and line rating. Open each new point's Point setup for the breaker, the current sensor and the group.

Module · channel Name Role Phase Line rating Breaker Current sensor Group
Basic UI3 (L1) · I0 EV charger L1 Charging station L1 4.6 kW 20 A SCT-013-020 EV charger
Basic UI3 (L1) · I1 Heat pump L1 Heating/cooling L1 2.3 kW 10 A SCT-013-010 Heat pump
Basic UI3 (L1) · I2 Kitchen Load L1 3.68 kW 16 A SCT-013-020 —
Basic UI3 (L2) · I0 EV charger L2 Charging station L2 4.6 kW 20 A SCT-013-020 EV charger
Basic UI3 (L2) · I1 Heat pump L2 Heating/cooling L2 2.3 kW 10 A SCT-013-010 Heat pump
Basic UI3 (L3) · I0 EV charger L3 Charging station L3 4.6 kW 20 A SCT-013-020 EV charger
Basic UI3 (L3) · I1 Heat pump L3 Heating/cooling L3 2.3 kW 10 A SCT-013-010 Heat pump

The demo also gives each point a short name for diagrams, such as "EV L1" and "HP L1"; the Points page shows those.

Points in the demo house: the STD-U3I3 as the three-phase input (Main), one Basic UI3 per phase, the charger and heat-pump points under their short names EV L1–L3 and HP L1–L3, the kitchen, and two free channels

  • Line rating is what the circuit's breaker allows: breaker × 230 V (for example 10 A → 2.3 kW, 16 A → 3.68 kW, 25 A → 5.75 kW). The demo uses its own figures: 1.4 kW on the heat pump's lines.
  • Roles Charging station and Heating/cooling keep the charger and the heat pump out of the app's standby estimate, because they run on their own schedule.
  • Phase: the phase of the module's voltage input; every channel on a module is on that phase.
  • Current sensor must match the clamp actually fitted. → Points

Point setup for Heat pump L1 in the demo: role Heating/cooling, phase L1, line rating 1.4 kW, 10 A breaker, the SCT-013-030 the demo fits, group Heat pump

Why three points per load. The charger and the heat pump each draw on all three phases. One clamp per conductor, on the module of that phase, measures each phase as it is. Put the three points in one group with the same role, and the app shows them as one load: one row under the group's name in Where the money goes today, and one name in the charging note. Until an upcoming release, the app counts the sessions of a charger bound as three points three times.

Station settings. With the charger bound, Settings → Charging stations appears: the charging threshold (500 W by default), the idle time and the price per kWh. Each EV point uses them, so with three points per charger, each phase point is compared with the threshold. → Charging stations

Restart the hub (Settings → Administration). A newly bound point shows live values at once and starts keeping history after the restart; nothing measured before is lost. The hub keeps history for up to 12 points; this house has eight. A three-phase load measured per conductor uses three of the 12 history slots, so plan for growth.

Check it: switch on a load you know, such as a kettle on the kitchen circuit. Its point should read about the kettle's rated power, and the input's L1 should rise by about the same amount.

6. Set the tariff hours

Open Tariffs. The quick form left a Day zone and a Night zone at 07:00–23:00 and 23:00–07:00. → Tariffs

  • Day zone: From 06:00, To 22:00, all seven days.
  • Night zone: From 22:00, To 06:00, all seven days. A window can cross midnight.
  • VAT %: 19 in the demo; yours from your bill.
  • Default zone: Day or Night, so no hour is left without a price.
  • Net metering: off. This house exports nothing.

Check The week by zones: every hour should be Day or Night, with no gaps or overlaps. Then Save.

Tariffs in the demo house: the 06:00–22:00 / 22:00–06:00 plan with its prices stored without VAT, net metering off, and the week by zones

The demo's plan also lists a monthly "Standing charge". Don't copy it: costs in RBgrid are energy-based, the hub doesn't include fixed charges in any cost, and the editor doesn't show them.

7. What the app shows

The Overview opens in money: what the house costs per hour right now, today and this month to date, and the tariff zone in force. Each circuit's cost is its energy at the zone's buy price: an hour in the Day zone at the day price, an hour in the Night zone at the night price. → The Overview

The Phases card reads measured at the input, with "breaker 3 × 35 A (per phase)". Each phase shows its power, current and voltage, and a bar against the breaker. In the demo at 19:30, with the car charging and the kitchen busy, L1 carries more than L2 and L3, because the kitchen is on L1. The card also reports the current unbalance; on a real hub it adds a phase-rotation check.

On the flow card, the By phase tab puts each line under its phase. The group tabs, "EV charger" and "Heat pump", show each load on its own. → Phases

The demo house's Overview in power at 19:30: the Phases card measured at the input (demo figures), and the energy flow with the EV charger and the heat pump each as a group of three points (demo data)

Insights turns the measurements and the tariff into short notes. In the demo house, at 19:30, they read:

  • Expensive now: Day — 1.3× the "Night" rate, with the hours of the night zone and how soon it starts;
  • EV charger yesterday: 27.6 kWh in the "Day" zone, with the app's note that the same energy in the "Night" zone would have cost ≈ €2.48 less — at the plan's rates for the energy actually used;
  • Where the money goes today: the charger and the heat pump as one row each, then the kitchen and the unmetered rest;
  • Month cost forecast, from the pace so far, at current rates;
  • Standby use ≈ 295 W round the clock: the house's night-time floor, without the charger and the heat pump.

These are the app's estimates at your current rates, marked with ≈. → Insights

History shows each circuit by hour, day or month, in energy, power or money. Yesterday by hour in power shows the charger's block from 18:00 to 20:30. The heat pump runs part of every hour, more at night and in the morning than at midday. Download CSV saves what you see. → History

History steps by the hour at its finest; live values update every 3 seconds on the Overview (and over MQTT). Energy on modules that count on board moves in 15-minute steps.

The charger's evening hours

In the demo the car charges from 18:00 to 20:30 every day: about 11 kW for two and a half hours, all of it in the Day zone. That's the pattern the charging note points at.

One day in the demo is different. Three days before "today", the car charged from 22:00 to 00:30 instead, in the Night zone. Open History, 7 days, in Money: the charge ran past midnight, so two bars differ from the rest. The day it started, with no evening charge, is lower; the next day, with the last half hour on top of its own evening charge, is a little higher.

History in the demo house: the input over the last 7 days in money, with a lower bar on 30 October and a slightly higher one on 31 October; today is still incomplete

RBgrid doesn't start or stop the charger. It measures what the charger drew and prices each hour at its zone. If you decide to charge later in the evening, that's your call, set on the car's or the wallbox's own timer. The app's note then shows yesterday's charging at the rates that applied.

The charger's lines also run close to their rating: about 16 A on a 20 A line is about 80 % of the 4.6 kW rating. In the Points table under Details, that's the high mark, and with small changes in the reading the word can come and go. This flag is about the line's rating, not the clamp.

Choosing the clamp sizes

A clamp has a range, and both ends matter. Too small, and its readings are cut off above its rating; too big, and small currents read as zero on a Basic module. A clamp rated at the circuit's breaker stays inside that range, which is why the table matches each clamp to its breaker. → Choosing the clamp sizes

Known issue in app 1.1.4: the point's settings check the breaker against a limit below the clamp's rating (90 % of it), so a 10 A clamp on a 10 A breaker shows "The line breaker 10 A is above the sensor's limit (9 A)…", and a 20 A clamp on a 20 A breaker the same. The clamp reads correctly at its rating; the check will be corrected in an upcoming release.

Demo data vs your house

  • In the demo the car charges at the same time every day. The one night-time charge is scripted, and it moves with the clock: it's always three days before today.
  • The demo's heat pump has no weather. Its hourly use is a fixed share of each hour, with no start-up peaks or defrost. A real heat pump follows the outdoor temperature.
  • The demo's phase figures are worked out from its circuits. On a real hub the STD-U3I3 measures each phase at the input.
  • The demo fits an SCT-013-030 on every Basic channel and rates the heat pump's lines at 1.4 kW; choose your clamps and ratings from your own breakers.
  • The demo's money history leaves out VAT. Your hub's cost includes it.
  • The module firmware update in the demo is simulated.
  • History starts when you set the hub up; data from other systems isn't imported.
  • Your numbers depend on your circuits and prices; nothing in this guide promises a figure.

If something's wrong

  • Use as the three-phase input isn't offered: the STD-U3I3 must be present and the input not three-phase already. → Sensors and modules
  • Add a module finds nothing new: check that only one new module is connected, and that the hub was off while you connected it. → Adding modules
  • A circuit reads 0 while its load runs: the clamp may face the wrong way (the point says sensor reversed — not metered).
  • A circuit reads implausible power: check that its clamp is on a module whose voltage input is on the same phase.
  • Sensor limit or clipping on a point: the circuit draws more than its clamp's rating; see Choosing the clamp sizes.
  • The wrong zone applies: check the hub's time zone and The week by zones. → Tariffs

Next

  • Add more circuits: the L2 and L3 modules each have a free channel for a circuit of their phase; a hub takes up to eight modules, and keeps history for up to 12 points. → Sensors and modules
  • Read the data into your own tools (for experienced users). Besides the CSV downloads in History, your tools can read the history of any point that keeps history (up to 12 points) over the hub's REST API: GET /api/v1/history?unit=…&period=hour|day|week|month|year&type=energy|electrical|economics, with a read token if you set one. Or over MQTT: the cmd history, with the answer on cmd/resp. The MQTT commands don't check a read token yet, so use a broker with its own users. → MQTT
  • Refine the tariff: more zones, per-kWh fees. → Tariffs
  • See cost and the input-versus-lines balance per point. → Economics
  • Send the data to Home Assistant. → A power meter for Home Assistant
  • Look around the finished house: demo.rbgrid.io, House with heat pump and EV
  • Three-phase machines in a business: Monitoring a three-phase workshop