Solar Monitoring: Native Inverter API vs Modbus vs External CT Meter

Choose solar monitoring for Home Assistant: compare native inverter APIs, Modbus TCP/RTU and external CT meters for generation, grid import/export, reliability and installation.

Quick Summary (TL;DR)

For most existing solar installations, start with the inverter’s supported local interface, not another piece of hardware. A maintained native integration such as the Home Assistant Fronius integration can deliver generation, inverter status and, where a correctly installed compatible meter is connected, useful grid-flow data without depending on a vendor cloud. But a native API only exposes what the inverter actually measures; it does not magically know household consumption or tariff-meter import and export.

Choose Modbus when you need documented registers, integration with other controllers or measurements missing from the native API. Check whether your exact inverter, communications module and firmware expose Modbus TCP or RS485 Modbus RTU, and whether the connection is enabled for the owner. Modbus is a protocol, not a promise of identical registers, trustworthy energy counters or internet-independent operation on every product.

Choose an external CT-based meter when the monitoring boundary is the household supply, when the inverter is locked down, or when independent verification matters. A correctly installed bidirectional meter at the grid connection point can show import and export regardless of inverter brand, including at night. It still cannot tell you solar production or battery flows unless additional measurements are available. A certified direct-connected or CT-operated Modbus energy meterAliExpress price is another external-meter option, not a fourth data source in the energy balance.

The first question is what you actually need to measure

Three superficially similar dashboards may be answering three different questions. An inverter measures energy converted from its PV input to AC output. A grid meter measures energy crossing the property’s connection to the public network. A battery controller measures charge and discharge on its own electrical side. These values have different signs, time bases, efficiencies and accounting boundaries. Buying a communications gateway before defining the measurement boundary is a reliable way to end up with a dashboard that looks impressive but cannot reconcile with an electricity bill.

A solar-only homeowner may be satisfied with daily AC production and a fault alert. Someone planning excess-solar EV charging needs a sufficiently timely net grid-flow measurement, plus a charger that can enforce its own safety and minimum-current limits. A hybrid solar-and-battery household needs separate solar, grid and battery values. A homeowner investigating a high bill needs import/export counters measured at the correct connection point, not merely the inverter’s daily yield. These are different buying briefs, even when all use Home Assistant.

QuestionMinimum reliable measurementCan an inverter alone answer it?Best verification
How much solar did I generate?Cumulative AC PV generation, kWhOften yes; check the exposed counterCompare inverter portal and local counter over the same period
Am I importing or exporting now?Signed grid power at point of common couplingOnly if the inverter system has a suitable grid meterCompare direction with the physical meter or known loads
How much did I buy and export?Separate cumulative import and export kWhNot without valid grid-meter dataCompare billing-register changes over exact dates
What is the house using?Solar, grid and battery flows with defined sign conventionsSometimes inferred, if all necessary flows are meteredCheck balance under several operating conditions
Can I use surplus for an EV or immersion heater?Timely, reliable net grid-flow signal plus local fail-safeOnly with correct meter and control pathObserve controlled transitions and charger fallback
Did the battery charge from solar or grid?Battery charge/discharge and grid/PV contextHybrid systems may expose some valuesCompare battery and AC/DC boundary; do not assume zero losses

At a glance: native API, Modbus and external CT meter

CriterionNative inverter API / official integrationModbus TCP or RS485 RTUExternal CT energy meterAliExpress price
Primary measurementInverter and attached system sensorsWhichever device registers are documentedConductors passing through correctly placed CTs
Typical Home Assistant pathBrand integration over local LAN; sometimes cloud insteadBuilt-in integration or configured Modbus sensorsLocal Shelly integration, MQTT or gateway-specific integration
Solar productionUsually strongest for AC generationOften available; DC/AC semantics require checkingNot from a grid-only CT; dedicated solar CT needed
Grid import/exportOnly if the inverter system includes a grid meterAvailable when reading a correctly located grid meterYes, with a bidirectional meter at the grid boundary
Battery dataOnly where vendor exposes battery/controller dataRegister-map and model dependentNo battery state of charge; power may require extra channels
Local independenceGood for a genuine local API; not for cloud-only APIsGood with local server and transportGood with supported local device and LAN
Installation workOften none beyond network setupNone for existing TCP; RS485 wiring may be neededDistribution-board work and CT positioning by a qualified electrician
Major riskMissing entities, model restrictions, vendor firmwareRegister, sign, scaling, access and security errorsIncorrect CT phase pairing, orientation and physical coverage
Long-term costPotentially low when already installedGateway, cabling, configuration and maintenanceMeter, compatible CTs, enclosure space, electrician and maintenance

The table deliberately avoids claiming that one method is inherently more accurate. Measurement accuracy belongs to the actual metering hardware, its installation and the meaning of the exposed value. Modbus reading a calibrated meter does not make the reading less accurate than a native JSON API; an API returning an inverter estimate does not become a billing-grade meter because the data is digital. The meaningful comparison is sensor origin + physical location + calibration + data transport + recovery behaviour.

Option 1: read the inverter’s native local API

A genuine native local API is usually the simplest route when the installation already has the required network interface. For example, Fronius documents its Solar API as a JSON interface served by the inverter or Datamanager. The official Home Assistant Fronius integration supports Solar API v0/v1 systems and can read the connected inverter, meter and storage information when the particular installation provides it. On Gen24 firmware 1.14.1 and later, the Solar API may need enabling in the inverter web interface. This is not the same as the separate, internet-facing Solar.web query API.

That integration is more capable than a generic “solar production sensor”. Home Assistant documents power-flow polling around every ten seconds, with many inverter and meter measurements refreshed every minute. Most supported Fronius models also expose optional SunSpec Modbus TCP; Home Assistant can add MPPT measurements from Modbus alongside the Solar API. It is therefore possible for one official integration to use both data paths. The existence of two paths does not mean you should duplicate the same energy counter in the Energy dashboard.

A native API is attractive because it preserves vendor interpretation of battery states, operating modes and system topology. However, this advantage has limits. The inverter may go to sleep overnight, its web interface may change after firmware updates, and an attached meter may be installed in a feed-in path rather than a consumption path. Some inverters report DC string yield and AC delivered energy as distinct quantities. Even the official Fronius documentation warns that the meaning of per-MPPT energy can differ between product families; for the Home Assistant solar-production entry, the AC Energy total is generally the relevant counter, not a larger DC value.

Do not generalise this example to every inverter. Some brands offer cloud APIs rather than owner-accessible local APIs; some require installer permission to enable third-party access; some use separate dataloggers with model-specific features. Before purchasing an inverter or gateway, ask the installer to demonstrate the exact endpoint, the exact data points and the account privileges that will remain available after handover. “Has Wi-Fi” and “works with an app” are insufficient answers.

Native API checklist: six questions to ask before buying

  1. Does the precise inverter model and firmware expose a documented local API, or is the advertised API hosted in the manufacturer cloud?
  2. Can the owner enable and keep the API active without an installer-only password or an ongoing subscription?
  3. Which values are physically measured: AC solar yield, PV string DC power, grid import/export, battery charge/discharge and household load?
  4. Is a compatible smart meter already installed, where is it connected, and what is its documented meter placement?
  5. Does the device continue to respond when WAN internet is disconnected, and what happens overnight or during an inverter reboot?
  6. Are there lifetime counters suitable for the Energy dashboard, or only instantaneous watts and daily-reset totals?

Option 2: Modbus TCP or RS485 RTU

Modbus is useful when a vendor publishes an inverter or meter register map, when a commercial controller needs the same data, or when a native integration omits important diagnostics. Modbus TCP runs over an IP network, commonly on TCP port 502. Modbus RTU uses serial communications, commonly RS485, and needs a suitable interface or an appropriate RS485-to-network gateway when Home Assistant cannot connect directly. A gateway configured as transparent RTU-over-TCP is not necessarily equivalent to a native Modbus TCP server: the Home Assistant Modbus integration distinguishes these connection types.

The official Home Assistant Modbus documentation explains unit IDs, polling intervals, input/holding registers, data types and byte/word ordering. These are not implementation trivia. Reading a two-register IEEE-754 float as two independent 16-bit integers can produce plausible-looking nonsense. A scale factor can change units by 10 or 1000. A signed grid-power register may use the opposite convention to another device. The address printed in a vendor manual may be one-based while the integration expects a zero-based register offset. Copying a random YAML snippet from another inverter revision is not a verification method.

Fronius publishes SunSpec Modbus documentation. Its GEN24 manual explicitly states that register locations can vary with the dynamic SunSpec model list: a client should discover model start addresses and use offsets, not assume a hard-coded address applies universally. The manual also distinguishes integer-plus-scale-factor from floating-point model variants. A professionally supported integration that discovers these details is preferable to dozens of hand-maintained registers unless you have a clear reason to go lower-level.

Modbus does not by itself provide authentication or encrypted transport. Never forward TCP 502 to the public internet. Use a trusted local network or a properly secured VPN for remote access; segment IoT equipment if practical, and restrict write permissions. Some inverters expose control registers for export or battery operation. A read-only monitoring project should not enable unrestricted write access simply because a forum example includes it. Export limits, protection settings and grid-code parameters are the installer’s responsibility, not experimental Home Assistant automations.

Modbus purchasing traps

TrapWhat to checkConsequence if missed
“Modbus supported” with no port or mapExact inverter SKU, firmware, logger model, TCP versus RTU and published register listAdditional gateway, installer visit or no integration
Cloud logger mistaken for local gatewayWhether local Modbus can coexist with cloud monitoring on that revisionLoss of portal visibility or unplanned extra hardware
Unknown register scalingData type, signedness, endianness, scale and unitIncorrect kW/kWh and false automation triggers
Unclear meter unit IDInverter and meter IDs; gateway routing; multi-drop bus addressingReads inverter but not the grid meter
Inverter sleeping at nightWhether grid meter is powered and queryable independentlyNo overnight import readings
Multiple polling clientsVendor rate/connection limits and shared RS485 bus timingTimeouts, stale entities or unstable datalogger
Write controls enabled by defaultAccess control and read-only configurationRisk to export compliance and battery operation

A specific Solis example shows why the exact logger matters. The manufacturer’s S2-WL-ST product page lists Modbus TCP support, Wi-Fi/LAN networking and local storage for later cloud backfill, with the storage window depending on how many inverters share the logger. Those claims do not guarantee simultaneous cloud service and local Modbus operation in every mode. Confirm the relevant logger manual and firmware behaviour with Solis and the installer before promising both functions. A logger advertised for ten inverters is not ten independently metered household grid connections.

Option 3: an external CT-based grid meter

A current transformerAliExpress price (CT) measures current in a conductor without carrying the measured load through the monitor. A useful power and energy meter also needs the correct voltage reference and phase relationship, or an equivalent documented measurement method. A bare CT clampAliExpress price connected to an arbitrary ESP32 analogue input is not a certified grid meter. For bidirectional solar monitoring, select a meter that explicitly supports signed active power and separate imported and exported energy totals, and ensure the installer places the CTs on the conductors at the intended electrical boundary.

The current European Shelly Pro 3EM 120A v2 is one example of a DIN-rail, three-phase-capable CT monitor with a local web interface, Ethernet/Wi-Fi and MQTT/HTTP/WebSocket connectivity. Shelly lists three 120 A CTs in the package, four-quadrant measurement and manufacturer-declared Class B active-energy performance. It is a monitoring device, not an inverter controller or a built-in switching relay. The official Home Assistant Shelly integration communicates locally without requiring the Shelly cloud.

Pay attention to product revision and documentation discrepancies. The v2 product page describes a minimum 45 days of one-minute history in its detailed specification, while some marketing copy says up to 60 days. Treat the detailed device documentation and firmware as authoritative for the purchased unit; do not promise automatic Home Assistant backfill of all local records after an outage. A 120 A CT rating is the rating of the specified transformer, not a claim that the meter itself may be wired into a 120 A circuit without suitable voltage-sensing protection.

An external meter is particularly valuable when an older inverter offers only a cloud portal, when you have multiple PV inverters, or when you want the grid measurement to remain available at night. It is also useful as an independent cross-check on the inverter’s grid-flow estimate. It is not sufficient for measuring total solar generation if fitted only at the grid boundary. If you need solar generation from an otherwise opaque inverter, ask about a separate correctly located AC output meter; do not infer solar generation from net grid export.

External meter does not always mean CT: direct and Modbus alternatives

A panel-mounted Modbus meter can use direct current connections or external CTs depending on its model and rated current. The Eastron SDM630 family illustrates the distinction: the manufacturer publishes separate models and manuals, including SDM630 MCT series documentation describing RS485 Modbus RTU and external CT wiring. Do not purchase an SDM630-labelled meter without checking whether the selected variant is direct-connected or CT-operated, its current input specification, phase configuration, supply arrangement and applicable certification. “Modbus” describes the output interface, not how the current is sensed.

A direct-connected meter may provide robust register-based import/export totals but requires the load conductors to be routed through appropriately rated meter terminals. A CT-operated meter avoids routing the full load current through its current-input terminals but introduces CT ratio, polarity and secondary-circuit requirements. Neither is a DIY distribution-board modification. In the UK, work within the consumer unit and any meter-tails changes need a competent electrician, and the utility’s sealed meter and network equipment are not homeowner installation points.

What each meter location actually tells you

Meter locationDirectly measuresCannot independently tell youTypical error
Inverter AC outputAC solar generation on that outputGrid import/export or whole-house loadTreating inverter output as exported energy
Grid connection pointNet exchange with the public grid; separate counters if supportedTotal PV yield or battery state of chargeCT on only one phase of a three-phase supply
Battery inverter AC connectionBattery inverter AC-side powerBattery DC energy and losses without other sensorsMixing AC and DC battery energy
PV DC stringString voltage/current and DC powerAC export after conversion lossesAdding DC yield to AC generation
House subcircuitLoads served by that circuitWhole-property import/exportAssuming a partial circuit is the whole house
Shared solar + battery outputCombined output at that locationSeparate PV and battery contributionsCounting battery discharge as fresh solar generation

Power balance: a worked example that catches bad dashboards

Suppose a house has no battery, and at one instant the inverter reports 3.0 kW of AC PV generation while a correctly positioned grid meter reports 1.0 kW of export. The implied house demand is approximately 2.0 kW, ignoring small losses and differences in update timing. The 1.0 kW export is not the solar generation. Equally, a 3.0 kW inverter reading does not mean the homeowner is exporting 3.0 kW. If a cloud dashboard and local meter sample ten seconds apart while a kettle switches on, their instantaneous figures need not balance exactly.

Now imagine the same inverter reports 3.0 kW of AC output, the battery inverter discharges 1.0 kW on the AC side, and the grid meter shows 0.5 kW import. The approximate house demand is 4.5 kW, assuming the named measurements are independent and use the same boundary. But if the “inverter output” is already a combined PV-plus-battery value, adding battery discharge again would double-count it. With hybrid equipment, draw the measurement points before writing the formula. Battery charge/discharge may be reported on the DC side, where efficiency losses mean simple AC balances are not exact.

Illustrative AC-side, solar-only balance (same instant):
House load ≈ AC solar generation + grid import − grid export
Example: 3.0 kW + 0.0 kW − 1.0 kW = 2.0 kW

For a hybrid system, add battery AC discharge and subtract battery AC charge
ONLY if those flows are separately metered and not already included in inverter output.

The corresponding energy balance uses kWh integrated over the same period, not a snapshot in kW. Import and export must remain separate cumulative counters for billing. A single signed net-power sensor can show zero at an instant even when different phases are importing and exporting; billing treatment and three-phase netting depend on the utility metering arrangement. Do not assume that summing instantaneous per-phase values reproduces the supplier’s import/export registers for every country or meter type.

Three-phase and regional compatibility: UK and European homes

Typical UK and continental European domestic supplies are nominally 230 V phase-to-neutral, 400 V phase-to-phase at 50 Hz, but the actual service, earthing arrangement, main fuse, permitted installation methods and grid code differ by property and country. A single-phase solar inverter may sit on one phase of a three-phase property. A meter covering only that phase will not measure the whole home. A three-phase meter needs the correct phase-to-voltage pairing and, where required, a neutral reference; a CT facing the wrong way or paired with the wrong voltage phase can report misleading import/export and power factor.

The European Shelly Pro 3EM v2 specification states 100–260 V AC supply and per-phase voltage sensing, with three supplied 120 A CTs. That does not mean the unit is connected directly across 400 V phase-to-phase. Its wiring diagram must be followed. Equally, a US-market split-phase energy monitor should not be assumed to fit a UK 230/400 V installation because the name or number of CT channels looks suitable. Confirm the exact regional SKU, voltage range, CT specification, approvals and installer guidance before purchase.

For new solar generation or battery storage in Great Britain, government guidance on DNO registration explains that the installer must determine whether the arrangement falls under connect-and-notify or apply-to-connect procedures, typically using the relevant G98/G99 and sometimes G100 process. Adding a read-only monitor is not permission to alter an inverter export limit. Monitoring hardware must not interfere with certified grid protection, meter seals or the approved export-control arrangement. The local electrical code, BS 7671 where applicable and the installation manual govern wiring.

Outages: “local” is not the same as “complete history”

Consider four different outages: (1) internet is unavailable but the local LAN works; (2) Home Assistant stops for an hour; (3) the inverter shuts down overnight; and (4) the meter itself loses power. A local API or Modbus server can survive the first scenario. It does not follow that Home Assistant can reconstruct minute-by-minute readings missed during the second. A cumulative energy counter can often reveal the total change across the gap, while a power-only sensor integrated inside Home Assistant cannot recreate unknown changes in load during the outage. The third and fourth scenarios depend on the equipment’s auxiliary power and logging design.

Failure scenarioNative inverter APIModbus reading a cumulative meterExternal CT meter with local history
WAN internet outageUsually still works if truly local and LAN remainsWorks if local link and server remain poweredWorks locally if LAN remains and device is configured
Home Assistant down for one hourLifetime counter may bridge total; not every intermediate pointCumulative register can bridge total; fine-grained trace missingDevice may retain history; check actual retrieval and import path
Night-time inverter sleepPV data may be unavailable; attached meter path variesInverter-hosted gateway may sleep; standalone meter may remain liveGrid meter remains useful if independently powered
Device reboot or power lossDepends on non-volatile counters and firmwareDepends on meter persistence and register semanticsDepends on non-volatile logging and clock
Vendor cloud unavailableLocal API unaffected if truly localLocal Modbus unaffected if independently enabledLocal meter unaffected; vendor cloud optional
Router/VLAN failureNo Home Assistant access across broken networkTCP path lost; RS485 to local gateway may still operateEthernet/Wi-Fi path lost, even if meter keeps recording

For billing reconciliation, a stable lifetime import/export kWh register is usually more useful than a beautifully sampled but lossy instantaneous-power graph. The Home Assistant Integral helper approximates kWh from power over time; the documentation explicitly notes that the result is an approximation, and the helper resumes from its retained value after restart rather than reconstructing unobserved changes. If you already have a suitable cumulative kWh register from the hardware, prefer it. Test overnight and outage recovery before declaring the system reliable.

Cloud APIs are a different fourth category

A cloud API can be convenient when the inverter offers no local route, but it is not interchangeable with a local native API. It depends on the vendor’s servers, authentication, internet access, polling quotas and account rights. For example, the official Home Assistant SolarEdge integration uses site credentials or an API key for cloud-based data and documents a 15-minute update cycle for its site sensors to respect a daily request limit. That can be perfectly adequate for daily production reporting but is not a substitute for fast, fail-safe local grid measurement for dynamic load control.

Do not assume that a local Modbus connection and the vendor’s cloud service always work simultaneously. Some logger modes or firmware variants may prioritise one service. Obtain written confirmation for the exact product and current firmware if preserving cloud monitoring matters to your installer or warranty arrangements. Where remote access is necessary, a secured remote connection into Home Assistant is generally a better monitoring architecture than exposing unauthenticated Modbus services directly to the internet.

Practical buying combinations, not a one-size-fits-all winner

Existing installationRecommended starting pointBuy only if neededAvoid
Supported Fronius with working Solar API and grid meterUse official local Fronius integration; validate meter positionNothing initially; optional wired LAN improvementsDuplicate CTs solely to obtain a second copy of the same value
Fronius with no grid meterUse Solar API for generation; add approved grid meter for import/exportCompatible inverter meter or independent meterInferring grid export from solar output
Older inverter with cloud-only monitoringUse vendor portal for PV history; install independent grid monitorCT meter plus electrician; optional AC solar output meterTreating cloud data as a real-time local fail-safe
Hybrid system with batteryUse native system data for PV/battery; independent grid meter for verificationGateway/approved meter if missingMixing battery DC and AC counters
Multiple inverters or mixed brandsMeter the common grid boundary; sum independent AC generation only when appropriatePer-inverter integration and dedicated PV output metersAdding grid import twice or treating net export as production
RS485-only inverter or meterDocument register map and bus firstIsolated compatible RS485 adapter or industrial gatewayAssuming every Ethernet serial server speaks native Modbus TCP
New build with automation ambitionsSpecify meters, cable routes and network at design stageAppropriate approved hardware and commissioning timeBuying an inverter based solely on app screenshots

If your aim is simply to see whether the house is exporting, an independent local meter at the grid point may be the most durable choice. If your aim is to diagnose underperforming PV strings, the inverter’s own MPPT data is essential; a grid CT cannot reveal a failed string. If your aim is to automate a battery, the battery management system and manufacturer-approved control route matter more than either dashboard. There is no universal “best protocol” without stating the question and the physical measurement boundary.

Total cost of ownership: the parts that quotations omit

Avoid comparing only the headline price of a communication dongle against a CT meter. For a new installation, the inverter may already include Ethernet and a suitable data interface, making a local API almost free to add. On an existing installation, enabling Modbus may require an installer visit, a new logger, a licence or a compatible gateway. A CT meter may require spare DIN-rail space, protected voltage-sensing connections, correctly rated CTs, additional wiring, a suitable enclosure, a network port and professional labour. None of these costs can be estimated reliably from the product page alone.

Cost lineNative APIModbusExternal meter
HardwareOften included in inverter or dataloggerPossibly RS485 adapter, Ethernet logger or gatewayMeter, CTs, accessories and any enclosure
Installation labourNetwork setup; possible installer accessRS485 cabling, bus termination, address setupElectrician to inspect, wire, test and label board
NetworkStable LAN and IP reservationLAN or serial bus; optional network segmentationLAN/Wi-Fi coverage at distribution board
Software configurationOfficial integration and entity selectionRegister mapping, scaling, sign and pollingLocal integration, CT mapping and energy entities
ValidationCompare API with inverter portal and meterCompare register values with local device displayCompare import/export against physical utility meter
Long-term maintenanceFirmware and integration changesRegister maps, gateway firmware, polling clientsCT condition, firmware, board documentation
Possible recurring dependencyNone for truly local route; cloud APIs may differNormally none for local read-only ModbusNormally none for local-capable monitor

Ask installers to itemise commissioning and handover rather than merely supplying “monitoring included”. The deliverable should include the installed model and firmware, network details, which registers or API entities were checked, grid meter position, CT ratios and directions, proof of sensible import/export readings, and a documented way for the owner to retain read access. This reduces the chance of paying for a second call-out just to obtain an installer password or find an RS485 cable that was never run.

A sensible Home Assistant implementation plan

  1. Inventory first. Record inverter model, serial-family designation, firmware, logger/dongle SKU, connected smart meter and battery hardware. Ask for the as-built single-line diagram.
  2. Draw measurement boundaries. Mark inverter AC output, grid connection, battery AC/DC interface and any secondary solar source. Define sign convention for import and export.
  3. Confirm a supported local path. Use official vendor and Home Assistant documentation for that model. Check access on the actual local network before buying extra hardware.
  4. Use stable addressing. Reserve the device IP in DHCP where appropriate; do not publish Modbus ports to the internet. Plan VLAN routing explicitly if the devices sit on separate networks.
  5. Commission any physical meter professionally. Verify correct CT orientation, phase pairing, supply protection, register scaling and safe installation. Do not open or modify sealed utility equipment.
  6. Start with read-only entities. Obtain solar AC power and cumulative energy; then separate grid import and export counters; then battery charge/discharge where available.
  7. Check statistics eligibility. Confirm correct units, device class, state class and whether counters are lifetime, daily-reset or signed net totals before adding them to Energy.
  8. Validate under controlled conditions. Observe import at night, daytime export, a known household load, and any battery charging/discharging; compare physical meter registers over a defined period.
  9. Test failure behaviour. Disconnect WAN internet without disturbing the LAN, restart Home Assistant, and check which energy counters recover versus which power-history intervals remain missing.
  10. Document the final architecture. Save source entity names, meter positions, installation records, firmware and any limits on data recovery for future troubleshooting.

How to configure the Energy dashboard without double-counting

Home Assistant’s Energy documentation distinguishes consumption, production and storage. A power sensor in watts is not automatically an energy sensor in kilowatt-hours. Prefer cumulative hardware energy counters with appropriate state classes, and keep grid import and export as separate sources. If the inverter only reports instantaneous power, the Integral helper can create an approximate energy counter; understand that missed samples and source behaviour affect its accuracy.

If you have an inverter and a separate CT meter, decide which source is authoritative for each measurement. For example: inverter AC lifetime yield for solar production, independent meter lifetime import and export for grid energy, and battery-controller counters for battery energy. Do not also add the inverter’s estimate of grid import to the same grid source: that is not “more accurate”, it is a second copy of the same energy flow. Nor should you add both a daily-reset inverter production sensor and its lifetime counter as separate solar sources.

For billing comparisons, record meter-register values at the beginning and end of the supplier’s actual billing period. Home Assistant’s Utility Meter helper can calculate period totals and tariffs from a source, but its first cycle may be incomplete and its options for periodically resetting and net consumption have different meanings. Do not blindly enable “net consumption” for a sensor that should track a monotonically increasing import register. A negative grid-power value is not a negative imported-energy register.

Commissioning tests worth doing before trusting the figures

TestExpected observationWhat a failure suggests
Night-time known load, PV offGrid import rises; solar AC generation is zeroGrid meter unavailable, wrong CT direction or wrong boundary
Sunny period with low household demandSolar AC power exceeds demand; grid export risesMissing export counter, reversed sign or meter placement
Switch on a known large loadNet export falls or import rises by roughly the loadStale sampling, missing phase or mismatched voltage/CT
Battery charges from PVBattery charge rises; grid flow reflects remaining balanceDC/AC double counting or wrong battery sign
Home Assistant restartPersistent device energy counter resumes; missing fine history acknowledgedPower-derived kWh cannot fully backfill
WAN unplugged, LAN intactTrue local API/Modbus/CT integration continuesCloud dependency or DNS/network routing issue
Three-phase load on each phaseCorresponding phase changes; totals remain coherentCT-to-phase mismatch or only one phase monitored

These tests are diagnostic checks, not a claim of laboratory calibration. A kettle labelled 2 kW is not a precision reference meter, and rapidly varying loads make cross-device comparisons difficult. For a meaningful test, use stable conditions and allow for each device’s update interval. If the figures remain implausible, ask the installer to check the physical meter configuration rather than “correcting” the Home Assistant dashboard with an arbitrary multiplication factor.

Common problems and what they usually mean

SymptomLikely causeNext action
Inverter yield works, grid import is missingNo compatible grid meter or meter not exposed by APIInspect system topology and supported meter entities
Grid power is negative when importingOpposite sign convention or reversed CTConfirm documented convention; have electrician inspect CT
Solar production exceeds plausible PV outputDC string yield mistaken for AC output or duplicate sourcesUse correct AC generation counter; remove duplicate
Grid total is near zero but bill shows import and exportNetting instead of separate energy registersUse dedicated import and export cumulative counters
Modbus values look huge or tinyWrong register, scaling, data type or byte orderCheck exact vendor map and read raw value
Meter vanishes at nightInverter-hosted logger sleeping or meter supply issueCheck standalone meter power and gateway path
Works locally until firmware updateAPI permission, HTTPS or register behaviour changedReview current vendor release notes and integration requirements
Energy chart jumps after resetWrong state class, reset handling or summed resetting sensorsInspect Statistics and source counter semantics
CT meter shows implausible power factorWrong voltage phase pairing or CT polarityQualified electrician to verify wiring
Local Modbus stops cloud monitoringLogger-specific operating-mode conflictCheck exact logger documentation before changing settings

Frequently asked questions

Is Modbus always better than a manufacturer API?

No. A supported native integration may expose more understandable system states and handle firmware quirks automatically. Modbus is preferable when you need a documented register not provided by the API, when you have an existing Modbus energy meterAliExpress price, or when you need interoperability with a local controller. Both can read accurate measurements; neither repairs an incorrectly installed meter.

Can a CT clamp measure solar generation?

Only when the CT and its voltage reference are installed on a conductor carrying the relevant solar AC output and the device can correctly measure energy in that direction. A CT at the grid connection measures net exchange, not total PV production. On a hybrid output shared with battery power, even an AC output CT may not separate PV from battery contribution.

Do I need a second meter if the inverter already has a smart meter?

Not automatically. First check its location, accuracy, accessible import/export counters, night-time availability and whether Home Assistant can read them. A second meter is justified by an unmet requirement such as independent verification, multi-inverter coverage, additional circuit monitoring or a reliable local feed for automation. It also creates another calibration and installation point.

Does a 120 A CT meter suit every UK consumer unit?

No. The CT aperture, conductor geometry, voltage reference, main protective device, available DIN-rail space, earthing arrangement and electrical installation rules all matter. A 120 A current rating does not authorise any particular wiring arrangement. Have a qualified electrician assess the exact unit and installation.

Can Home Assistant control inverter export through Modbus?

Some inverters expose writable setpoints, but this is not universal and is not a substitute for a certified export-limitation or protection system. A Home Assistant crash or LAN outage must not undermine the approved grid connection. Leave commissioning and grid-related control settings to the authorised installer and the manufacturer-supported control system.

Which path works when the internet is down?

A local inverter API, local Modbus connection or local-capable CT meter can work without WAN access as long as the devices and local network remain powered. A vendor cloud API cannot. Internet independence says nothing by itself about recovery of measurements missed while Home Assistant was off.

Can I calculate household consumption by adding grid import and solar output?

For a simple solar-only installation, house demand is approximately solar AC output plus grid import minus grid export, using consistent measurements. Batteries, multiple inverters, AC/DC boundaries, auxiliary loads and update delays complicate the equation. Use an as-built measurement diagram and do not double-count combined hybrid inverter output.

Is a direct-connected Modbus meter better than a CT meter?

It depends on the electrical installation and required measurement class. A direct-connected meter avoids external CT ratio and orientation issues but must carry the monitored current through appropriately rated terminals. A CT meter suits larger currents or existing conductors without rerouting the full load, but introduces transformer selection and wiring requirements. The manufacturer’s certified model, installer’s design and meter position matter more than the word “Modbus”.

Final recommendation

Use the inverter’s official local integration first when it exposes the data you need. It avoids extra wiring and usually gives the clearest production and diagnostic information. Use Modbus when the required data exists in documented registers or when a wired industrial-style integration is the better long-term fit. Treat register maps, permissions and security as engineering requirements, not setup afterthoughts. Install an independent bidirectional grid meter when the missing information is household import/export, when the inverter is cloud-locked, or when you need a cross-check independent of the PV brand. Choose CT versus direct-connected metering based on the electrical design, not the convenience of a product listing.

The best system is often a deliberate combination: inverter for solar AC generation, a meter at the grid boundary for import/export, and the battery controller for battery-specific measurements. Once those boundaries are correct, Home Assistant can assemble a trustworthy picture. Without them, adding more integrations simply creates more ways to count the same kilowatt-hour twice.

Related guides on esp32.co.uk/

Official technical references

Research note (14 October 2026): This guide is based on manufacturer documentation and maintained Home Assistant documentation, not an invented product bench test. Specifications, firmware, availability, regulatory approval and logger permissions can vary by region and revision. No estimated purchase prices, electricity savings, affiliate links or unsupported compatibility promises are presented.

CONTINUE EXPLORING / ESP32 & ELECTRONICS

Read next

Practical guides related to this article.

Explore the topic →
HARDWARE DECISION GUIDEWhich ESP32 board should you use?

Compare practical options before you choose hardware.

Compare options →