Getting your data into PVOutput

The five upload routes, from direct push to manual entry

A funny thing happens when people first set up a PVOutput.org account. They register, define their system, and then sit there for a moment, blinking at an empty dashboard, wondering: how does the data actually get in?

The answer is "it depends", which is not a satisfying answer but a true one. PVOutput is a destination, not a collector. It happily accepts data from almost anywhere, but it does not reach out and grab it from your inverter on its own. Someone, or something, has to push or pull the data and hand it over. Choosing how to do that is the most consequential setup decision you will make, because once it is running you will rarely think about it again.

This article walks through the realistic options for getting production data into PVOutput in 2026. A separate article covers the Setting up consumption monitoring side, because consumption is a different beast that deserves its own treatment.

The five categories of upload

Every method falls into one of five categories. Some are easy. Some require a Raspberry Pi. Some only work with specific inverter brands. None of them are particularly hard once you understand what you are choosing between.

  1. Direct push from the inverter itself, where the inverter sends data straight to PVOutput over your home network
  2. PVOutput's built-in Auto Uploader, where PVOutput pulls data from your inverter manufacturer's cloud
  3. A bridge running on your home network, like Home Assistant, Solar Assistant, or IoTaWatt, which collects data locally and forwards it
  4. A custom script, typically on a Raspberry Pi or a small home server, written in Python, PHP or Node.js
  5. Manual upload, where you type the daily totals in by hand

These are roughly ordered from least to most effort, but the right choice depends entirely on which inverter you own and how comfortable you are with home networking. Let me take them one at a time.

Direct push from the inverter

This is the simplest route, when it is available. A handful of inverters can send their production data directly to PVOutput without any intermediate device. You log into the inverter's own web interface, paste in your PVOutput system ID and API key, and it just works.

The classic example is the older Fronius range: the Primo, Symo, and Galvo SnapINverters with a Datamanager 2.0 card. These have a built-in "Push Service" feature that supports PVOutput as a target. The configuration is documented on the PVOutput help pages, and once set up it runs reliably for years with no babysitting. Fronius units with a Smart Meter installed can even push consumption data alongside production, which is a rare luxury for direct uploads.

There is, however, a catch. Fronius removed the Push Service from the newer GEN24 series of inverters, which started shipping in 2022. Anyone with a recent Fronius installation will need to use one of the other methods below. This is a small but recurring theme in this space: features that work well in older hardware sometimes disappear from newer hardware, and there is rarely a clean justification.

Other inverter brands generally do not offer direct PVOutput push. SMA, SolarEdge, Enphase, GoodWe, Huawei and Sungrow all assume you will use their own cloud platform first, and PVOutput is reached from there. Some older SMA inverters with the now-discontinued Webbox accessory could push via FTP, but the Webbox itself has been out of production for years.

If you are buying new and care about straightforward PVOutput integration, this is worth raising with your installer. A SnapINverter Primo on the second-hand market might still be the easiest path, oddly enough, if direct push matters to you more than the latest hybrid features.

PVOutput's Auto Uploader

The next-easiest option is letting PVOutput pull the data itself. PVOutput maintains a feature called the Auto Uploader, which polls a number of inverter manufacturer clouds at regular intervals and writes the results into your account. You configure it once on the Auto Uploader settings page, enter the right credentials, and it runs in the background.

The currently supported sources include SolarEdge, Enphase, Smappee, Efergy, Wattvision, and a few more niche names. SolarEdge is the big one for European audiences. The setup is straightforward: enable API access in your SolarEdge monitoring portal, generate an API key, and paste it into PVOutput along with your site ID. Data flows in every 15 minutes, which is the cadence SolarEdge's API allows.

There are a few practical points. SolarEdge limits API access to 300 calls per day, which is plenty for one PVOutput connection but can become a problem if you also have Home Assistant pulling from the same API. Enphase has its own limits and quirks. The Auto Uploader is a free service, but some advanced features like inverter temperature uploads require a PVOutput donation. Most users get by fine on the free tier.

The Auto Uploader is also dependent on the manufacturer's cloud being available. If SolarEdge has an outage, your PVOutput data has a gap. This is rare but happens, usually for an hour or two at most. The data fills in retroactively when the cloud comes back, so the gap eventually disappears, but it is worth knowing this is the failure mode.

A bridge on your home network

For inverters that do not push directly and are not supported by the Auto Uploader, the answer is usually something running on your home network that collects local data and forwards it. Three main options dominate in 2026.

Home Assistant is the open-source giant in this space. Almost every major inverter brand has either an official integration or a community-maintained one: SolarEdge (local Modbus TCP, no cloud needed), Enphase (local Envoy, sub-minute updates), Fronius (local API, very fast), SMA (Speedwire), Huawei FusionSolar, GoodWe, Growatt, Solis, Victron, and many more. Once Home Assistant has the data, you forward it to PVOutput either via a community add-on that posts to the API every few minutes, or via a simple automation that runs on a schedule. This is the option I personally use, and it has the advantage of giving you a local copy of all your data alongside the PVOutput upload, plus the ability to act on the data in real time (start the dishwasher, charge the EV, run the heat pump). For anyone already running Home Assistant for other reasons, adding solar is a Saturday-afternoon project.

Solar Assistant is a commercial alternative aimed at DIY solar setups, especially hybrid inverters from LuxPower, Deye, Growatt, MPP Solar and similar brands. It runs on a Raspberry Pi, costs around €54 one-time, and provides a clean web dashboard plus MQTT output for integration into Home Assistant. Solar Assistant does not currently have a built-in PVOutput uploader, despite being on the wishlist for years, so the typical setup is Solar Assistant → MQTT → Home Assistant → PVOutput. More moving parts, but each part is reliable on its own.

IoTaWatt is a different category, an energy monitor with current transformer (CT) clamps that you install in your fuse box. It measures whatever you wire it to, including solar production from the inverter's output cables, and it has a direct PVOutput integration built in. The setup is more invasive than the others (you need an electrician unless you are very comfortable in a fuse box), but it gives you complete production and consumption data from one device. IoTaWatt costs around $200 to $300 depending on configuration, and it is popular with users who want a single, focused device rather than a general-purpose home automation server.

For many households, the bridge approach is the right answer. It works with any inverter, gives you local data ownership, and decouples your monitoring from any specific manufacturer's continued goodwill.

Custom scripts

For the technically inclined, the smallest and cheapest option is a custom script running on a Raspberry Pi, an old laptop, or a NAS. PVOutput's API is straightforward, and there are open-source uploaders on GitHub for almost every inverter brand: GoodWe, Solis, Trannergy, Huawei FusionSolar, Enphase, the various Solarman-based clones, and even some obscure Asian brands.

The pattern is always the same. The script polls the inverter (locally over Modbus, or via the manufacturer's cloud API), formats the data into the structure PVOutput expects, and posts it to the addstatus.jsp endpoint every five minutes. A daily summary push to addoutput.jsp cleans up the totals at end of day. The whole thing usually fits in 100 to 200 lines of Python or PHP and runs forever once tuned.

This is not the path for everyone, and I would not recommend it as a first attempt unless you are already comfortable with the command line. But for someone with the right background, a custom script gives you complete control: precise polling intervals, custom error handling, the option to push extra data fields like inverter temperature or panel-string voltages, and zero ongoing cost. Several of the most accurate PVOutput systems on the public ladder are running on home-brewed scripts.

Manual upload

The last option exists, and it is worth mentioning even if it is rarely the right choice. PVOutput accepts manual entry of daily totals through a simple web form. If your inverter has no network connection at all, no app, no API, just a display showing today's energy total, you can read the number off the screen each evening and type it into PVOutput.

This used to be the only way, fifteen years ago. Today it makes sense for two scenarios: an old inverter that predates network connectivity, or as a stop-gap while you set up something more permanent. The historical data is still useful, just less granular: you get one data point per day instead of one every five minutes. PVOutput's daily and monthly views work fine with manual data, but the live and intraday charts will be empty.

Choosing what fits

The decision tree is shorter than the article suggests. If you have an older Fronius with a Datamanager 2.0, use the built-in push and stop reading. If you have a SolarEdge or Enphase, use the Auto Uploader. If you already run Home Assistant for other reasons, plug in your inverter integration and forward to PVOutput. If you are a DIY solar enthusiast with a hybrid inverter and a Raspberry Pi, look at Solar Assistant or a custom script. If you have an inverter so old it predates the internet, type the numbers in.

Whatever you pick, the goal is the same: get the data flowing reliably, then forget about it. A working PVOutput integration runs in the background for years and rewards you with a complete, portable history of your production. Once it is set up, the next question becomes what to do with it, which is where apps like HelioPeak come in. But that is a topic for How HelioPeak fits into the picture, a few articles down the road. For now, the data has to get there first.

← Back to blog index
ENNLFRDEITES