Envertech Local keeps a persistent TCP connection to your Envertech inverter or gateway and turns the data into Home Assistant sensors: per-panel live values, system totals and daily, monthly and yearly energy. Everything is configured in the UI – no YAML required.
It is maintained by JimmyBones and uses the envertech-local protocol library.
✨ Features
- 🏠 100 % local: a persistent TCP connection to the inverter (default port
14889), polled every 5 seconds - 🔍 Automatic discovery of inverters on your network (UDP broadcast), with manual setup as a fallback
- ⚡ Per-panel live values: DC input voltage, power, energy, temperature, grid voltage and grid frequency
- 🏡 System totals: total power and lifetime energy
- 📅 Daily, monthly and yearly energy sensors that survive restarts
- 📈 Energy Dashboard ready: all energy sensors use
device_class: energyandstate_class: total_increasing - 🔁 Automatic reconnect with backoff (5 s up to 2 min) if the connection drops
- 🌍 Translations: English, German and Polish
- 🧩 Installable via HACS, with no YAML to write
📋 Requirements
- Home Assistant 2024.6.0 or newer
- An Envertech micro-inverter or gateway with a local TCP interface on port
14889, for example devices of the EMT series - Home Assistant must be able to reach the inverter on TCP port
14889 - For automatic discovery: UDP broadcasts must work – usually the same subnet/VLAN and
hostnetworking for Docker installs - Recommended: a fixed IP address (DHCP reservation) for the inverter in your router
📦 Installation
HACS (recommended)
The integration is not in the HACS default list yet (the inclusion request hacs/default#10850 is pending). Until then, add it as a custom repository:
- In Home Assistant, open HACS → ⋮ (top right) → Custom repositories.
- Add the repository URL below with type Integration.
- Search for Envertech API in HACS and click Download.
- Restart Home Assistant.
https://github.com/jimmybonesde/Envertech_localManual installation
- Download the latest release.
- Copy
custom_components/envertech_localinto<config>/custom_components/of your Home Assistant installation. - Restart Home Assistant.
⚙️ Configuration
The integration is set up entirely in the UI through a config flow:
- Go to Settings → Devices & services → Add integration and choose Envertech API.
- Discovery: the integration spends about 5 seconds searching your network for inverters. It sends UDP broadcasts on ports
48889(Ethernet/LOCALCON) and48899(Wi-Fi). Every inverter found is listed asIP — serial number, except those already set up. - Pick your inverter and check the TCP port (default
14889). - If nothing is found, choose Manual entry and enter the values from the table below.
- Add one config entry for each inverter/gateway. The serial number is the unique ID, so an inverter can’t be added twice.
| Field (manual entry) | Description | Example / default |
|---|---|---|
| IP address | IP address of the inverter/gateway | 192.168.1.50 |
| Serial number | The 8-character hex ID of the inverter | 9A1B2C3D |
| TCP port | Local TCP port of the inverter | 14889 |
After setup, the inverter-wide sensors show up right away. Per-panel sensors are added automatically once the first data packet reports the panels. Until data arrives, sensors are unavailable.
📊 Sensors
The integration creates one device per config entry (Envertech API <serial>, manufacturer JimmyBones, model Microinverter). The firmware version is shown as the device’s software version.
Per panel / module
These are created for every panel n (1, 2, …) that the inverter reports. The entity names are P<n> …, e.g. sensor.p1_power. With more than one inverter, Home Assistant adds a numeric suffix to entity IDs that would otherwise be identical.
| Sensor (entity name) | Key | Unit | Device / state class | Notes |
|---|---|---|---|---|
🔌 P<n> Input Voltage | input_voltage | V | voltage / measurement | DC input voltage of the panel |
⚡ P<n> Power | power | W | power / measurement | Current power of the panel/module |
🔋 P<n> Energy | energy | kWh | energy / total_increasing | Lifetime energy of the module |
🌡️ P<n> Temperature | temperature | °C | temperature / measurement | Temperature reported by the micro-inverter module |
🏭 P<n> Grid Voltage | grid_voltage | V | voltage / measurement | AC grid voltage measured by the module |
〰️ P<n> Frequency | frequency | Hz | frequency / measurement | AC grid frequency |
🆔 P<n> Module Serial | mi_sn | – | – | Diagnostic entity: serial number of the module |
Every per-panel sensor also has a serial_number attribute containing the module serial.
Inverter / system
These sensors belong to the device. Their names are translated (English, German, Polish). With Home Assistant set to English, the entity IDs look like sensor.envertech_api_<serial>_total_power.
| Sensor | Key | Unit | Device / state class | Notes |
|---|---|---|---|---|
| ⚡ Total power | total_power | W | power / measurement | Sum of all panel powers |
| 🔋 Total energy | total_energy | kWh | energy / total_increasing | Sum of all panel lifetime energies |
| 📅 Daily energy | energy_daily | kWh | energy / total_increasing | Energy since local midnight |
| 🗓️ Monthly energy | energy_monthly | kWh | energy / total_increasing | Energy in the current month |
| 📆 Yearly energy | energy_yearly | kWh | energy / total_increasing | Energy in the current year |
| 🧠 Firmware version | firmware_version | – | – | Diagnostic entity, format x/y |
Numbers are rounded to 2 decimal places. The daily, monthly and yearly sensors are derived from Total energy: when a new period starts, they store the current total as an offset. They keep offset, period_marker and last_reset as attributes and restore them after a restart, so values don’t jump back to zero when Home Assistant restarts.
📈 Energy Dashboard
- Open Settings → Dashboards → Energy.
- Under Solar panels, click Add solar production.
- Select
sensor.envertech_api_<serial>_total_energy(Total energy). For per-module statistics, add the individualP<n> Energysensors instead.
🛠️ Troubleshooting
No values after a Home Assistant restart (only a reload helped)
Versions ≤ 1.1.1 could end up without values after a restart: if the inverter wasn’t reachable within 60 seconds of startup (for example at night or because the network wasn’t up yet), the sensors were never created, and a dropped or silent TCP connection was never re-established.
This is fixed in 1.1.2: the connection reconnects automatically with backoff (5 s up to 2 min), sensors are created immediately and stay unavailable until data arrives, and new panels are added as soon as they report. Update to the latest version; if it still happens, enable debug logging (see below) and open an issue.
Sensors are unavailable at night
Micro-inverters are powered by the panels, so they switch off when there is no sunlight. The sensors become unavailable while the inverter is offline and recover on their own in the morning. The energy totals are unaffected.
No inverter found during setup
- Discovery relies on UDP broadcast, which doesn’t cross VLANs/subnets or Docker bridge networks. Use Manual entry instead.
- Check that the inverter is powered (daylight!) and connected to your network.
- Check that port
14889is reachable:
nc -vz <inverter-ip> 14889Per-panel sensors are missing
Panel sensors are created when the inverter first reports the panel. If the inverter was offline during setup, they appear automatically as soon as it sends data. No reload is needed from 1.1.2 on.
Enable debug logging
Add this to configuration.yaml and restart:
logger:
default: info
logs:
custom_components.envertech_local: debug
envertech_local: debugAlternatively use Settings → Devices & services → Envertech API → ⋮ → Enable debug logging, reproduce the problem and then disable it again to download the log.
🔧 Supported devices
The integration supports Envertech micro-inverters and gateways with a local TCP interface on port 14889, for example devices of the EMT series. It is designed for systems with multiple panels.
Your model doesn’t work or reports different data? Please open an issue and include the model, the firmware version and, if possible, anonymized debug logs.
🤝 Contributing & credits
Bug reports, ideas and pull requests are welcome. The unit tests run locally without Home Assistant:
pip install pytest && pytest -q- Maintenance and development: JimmyBones (@jimmybonesde)
- Polish translation: @vaGpl
Released under the MIT License.
Envertech Local on GitHub
Source code, releases, issues and the full README.