Home Assistant custom integration for EASUN ISOLAR SMX II solar inverters with WiFi Plug Pro datalogger.
- π Real-time monitoring of all inverter parameters
- β‘ Control buttons for inverter management
- π Battery management including equalization
- π Local network communication - no cloud required
- π Automatic reconnection handling
- π Energy statistics tracking
- EASUN ISOLAR SMX II (all power ratings: 3.6kW, 5.6kW, etc.)
- SRNE Solar HF series (uses same protocol)
- Any inverter using WiFi Plug Pro datalogger
- Home Assistant 2023.1 or newer
- EASUN inverter with WiFi Plug Pro adapter
- Inverter connected to your local network
- Python 3.11+
- Open HACS in Home Assistant
- Click on "Integrations"
- Click the three dots in the top right corner
- Select "Custom repositories"
- Add this repository URL:
https://github.com/YOUR_USERNAME/easun_smx - Select category: "Integration"
- Click "Add"
- Find "EASUN ISOLAR SMX II" in HACS and click "Download"
- Restart Home Assistant
- Download the latest release from GitHub
- Copy the
custom_components/easun_smxfolder to your Home Assistantconfig/custom_components/directory - Restart Home Assistant
cd /config
mkdir -p custom_components
cd custom_components
git clone https://github.com/YOUR_USERNAME/easun_smx.git
# Or download and extract the ZIP fileThe WiFi Plug Pro adapter should be connected to your local network. Find its IP address from your router's DHCP client list.
- Go to Settings β Devices & Services
- Click + Add Integration
- Search for "EASUN ISOLAR SMX II"
- Enter your inverter's IP address (e.g.,
172.16.4.27) - Port is automatically set to
502(Modbus TCP default) - Click Submit
The integration will:
- Create a TCP server on your Home Assistant machine
- Send a UDP broadcast to the datalogger
- Wait for the datalogger to connect back
- If the datalogger is already connected to another server, it will automatically disconnect and reconnect to Home Assistant
Note: The initial connection may take up to 30 seconds.
- PV Voltage, Current, Power
- Battery Voltage, Current, SOC (State of Charge)
- Load Voltage, Current, Active Power, Apparent Power
- Line Voltage, Current, Frequency
- Inverter Current, Frequency
- Machine State (Power on, Standby, Running, etc.)
- Current Faults (detailed error messages)
- Battery Charge Step
- Load Ratio
- DC Temperature
- AC Temperature
- Transformer Temperature
- Daily/Cumulative PV Generation
- Daily/Cumulative Load Consumption
- Daily/Cumulative Battery Charge/Discharge
- Battery Charge/Discharge Hours
- Output Priority (SOL/UTI/SBU)
- Charger Source Priority (CSO/CUB/SNU/OSO)
- Battery Type
- Various voltage/current limits
- Start Battery Equalization - Initiates battery equalization cycle
- Reset Machine - Soft reset of the inverter
- Shutdown Machine - Powers down the inverter
- Boot Machine - Powers up the inverter
Possible causes:
- Inverter is not powered on or not connected to network
- Incorrect IP address
- Firewall blocking UDP port 58899 or TCP port 8900
- Datalogger already connected to another server (e.g., SmartESS app)
Solutions:
- Verify the inverter IP address is correct
- Check that the inverter is powered on and WiFi LED is lit
- Ensure no firewall is blocking ports 58899 (UDP) and 8900 (TCP)
- Close SmartESS app if running
- Try restarting the integration
- Power cycle the WiFi Plug Pro adapter
The TCP port 8900 is already in use.
Solution:
- Restart Home Assistant to free up the port
- Check if another instance of the integration is running
Solutions:
- Check Home Assistant logs for errors
- Verify the inverter is responding (check Machine State sensor)
- Restart the integration
- Check network connectivity
Occasional CRC errors are normal due to serial communication noise. If frequent:
- Check RS485 cable connection between inverter and WiFi adapter
- Try power cycling the WiFi adapter
- Check for electromagnetic interference near the inverter
- UDP 58899 - Command port for datalogger configuration
- TCP 8900 - Data communication port (configurable in code)
If you have a firewall, allow:
# Incoming UDP on port 58899
ufw allow 58899/udp
# Incoming TCP on port 8900
ufw allow 8900/tcpThe default scan interval is 30 seconds. To change it, modify const.py:
DEFAULT_SCAN_INTERVAL = 30 # Change to desired secondsIf port 8900 is in use, you can change it in modbus_client.py:
self._tcp_port = 8900 # Change to desired portThis integration uses a custom Modbus TCP protocol specific to EASUN inverters with WiFi Plug Pro:
- UDP Discovery: Sends
set>server=IP:PORT;to configure datalogger - TCP Connection: Datalogger connects back to Home Assistant
- Modbus Encapsulation: Modbus RTU packets wrapped in Modbus TCP frames
- Register Access: Standard Modbus function codes (0x03 read, 0x10 write)
Based on reverse engineering work by suletom.
- Only one client can connect to the datalogger at a time
- SmartESS app cannot be used simultaneously
- Some advanced parameters are read-only (firmware limitation)
- Connection may drop occasionally (automatic reconnection implemented)
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Initial release
- Full sensor support for all inverter parameters
- Control buttons for inverter management
- Automatic reconnection handling
- Support for datalogger server switching