Skip to content

Releases: robertzaage/GroBro

v2.7.5

20 Jun 18:53

Choose a tag to compare

v2.7.5

Bug Fixes

  • Reverted the 0x0103 holding register dump handler introduced in v2.7.3. It caused all-zero sensor readings for some users, disturbing automations. The original warning messages from unknown message type 259 will reappear in logs (#198)

v2.7.4

20 Jun 12:19

Choose a tag to compare

v2.7.4

Bug Fixes

  • Fixed v2.7.3 regression: NEXA 0x0103 holding register dumps no longer publish invalid config values (e.g. charge_limit: 0), which caused Home Assistant warnings. The dump is now routed through the input register path, keeping holding register configs untouched (#198)

v2.7.3

20 Jun 09:54

Choose a tag to compare

v2.7.3

New Features

  • Added KEEP_BATTERY_POSITION option (default: off). When enabled, GroBro tracks NOAH battery serial numbers across position changes and logs a warning if the inverter stack re-enumerates and a battery moves to a different slot (#196)

Bug Fixes

  • Fixed NEXA and NOAH devices crashing the parser every hour when sending holding register dumps (message type 0x0103). These messages are now properly decoded and their sensor values are published to Home Assistant (#198)
  • Fixed NEXA household load sensors showing wrong values when the load is negative (e.g. exporting to grid). The registers are now parsed as signed values (#195)

v2.7.2

28 May 16:33
6ece2f3

Choose a tag to compare

v2.7.2

New Features

  • NEO 2000 inverters (4 MPPT inputs) now expose PV3 and PV4 voltage, current, and power sensors. Detection is automatic - GroBro compares total PV power against individual MPPT sums at runtime. No configuration needed (#182)
  • Added TL-XH2 inverter support (ZGQ serial prefix). The XH2 family shares the NEO register map and exposes grid import/export power, load power, battery state, BMS telemetry, and diagnostic sensors with XH2-specific names and publish defaults (#185)

Bug Fixes

  • Added missing device class battery to individual battery SOC sensors for NOAH and SPF devices, so they display with colored badges in Home Assistant (#181)
  • Fixed NOAH battery devices being merged into one in Home Assistant. All NOAH devices report the same non-unique MAC address (AA:BB:CC:DD:EE:XX), which caused Home Assistant's device registry to treat them as the same device. The MAC is now validated and masked MACs like this are rejected and no longer used for device matching (#178)
  • Fixed missing TZ definition in German translation (#183)
  • Fixed MAX_BAT=auto showing phantom empty batteries, battery count is now read from the device's own bat_cnt register instead of relying solely on serial-number register presence (#187)

v2.6.2

18 May 13:09

Choose a tag to compare

v2.6.2

New Features

  • MAX_BAT=auto is now the default. The number of battery packs is detected automatically. You can still override with MAX_BAT=1, MAX_BAT=2, etc.
  • Battery serial numbers are now combined into a single sensor per battery (Bat2/3/4 Serial) instead of 4 separate part-sensors. Battery 1 uses the device serial ("Device SN").
  • PTQ inverters (NEO 1000M-X via LoRa) behind ShineWeLink dongles are now extracted from config messages and registered as separate NEO devices in Home Assistant, with modbus data routed to them automatically.

Bug Fixes

  • Fixed MQTT topic serial containing control characters being used as HA device identifier
  • Fixed ShineWeLink config messages (type 0x0129, function 0x29) being silently dropped

v2.5.2

18 May 07:07

Choose a tag to compare

v2.5.2

Bug Fixes

  • Fixed NOAH FE19 config messages using the config's serial number (data logger serial) as HA device identifier instead of the MQTT topic serial. This caused multiple devices behind a shared data logger to be merged into one device in Home Assistant (#178)
  • Removed wrong registers introduced in v2.5.0 from NOAH mapping

v2.5.1

17 May 15:58

Choose a tag to compare

v2.5.1

Bug Fixes

  • Fixed regression where NOAH message dispatcher consumed ALL device types' function 3 (holding register) and function 16 (preset multiple) messages, causing them to never reach the modbus parser. This broke NEO, NEXA, and SPF devices that send these function codes.

v2.5.0

17 May 15:35

Choose a tag to compare

v2.5.0 Pre-release
Pre-release

v2.5.0

New Features

  • Added MAX_BAT environment variable to control how many battery packs appear in Home Assistant. For example, MAX_BAT=1 hides all but the first battery module. Set it to match how many batteries your system actually has.
  • Added FILTER_DATA_GLITCHES option (default: off) to prevent glitches on total_increasing sensors after a device reconnects (#154)
  • Added 37 missing NOAH input registers: PV1/PV2 temperature, battery SOH, PV3/PV4 voltage/current/temperature, battery 1 serial number, all battery warning and protection statuses, work mode, charging status/power, fault status, AC couple statuses, CT/grid/household load registers, system temperature, and cell voltage limits
  • Parser now supports the mult field (in addition to float_options) for simpler register definitions
  • Added support for ShineWeLink-X2 data loggers (RAQ serial prefix). These dongles bridge LoRa-connected inverters like the NEO 1000M-X into MQTT. Their messages are now properly routed, including config telemetry (firmware version, serial number).
  • Added parser for new message type 0x6F64 (EcoTracker JSON data). EcoTracker sensor data is now forwarded to HA instead of being silently dropped (#176)

Bug Fixes

  • Fixed missing device_class: voltage for Output Voltage sensor
  • Removed duplicate out_voltage register definition
  • Added VENDOR_100 to modbus function enum and downgraded unknown function log from INFO to DEBUG to reduce log noise (#176)
  • Fixed NOAH config messages (FE19) not being processed - firmware version, serial number and other device info are now properly saved in Home Assistant

v2.4.0

01 Apr 06:48
982c257

Choose a tag to compare

v2.4.0

New Features

  • Added NEXA register to allow grid charging

Bug Fixes

  • Fixed wrong NEXA battery 1 temperature reading (#162)
  • Fixed bug which always blocks config messages from Growatt cloud

v2.3.0

20 Mar 18:49

Choose a tag to compare

v2.3.0

New Features

  • Added most of the NEXA 2000 config and holding registers that were still missing (#157)
  • Improved logging for MQTT config (#55)

Bug Fixes

  • NEXA: "Battery Count" and "Battery Cycle Count" should be INT, not FLOAT (#161)