TapHome
Official · TapHome Verified Energy & metering

Kostal PLENTICORE plus

Kostal PIKO IQ / PLENTICORE plus hybrid solar inverter connected to TapHome via Modbus TCP. PV production monitoring, battery state-of-charge with min/max control, yield statistics and inverter diagnostics.

KostalModbus TCP10 devicesRevision 1.1 Last updated: November 13, 2026
Kostal PLENTICORE plus

Import into the TapHome appHardware › Modbus › Add from template

Download Template
On this page

Network address

TapHome reaches this device at the address entered on import. Give the device a fixed address — an IP reservation in the router, or its mDNS name if it supports one — otherwise the integration stops working when the router changes the address.

Network Preparation

Integration guide

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: Big-endian ABCD required by this template (the inverter’s default is Little-endian CDAB)

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. Set the byte order to Big-endian (ABCD) – this template reads Float values in ABCD order, so with the inverter’s default Little-endian (CDAB) the values are nonsensical. To keep the default, use the Kostal PLENTICORE plus template instead
  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)

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, Pylontech, 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 on the inverter matches the template: Big-endian (ABCD)
  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 values appear incorrect, verify the byte order setting – this template expects Big-endian (ABCD); the inverter’s default Little-endian (CDAB) produces garbled Float values.

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 10

These devices appear in TapHome after import.

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

Import parameters

Enter these values when you import the XML.

Asked in the appDefault
Slave ID1
IP address192.168.1.0

Sources

Manufacturer documents are © their respective owners. They are provided as published by the manufacturer, for reference only.

Found a problem with this device template?

Tell us what's wrong, what's missing, or how the template should behave. We rely on your feedback to keep the catalog accurate.

Template · TapHome portal Kostal PLENTICORE plus Open this template in the Customer Portal to apply it to one of your homes, or to draft a refinement and submit it back to the catalog. Modbus TCP View in TapHome portal