Single-phase solar system — Deye SUN-6K-SG05LP1 + NKON ESS Pro A rooftop PV array feeds a single-phase Deye SUN-6K-SG05LP1 hybrid inverter over DC. An NKON ESS Pro battery connects to the inverter over Pylontech CAN and DC. The inverter supplies AC to home loads and, through an energy meter / grid CT, to the grid. Two monitoring data paths reach the platform: Path A is the inverter polled over Modbus / RS485, Path B is the Seplos BMS read directly over RS485. PV Deye SUN-6K-SG05LP1 single-phase hybrid inverter, 6 kW NKON ESS Pro 16.1 kWh · Seplos BMS Loads Energy Meter / Grid CT Grid Monitoring Platform DC DC CAN AC AC AC Modbus / RS485 — Path A RS485 · Seplos BMS — Path B DC (PV / battery) AC CAN (Pylontech, battery → inverter) Modbus / RS485 — Path A (inverter) RS485 — Path B (Seplos BMS, cell-level)
The same system, read as a monitoring map: power (blue DC, red AC), control (green CAN) and data (the two teal links).

Three things happening on the same wires

It helps to read the diagram as three things going on at once, over the same hardware:

  • Power — the blue (DC) and red (AC) lines: where the energy actually flows.
  • Control — the green CAN line: how the battery and inverter agree on charging.
  • Data — the two teal lines: how the readings get back to you.

Same wires, very different jobs. Let's follow each one.

The power path — DC in, AC out

Start on the DC side. The rooftop panels feed straight into the inverter. There are no power optimisers here, and that's on purpose: the Deye is a string inverter, so the panels connect directly and the inverter finds their best operating point by itself. That's one less type of device to fit, wire and troubleshoot later.

The inverter is the centre of everything. It turns DC from the panels into single-phase AC, and it works in both directions on the battery — charging the pack when there's spare solar (or cheap grid power), and draining it to run the house when there isn't.

On the AC side it powers the house first, then tops up the difference from the grid through the energy meter / grid CT. That small current sensor tells the inverter, second by second, whether you're drawing from the grid or pushing back into it — so it can favour using your own solar over exporting it.

This is also where the most useful number on the dashboard lives: grid power, positive or negative depending on whether you're importing or exporting. One catch — Deye reports the sign its own way, so you need to check it against a real charge or discharge before you trust the plus or minus on screen.

The storage path — why the battery pretends to be a Pylontech

The green CAN line is the quiet hero of the diagram. A modern LiFePO₄ battery isn't a dumb box of energy. Its Seplos BMS — the battery's management system — is constantly telling the inverter how much current it can safely take or give right now, what its voltage and charge level are, and when to ease off because it's warming up. That whole conversation runs over CAN.

Here's the gotcha. Out of the box, the NKON knows how to talk to Victron, Sofar, Pylontech, Growatt, Solis and Goodwe — but not Deye. Happily, every Deye understands Pylontech, so you set the battery to pretend it's a Pylontech. That single setting is what makes the pair work — invisible once it's running, and a real headache when it's wrong. Running next to the CAN line, a pair of DC cables carries the actual power. Control and energy, side by side.

The data path — one diagram, two ways to read it

The two teal lines do different jobs, because keeping an eye on a whole fleet of these systems is really two problems at once.

  • Path A — ask the inverter (Modbus / RS485, the solid line). Poll the Deye and you get solar, grid and household power, plus the battery's charge level, voltage, current and temperature — all in one read. This is the default for every site: one thing to poll, and it covers roughly 90% of what a dashboard needs. It's also the only place that puts solar, grid and battery on the same clock.
  • Path B — ask the battery directly (RS485, the dashed line). Read the Seplos BMS itself and you get what the inverter never passes on: the voltage of every individual cell, the separate cell temperatures, the balancer, the battery's health and its cycle count. If one cell starts drifting out of line — the earliest warning that a pack is going bad — this is the only place you'll see it.

So the rule is simple: poll Path A everywhere, and add Path B only where someone ran the spare RS485 cable. Never hold up a new site waiting for it. That's why it's dashed in the diagram — genuinely useful, but optional.

Three things that bite if you skip them

  1. The −100 °C temperature trick. Deye's temperature readings need 100 subtracted (value = raw × 0.1 − 100). It's buried in driver code rather than the official register list, so it's easy to miss — and then your battery looks 100 degrees hotter than it really is.
  2. Pylontech, not Deye. The battery talks to the inverter as a Pylontech, because it has no Deye profile of its own.
  3. Seplos V2 and V3 aren't the same. Path B speaks Modbus-RTU on V3 firmware but Modbus-ASCII on V2 — a different protocol, not just a different setting. Check the firmware before you write the code to read it.

Why we draw it this way

A wiring diagram tells the installer how to connect the box. This one is for whoever looks after the system afterwards. Every line is a source of data, every box is a place a fault can start, and the split between Path A and Path B is the whole monitoring plan in a single picture: the inverter gives you the broad view across every site, and the battery gives you the deep, cell-by-cell detail on the rare site that needs it. That's the same data SolarERP turns into alerts and work orders, and exactly the kind of hardware it connects to through integrations.

Open the ERP Book a demo