
The Kostal PLENTICORE plus is a hybrid PV inverter with optional battery storage. TapHome connects to the inverter via Modbus TCP over Ethernet, providing comprehensive monitoring of PV production, battery status, home consumption breakdown by energy source, and grid powermeter readings.
The template is compatible with the PLENTICORE plus (G1, G2, G3), PLENTICORE MP G3, and PIKO IQ inverters, which share the same Modbus register map.
Network connection
The PLENTICORE has an RJ45 Ethernet port (100 Mbit) 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 — not 502)
- Default Unit-ID: 71
- Byte order: Configurable — must be set to big-endian (ABCD / SunSpec mode)
The default TCP port is 1502, not the standard Modbus port 502. Ensure TapHome is configured to use port 1502.
Configuration
Enabling Modbus communication
Modbus TCP must be explicitly activated on the inverter. Navigate to the inverter’s web interface or display menu:
- Open Settings on the inverter
- Go to Modbus/Sunspec (TCP)
- Enable the Modbus interface
- Set Byte Order to Big-Endian (ABCD) — this is required for the TapHome template, which uses BigEndianFloat data types. The default is Little-Endian (CDAB), which will produce incorrect readings
The Unit-ID defaults to 71 and can be modified if multiple inverters share the same network.
If the inverter uses DHCP, assign a static IP or DHCP reservation in the router to prevent the address from changing after a power cycle.
When importing the template in TapHome, provide:
- IP Address — the inverter’s IP on the local network
- Slave ID — Modbus Unit-ID (default: 71)
Device capabilities
The template exposes 22 read-only sensors organized into the following functional groups.
PV production
- Total DC Power — total instantaneous power from all PV strings combined (W)
Battery monitoring
- Battery State of Charge — float-precision battery SOC (%)
- Battery SOC (integer) — integer battery SOC from a separate U16 register, coarser than the float value
- Battery Charge/Discharge Current — actual battery charge or discharge current (A)
- Battery Temperature — battery pack temperature (°C)
- Battery Cycles — total number of charge/discharge cycles
Home consumption — instantaneous power
Three sensors show where the home’s current power consumption is sourced from:
- Home Consumption from Grid — power currently drawn from the grid (W)
- Home Consumption from PV — power currently consumed directly from PV production (W)
- Home Consumption from Battery — power currently supplied by the battery (W)
Home consumption — cumulative energy
Matching cumulative counters track total energy consumed from each source:
- Total Home Consumption from Grid — cumulative energy from grid (kWh, converted from Wh)
- Total Home Consumption from PV — cumulative energy from PV (kWh, converted from Wh)
- Total Home Consumption from Battery — cumulative energy from battery (kWh, converted from Wh)
- Total Home Consumption — cumulative total from all sources (kWh, converted from Wh)
Self-consumption rate
- Self-Consumption Rate — percentage of PV energy consumed locally versus fed to grid (%)
Grid powermeter
Per-phase and total active power and current readings from the grid-connection powermeter:
- Active Power Phase 1/2/3 (powermeter) — per-phase active power (W)
- Current Phase 1/2/3 (powermeter) — per-phase current (A)
- Total Active Power (powermeter) — total active power at the grid connection point (W)
Inverter and energy manager state
- Energy Manager State — current energy manager operating state (Idle, Emergency Battery Charge, Winter Mode Step 1/2)
The template also exposes extensive service attributes including inverter state (Off, Init, FeedIn, Throttled, Standby, and 13 other states), product name, serial number, article number, power class, hardware configuration (number of PV strings, AC phases, bidirectional converters), network configuration (IP address, subnet, gateway), and battery information (gross capacity, manufacturer).
Additional capabilities
The PLENTICORE exposes a comprehensive Modbus register map beyond what the template currently implements. Notable capabilities include per-string DC monitoring (current, power, voltage for up to 3 PV strings), inverter-side AC measurements (per-phase voltage, current, and power), grid frequency, yield counters (daily, monthly, yearly, total), battery voltage, controller PCB temperature, and isolation resistance monitoring. The inverter also supports writable registers for active power curtailment, reactive power control, I/O board digital outputs (4 channels), and full external battery management (charge/discharge setpoints, SOC limits, power limits with watchdog fallback on G3 models). These can be added in a future template update.
Troubleshooting
Incorrect or zero readings
If all values read as zero or nonsensical numbers, the byte order is likely misconfigured. The TapHome template uses BigEndianFloat (ABCD byte order), but the PLENTICORE defaults to Little-Endian (CDAB). Change the byte order to Big-Endian (ABCD) in the inverter’s Modbus/Sunspec settings.
Connection refused
- Verify Modbus TCP is enabled in the inverter settings
- Confirm the correct TCP port — the PLENTICORE uses port 1502, not 502
- Ensure TapHome Core and the inverter are on the same network/subnet
- Check the Unit-ID matches between TapHome (Slave ID) and the inverter (default: 71)
Battery sensors show no data
If the inverter has no battery connected, battery-related sensors (SOC, temperature, cycles, charge/discharge current) will return zero or invalid values. This is expected — the PLENTICORE supports battery-less PV-only operation.