Skip to content

Add battery storage and AC charge controls for Growatt MIN TL-XH#2

Open
sadegroo wants to merge 2 commits into
JasperE84:mainfrom
sadegroo:main
Open

Add battery storage and AC charge controls for Growatt MIN TL-XH#2
sadegroo wants to merge 2 commits into
JasperE84:mainfrom
sadegroo:main

Conversation

@sadegroo

Copy link
Copy Markdown

Add battery storage and AC charge controls for Growatt MIN TL-XH

Summary

Adds ESPHome controls for battery-first charging, AC (grid) charging, and time-slot scheduling on the Growatt MIN 2500-6000 TL-XH hybrid inverter series. These registers allow Home Assistant automations to trigger AC charging during cheap grid tariff windows.

Background

The Growatt Modbus RTU protocol document lists two separate holding register ranges for storage/battery control:

  • Registers 1000–1120 ("Six group for Storage Power") — used by older MIX/SPH models
  • Registers 3000+ ("Use for TL-X and TL-XH") — used by TL-XH series

On the MIN TL-XH, the 1000-range registers return Modbus exception 1 (Illegal Function) on any write attempt. The password/unlock mechanism described in the protocol (registers 135–138) also returns exception 1. These registers simply do not exist on TL-XH firmware.

The 3000-range registers accept writes directly without any unlock sequence.

What's added

Switches

Entity Register Description
AC Charge Enable 3049 Enable/disable grid-to-battery charging

What's changed

  • Replaced non-functional register 1090 (Battery First Power Rate) with register 3047
  • Replaced non-functional register 1091 (Battery First Stop SOC) with register 3048
  • Replaced non-functional register 1092 (AC Charge switch) with register 3049
  • Fixed entity names containing / (will become an error in ESPHome 2026.7.0)

What's NOT changed

All existing read-only sensors (PV power, AC output, energy totals, battery SOC, grid voltage/frequency, temperatures, fault codes) are unchanged. These use input registers that were already working correctly.

Testing

Verified on a Growatt MIN 5000TL-XH:

  • Writes to register 3048 confirmed: value read back correctly after write
  • Writes to register 1091 confirmed failing: Modbus exception 1 (Illegal Function)
  • Writes to register 135 (unlock) confirmed failing: Modbus exception 1 (Illegal Function)
  • Register 0 (On/Off, first group) confirmed writable — Modbus communication itself is functional

Automation example

To AC charge during a dynamic cheap-tariff window from Home Assistant:

automation:
  - alias: "AC charge during cheap grid power"
    trigger:
      - platform: state
        entity_id: sensor.cheap_power_active  # from your tariff integration
        to: "on"
    action:
      - service: number.set_value
        target:
          entity_id: number.growatt_battery_first_power_rate
        data:
          value: 100
      - service: number.set_value
        target:
          entity_id: number.growatt_battery_first_stop_soc
        data:
          value: 100
      - service: switch.turn_on
        target:
          entity_id: switch.growatt_ac_charge_enable

References

  • Growatt Inverter Modbus RTU Protocol II V1.20 (English)
  • Growatt MIN 2500-6000 TL-XH Installation Manual, Section 7.3

commit f81eb27
Merge: 27dbf21 5def54c
Author: sadegroo <39280315+sadegroo@users.noreply.github.com>
Date:   Sun Mar 15 12:44:57 2026 +0100

    Merge branch 'JasperE84:main' into sadegroo-home-battery

commit 27dbf21
Author: Sander <39280315+sadegroo@users.noreply.github.com>
Date:   Sun Mar 15 12:43:58 2026 +0100

    Move growatt_home_battery.yaml to project root

    Rename doc_img/growatt_home_battery.yaml to growatt_home_battery.yaml without content changes. This relocates the file out of the doc_img directory to simplify file paths and organization.

commit f6c507e
Author: sadegroo <39280315+sadegroo@users.noreply.github.com>
Date:   Sun Mar 15 12:39:17 2026 +0100

    Enhance Growatt home battery YAML configuration

    Updated Growatt home battery configuration with new modbus controls and parameters, including TimeSlot1 settings and readback functionality.

commit 5def54c
Author: JasperE84 <jasper.e@gmail.com>
Date:   Thu Oct 30 21:46:02 2025 +0100

    Update README for generalization of inverter models

commit 2c03f6d
Author: JasperE84 <jasper.e@gmail.com>
Date:   Thu Oct 30 21:45:20 2025 +0100

    Revise README for Growatt ESPHome Modbus Integration

    Updated README to reflect broader compatibility with additional models.

commit 3e674b0
Author: Sander <39280315+sadegroo@users.noreply.github.com>
Date:   Thu Oct 30 17:02:05 2025 +0100

    Add Growatt home battery configuration
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant