About the data
What is measured, with what, how often, and what to watch out for. Read this before using the numbers in a report or a thesis.
The measured series
| Name in the file | What it is | Unit | Sensor | Every |
|---|---|---|---|---|
| pv_power_array1 | Solar power, array 1 (monocrystalline) | W | SMA Sunny Boy 1, serial 1930084389, read over its own web interface with the user right | 5 min |
| pv_energy_inverter1 | Total produced by inverter 1 | kWh | SMA Sunny Boy, serial 1930084389, counter held inside the inverter | 5 min |
| pv_dc_power_array1 | DC power, array 1 | W | SMA Sunny Boy 1, DC input, serial 1930084389 | 5 min |
| pv_dc_voltage_array1 | String voltage, array 1 | V | SMA Sunny Boy 1, DC input, serial 1930084389 | 5 min |
| pv_dc_current_array1 | String current, array 1 | A | SMA Sunny Boy 1, DC input, serial 1930084389 | 5 min |
| pv_power_array2 | Solar power, array 2 (polycrystalline) | W | SMA Sunny Boy 2, serial 1930082576, read over its own web interface with the user right | 5 min |
| pv_energy_inverter2 | Total produced by inverter 2 | kWh | SMA Sunny Boy, serial 1930082576, counter held inside the inverter | 5 min |
| pv_dc_power_array2 | DC power, array 2 | W | SMA Sunny Boy 2, DC input, serial 1930082576 | 5 min |
| pv_dc_voltage_array2 | String voltage, array 2 | V | SMA Sunny Boy 2, DC input, serial 1930082576 | 5 min |
| pv_dc_current_array2 | String current, array 2 | A | SMA Sunny Boy 2, DC input, serial 1930082576 | 5 min |
| pv_power_array3 | Solar power, array 3 (vertical, east and west) | W | SMA Sunny Boy 3, serial 1930083676, read over its own web interface with the user right | 5 min |
| pv_energy_inverter3 | Total produced by inverter 3 | kWh | SMA Sunny Boy, serial 1930083676, counter held inside the inverter | 5 min |
| pv_dc_power_array3 | DC power, array 3 | W | SMA Sunny Boy 3, DC input, serial 1930083676 | 5 min |
| pv_dc_voltage_array3 | String voltage, array 3 | V | SMA Sunny Boy 3, DC input, serial 1930083676 | 5 min |
| pv_dc_current_array3 | String current, array 3 | A | SMA Sunny Boy 3, DC input, serial 1930083676 | 5 min |
| pv_power_total | Solar power, total | W | Sum of the three inverters, written only when all three answered | 5 min |
| pv_energy_total | Total produced by the lab | kWh | Sum of the three inverter counters, written only when all three answered | 5 min |
| irradiance | Global irradiance | W/m² | Kipp & Zonen SMP11 pyranometer | 10 min |
| battery_soc | Battery state of charge | % | SMA Sunny Island 4.6 | 5 min |
| battery_power | Battery power | W | SMA Sunny Island 4.6 | 5 min |
| load_power | Consumption | W | Lab appliances meter plus charging stations meter | 5 min |
| load_power_lab | Lab appliances | W | SMA Energy Meter, serial 1901450192 | 5 min |
| load_energy_lab | Total used by the lab appliances | kWh | SMA Energy Meter, serial 1901450192 | 5 min |
| load_power_chargers | Charging stations | W | SMA Energy Meter, serial 1901449948 | 5 min |
| load_energy_chargers | Total used by the charging stations | kWh | SMA Energy Meter, serial 1901449948 | 5 min |
| load_cc1 | Car charger CC1 | on/off | Shelly relay | 5 min |
| load_power_controlled | Controlled loads, total | W | Sum of the three Shelly relays | 5 min |
| load_power_cc1 | Power drawn by CC1 | W | Shelly relay, 192.168.1.200 | 5 min |
| load_cc2 | Second car socket CC2 | on/off | Shelly relay | 5 min |
| load_power_cc2 | Power drawn by CC2 | W | Shelly relay, 192.168.1.201 | 5 min |
| load_heater | Heater, 2 kW | on/off | Shelly relay | 5 min |
| load_power_heater | Power drawn by the heater, 2 kW | W | Shelly relay, 192.168.1.202 | 5 min |
| energy_level | Energy level | EL | Raspberry Pi control | 5 min |
| temp_indoor | Indoor temperature | °C | SwitchBot Meter in the lab, read from the SwitchBot cloud through the Hub Mini | 5 min |
| temp_outdoor | Outdoor temperature | °C | SwitchBot Meter outside the lab, read from the SwitchBot cloud through the Hub Mini | 5 min |
| temp_panel_mono | Temperature under the monocrystalline panels | °C | SwitchBot Meter under array 1, read from the SwitchBot cloud through the Hub Mini | 5 min |
| humidity_indoor | Indoor humidity | % | SwitchBot Meter in the lab, read from the SwitchBot cloud through the Hub Mini | 5 min |
| humidity_outdoor | Outdoor humidity | % | SwitchBot Meter outside the lab, read from the SwitchBot cloud through the Hub Mini | 5 min |
| humidity_panel_mono | Humidity under the monocrystalline panels | % | SwitchBot Meter under array 1, read from the SwitchBot cloud through the Hub Mini | 5 min |
| grid_power | Backup from the grid | W | SMA Energy Meter, serial 3019450239 | 5 min |
| grid_energy | Total taken from the grid | kWh | SMA Energy Meter, serial 3019450239 | 5 min |
| pv_power_panel_mono_1 | Panel 1, monocrystalline | W | Tigo TS4 optimiser on panel G1, read from the Tigo cloud | 5 min |
| pv_power_panel_mono_2 | Panel 2, monocrystalline | W | Tigo TS4 optimiser on panel G2, read from the Tigo cloud | 5 min |
| pv_power_panel_mono_3 | Panel 3, monocrystalline | W | Tigo TS4 optimiser on panel G3, read from the Tigo cloud | 5 min |
| pv_power_panel_mono_4 | Panel 4, monocrystalline | W | Tigo TS4 optimiser on panel G4, read from the Tigo cloud | 5 min |
| pv_power_panel_mono_5 | Panel 5, monocrystalline | W | Tigo TS4 optimiser on panel G5, read from the Tigo cloud | 5 min |
| pv_power_panel_mono_6 | Panel 6, monocrystalline | W | Tigo TS4 optimiser on panel G6, read from the Tigo cloud | 5 min |
| pv_power_panel_poly_1 | Panel 1, polycrystalline | W | Tigo TS4 optimiser on panel A1, read from the Tigo cloud | 5 min |
| pv_power_panel_poly_2 | Panel 2, polycrystalline | W | Tigo TS4 optimiser on panel A2, read from the Tigo cloud | 5 min |
| pv_power_panel_poly_3 | Panel 3, polycrystalline | W | Tigo TS4 optimiser on panel A3, read from the Tigo cloud | 5 min |
| pv_power_panel_poly_4 | Panel 4, polycrystalline | W | Tigo TS4 optimiser on panel A4, read from the Tigo cloud | 5 min |
| pv_power_panel_poly_5 | Panel 5, polycrystalline | W | Tigo TS4 optimiser on panel A5, read from the Tigo cloud | 5 min |
| pv_power_panel_poly_6 | Panel 6, polycrystalline | W | Tigo TS4 optimiser on panel A6, read from the Tigo cloud | 5 min |
Time, and time zones
- Every measurement is stored in UTC (Coordinated Universal Time, the international reference, often still called GMT). Downloads give both UTC/GMT and local Bergen time (Europe/Oslo).
- Local time is one hour ahead of UTC in winter and two hours ahead in summer, so two days a year are 23 and 25 hours long. Daily totals follow the local calendar day, like a person would count them.
- The lab is at 60.37° N, 5.35° E (HVL Kronstad, Bergen, Norway). Solar noon there is around 13:36 in September, not 12:00: the clock and the sun do not agree.
Note: clock time and solar time
Clock time is an agreement between people. All of Norway uses the same clock, set by the sun at 15° east, plus one hour in summer, so that trains and meetings line up. Solar time follows the sun in one place: it is 12:00 solar time when the sun is highest in the sky, exactly due south. Bergen is about 10° west of 15° east, and the Earth turns 1° every 4 minutes, so the sun reaches its highest point about 40 minutes after 12:00 on the clock, and an hour more in summer time. The Earth's tilted, slightly oval orbit adds up to a quarter of an hour either way during the year. In Bergen, solar noon falls between about 12:20 and 12:55 in winter, and between 13:20 and 13:55 in summer. Every time on this site is clock time (Bergen time, or UTC/GMT in the downloads), so a sunny day's production peaks in the early afternoon, not at noon.
How fresh the values are
- The Raspberry Pi at the lab reads the inverters, meters and battery every 5 minutes and sends them at once. The pyranometer logs every 10 minutes and its file is sent every 15 minutes, so a sunlight value can be up to about 25 minutes old. The panels keep one value every 5 minutes, fetched from the Tigo cloud every 15 minutes. The table above gives the interval of each series.
- A value older than 30 minutes is marked "Data delayed", and older than 3 hours it is marked "Data stale".
- Gaps are shown as gaps: when measurements are missing, the line stops and starts again. It is never drawn straight across the hole, and a missing value is never counted as a zero. Recent gaps are listed on the status page.
What is measured and what is calculated
- Measured: the power of each array, the battery, the consumption, the sunlight, the temperatures and the humidity.
- Read from someone else’s server: the twelve panel series come from Tigo, the temperatures and the humidity from SwitchBot, both fetched over the lab’s mobile link. If that link drops, the lab keeps measuring and these two families stop. The SwitchBot cloud also answers without a time of its own, so those values carry the moment the lab asked for them, not the moment the air was that warm.
- Calculated: sunrise, sunset and the night shading on the charts, from the sun’s position over Bergen, using the real longitude and the equation of time. Nothing on the charts is a modelled measurement: every line comes from an instrument.
- Checked at the lab: which physical panel each of the twelve optimised series belongs to. The order on the photograph of the frame comes from the layout recorded in Tigo; on 21 September 2026 a panel was covered at the lab and the series named in that seat is the one that fell.
- Summed: hourly and daily values are averages of the measurements of that period; the energy is that average multiplied by the time actually measured, so a gap lowers the energy instead of being invented.
Hardware periods
The installation has changed over the years, so numbers from different periods are not directly comparable.
Arrays 1 and 2 wired as two parallel strings of three, and limited by the inverters (2021-11-19 to 2026-03-28)
Each tilted array was built as two strings of three panels in parallel: about 94 V and nearly 18 A, into an inverter that accepts 10 A. The inverters limited the current, so each array stopped at about 1 kW instead of 1 600 W, and the production curve of a sunny day has a flat top instead of a peak. The panels themselves were the same as today, so the peak power of the lab was unchanged at 4 770 Wp: what was limited was how much of it could be used. The end date, 28 March 2026, is confirmed. The start date is the commissioning date of the Tigo monitoring, which is the earliest documented date for this configuration; nobody has confirmed when the arrays themselves were installed.
Arrays 1 and 2 wired as one series string of six (2026-03-28 to today)
Each tilted array is now one string of six panels in series: about 189 V and 9 A, inside what the inverter accepts. The production curve is a bell again and reaches 1 600 W per array. Confirmed on 16 September 2026 by reading 173.13 V on array 1 and 167.72 V on array 2 directly from the inverters. Array 3 was not touched.
Known issues
Which of the two tilted arrays is monocrystalline and which is polycrystalline is not confirmed
The site names one tilted array monocrystalline and the other polycrystalline. That naming comes from the lab wall chart, which maps each inverter serial number to an array. On 17 September 2026 we were told that two of the three inverters may have been exchanged about a year ago. If that happened and the chart was not redrawn, the two names are the wrong way round. The measurements cannot settle it: six monocrystalline panels in series give 189.3 V and six polycrystalline ones 189.0 V, three tenths of a volt apart, and the two arrays stand side by side under the same sky. The vertical array is not affected, because it reads 147.52 V where the tilted ones read 168 and 173 V. Until somebody follows the cable from the monocrystalline panels to the inverter it enters and reads the serial printed on it, no figure on this site should be used to say that one of these two technologies outperforms the other. The measurements themselves are correct and are not affected: only the name of the technology on two of the series is in doubt.
The meaning of "Consumption" changed during the first hour of recording
On its first day, the series recorded the sum of the three switched loads, which was 0 W while the lab kept them off. From 11:46 UTC it records the sum of the two consumption meters of the lab, about 150 W. The readings from that first hour have been removed rather than left to look like an hour at zero consumption. What they measured is still recorded, under "Controlled loads, total".
Licence and how to cite
The data is published under CC BY 4.0: you may copy, change and reuse it, including for commercial work, as long as you say where it comes from.
HVL SolarLab (2026). SolarLab measurements. https://www.solarlab.online. Licence CC BY 4.0.
Questions about the data, or something that looks wrong? Write to solarlab@hvl.no.

