The lab
A 12 m² passive house on the HVL Kronstad campus that runs on its own solar panels and battery most of the year. From October to March it also needs a backup feed from the HVL grid.

A hytte that runs on sunlight, most of the year
The SolarLab is a small passive house of about 12 m², built on the HVL Kronstad campus in Bergen. From spring to early autumn, everything it uses comes from its own solar panels and its own battery, like an off-grid Norwegian cabin, a hytte. From October to March the sun is too low to keep up, and a backup feed from the HVL grid covers the rest.
The question behind it is simple: how far can solar energy carry a building this far north, where the sun is generous in June and almost absent in December?
Three sets of panels, on purpose
24 panels, 4 770 Wp in total, in three arrays. Each array has its own inverter, so the three technologies can be compared side by side, under the same weather.
- Array 1, monocrystalline, 1 680 Wp. Six panels facing south.
- Array 2, polycrystalline, 1 650 Wp. Six panels facing south, an older and cheaper technology.
- Array 3, vertical, 1 440 Wp. Twelve thin film modules standing back to back, six looking east and six looking west. They miss the midday sun but catch the low morning and evening light, and snow slides off them.
The twelve panels of arrays 1 and 2 also have Tigo optimisers, so each of them is measured on its own (see Panels).
Storing the day for the night
The inverters feed a Tesvolt lithium battery of 14.4 kWh. An SMA Sunny Island of 4.6 kW builds the small 230 V grid of the lab: it charges the battery when there is a surplus and empties it when there is not.
The lab decides what it can afford
Three loads are switched automatically through Shelly relays: a car charger, a second car socket and a heater. Once a minute a Raspberry Pi reads the battery and places the lab in one of four energy levels. The fuller the battery, the more loads may run.
How it is wired
The four energy levels
Once a minute, the Raspberry Pi reads the battery and places the lab in one of four levels. A level is reached when the battery rises to the first value, and is left again only when it falls to the second: that gap keeps the loads from switching on and off around a single figure.
| Level | Reached at | Left at | Loads allowed |
|---|---|---|---|
| EL3 | 90 % | 88 % | Car charger CC1, Heater, 2 kW |
| EL2 | 75 % | 65 % | Car charger CC1, Second car socket CC2 |
| EL1 | 65 % | 55 % | Car charger CC1 |
| EL0 | none |
- The three loads together would draw 29 A, above the 25 A the lab allows itself. So at the top level the control keeps the car charger and the heater, and switches the second socket off.
- Below 23 % the control protects the battery, and each load can also be forced by hand from the screen at the lab, up to a chosen battery level.
- A relay switched on does not always mean energy is flowing: the car charger draws nothing when no car is plugged in.
You can watch these loads switch on the live page. They are shown there, never controlled.
From the lab to this page
Sensors and devices
Inverters, battery, energy meters, relays, pyranometer, temperature sensors.
Raspberry Pi 3 Model B
At the lab. Reads the inverters, meters and battery every 5 minutes, the pyranometer every 10.
Database
Neon Postgres. The Pi sends the device readings every 5 minutes and the pyranometer every 15, with an account that can only add data.
This website
Reads with an account that can only read, so nothing here can switch anything at the lab.
The installation in numbers
- Panels
- 24 panels, 4 770 Wp
- Arrays
- 1 680 Wp + 1 650 Wp + 1 440 Wp
- Battery
- 14.4 kWh, Tesvolt TS 25 lithium battery
- Inverters
- 3 SMA Sunny Boy SB1.5-1VL-40, one per array
- Grid forming
- SMA Sunny Island 4.6 kW
- Optimisers
- Tigo TS4 on the 12 panels of arrays 1 and 2
- Energy meters
- 3 SMA Energy Meters and a Sunny Home Manager 2.0
- Controller and logger
- Raspberry Pi 3 Model B
- Switched loads
- CC1 (car charger, 10 A), CC2 (second car socket, 10 A), Heater (9 A, 2 kW)
- Sunlight sensor
- Kipp & Zonen SMP11 pyranometer

