The Sofar EMS supports Huawei SUN2000 inverters, LUNA 2000 batteries and the SmartLogger 3000. The controller auto-detects whether a SmartLogger is present, so in most cases it just works. The installer should prepare the Huawei side and then run the search wizard on the SmartLogger IP address. If no Smartlogger is placed, run the wizard on each inverter's IP address.
This guide walks you through it:
| Device Type | Modbus TCP (Ethernet) | RS485 | Curtailment |
|---|---|---|---|
| Huawei SmartLogger 3000 | ✅ | ❌ | ✅ |
| Huawei SUN2000 Series inverters | ✅ | ||
| Huawei LUNA 2000 battery | — |
The SmartLogger 1000a is on the roadmap but not yet supported. Practically all SUN2000 inverters with a communication interface are supported (including the SUN2000L residential range) — not every interface is present on every inverter, so check yours.
Show all supported SUN2000 models
The controller scans for a SmartLogger when it connects and adapts automatically. What you do need to know is which IP address to run the search wizard on, because that differs per setup:
| If the site has… | Run the search wizard on… | The inverters are then… |
|---|---|---|
| A SmartLogger 3000 | the SmartLogger's IP address (one search) | automatically added via the SmartLogger; all curtailment and/or battery control goes through the SmartLogger. |
| No SmartLogger | each inverter's IP address (one search per inverter) | controlled directly |
If the site has a SmartLogger, add the system only on the SmartLogger's IP address. The SmartLogger already exposes every inverter and meter connected to it, so they are all found in one go. Do not add the inverters one by one on their individual IP addresses — this is the most common setup mistake.
Routing all control through the SmartLogger (instead of the individual inverters) is intentional: it prevents two systems from controlling the same inverters. You still get the measurements of every inverter individually — "monitoring-only" means control is centralised through the SmartLogger, not that any data is lost. This works over both Ethernet (Modbus-TCP) and RS485.
Ethernet — follow the guidelines for ethernet wiring.
RS485 wiring (only when using RS485 on SUN2000 / LUNA 2000!)
| Device | Sofar EMS model OM1 | Sofar EMS model IG8 | RS485-USB converter | RS485-Ethernet converter |
|---|---|---|---|---|
| RS485 A | RS485_POS | RS485 A | TX+ | |
| RS485 B | RS485_NEG | RS485 B | TX- | |
| RS GND | GND | Not available | G |
We recommend doing a factory reset of the inverter before adding it — this gives a clean initial connection and avoids many issues. Then follow the section that matches your setup.
The SmartLogger reads and controls all of the energy meters, inverters and batteries connected to it. Configure it in its web interface (browse to its IP address, default password "Changeme").
The SmartLogger connects inverters and meters across 3 COM ports. Every Modbus address must be unique. It is easiest to first set non-overlapping address ranges per COM port, then re-add any clashing devices with a free address.
This is required for curtailment / power limiting. Without it the controller and SmartLogger report no errors, but the inverters keep producing at full power.
Go to Settings > Power Adjustment > Active Power Control and configure exactly like in the screenshot.
This is required for curtailment / power limiting. Without it the controller and SmartLogger report no errors, but the inverters keep producing at full power. Do this for every inverter:
Inverter(COM2-11)).COM2-11, COM2-12, …).Configure each inverter from the FusionSolar app.
| Smartphone OS | Installation instructions |
|---|---|
| iOS | Search the App Store for FusionSolar and download the app. |
| Android | Download the app here. |
| Huawei Phone | Search FusionSolar in the Huawei App Gallery. |
Make sure the AC or DC side of the inverter is powered, then connect your phone to it. Pick the method that suits the inverter:
Required for curtailment: on the home page go to Power adjustment → Grid-tied point control → Active power, and set the Control mode to Remote output control.
The LUNA 2000 needs no separate connection steps — it is read and controlled through the inverter or SmartLogger it sits behind. Just choose Both solar and battery or Only battery in the wizard (next step) so the controller adds it.
Run the search wizard on the correct IP address — the SmartLogger's IP if there is one, otherwise each inverter's IP. During the wizard you choose whether an energy meter is connected (so the controller can read grid data) and what is connected to the inverter (solar, battery, or both). That's it — the controller discovers and adds the rest.
By default, when a SmartLogger is present, all curtailment goes through the SmartLogger's own aggregate registers — the SmartLogger is the only system writing to the inverters, and the controller sends it one fleet-wide power limit. This is the normal, recommended setup, and the reason all control is routed through the SmartLogger in the first place (see step 1).
Some counterparties we integrate with (for example Yuso Solar) require the ability to curtail or shut off a subset of inverters rather than the whole installation. The SmartLogger's aggregate registers cannot do this — they only expose one plant-wide percentage/setpoint, with no way to target or exclude individual inverters. For this specific requirement only, the SmartLogger device has a manual action, "Enable/Disable the smartlogger bypass", that writes curtailment setpoints directly to each inverter's own register instead of through the SmartLogger. Once enabled, every SUN2000 inverter behind the SmartLogger becomes independently controllable — you'll find a separate manual test entry for each inverter instead of one for "PV of all SUN2000s combined".
Only enable this if a subset of inverters genuinely needs to be curtailed independently. In every other case, leave it disabled and let the SmartLogger do the controlling.
Enabling bypass mode on the controller is not enough by itself. As long as the SmartLogger's own active power control is still active, it keeps writing its own setpoint to every inverter on its own schedule too — with two systems writing to the same inverter, whichever writes most recently wins, causing brief production spikes. Step b below (setting the SmartLogger's own Active power control mode to "No limit") is what stops the SmartLogger from doing this — both steps are required together, step a alone is not enough.
Do not continue with the steps below unless you can confirm all of the following:
If you cannot confirm all three, stop here and use the SmartLogger's normal aggregate control instead.
This step is required, not optional — see the warning above. It stops the SmartLogger from also writing its own setpoint to the inverters, which is what causes the production spikes when only step a has been done.
In the SmartLogger's own web interface (Settings → Power Adjustment → Active Power Control), set Active power control mode to No limit and submit.
Only change this SmartLogger setting when all of the following are true: you use a SmartLogger, you need inverter-individual curtailment, and you have already enabled the smartlogger bypass setting in the controller (step a above). Changing it in any other situation disables curtailment for this SmartLogger entirely.
Curtailment / power limiting has no effect. The inverters are almost certainly missing the remote-scheduling setting. Re-check that Remote power schedule is enabled on every inverter (SmartLogger setup, step 3d) — the controller will report no error even when this is the cause.
Devices won't connect, values can't be read, or the SmartLogger reports 0 power. First, update firmware. In FusionSolar, check for and install updates for both the Huawei software (SmartLogger / dongle) and each inverter, keeping them on matching versions — outdated or mismatched firmware is a common cause of missing registers, unreadable values and ignored commands. If the SmartLogger still reports 0 power after enabling Modbus, contact Huawei.