You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Security note: this project intentionally focuses on direct local Modbus access rather than the vendor official app/API. Based on reverse-engineering and validation work during development, local integration is the preferred approach for security, privacy, and long-term control.
This document describes the IVEM6048-II addresses currently implemented by the ESPHome external component in this repository.
The repository includes these example configurations:
ivem6048-ii-external-readonly.yaml: Git-based external component example for read-only telemetry.
ivem6048-ii-external.yaml: Git-based external component example for telemetry plus documented writable settings.
ivem6048-ii-direct.yaml: Raw Modbus Controller example without the custom component.
Hardware Connection
The following wiring matches the setup used with a MAX3232 level shifter and the UART pins used in the example YAML files:
This assumes an ESP32 dev board with an onboard 5V to 3.3V regulator.
The MAX3232 should run from the ESP32 3V3 rail.
The YAML examples in this repository use GPIO17 for TX and GPIO16 for RX, matching the wiring above.
Confirm the inverter RJ45 pinout on your hardware before powering the board.
Notes
All addresses below are Modbus holding register addresses as currently used by the component.
Address (dec) is the decimal register address used in ESPHome config.
Address (hex) is the same address in hexadecimal for easier cross-reference with inverter documentation and Modbus tools.
Count is the register count configured on the entity today. For read entities, larger counts are used to let modbus_controller coalesce contiguous telemetry into fewer read ranges.
Some addresses appear more than once because the same raw register block is exposed in multiple ways, for example a raw numeric sensor plus decoded text or bit flags.
The ivem6048-ii-external.yaml example also includes an ESPHome-side register probe helper for testing unknown holding/input registers from Home Assistant through the ESPHome integration.
Utility First=0, Solar First=1, Solar Battery Utility=2
8491
0x212B
application_mode
Application Mode
U_WORD
1
R enum
APL=0, UPS=1
8492
0x212C
charging_source_priority
Charging Source Priority
U_WORD
1
R enum
Solar First=1, Solar and Utility First=2, Solar Only=3
8493
0x212D
battery_type
Battery Type
U_WORD
1
R enum
AGM=0, Flood=1, User Defined=2, LiFePO4=3
8497
0x2131
buzzer
Buzzer
U_WORD
1
R enum
Disable=0, Enable=1
8499
0x2133
overload_restart
Overload Restart
U_WORD
1
R enum
Disable=0, Enable=1
8500
0x2134
over_temperature_restart
Over Temperature Restart
U_WORD
1
R enum
Disable=0, Enable=1
8501
0x2135
lcd_backlight
LCD Backlight
U_WORD
1
R enum
Disable=0, Enable=1
8503
0x2137
overload_to_bypass
Overload To Bypass
U_WORD
1
R enum
Disable=0, Enable=1
Coverage Summary
Read telemetry/status coverage: 4355 through 4625, with gaps where no entity is currently exposed.
Writable config coverage: 8479 through 8537.
The addresses documented here are the ones currently implemented by the external component, not necessarily every register supported by the inverter firmware.