monitoring

Fronius vs Huawei Inverters for Home Automation: Modbus, API and Home Assistant

Fronius opens a JSON API and SunSpec Modbus, Huawei opens Modbus through a dongle or EMMA. What each allows, who must enable it, where it breaks.

· Sarah Okonkwo · 8 min read

Bottom Line

Both brands let you read an inverter locally, and neither ships with that switched on for you. Fronius documents an open JSON Solar API plus SunSpec Modbus TCP, and Home Assistant supports it in core. Huawei exposes Modbus TCP through its dongle, EMMA or inverter access point, and a community integration needs installer-level rights for control.

Home automation fans ask one question about inverters before any other: can I read it locally, and can I command it? Efficiency comes later. A 97.6% inverter that only talks to a vendor cloud is a dead end for a Home Assistant dashboard, and a slightly less efficient one with an open port is a gift.

Fronius and Huawei both pass the first test, in different ways. I read the Fronius Verto Plus operating instructions (the Modbus, Solar API and energy management chapters), the Home Assistant Fronius documentation, the Huawei Solar integration README and wiki, a TapHome compatibility note and a SMARTFOX installation guide. I haven't wired either brand into a Home Assistant instance, so this is a documentation comparison, not a field report.

What Does "Local Access" Mean on Each Brand?

Different things, with different gatekeepers.

Fronius offers two local interfaces. The Solar API is an IP-based JSON interface. Fronius's manual says that, if enabled, IoT devices on the local network can read inverter information without authentication, and that the interface is disabled at the factory for that reason. It switches itself on if a Fronius Wattpilot joins the network, and a firmware update to 1.14.x changes how the setting is applied. The second interface is Modbus, in RTU and TCP flavors. The manual lists for TCP a port choice of 502 or 1502, a SunSpec model type (float, or integer with scale factor), a meter address, an Allow Control switch and an option to restrict control to one device with a fixed IP address. Control covers on and off, power reduction, constant power factor, constant reactive power and battery settings. The manual's own advice about Modbus TCP is blunt: it is an unsecured interface, to be used only if no secured protocol such as MQTT is possible.

Huawei offers Modbus TCP, reached by four routes, per the Home Assistant community integration's wiki.

RoutePort and addressWhat the sources say
Inverter's own Wi-Fi access point192.168.200.1, port 6607 on newer firmware (502 on older)Described as the most reliable, since the FusionSolar app uses it. Home Assistant needs a second Wi-Fi interface plus routing to reach it. One client at a time (TapHome)
Smart Dongle (SDongle)Slave ID usually 1TapHome calls the dongle the recommended production route and says it allows Modbus and the app together. The wiki calls it noticeably less reliable and not recommended. Needs "unrestricted" Modbus TCP set; an installer must enable it on FusionSolar Web if the setting is missing
EMMA energy managerPort 502 on the EMMAEnable Modbus TCP in the EMMA settings, switch TLS off, set the client IP
Inverter's home-network IP ("Local O&M")Port 6607 (firmware from December 2021) or 502Needs an installer account to enable; the toggle is described as buggy and unavailable on some models

Two sources disagree about the dongle, and I can't referee that from documents. Take it as a warning that your mileage will depend on the firmware.

There is also a firmware note I'd underline. SMARTFOX's installation guide says the SDongle needs software version SPC133 or later, and that after some dongle updates the Modbus setting gets deactivated even though the FusionSolar app still shows it as active. Their fix: set the RS485_1 protocol type to Modbus again and save.

What Can Home Assistant Actually Read and Change?

Both have an integration. They sit in different places.

Fronius is in Home Assistant core, rated Platinum, and uses local polling. Per its documentation: power flow data refreshes every 10 seconds, inverter, meter, Ohmpilot and storage entities every minute. Battery charge and discharge power come from the power flow. Per-string MPPT data and battery energy totals need Modbus switched on. The Solar API is read-only, so Modbus is the only way Home Assistant can change anything: AC power limit, battery charge and discharge limits and minimum reserve, all as percentages, each with its own on/off switch. Two limitations matter. There are no absolute watt setpoints and no state-of-charge ceiling, so a "stop charging at 80%" rule has to be built as an automation. And holding the AC limit at 100% can override a grid operator's export cap, which the documentation warns about.

Huawei's integration is a community project, wlcrs/huawei_solar, built from Huawei's own Modbus interface definitions. Polling defaults to 30 seconds. Optimizer data refreshes only every 5 minutes, so polling faster doesn't help there. Reading is straightforward once Modbus is on. Writing is gated: forced battery charge or discharge, and export power control, need the advanced-permissions option, which asks for the installer login used in the FusionSolar Device Commissioning section. The integration's page mentions default installer passwords exist; I'd ask your installer for the real credentials instead of trying defaults on your own hardware. It supports firmware released in 2023 and later.

Compare the gatekeeping. On Fronius, the owner flips the switches in the inverter's web interface. On Huawei, the owner often depends on an installer account to turn the door on. If you plan to automate, get that settled before commissioning. Our Huawei stack review says the same about confirming the local read path in writing.

Where Do the Two Fall Over?

Every local integration breaks eventually. The shapes differ.

Huawei, from the wiki and README: Modbus devices accept one connection at a time, so the FusionSolar app's commissioning feature, a second Home Assistant or evcc can interrupt the integration, and the suggested fix is a Modbus proxy that multiplexes the connection. Dongles and EMMA restart periodically if they can't ping their default gateway or reach the cloud. Disconnects roughly every 30 minutes on a dongle connection were cured, in one reported case, by power-cycling the inverter DC first, then AC. The port can move between 502 and 6607 after an update. Assign a static IP or the integration needs reconfiguring when the address changes.

Fronius, from the manual and Home Assistant docs: GEN24 devices on firmware 1.14.1 or later need Solar API enabled by hand before the integration can connect. Control entities simply don't appear until Modbus TCP and "inverter control via Modbus" are both on. If the endpoint stops responding, the integration backs off to 10-minute polling, 3 minutes for power flow, until valid data returns. The AC limit reverts an hour after Home Assistant stops sending updates if you enable that option, while battery setpoints keep their values with no timeout.

Fewer moving parts on the Fronius side, as far as the documents show. But a documentation gap isn't proof of reliability. Nobody has published a head-to-head dropout count, and I haven't run one.

Does the Battery's Position Change Your Dashboard?

Yes, and this catches people on both brands. Each pairs its inverter with its own battery on the DC side, so the inverter's energy counters mix sources.

Home Assistant's Fronius page spells out the consequence. For the Energy dashboard, use the inverter's total AC energy for solar production, and use a Riemann sum on PV power only if a battery is present. Which meter sits where matters too: a meter on the feed-in path reports real consumed and produced energy, while a consumption-path meter needs a Riemann sum of import and export.

Huawei's integration README gives the same warning in other words: daily and total yield reflect inverter output, not solar input, so the number rises during battery discharge. Anyone tracking degradation from that counter will see winters of heavy cycling inflate it; our piece on winter dips versus degradation explains why that comparison needs normalized data anyway.

The practical rule: build your dashboards from power sensors you integrate yourself, and treat vendor yield counters as a sanity check.

Which One Would I Pick for a Home Assistant House?

My opinion, and a Huawei owner with a working setup will reasonably disagree: Fronius, for an automation-first household, mostly because of who holds the keys. The integration ships inside Home Assistant, the toggles are documented in the manual, control is limited to one trusted IP if you want it, and the open JSON API gives you read access that needs no installer.

Huawei wins where the hardware itself matters more than the plumbing. A three-phase home with a large array, a LUNA2000 battery and an EMMA manager gets a complete stack, as that system review argues, and the community integration exposes more than monitoring: time-of-use control, forced charge and export limiting. That power comes with the installer-credential dependency and a single-connection limit you'll have to design around. If you go that way, I'd use the EMMA or a wired LAN route before the dongle, since the documents themselves can't agree on the dongle.

Neither is plug-and-play. Both reward an owner who writes the settings down, reserves a static IP and checks again after every firmware update. For the inverter-data basics behind all this, see reading solar inverter data. For hardware, the Huawei SUN2000-15K-MB0 is the three-phase inverter in that stack, and the EMMA-A02 is the manager.

Summary

Fronius and Huawei both support local inverter access for home automation, with different gatekeepers. Fronius ships a read-only JSON Solar API (disabled at the factory) and SunSpec Modbus TCP and RTU with a documented control switch and an optional fixed-IP restriction, and Home Assistant supports it in core with 10-second power-flow polling. Huawei exposes Modbus TCP through the inverter access point, the Smart Dongle, EMMA or Local O&M, with writes depending on the installer login and a community integration that polls every 30 seconds. Huawei's endpoints accept one connection at a time, and sources disagree on the dongle. On both brands, DC-coupled batteries mix sources in the energy counters, so build dashboards from power sensors. Fronius is easier to open yourself; Huawei offers more system depth if you settle installer access first.

Frequently Asked Questions

Can Home Assistant read a Fronius inverter without the cloud?
Yes. The core Fronius integration polls the inverter's local Solar API over your network. On GEN24 devices with firmware 1.14.1 or later, you must switch Solar API on in the inverter's web interface first. Fronius ships it disabled for security. Per-string MPPT data and battery energy totals additionally need Modbus TCP enabled.
Can I control a Huawei battery from Home Assistant?
Yes, through the community Huawei Solar integration, but only with advanced permissions. Forced battery charge or discharge and export power control need the installer login, which the integration requests during network setup. Read-only monitoring works without it. The integration supports inverters on firmware released in 2023 or later.
Is Fronius Modbus TCP secure?
Fronius's own manual calls Modbus TCP an unsecured interface and recommends it only when no secured protocol such as MQTT is possible. The settings page lets you restrict control to a single fixed IP address, and the Solar API is described as accessible without authentication to devices on the local network.
Why does my Huawei integration keep disconnecting?
Huawei's Modbus endpoints accept one connection at a time, so the FusionSolar commissioning feature, a second Home Assistant instance or evcc can knock the integration offline. The wiki also notes that dongles restart if they cannot reach the gateway or the cloud, and that some firmware updates change the port between 502 and 6607.

Sources