Saltar al contenido principal

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

Integración EcoTracker para Gladys Assistant

Unofficial: EcoTracker (everHome) meter reader on your network: power and index.

info

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

Unofficial integration, not affiliated with everHome. It reads an EcoTracker, the everHome optical reader clipped on the infrared port of an electricity meter, through its local API: no cloud, no account, nothing sent to the reader but one read (GET /v1/json) every 10 seconds.

Never tested with a real EcoTracker: the integration was written from the maker's Python library (everhome-gmbh/ecotracker) and the published description of its local API. Your feedback is welcome.

What you get​

One EcoTracker device (or EcoTracker <serial number> when the reader gives one), with the values the meter gives (a meter sends only some of them):

FeatureKindField of the reader
Net power (negative when the home injects)energy sensor, Wpower
Consumption indexenergy index, kWhenergyCounterIn
Consumption index, tariffs 1 and 2 (kWh)plain sensorenergyCounterInT1, …T2
Injection index (kWh)plain sensorenergyCounterOut
Net power, average of the last minuteplain sensor, WpowerAvg
Power L1, L2, L3 (W)plain sensor, no historypowerPhase1 to powerPhase3
Wi-Fi signal (dBm)plain sensor, no historyrssi (when given)
  • The consumption index feeds the Gladys energy monitoring, which derives the consumption and its cost from it. It is published once a minute and checked first: never 0; any drop, even of 1 Wh, or a jump the home could not have drawn (more than 50 kW on average) is held back (the last accepted value is sent again), kept across restarts and shown in the status of the integration. Neither time nor repetition confirms it.

  • The injection and the tariffs never enter the energy monitoring (the injection would be billed as consumption, the tariffs counted twice): plain sensors.

  • energyCounterIn and energyCounterOut are in Wh according to the published API description and a real answer: they are converted to kWh. For T1 and T2 the description gives no unit: Wh is an assumption (its example has In = T1 + T2). The README of the maker's library says kWh: the integration therefore checks the unit. When the index does not follow the power (its rise is outside 1/20 to 20 times the energy the power gives, over at least 1 kWh), or when T1 + T2 do not make the index, the status says so ("unit?"); the index is still sent.

  • The powers are sent every 10 seconds, only when they change (and every 10 minutes otherwise). They are not sent:

    • when the reader says (field agePower) that its power is more than a minute old;
    • when no value read (powers, counters) has moved for 15 minutes: the reader may serve an old reading (optical head moved); a meter at rest may too, the status says so;
    • after a start, until the reading moves (about ten seconds), unless agePower says it is recent: a reading frozen before a restart is not sent as new.

    The index goes on in all these cases.

  • When the meter later gives new values (meter unlocked with its PIN), the device gets new features: in the Discover tab, click Update on the device to add them (its history is kept).

Setup​

  1. Install the EcoTracker on your meter and connect it to your Wi-Fi with the everHome app, as the maker explains. If the app offers it, turn on the local API of the reader.
  2. Find its IP address (in your router or the app) and give it a fixed address in your router (DHCP reservation). It is needed when the reader gives no serial number (see below).
  3. In Gladys, open the integration, enter this address, save.
  4. In the Discover tab, create the device.

If the status says the meter gives no power, it is probably PIN-locked: enter on the meter the PIN given by your grid operator to unlock its extended data. The indexes go on meanwhile. When the reader gives no serial number and you take it off the meter to enter the PIN, it then answers with new fields after an outage: all its values, the index included, are held (the status says so). Two clicks on Accept the held index lift it.

Buttons​

  • Test the connection: reads the reader when a read is due (never more than one every 10 seconds), otherwise tells the last read.

  • Accept the held index, in two clicks, only when the held value is right (new meter, long outage):

    • the first click shows the movement held (a jump or a drop) and accepts nothing;
    • the second click, from 3 seconds to 5 minutes later, takes that value, plus what the meter may have measured between the two clicks (at most 4.667 kWh);
    • when the held value changed otherwise between the clicks (another direction, another starting point, a larger jump), nothing is taken: look at the status and start again.

    An accepted jump is counted at once as consumption; an accepted drop bills nothing, the consumption goes on from there. Saving the configuration never accepts anything.

    The same button, in two clicks, also accepts the new fields of a reader without serial number after an outage (see "Identity of the reader"): the first click shows them, the second keeps them; the index stays checked by its guard.

Identity of the reader​

  • The real reader we know gives no serial number in its local answer: the device is then named EcoTracker (ecotracker:reader), and another reader answering at the same address (a second EcoTracker of the home taking its address) cannot always be told from it. A fixed address is therefore needed. What still protects:
    • after an outage (reader unreachable, restart), an answer whose meter fields differ (powers, phases, counters and tariffs; not agePower, rssi, firmwareVersion, which belong to the reader) is not used: nothing is sent until the fields come back, or until two clicks on Accept the held index if it is the same reader;
    • with the same fields, the guard of the index holds a drop, or a rise larger than the home could have drawn since the last accepted value (50 kW × hours without values); a smaller rise is taken as consumption (after a 2-hour outage, up to 100 kWh).
  • When the reader gives a serial number (field serial, read by the maker's library), the device carries it and every answer is checked: another number at the same address gets its own device, its values never go to the previous one; an unreadable number is not used (red status, new try spaced out).
  • An answer without number is not used while a device of a reader with a number exists in Gladys: the status says so. If you replaced the reader with one without number, delete the old device in Gladys: the new reader then gets its own device.
  • Going from a reader without number to one with a number (after an update of the reader, for instance) creates a new device, without the history of the old one.

Limits​

  • One reader per integration.
  • An unreadable counter (text, negative value, 0, out of bounds) is never used. The status says so for the consumption counter (energyCounterIn); unreadable tariffs and injection are simply ignored.
  • Read-only: the reader receives no command.

Troubleshooting​

The status of the integration says what is going on: missing or invalid address, unreachable reader or unexpected answer (new try after 10 s, doubled up to 5 minutes), reader asking to wait (HTTP 429 or 5xx: reads paused from 1 minute to 6 hours, kept across a restart), index held back, old values. To look at the reader yourself, open http://<address>/v1/json in a browser on the same network.

Parámetros de configuración​

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

ParámetroTipoObligatorioDescripción
EcoTrackersectionNoUnofficial connector, not affiliated with everHome. It reads your EcoTracker, the optical reader clipped on the infrared port of an electricity meter, through its local API (to turn on in the everHome app if it offers it), without any cloud: the net power every 10 seconds, the consumption index every minute for the Gladys energy monitoring, and, when the reader gives them, the tariff counters and the injection as plain sensors, the average power, the power per phase. Read-only. Never tested with a real EcoTracker.
EcoTracker addressstringSíThe IP address of the EcoTracker on your network (shown by your router or the everHome app), with a port only if it is not 80. Give it a fixed address in your router (DHCP reservation): it is needed when the reader gives no serial number, since another device taking its address could not always be told from it. If the address changes, enter the new one: the device and its history are kept.

Cómo instalar EcoTracker en Gladys​

  1. En Gladys, abre Integraciones: EcoTracker 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-ecotracker:0.1.1), 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-ecotracker.

EcoTracker 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​

EcoTracker 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 🙂