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.
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.
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.
What’s in the shed
| Array | Six panels, two strings: 4 × 350 W (1.4 kW) + 2 × 460 W (0.92 kW) — 2.32 kW total |
|---|---|
| Charge control | Two Victron BlueSolar MPPT 100/50 controllers, one independently tracking each PV string |
| Storage | 8 kWh LiFePO4, 8S configuration at 24 V nominal, BMS-protected, per-cell voltage monitored |
| Inversion | 4000 W primary inverter plus a 3500 W secondary inverter serving the remaining AC circuits |
| Grid assist | 40 A mains charger, scheduled by TightWatt using cutover-aligned demand, ranked Agile periods and separate battery-protection checks |
| Monitoring | The 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 weather | Battery warming supports cold-weather operation. Charging is subject to separate temperature and battery checks; warmer control has its own rules. |
| Loads served | Home office, lab/workshop, and the majority of large kitchen appliances when generation and storage allow |
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.
From a plan to an observed response.
This fictional example explains the control sequence without publishing household readings. It is not a live feed.
Energy needed
In this example, expected demand exceeds stored energy and forecast generation.
Window selected
A qualifying low-price period is proposed. Selection alone does not turn the charger on.
Permission checked
Battery conditions and the control rules determine whether the request can proceed.
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 →