TapHome

SolarEdge SunSpec Inverter

Modbus RTU
Submitted by
Last updated: 03. 2026
SolarEdge SunSpec Inverter

SolarEdge inverters implement the SunSpec open protocol for interoperability with third-party monitoring devices. The TapHome template reads inverter data via Modbus RTU over RS-485, providing real-time monitoring of AC and DC electrical parameters, lifetime energy production, heat sink temperature and inverter operating state.

The template supports all SunSpec-compatible SolarEdge inverters — including single-phase (SE3000H, SE3800, SE4000H, SE5000H, SE5K, SE6000H, SE7K), three-phase (SE10K, SE12.5K) and Synergy models. All inverters with SetApp configuration support SunSpec out of the box. LCD-display inverters require firmware version 3.xxxx or above.

Hardware connection

RS-485 wiring

Connect the SolarEdge inverter to TapHome Core using an RS-485 twisted pair cable:

  • RS-485 A+ on the inverter → A+/D+ on TapHome RS-485
  • RS-485 B- on the inverter → B-/D- on TapHome RS-485
  • GND → shared ground reference (recommended)

Cable specification:

  • Type: shielded twisted pair, 0.2–1 mm² (CAT5 may be used)
  • Minimum 3 wires: A+, B-, GND (shield)

All SetApp inverters have two built-in RS485 ports and can act as Leader on both simultaneously. For a single inverter connected to TapHome, use RS485-1 for the SunSpec connection.

Single inverter connection

Use the RS-485 bus to connect the inverter directly to TapHome. The Ethernet or wireless connection is used separately for the SolarEdge monitoring platform.

SolarEdge single inverter RS-485 connection to TapHome
Multiple inverter connection

If a second RS-485 port is required to establish connection, use RS-485-2 for inverters with SetApp configuration, or RS-485-E (requires a plug-in) for inverters with an LCD.

Option 1 (direct connection) — connect all Followers and the Leader to TapHome via RS-485-1. Every inverter on the RS-485 bus must have a unique Modbus Device ID.

SolarEdge multiple inverter direct RS-485 connection

Option 2 (via Leader) — connect Followers to the Leader via RS-485-1, then connect the Leader to TapHome via RS-485-2 or RS-485-E.

SolarEdge multiple inverter Leader-Follower RS-485 connection

SolarEdge systems support a single Modbus Leader only — either Modbus RTU or Modbus TCP, not both. If TapHome is connected via RS-485, no other Modbus master can use the same bus.

Configuration

Enabling Modbus communication
SetApp inverters
  1. Open the SetApp app and tap Commissioning → Site Communication
  2. Navigate to RS485-1 → Protocol and select SunSpec (Non-SE Logger)
  3. Navigate to RS485-1 → Device ID and enter the Modbus address (unique value 1–247)
  4. Optionally set the baud rate under RS485-1 → Baud rate (default: 115200 bps)
LCD-display inverters
  1. Navigate to Communication → RS485-1 Conf → Device Type and select Non-SE Logger
  2. Navigate to Communication → RS485-1 Conf → Protocol and select SunSpec
Communication parameters
ParameterValue
Baud rate115200 bps (configurable 9600–115200)
Data bits8
ParityNone
Stop bits1
Slave ID1–247 (configurable)
Response time< 100 ms per inverter at 115200 bps

The default baud rate is 115200 bps. Baud rate configuration is supported from CPU firmware version 2.0549 and above. If TapHome cannot communicate at 115200, try lowering to 9600 bps in both the inverter settings and TapHome module configuration.

Multiple inverter setup

When connecting multiple inverters to TapHome:

  1. Configure each inverter with a unique Device ID (1–247)
  2. Connect all inverters on the RS-485 bus in a daisy-chain topology
  3. In TapHome, add a separate module instance for each inverter with the corresponding Slave ID
  4. The Leader inverter connects to TapHome; Followers connect via RS485-1 in a chain

For systems with a Commercial Gateway, use RS485-2 on the gateway for the TapHome connection and RS485-1 for the Leader-Follower chain.

Device capabilities

AC electrical monitoring

The template provides comprehensive AC-side monitoring with SunSpec dynamic scale factors. Each value is read as a scaled integer and converted using a per-parameter scale factor register:

  • AC Total Current (H:40071) — sum of all phase currents in Amps
  • AC Phase A/B/C Current (H:40072–40074) — per-phase AC current, all sharing scale factor at H:40075
  • AC Power (H:40083) — total AC power output in Watts
  • AC Frequency (H:40085) — grid frequency in Hz
AC voltage monitoring

The template reads both line-to-line and line-to-neutral voltages, all using the voltage scale factor at H:40082:

  • AC Voltage Phase A-B (H:40076), B-C (H:40077), C-A (H:40078) — line-to-line voltages
  • AC Voltage Phase A-N (H:40079), B-N (H:40080), C-N (H:40081) — line-to-neutral voltages

Single-phase inverters (SunSpec DID 101) only populate Phase A registers. Split-phase inverters (DID 102) populate Phases A and B. Three-phase inverters (DID 103) populate all three phases.

Power quality
  • Apparent Power (H:40087) — AC apparent power in VA
  • Reactive Power (H:40089) — AC reactive power in VAR
  • Power Factor (H:40091) — AC power factor as percentage
DC input monitoring
  • DC Current (H:40096) — DC input current from solar panels in Amps
  • DC Voltage (H:40098) — DC input voltage in Volts
  • DC Power (H:40100) — DC input power in Watts
Energy production
  • AC Lifetime Energy (H:40093) — accumulated total energy production in kWh. This device also reads AC Power (H:40083) as current demand in kW, enabling both instantaneous power and cumulative energy tracking in TapHome
Temperature and status
  • Heat Sink Temperature (H:40103) — inverter heat sink temperature in °C
  • Operating State (H:40107) — current inverter state:
    • 1 — Off — inverter is off
    • 2 — Sleeping — night mode / auto-shutdown
    • 3 — Grid Monitoring — starting / wake-up
    • 4 — Producing — inverter is ON and producing power (MPPT)
    • 5 — Throttled — production curtailed
    • 6 — Shutting Down — shutting down
    • 7 — Fault — fault condition
    • 8 — Standby — maintenance / setup
Service diagnostics

The module exposes six service attributes for identification and diagnostics:

  • SunSpecID (H:40000) — validates the SunSpec protocol header (expected value: “SunS” / 0x53756e53)
  • Manufacturer (H:40004) — inverter manufacturer name (“SolarEdge”)
  • Model (H:40020) — inverter model (e.g. “SE5000”)
  • Version (H:40044) — CPU software version (e.g. “0002.0611”)
  • SerialNumber (H:40052) — inverter serial number
  • SunSpecDID (H:40069) — identifies inverter type: 101=single phase, 102=split phase, 103=three phase

The module ReadScript also monitors the vendor-specific status register (H:40108) for error reporting in TapHome.

SunSpec scale factors

All numeric values in the SunSpec protocol use dynamic scale factors. The actual value is calculated as:

1
Value = RegisterValue × 10^ScaleFactor

For example, a raw frequency value of 5003 with scale factor -2 yields 50.03 Hz. The TapHome template handles this conversion automatically — no manual configuration is needed.

Additional capabilities

SolarEdge inverters also expose SunSpec meter models (201–204) for up to three external meters per inverter, providing grid consumption, production, and export/import metering. The MPPT Extension Model (SunSpec ID 160) provides per-unit DC current, voltage, power and temperature for Synergy inverters with firmware 4.13.xx or later. Two additional temperature sensors (H:40104, H:40105) are available on some models. These can be added in a future template update.

Troubleshooting

No Modbus communication
  1. Check RS-485 wiring: Verify A+ and B- are not swapped between the inverter and TapHome
  2. Verify SunSpec is enabled: On SetApp inverters, confirm RS485-1 Protocol is set to “SunSpec (Non-SE Logger)”. On LCD inverters, check RS485-1 Conf → Protocol → SunSpec
  3. Check baud rate: Ensure TapHome module baud rate matches the inverter setting (default 115200 bps)
  4. Verify Device ID: The Slave ID in TapHome must match the Device ID configured on the inverter
  5. Single Leader: Confirm no other Modbus master is connected to the same RS-485 bus
All values read as zero
  1. The inverter may be in Sleeping or Off state (night mode). Check the Operating State device — values 1 and 2 indicate the inverter is not producing
  2. Verify the SunSpec header by checking the SunSpecID service attribute — it should read “SunS” (0x53756e53). If not, the register addressing may be incorrect
Phase B/C values show zero on single-phase inverter

This is expected behavior. Single-phase SolarEdge inverters (SunSpec DID 101) only populate Phase A registers. The Phase B and Phase C devices will show zero permanently. The SunSpecDID service attribute confirms the inverter type.

Communication timeout with multiple inverters

The response time increases with the number of Follower inverters connected via a Commercial Gateway. The timeout delay is approximately N × 100 ms + 60 ms, where N is the number of Followers. For 10 Followers at 115200 bps, expect approximately 1060 ms response time. Adjust the TapHome module timeout accordingly.

Available devices

SolarEdge SunSpec Inverter Module
Service Attributes
SunSpecIDSunSpec protocol header validation — expected value 'SunS' (0x53756e53)
Manufacturer
Model
Version
SerialNumber
SunSpecDIDInverter type identifier — 101=single phase, 102=split phase, 103=three phase

SolarEdge

Read (module)
var IStatusVendor := modbusr(H, 40108, uint16);
if (IStatusVendor != 0, adderror(IStatusVendor, "Fault"))
Service Attributes
SunSpecID
var ret := modbusr(H, 40000, Uint32);

if (ret = 0x53756e53, "SunS", "Unknown ID")
Manufacturer
modbusr(H, 40004, String, 32)
Model
modbusr(H, 40020, String, 32)
Version
modbusr(H, 40044, String, 32)
SerialNumber
modbusr(H, 40052, String, 32)
SunSpecDID
switch(modbusr(H, 40069, uint16),
101, "single phase",
102, "split phase",
103, "three phase",
"Unknown")
AC Frequency Variable Read-only

AC grid frequency in Hz

Register: H:40085 Int16 Unit: Hz numeric

AC Frequency

Read
MODBUSR(H, 40085, Int16)*power(10, MODBUSR(H, 40086, Int16))
AC Lifetime Energy Electricity Meter Read-only

Total accumulated energy production (kWh) with current AC power demand (kW)

Register: H:40093 Uint32 Unit: kWh numeric

AC Lifetime Energy

Read total consumption
MODBUSR(H, 40093, Uint32) * power(10, MODBUSR(H, 40095, Uint16)) / 1000
Read demand
MODBUSR(H, 40083, Int16) * power(10, MODBUSR(H, 40084, Int16)) / 1000
AC Phase A Current Variable Read-only
Register: H:40072 Uint16 Unit: A numeric

AC Phase A Current

Read
MODBUSR(H, 40072, Uint16) * power(10, MODBUSR(H, 40075, Int16))
AC Phase B Current Variable Read-only
Register: H:40073 Uint16 Unit: A numeric

AC Phase B Current

Read
MODBUSR(H, 40073, Uint16) * power(10, MODBUSR(H, 40075, Int16))
AC Phase C Current Variable Read-only
Register: H:40074 Uint16 Unit: A numeric

AC Phase C Current

Read
MODBUSR(H, 40074, Uint16) * power(10, MODBUSR(H, 40075, Int16))
AC Power Variable Read-only

Total AC power output from the inverter

Register: H:40083 Int16 Unit: W numeric

AC Power

Read
MODBUSR(H, 40083, Int16) * power(10, MODBUSR(H, 40084, Int16))
AC Total Current Variable Read-only

Sum of all AC phase currents

Register: H:40071 Uint16 Unit: A numeric

AC Total Current

Read
MODBUSR(H, 40071, Uint16) * power(10, MODBUSR(H, 40075, Int16))
AC Voltage Phase A-N Variable Read-only
Register: H:40079 Uint16 Unit: V numeric

AC Voltage Phase A-N

Read
MODBUSR(H, 40079, Uint16) * power(10, MODBUSR(H, 40082, Int16))
AC Voltage Phase A-B Variable Read-only
Register: H:40076 Uint16 Unit: V numeric

AC Voltage Phase A-B

Read
MODBUSR(H, 40076, Uint16) * power(10, MODBUSR(H, 40082, Int16))
AC Voltage Phase B-N Variable Read-only
Register: H:40080 Uint16 Unit: V numeric

AC Voltage Phase B-N

Read
MODBUSR(H, 40080, Uint16) * power(10, MODBUSR(H, 40082, Int16))
AC Voltage Phase B-C Variable Read-only
Register: H:40077 Uint16 Unit: V numeric

AC Voltage Phase B-C

Read
MODBUSR(H, 40077, Uint16) * power(10, MODBUSR(H, 40082, Int16))
AC Voltage Phase C-N Variable Read-only
Register: H:40081 Uint16 Unit: V numeric

AC Voltage Phase C-N

Read
MODBUSR(H, 40081, Uint16) * power(10, MODBUSR(H, 40082, Int16))
AC Voltage Phase C-A Variable Read-only
Register: H:40078 Uint16 Unit: V numeric

AC Voltage Phase C-A

Read
MODBUSR(H, 40078, Uint16) * power(10, MODBUSR(H, 40082, Int16))
Apparent Power Variable Read-only
Register: H:40087 Int16 Unit: VA numeric

Apparent Power

Read
MODBUSR(H, 40087, Int16) * power(10, MODBUSR(H, 40088, Int16))
DC Current Variable Read-only

DC input current from solar panels

Register: H:40096 Uint16 Unit: A numeric

DC Current

Read
MODBUSR(H, 40096, Uint16) * power(10, MODBUSR(H, 40097, Int16))
DC Power Variable Read-only

DC input power from solar panels

Register: H:40100 Int16 Unit: W numeric

DC Power

Read
MODBUSR(H, 40100, Int16) * power(10, MODBUSR(H, 40101, Int16))
DC Voltage Variable Read-only

DC input voltage from solar panels

Register: H:40098 Uint16 Unit: V numeric

DC Voltage

Read
MODBUSR(H, 40098, Uint16) * power(10, MODBUSR(H, 40099, Int16))
Heat Sink Temperature Temperature Sensor Read-only

Inverter heat sink temperature for thermal monitoring

Register: H:40103 Int16 Unit: °C numeric

Heat Sink Temperature

Read temperature
MODBUSR(H, 40103, Int16)*power(10, MODBUSR(H, 40106, Int16))
Operating State Multi-value Switch Read-only

Inverter operating state — Off, Sleeping, Grid Monitoring, Producing, Throttled, Shutting Down, Fault, Standby

Register: H:40107 Uint16 enum
Values / States: Off · Sleeping (auto-shutdown) – Night mode · Grid Monitoring/wake-up · Inverter is ON and producing power · Production (curtailed) · Shutting down · Fault · Maintenance/setup

Operating State

Read switch state
MODBUSR(H, 40107, Uint16)
Power Factor Variable Read-only
Register: H:40091 Int16 Unit: % numeric

Power Factor

Read
MODBUSR(H, 40091, Int16) * power(10, MODBUSR(H, 40092, Int16))
Reactive Power Variable Read-only
Register: H:40089 Int16 Unit: VAR numeric

Reactive Power

Read
MODBUSR(H, 40089, Int16) * power(10, MODBUSR(H, 40090, Int16))
Connection: Modbus RTU • 115200 baud• 8N1 • Slave ID: $[SlaveId]
Possible improvements (6)
  • H:40068 Device Address — Modbus Unit ID (1–247) — useful for multi-inverter setups but redundant with connection_details slave_id
  • H:40104 Temp Other 1 — Additional temperature sensor 1 (°C with SF at H:40106) — not all models populate this register
  • H:40105 Temp Other 2 — Additional temperature sensor 2 (°C with SF at H:40106) — not all models populate this register
  • H:40108 Vendor Status (as device) — I_Status_Vendor — vendor-specific error codes. Already used in module readscript for error reporting, but not exposed as a separate device
  • H:40121+ SunSpec Meter Model (201–204) — Up to 3 SunSpec meters per inverter (grid consumption, production, export/import) — separate template would be needed
  • H:40121+ MPPT Extension Model 160 — Per-unit DC current, voltage, power and temperature for Synergy inverters (2–3 units) — requires firmware 4.13.xx+

Sources