Zum Hauptinhalt springen

Envertech Smart-Home-Integration, kostenlos und Open Source

Envertech-Integration für Gladys Assistant

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

Info

Die Dokumentation dieser Integration wird von ihrem Autor geschrieben und ist bisher nur auf Englisch verfügbar.

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.

Konfigurationseinstellungen​

Diese Einstellungen fragt Envertech in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Envertech micro-invertersectionNeinUnofficial 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 addressstringJaThe 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)numberNeinThe 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.

So installierst du Envertech in Gladys​

  1. Öffne in Gladys Integrationen: Envertech erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/lm1lc3n7/gladys-envertech:0.1.2) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/LM1LC3N7/gladys-envertech.

Envertech benötigt Gladys >=5.2.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

Envertech ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von LM1LC3N7 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂