TapHome

Kostal PLENTICORE plus

Modbus TCP
Submitted by
Last updated: 03. 2026
Kostal PLENTICORE plus

The Kostal PIKO IQ and PLENTICORE plus series are hybrid solar inverters with up to three MPPT trackers and optional battery storage. TapHome connects directly to the inverter via Modbus TCP over Ethernet. The template covers models PIKO IQ, PLENTICORE G1, G2, G3 and PLENTICORE MP G3 across power classes from 3 kW to 10 kW.

The template provides PV string monitoring (power, current, voltage for each DC input), battery state-of-charge with configurable min/max limits, yield statistics (daily, monthly, yearly, total), AC power output and inverter diagnostics.

Network connection

The inverter has an RJ45 Ethernet port on the Smart Communication Board. Connect it to the same local network as TapHome Core using a standard Ethernet cable.

  • Protocol: Modbus TCP
  • Port: 1502 (non-standard – differs from the default Modbus TCP port 502)
  • Default Unit-ID: 71
  • Byte order: Little-endian CDAB (default, configurable)

The Kostal inverter uses TCP port 1502, not the standard Modbus port 502. Ensure this is configured correctly in TapHome during template import. The default Unit-ID is 71 (the TapHome template parameter defaults to 1 – adjust to 71 to match the factory setting).

Configuration

Enabling Modbus TCP communication

Modbus TCP must be explicitly enabled on the inverter before TapHome can communicate with it:

  1. Open the inverter’s web interface (navigate to the inverter’s IP address in a browser)
  2. Go to Settings > Modbus/SunSpec (TCP)
  3. Enable Modbus TCP
  4. Verify the byte order is set to Little-endian (CDAB) – this is the default and matches the TapHome template
  5. Note the Unit-ID (default 71) and the TCP port (default 1502)

When importing the template in TapHome, provide:

  • IP Address – the inverter’s IP on the local network
  • Slave ID – set to 71 (matching the inverter’s Unit-ID)

Assign a static IP address or DHCP reservation for the inverter in the router settings. The inverter does not support mDNS, so a stable IP address prevents connectivity issues after power cycles.

Device capabilities

PV string monitoring

Three PV string sensors (DC1, DC2, DC3) each report:

  • Power (kW) – instantaneous output from the MPPT tracker
  • Current (A) and Voltage (V) – available as service attributes on each power device

DC3 can optionally be used for battery connection instead of a third PV string, depending on the inverter model and installation.

  • Total DC Power – combined output from all connected PV strings (register H:1066)
  • Total AC Active Power – total power fed to the AC grid side (register H:172)
Battery management
  • Battery SOC – current state of charge (0–100%). The template also exposes battery voltage, temperature, and battery type as service attributes.
  • SOC Settings (service action) – configure the minimum SOC (1–90%) and maximum SOC (10–100%) limits directly from TapHome. This controls how deeply the battery is discharged and how fully it is charged.
Service AttributeDescription
Battery VoltageCurrent battery voltage (V)
Battery TemperatureCurrent battery temperature (C)
Minimum SOCConfigured lower SOC limit (%)
Maximum SOCConfigured upper SOC limit (%)
Battery TypeConnected battery brand (BYD, LG, BMZ, Pyontech, Dyness, VARTA, etc.)
Yield statistics

Four energy counters track PV production over different time periods:

DeviceDescription
Daily YieldEnergy produced today (kWh)
Monthly YieldEnergy produced this month (kWh)
Yearly YieldEnergy produced this year (kWh)
Total YieldCumulative energy since installation (kWh)

All yield values are read from the inverter in Wh and converted to kWh by the template.

Inverter diagnostics

Module-level service attributes provide system status:

Service AttributeDescription
Inverter StateCurrent operating state (Off, Init, FeedIn, Throttled, Standby, Overheating, Shutdown, and others – 19 states total)
Grid FrequencyAC grid frequency (Hz)
MODBUS EnableWhether Modbus TCP communication is active
IP EnableWhether IP networking is enabled
Additional capabilities

The Kostal PLENTICORE also exposes Modbus registers for per-phase AC power monitoring, home consumption breakdown (from PV, battery, and grid), battery charge/discharge cycling data, external power meter readings, and active power curtailment control. Detailed battery energy counters (DC charge/discharge, AC charge/discharge, grid export) and I/O board switched outputs are also available. These can be added to the TapHome template in a future update.

Troubleshooting

No Modbus communication
  1. Verify Modbus TCP is enabled in the inverter web UI under Settings > Modbus/SunSpec (TCP)
  2. Confirm the TCP port is 1502 (not the standard 502)
  3. Verify the Unit-ID matches between the inverter (default 71) and TapHome template configuration
  4. Ensure the byte order is set to Little-endian (CDAB) on the inverter
  5. Check that TapHome Core and the inverter are on the same network/subnet
Incorrect readings or zero values
  • The inverter reports zero power values when it is not producing (nighttime, inverter off). This is normal behavior.
  • If yield values appear incorrect, verify the byte order setting – Big-endian (ABCD) will produce garbled Float values when the template expects Little-endian (CDAB).
Battery SOC not updating
  • Verify a compatible battery is connected and recognized (check the Battery Type service attribute)
  • If Battery Type shows “No battery (PV-functionality)”, the inverter is operating in PV-only mode without battery storage

Available devices

PlentyCore Module
Service Attributes
MODBUS enableWhether Modbus TCP communication is enabled on the inverter
IP enableWhether IP networking is enabled on the inverter
Grid Frequency
Inverter StateCurrent operating state — Off, Init, FeedIn, Throttled, Standby, Overheating, Shutdown, and others (19 states total)

PlentyCore

Service Attributes
MODBUS enable
IF(MODBUSR(H, 2, Bool), "Enabled", "Disabled");
IP enable
IF(MODBUSR(H, 416, Bool), "Enabled", "Disabled");
Grid Frequency
ROUND(MODBUSR(H, 152, Float, 2)) + " Hz";
Inverter State
SWITCH(MODBUSR(H, 56, Uint16), 
0, "Off",
1, "Init",
2, "IsoMeas",
3, "GridCheck",
4, "StartUp",
5, "-",
6, "FeedIn",
7, "Throttled",
8, "ExtSwitchOff",
9, "Update",
10, "Standby",
11, "GridSync",
12, "GridPreCheck",
13, "GridSwitchOff",
14, "Overheating",
15, "Shutdown",
16, "ImproperDcVoltage",
17, "ESB",
18, "Unknown",
"Error"
);
Battery SOC Analog Input Read-only

Battery state of charge (0–100%) with voltage, temperature, and configurable min/max SOC limits

Register: H:210 Float Unit: %
Service Attributes
Battery Voltage
Battery Temperature
Minimum SOCConfigured lower state-of-charge limit (1–90%)
Maximum SOCConfigured upper state-of-charge limit (10–100%)
Battery TypeConnected battery brand — No battery, PIKO Battery Li, BYD, BMZ, LG, Pyontech, Dyness, VARTA
Service Actions
SOC settingsConfigure minimum and maximum state-of-charge limits for the battery

Battery SOC

Read input level
MODBUSR(H, 210, Float, 2)/100
Service Attributes
Battery Voltage
ROUND(MODBUSR(H, 216, Float, 2)) + " V";
Battery Temperature
MODBUSR(H, 214, Float, 2) + " °C"
Minimum SOC
MODBUSR(H, 1042, Float, 2) + "%"
Maximum SOC
MODBUSR(H, 1044, Float, 2) + "%"
Battery Type
SWITCH(MODBUSR(H, 588, Uint16),
 0, "No battery (PV-functionality)",
 2, "Li-Io battery SONY / MURATA",
 4, "Li-Io battery BYD / BBOX",
 "Unknown"
 );
Service Actions
SOC settings
Parameters: Minimum SOC (1–90 mis), Maximum SOC (10–100 mas)
MODBUSW(H, 1042, Float, mis,  2);
MODBUSW(H, 1044, Float, mas, 2);

Daily Yield Variable Read-only

Energy produced today (Wh converted to kWh)

Register: H:322 Float Unit: kWh

Daily Yield

Read
MODBUSR(H, 322, Float, 2)/1000
Monthly Yield Variable Read-only

Energy produced this month (Wh converted to kWh)

Register: H:326 Float Unit: kWh

Monthly Yield

Read
MODBUSR(H, 326, Float, 2)/1000
Power DC1 Variable Read-only

PV string 1 (MPPT 1) power output (W converted to kW)

Register: H:260 Float Unit: kW
Service Attributes
Current DC1
Voltage DC1

Power DC1

Read
MODBUSR(H, 260, float, 2)/1000
Service Attributes
Current DC1
ROUND(MODBUSR(H, 258, Float, 2)) + " A";
Voltage DC1
ROUND(MODBUSR(H, 266, Float, 2)) + " V"
Power DC2 Variable Read-only

PV string 2 (MPPT 2) power output (W converted to kW)

Register: H:270 Float Unit: kW
Service Attributes
Current DC2
Voltage DC2

Power DC2

Read
MODBUSR(H, 270, float, 2)/1000
Service Attributes
Current DC2
ROUND(MODBUSR(H, 268, Float, 2)) + " A";
Voltage DC2
ROUND(MODBUSR(H, 276, Float, 2)) + " V"
Power DC3 Variable Read-only

PV string 3 (MPPT 3) power output — can optionally be used for battery connection

Register: H:280 Float Unit: kW
Service Attributes
Current DC3
Voltage DC3

Power DC3

Read
MODBUSR(H, 280, float, 2)/1000
Service Attributes
Current DC3
ROUND(MODBUSR(H, 278, Float, 2)) + " A";
Voltage DC3
ROUND(MODBUSR(H, 286, Float, 2)) + " V"
Total AC Active Power Variable Read-only

Total active power on the AC grid side (W converted to kW)

Register: H:172 Float Unit: kW

Total AC Active Power

Read
MODBUSR(H, 172, Float, 2)/1000
Total DC Power Variable Read-only

Combined output from all connected PV strings (W converted to kW)

Register: H:1066 Float Unit: kW

Total DC Power

Read
MODBUSR(H, 1066, Float, 2)/1000
Total Yield Variable Read-only

Cumulative total energy produced since installation (Wh converted to kWh)

Register: H:320 Float Unit: kWh

Total Yield

Read
MODBUSR(H, 320, Float, 2)/1000
Yearly Yield Variable Read-only

Energy produced this year (Wh converted to kWh)

Register: H:324 Float Unit: kWh

Yearly Yield

Read
MODBUSR(H, 324, Float, 2) /1000
Connection: Modbus TCP • Slave ID: $[SlaveId]
Possible improvements (22)
  • H:98 Controller PCB Temperature — Float, °C, read-only — inverter internal temperature
  • H:100 Total DC Power (addr 100) — Float, W — alternative register for total DC power (template uses H:1066 instead, which is sum of all PV inputs)
  • H:106 Home Own Consumption from Battery — Float, W, read-only
  • H:108 Home Own Consumption from Grid — Float, W, read-only
  • H:116 Home Own Consumption from PV — Float, W, read-only
  • H:118 Total Home Consumption — Float, Wh, read-only — cumulative
  • H:156 Active Power Phase 1 — Float, W, read-only
  • H:162 Active Power Phase 2 — Float, W, read-only
  • H:170 Active Power Phase 3 — Float, W, read-only
  • H:194 Number of Battery Cycles — Float, read-only — battery health indicator
  • H:200 Actual Battery Charge/Discharge Current — Float, A, read-only — negative=charge, positive=discharge
  • H:252 Total Active Power (Powermeter) — Float, W, read-only — external power meter reading
  • H:512 Battery Gross Capacity — U32, Ah, read-only
  • H:1046 Total DC Charge Energy (DC-side to Battery) — Float, Wh, read-only
  • H:1048 Total DC Discharge Energy (DC-side from Battery) — Float, Wh, read-only
  • H:1056 Total DC PV Energy (sum of all PV inputs) — Float, Wh, read-only — cumulative PV production
  • H:1064 Total Energy AC-side to Grid — Float, Wh, read-only — total energy exported
  • H:1068 Battery Work Capacity — Float, Wh, read-only
  • H:1076 Maximum Charge Power (from battery) — Float, W, read-only — battery-reported charge limit
  • H:1078 Maximum Discharge Power (from battery) — Float, W, read-only — battery-reported discharge limit
  • H:533 Active Power Setpoint — U16, %, write-only — power curtailment (1-100%)
  • H:608-611 I/O Board Switched Outputs 1-4 — U16, R/W — digital outputs for external relay control

Sources