Energy experiment

I put a small power station in the garden, then gave it too many graphs.

This is my home-built energy system: two independently tracked solar strings, a protected 24 V DC bus, an 8S LiFePO4 bank, 4 kW and 3.5 kW inverter branches, and a 40 A grid-assist charger. The BMS reaches VenusOS through dbus-serialbattery before MQTT and Home Assistant expose the flows; TightWatt and independent protection layers decide when intervention is useful.

2.32 kW
Array capacity across two strings
8 kWh
LiFePO4 storage, 8S at 24 V nominal
2
Inverters — 4000 W primary + 3500 W secondary
TightWatt
Price-aware charging with battery checks
Follow the wires

How it all joins up

Green is sunlight, amber is useful power, purple is telemetry, and teal is the decision layer that tells the charger when to act.

TwoWaters solar, battery and control wiring Two photovoltaic strings feed separate Victron BlueSolar MPPT controllers and a protected 24 volt battery bus. The bus feeds 4000 watt and 3500 watt inverters plus DC loads. A serial BMS driver supplies battery data to VenusOS, which publishes telemetry to Home Assistant. Grid charging, TightWatt and safety automations are shown below. PV STRING A4 × 350 W1.40 kW · original array PV STRING B2 × 460 W0.92 kW · extension CHARGE CONTROLLER AVictron BlueSolarMPPT 100/50 CHARGE CONTROLLER BVictron BlueSolarMPPT 100/50 DC PROTECTION + DISTRIBUTIONMain isolator & busbarsstring feeds · protected DC branches BATTERY BANK8 kWh LiFePO48S · 24 V nominal · BMS cells · temperatureBMS remains final hardware backstop PRIMARY AC4000 W inverterprimary house circuits SECONDARY AC3500 W invertershed + office circuits DIRECT DCDC load branchinstrumented separately MAINSGrid supplyOctopus Agile GRID ASSIST40 A chargersmart-switch controlled BMS SERIAL BRIDGEdbus-serialbattery → VenusOS TELEMETRYVenusOS / VRMMQTT · 30 s keep-alive CONTROL PLANEHome Assistanthealth · bounded recovery CHARGE LOGICTightWattcutover + high-load forecast Agile rate eventstoday + tomorrow CONTROL + PROTECTIONtemperature / cell / BMS checks · BMS + independent failsafes green: solaryellow: powerpurple: telemetryteal: control decisions

The diagram represents the installed two-controller solar system, its 4000 W and 3500 W inverter branches, main isolation and 8S battery bank. Purple telemetry follows the real BMS → dbus-serialbattery → VenusOS → MQTT route; individual fuses and cable runs are simplified for clarity.

The kit

What’s in the shed

ArraySix panels, two strings: 4 × 350 W (1.4 kW) + 2 × 460 W (0.92 kW) — 2.32 kW total
Charge controlTwo Victron BlueSolar MPPT 100/50 controllers, one independently tracking each PV string
Storage8 kWh LiFePO4, 8S configuration at 24 V nominal, BMS-protected, per-cell voltage monitored
Inversion4000 W primary inverter plus a 3500 W secondary inverter serving the remaining AC circuits
Grid assist40 A mains charger, scheduled by TightWatt using cutover-aligned demand, ranked Agile periods and separate battery-protection checks
MonitoringThe BMS publishes SoC, voltage and cell data into VenusOS through dbus-serialbattery; VenusOS then streams the system into Home Assistant over MQTT with data-freshness monitoring
Cold weatherBattery warming supports cold-weather operation. Charging is subject to separate temperature and battery checks; warmer control has its own rules.
Loads servedHome office, lab/workshop, and the majority of large kitchen appliances when generation and storage allow
How it grew

Built to keep evolving

Solar system milestones

  • Original build

    Four panels, one battery shed

    4 × 350 W string, LiFePO4 bank, inverter and monitoring — designed, mounted, wired and commissioned myself.

  • Expansion

    +2 × 460 W second string

    Added a second, separately-monitored string of higher-density panels, lifting capacity 66% to 2.32 kW without disturbing the original array.

  • Ongoing

    Software squeezes the hardware

    TightWatt estimates demand to a configured target time and selects qualifying tariff periods. Protection checks, charging limits and observed equipment state remain separate from the forecast. The plan is an estimate, not a guaranteed result.

Illustrative energy decisions

From a plan to an observed response.

This fictional example explains the control sequence without publishing household readings. It is not a live feed.

01 · INPUT

Energy needed

In this example, expected demand exceeds stored energy and forecast generation.

02 · PLAN

Window selected

A qualifying low-price period is proposed. Selection alone does not turn the charger on.

03 · CHECK

Permission checked

Battery conditions and the control rules determine whether the request can proceed.

04 · FEEDBACK

Response observed

The example compares the requested state with a returned reading. Missing feedback remains unconfirmed.

Illustrative throughout · no household values or promised savings. Explore the fictional planning replay →