Saltar al contenido principal

Integración domótica Envertech, gratuita y de código abierto

Integración Envertech para Gladys Assistant

Unofficial: Envertech EVT800 micro-inverters on your network: power, inputs, energy index.

info

La documentación de esta integración la escribe su autor y, por ahora, solo está disponible en inglés.

Unofficial connector, not affiliated with Envertech. It reads your Envertech EVT800 micro-inverter on your home network, through its local TCP link, without any cloud and without any account.

Never tested with a real device: it was built from the pyenvertechevt800 library (the one Home Assistant uses) and the frames of its tests. The protocol is not documented by Envertech. Please report what you see (see "Feedback" below).

What you get​

One Gladys device per micro-inverter, named after its serial number:

FeatureWhat it is
Solar production (W)the power of all its inputs together; 0 at night
Solar production index (kWh)a cumulative index for the Gladys energy monitoring (production per half hour, revenue)
Inverter online1 while the inverter sends its frames, 0 asleep (the night)
AC voltage (V)the grid voltage the inverter sees
Grid frequency (Hz)a plain number (Gladys has no Hz unit)
Input n power (W)the power of each input (one panel each)
Input n DC voltage (V)the voltage of the panel
Input n DC current (A)the current of the panel (power divided by voltage)
Input n temperature (°C)the temperature the inverter gives for that input

Read-only: the integration only acknowledges the frames of the inverter (as the library does, the inverter expects it), it never sends a command. The inverter gives no counter of the day; its lifetime counter per input is not published on its own (see "The energy index").

Setting it up​

  1. The EVT800 must be in its "TCP server" mode (the mode the Home Assistant integration uses), listening on port 14889. Find its IP address in your router and give it a fixed address if you can.
  2. In Gladys, open the integration, enter the address (by day: at night the inverter is powered off with its panels), and save. Add :port only if it is not 14889.
  3. Open the "Discover" tab and create the device. Its values come with the next frame of the inverter.
  4. Optional: enter the peak power of the panels on this inverter (kWp). It bounds what the energy index may take between two frames (2 kW when empty). Never enter less than the real peak power: in doubt, leave it empty.

The integration keeps one connection open and publishes the last frame at most once a minute. It never tries to connect more than once a minute, whatever asks (a restart, a save, the test button). The "Test the connection" button tells the last frame, or makes the connection attempt when one is due and waits for the first frame.

If another program (Home Assistant, for example) is connected to the inverter at the same time, the inverter may refuse the second connection: use one of them. Such a refusal cannot be told from the night: by day, the status then says "asleep" (and mentions this case).

The link is kept only by data frames of the inverter it first answered with: without one for 90 s, it is closed and tried again at the pace, and the inverter is shown offline. Frames of another serial number on the same connection are ignored; another inverter at the address (a new connection) gets its own device.

The night​

An EVT800 is powered by its panels: at sunset it stops and goes silent. That is not an error: after three failed attempts with a power under 20 W (or an hour of silence whatever the power), the inverter is "asleep", its powers go to 0, the status stays green and says so, and it is tried every 5 minutes until it wakes up. The status turns red (the inverter shown offline) if the inverter vanishes while producing 20 W or more (new tries after 1 minute, doubled up to 15 minutes), if the address does not give EVT800 frames, or if there is no frame for more than a day.

While the status is red after a link lost in production, the powers keep their last value in Gladys (never 0 by day: the integration does not know them); only "Inverter online" goes to 0. A scene that relies on the power should also check "Inverter online". After an hour, the inverter is asleep and the powers go to 0.

The energy index​

Each input of the inverter has its own lifetime counter. The production index is their sum, published only when every input gives its counter (a partial sum would look like a drop, then a jump). It goes through a guard: it is never 0; a jump larger than the peak power allows since the last value, or a drop, is held back, shown in the integration status, and only taken when you click "Accept the held index" in the configuration (a jump is then counted at once; nothing is counted for a drop, the index goes on from there). Saving the configuration never accepts anything.

During a night that follows a low power, the reference of the guard is dated again at every attempt: in the morning, the margin counts from the night, not from the evening, so a wrong first frame is held.

It is not known whether the EVT800 keeps its counters when it powers up in the morning. If every counter is lower right after such a night, by no more than the margin since the wake-up, the integration takes it as a reset: the index goes on from its value (the counters of the evening are added to it, as the Zeversolar and Imeon integrations chain their counter of the day). If the old counters come back within 3 hours, the reset is undone and nothing is counted twice. A drop by day is still held. If a drop is held every morning anyway, do not accept it each day: please report it.

When the device gains an input (updated in Discovery), the index goes on from its value: the old counter of the new input is never counted.

Limits​

  • One micro-inverter per integration; two inputs at most (as the library).
  • The protocol is not documented: the meaning of each value comes from the library, checked only against the frames of its tests.
  • The integration needs Gladys 5.2.0 or later.

Privacy​

Nothing leaves your network: the integration only talks to the address you entered. Only the serial number, the number of inputs, the night, the index state (guard and counters) and the times of the last attempt and frame are kept in /data.

Feedback​

Issues and pull requests: https://github.com/LM1LC3N7/gladys-envertech. If you own an EVT800, the integration logs (by day and at night, with the serial numbers hidden) help a lot.

Parámetros de configuración​

Estos son los parámetros que Envertech te pide en su pantalla de configuración en Gladys.

ParámetroTipoObligatorioDescripción
Envertech micro-invertersectionNoUnofficial connector, not affiliated with Envertech. It reads an Envertech EVT800 micro-inverter on your network, without any cloud, through its local TCP link ("TCP server" mode, port 14889): solar power, power, voltage, current and temperature of each input, AC voltage, grid frequency, and a solar production index for the Gladys energy monitoring (the lifetime counters of the inputs). At night the inverter sleeps: the power goes to 0. Read-only: it only acknowledges the frames of the inverter, never a command. The protocol is not documented by Envertech. Never tested with a real Envertech inverter.
Inverter addressstringSíThe IP address of the EVT800 on your network (shown by your router), with a port only if it is not 14889. Enter it by day: at night the inverter sleeps and does not answer. Preferably give it a fixed address in your router.
Peak power of the panels (kWp, optional)numberNoThe peak power of the panels on this inverter. It bounds what the energy index may take between two frames (an odd frame is held back instead). Empty: 2 kW. Never enter less than the real peak power: in doubt, leave it empty.

Cómo instalar Envertech en Gladys​

  1. En Gladys, abre Integraciones: Envertech aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
  2. Haz clic en Instalar. Gladys descarga la imagen Docker (ghcr.io/lm1lc3n7/gladys-envertech:0.1.2), la ejecuta en un entorno aislado del núcleo y genera la interfaz de la integración (dispositivos, descubrimiento y configuración).
  3. Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
  4. También puedes instalarla directamente desde la URL de su repositorio: https://github.com/LM1LC3N7/gladys-envertech.

Envertech requiere Gladys >=5.2.0. El catálogo de Gladys se actualiza cada hora, así que una nueva versión está disponible como máximo una hora después de publicarse.

¿Todavía no usas Gladys? Es gratuito y de código abierto: sigue la guía de instalación para empezar.

Sobre las integraciones externas​

Envertech es una integración externa: una integración comunitaria empaquetada como contenedor Docker y publicada en GitHub. Gladys la instala con un clic y la ejecuta en un entorno aislado del núcleo. La publica y mantiene LM1LC3N7, no el equipo principal de Gladys.

Suscríbete a la newsletter de Gladys Assistant

Unos pocos correos al mes sobre nuevas versiones y novedades del proyecto. Enviados por Pierre-Gilles Leymarie, fundador del proyecto. Puedes darte de baja cuando quieras 🙂