Teleinfo: Ihr Linky-Zähler in Gladys mit dem LiXee TIC-Modul

Hallo zusammen! Ich stelle euch Teleinfo vor, eine externe Integration, die die Ferninformation (TIC) Ihres Linky- oder elektronischen Zählers mit dem LiXee TIC-Modul auf Hutschiene (USB, ca. 30 €) liest. Quellcode: github.com/prohand/gladys-teleinfo.

Wichtiger Punkt: USB

Eine externe Gladys-Integration kann keinen USB-Serienadapter lesen. Das ist die erste Sache, die Sie wissen müssen, bevor Sie das Modul kaufen.

  • Externe Integrationen laufen jeweils in ihrem eigenen Docker-Container, isoliert durch Gladys (Dateisystem schreibgeschützt, kein Hardwarezugriff).
  • Das Manifest einer Integration kann Hardwarezugriff anfordern, aber nur aus vier Klassen: coral-usb, coral-pcie, gpu und video. Es gibt keine Klasse für einen seriellen Port (/dev/ttyUSB0, /dev/ttyACM0…).
  • Diese Klassen werden nur Untercontainern gewährt, nie als freier /dev-Pfad.

Folge: Das LiXee-Modul an den Gladys-Server anzuschließen, reicht nicht aus. Die Integration wird es nicht sehen, selbst wenn es von Linux erkannt wird.

Das ZLinky (die Zigbee-Version des LiXee) hat dieses Problem nicht: Es läuft über Zigbee2MQTT. Aber die günstigere USB-Version auf Hutschiene benötigt einen Netzwerkrelais.

Lösung: ser2net

ser2net teilt den seriellen Port des Moduls im Netzwerk (rohes TCP) und die Integration verbindet sich damit:

Zähler (I1/I2) -> LiXee-Modul (USB) -> ser2net (TCP 2000) -> Teleinfo-Integration -> Gladys

ser2net läuft auf der Maschine, an der das Modul angeschlossen ist: der Gladys-Server selbst oder ein Raspberry Pi in der Nähe des Stromverteilers (praktisch, das USB-Kabel ist auf ca. 5 m begrenzt).

sudo apt install ser2net
ls -l /dev/serial/by-id/

Dann /etc/ser2net.yaml:

connection: &teleinfo
  accepter: tcp,2000
  enable: on
  options:
    kickolduser: true
  connector: serialdev,/dev/serial/by-id/usb-XXXX-if00-port0,1200e71,local
  • 1200e71 für den historischen Modus (elektronische Zähler und die meisten Linky standardmäßig).
  • 9600e71 für einen Linky im Standardmodus.
  • Dann sudo systemctl restart ser2net && sudo systemctl enable ser2net.

Achtung: ser2net hat kein Passwort. Halten Sie diesen Port in Ihrem lokalen Netzwerk, nie im Internet geöffnet.

Was in Gladys hochgeladen wird

Der Modus (historisch oder standard) wird automatisch erkannt. Ein Gerät wird pro Zähler erstellt, mit nur den Werten, die Ihr Zähler sendet (einphasig oder dreiphasig, Base, HC/HP, Tempo, EJP).

  • Historischer Modus: Indizes (Base, HC/HP, EJP, Tempo) in kWh, Scheinleistung (PAPP), momentane und maximale Stromstärke, abonnierte Stromstärke, Tarifperiode, Überschreitung (ADPS).
  • Standardmodus: Entnommene Gesamtenergie und pro Index, eingespeiste Energie, momentane und maximale Scheinleistung, effektiver Strom und Spannung, mittlere Spannung, Lastkurve, aktueller Tarif.

Die Kategorien und Einheiten sind dieselben wie die von Gladys für das ZLinky über Zigbee: Ein Zähler wird in beiden Fällen gleich angezeigt.

Die Werte werden standardmäßig alle 60 Sekunden gesendet (einstellbar von 15 Sekunden bis 1 Stunde), nur wenn sie sich ändern, um den Verlauf nicht zu überfüllen.

Szenen und Dashboard (Gladys 5.1+)

Die Integration fügt ihre eigenen Karten im Szenario-Editor (Kategorie Integrationen) und ein Widget für das Dashboard hinzu.

  • Trigger „Tarifperiodenwechsel“: Startet die Szene beim Wechsel HC ↔ HP. Mögliche Filterung auf die neue Periode (Niedertarif, Hochtarif, Base). Beispiel: Warmwasserbereiter in Niedertarifzeiten.
  • Trigger „Überschreitung der abonnierten Leistung“: Warnt vor dem Abschalten. Ein Auslösen pro Überschreitung, selbst wenn die Leistung um die Grenze schwankt.
  • Aktion „Zähler lesen“: Gibt Leistung, Periode, Gesamtindex und Überschreitung zurück, für eine Bedingung oder eine Nachricht.
  • Widget „Stromzähler“: Momentane Leistung, Indizes, Kurve über 24 Stunden, Tarifperiode, Überschreitung und Empfangsstatus.

Diese Funktionen erfordern Gladys 5.1 oder neuer.

Installation

  1. Schließen Sie das LiXee-Modul an die Klemmen I1 und I2 des Zählers an (ohne Polarität, Strom abgeschaltet am Verteiler).
  2. Installieren und konfigurieren Sie ser2net wie oben beschrieben.
  3. In Gladys, installieren Sie die Integration Teleinfo, dann geben Sie die IP-Adresse der ser2net-Maschine und den Port (2000) an.
  4. Klicken Sie auf Verbindung testen: Die Zählernummer und die aktuelle Leistung werden angezeigt. Fügen Sie dann den Zähler über den Tab Entdeckung hinzu.

Der Verbindungsstatus im Konfigurationsbildschirm zeigt klar das Problem an: Erreichbarer Gateway oder verbunden, aber keine gültige Rahmen (falsche Geschwindigkeit oder Verkabelung). Die detaillierte Anleitung finden Sie in der Dokumentation.

Was ich suche

  • Tester mit einem echten Zähler: Die Integration wird mit simulierten Frames getestet, aber noch nicht an einem echten Linky. @mutmut, du hattest angeboten, mit deinem LiXee TIC Hutschienenmodul hier zu testen: Gerne! Wenn dein teleinfo2mqtt den Port bereits liest, musst du es während des Tests stoppen (nur ein Programm gleichzeitig am seriellen Port). Rückmeldungen zu dreiphasigen und Standardmodus sind ebenfalls willkommen.
  • Eine Meinung zum seriellen Zugriff: @pierre-gilles, eine Hardwareklasse serial (für /dev/ttyUSB* / /dev/ttyACM*), gewährt durch den Benutzer wie coral-usb oder video, würde ser2net vermeiden. Sie würde auch anderen USB-Integrationen wie dem RFPlayer dienen, der ebenfalls im Thread gefragt ist. Ist das auf Gladys-Seite vorstellbar?

Vielen Dank für euer Feedback!

1 „Gefällt mir“