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.
| Route | Port and address | What the sources say |
|---|---|---|
| Inverter's own Wi-Fi access point | 192.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 1 | TapHome 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 manager | Port 502 on the EMMA | Enable 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 502 | Needs 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.