Ich benutze den Server Kartenelektronisches WES seit einigen Jahren: Es handelt sich um eine kleine Box, die in die Schalttafel integriert ist und in der Lage ist, den gesamten Energieverbrauch des Hauses zu überwachen, sei es Strom über Teleinfo oder metrische Amperezangen, Wasser, Gas und viele andere Dinge. Ein äußerst vollständiger Server, der für sich genommen ausreichend ist. Aber Home Assistant bietet eine sehr gut gestaltete Energietabelle, ich wollte den WES-Server in dieses Hausautomationssystem integrieren können. Dieser Leitfaden wird Ihnen dabei helfen, dasselbe zu tun.

Voraussetzungen
Sie benötigen natürlich einen funktionsfähigen WES-Server, der mit dem Netzwerk verbunden ist, sowie eine funktionsfähige Home Assistant-Installation.
Damit meine Home Assistant-Konfigurationsdatei nicht überlastet wird, habe ich sie zunächst in mehrere Dateien aufgeteilt, was von den Entwicklern nativ geplant wurde. Hier werden wir insbesondere zwei Dateien haben:
- sensoren.yaml , die die Konfiguration aller WES-Sensoren hostet
- „customize.yaml“, mit dem Sie diese Sensoren so anpassen können, dass sie von der Home Assistant-Energietabelle korrekt erkannt werden
Fügen Sie dazu einfach diese Zeilen zu den Dateien „configuration.yaml“ hinzu, falls Sie sie noch nicht haben:
Sensor: !include sensoren.yaml
#Anpassung des Home Assistant
Haushaltshilfe:
Anpassen: !include anpassen.yaml
Erstellen von WES-Serversensoren im Home Assistant
Leider bietet der WES-Server keine MQTT-Verbindung an, obwohl dies bereits seit einigen Jahren angekündigt ist. Schade, denn es hätte unser Leben viel einfacher gemacht. Das WES stellt jedoch mehrere Dateien bereit, die es Ihnen ermöglichen, die gesammelten Informationen zu lesen. Die vollständigste Datei ist zweifellos data.cgx, verfügbar unter http://IP_DU_WES/data.cgx. Dies ist diejenige, die wir verwenden werden, um das Jonglieren zwischen mehreren Dateien zu vermeiden.
Alle nützlichen Informationen sind in dieser Form zusammengefasst:

Wir müssen lediglich die verschiedenen gewünschten Informationen in Home Assistant angeben.
Dazu müssen wir in der Datei „sensors.yaml“ (die in Ihrem Homeassistant-Verzeichnis erstellt werden muss, falls Sie sie noch nicht haben) die Verbindung zum WES-Server deklarieren:
-Plattform: Ruhe
Name: wesdata
#Ersetzen Sie durch die IP Ihres WES
Ressource: http://IP_DU_WES/data.cgx
scan_interval: 60
Methode: GET
Authentifizierung: einfach
#Ersetzen Sie es durch Ihren Systembenutzernamen und Ihr Passwort
Benutzername: Administrator
Passwort: wir s
json_attributes_path: „$.data“
json_attributes:
- „tick1“
- „tic2“
- „tic3“
- „Impuls“
- „Klemme“
- „Temp“
- „Relais“
- "Eingang"
- „analog“
- „virtual_switch“
- „Variablen“
value_template: 'OK'
Sie müssen die roten Felder ersetzen, um die IP-Adresse des WES-Servers sowie den Benutzernamen und das Passwort anzugeben, wenn Sie nicht die Standardwerte verwenden. Sie können auch das „scan_interval“ ändern, um die Datei häufiger oder seltener abzufragen. Hier ist eine Abfrage im Minutentakt eingestellt, was für die meisten Zwecke gut funktioniert. Keine Notwendigkeit, den Server durch wiederholte Aufrufe zu überlasten.
Als nächstes folgt die Deklaration der verschiedenen Sensoren. So lesen Sie die Stromzählerinformationen per Teleinfo aus, wenn Sie beispielsweise ein Spitzen-/Nebentarif-Abonnement haben:
westic1hp:
freundlicher_name: „Index der Hauptverkehrszeiten“
unique_id: westic1hp
Geräteklasse: Energie
unit_of_measurement: 'Wh'
value_template: >-
["tic1"] {{ states.sensor.wesdata.attributes| schweben }}["H_PLEINE"]
westic1hc:
freundlicher_name: „Index der Stunden außerhalb der Hauptverkehrszeiten“
unique_id: westic1hc
Geräteklasse: Energie
unit_of_measurement: 'Wh'
value_template: >-
["tic1"] {{ states.sensor.wesdata.attributes| schweben }}["H_CREUSE"]
Sie können die Felder „freundlicher_Name“ bei Bedarf anpassen: Dies sind die Namen, die in Home Assistant angezeigt werden. Der Rest sollte nicht geändert werden.
Wenn Sie wie ich ein Tempo-Abonnement haben, müssen Sie noch ein paar weitere Sensoren erstellen:
#Wenn Tempo-Abonnement
westic1bleuhp:
freundlicher_name: „Blue Peak Hours Index“
unique_id: westic1bleuhp
Geräteklasse: Energie
unit_of_measurement: 'Wh'
value_template: >-
["tic1"] {{ states.sensor.wesdata.attributes | schweben }}["BBRHPJB"]
westic1bleuhc:
freundlicher_name: „Blue Off-Peak Hours Index“
unique_id: westic1bleuhc
Geräteklasse: Energie
unit_of_measurement: 'Wh'
value_template: >-
["tic1"] {{ states.sensor.wesdata.attributes| schweben }}["BBRHCJB"]
westic1blanchp:
freundlicher_name: „White Peak Hours Index“
unique_id: westic1blanchp
Geräteklasse: Energie
unit_of_measurement: 'Wh'
value_template: >-
["tic1"] {{ states.sensor.wesdata.attributes | schweben }}["BBRHPJW"]
westic1blanchc:
freundlicher_name: „Index der weißen Off-Peak-Stunden“
unique_id: westic1blanchc
Geräteklasse: Energie
unit_of_measurement: 'Wh'
value_template: >-
["tic1"] {{ states.sensor.wesdata.attributes| schweben }}["BBRHCJW"]
westic1rougehp:
freundlicher_name: „Index der roten Hauptverkehrszeiten“
unique_id: westic1rougehp
Geräteklasse: Energie
unit_of_measurement: 'Wh'
value_template: >-
["tic1"] {{ states.sensor.wesdata.attributes | schweben }}["BBRHPJR"]
westic1rougehc:
freundlicher_name: „Roter Off-Peak Hours Index“
unique_id: westic1rougehc
Geräteklasse: Energie
unit_of_measurement: 'Wh'
value_template: >-
["tic1"] {{ states.sensor.wesdata.attributes| schweben }}["BBRHCJR"]
Wir können auch Informationen zur Einspeisung (wenn Sie einen Stromerzeugungsvertrag haben), zum Momentanverbrauch oder sogar zur Spannung abrufen:
westic1inj:
freundlicher_name: „Indexinjektion“
unique_id: westic1inj
Geräteklasse: Energie
unit_of_measurement: 'Wh'
value_template: >-
["tic1"] {{ states.sensor.wesdata.attributes| schweben }}["INJECTION"]
westic1pap:
freundlicher_name: „Sofortiger Verbrauch“
unique_id: westic1pap
Geräteklasse: Scheinleistung
Maßeinheit: 'VA'
value_template: >-
["tic1"] {{ states.sensor.wesdata.attributes| schweben }}["PAP"]
westic1spannung:
freundlicher_name: „Verbrauchsspannung“
unique_id: westic1tension
Geräteklasse: Leistung
Maßeinheit: 'V'
value_template: >-
["tic1"] {{ states.sensor.wesdata.attributes| schweben }} ["TENSION1"]
Zu Hause habe ich einen zweiten Linky-Zähler, für den Weiterverkauf meiner Solarproduktion (100 % Weiterverkaufsvertrag). An diesen Zähler ist auch der WES-Server angeschlossen, dort kann ich meine Produktionsinformationen abrufen:
#Zweiter ICT-Zähler, der hier für die Photovoltaikproduktion eingesetzt wird
westic2prod:
freundlicher_name: „Produktionsindex“
unique_id: westic2prod
Geräteklasse: Energie
unit_of_measurement: 'Wh'
value_template: >-
["tic2"] {{ states.sensor.wesdata.attributes| schweben }}["PRODUCTEUR"]
westic2pap:
freundlicher_name: „Sofortiger Verbrauch“
unique_id: westic2pap
Geräteklasse: Scheinleistung
Maßeinheit: 'VA'
value_template: >-
["tic2"] {{ states.sensor.wesdata.attributes| schweben }} ["PAP"]
westic2spannung:
freundlicher_Name: „Produktionsspannung“
unique_id: westic2tension
Geräteklasse: Leistung
Maßeinheit: 'V'
value_template: >-
["tic2"] {{ states.sensor.wesdata.attributes| schweben }} ["TENSION1"]
Ich habe einen weiteren Sensor hinzugefügt, der es mir ermöglicht, den Status der Nebenzeiten zu ermitteln: Wenn westic1tarif = 1, dann befinden wir uns in den Nebenzeiten. Dies sind sehr nützliche Daten in Szenarien, um beispielsweise bestimmte Maschinen nur dann auszulösen, wenn wir im wirtschaftlichen Tempo sind :)
# Sensor zur Feststellung, ob es außerhalb der Hauptverkehrszeiten ist
westic1preis:
freundlicher_name: „Aktueller Preis“
unique_id: westic1price
value_template: >-
["tic1"] {{states.sensor.wesdata.attributes}}["PTEC"]
wesheurecreuse:
freundlicher_name: „Nebenverkehrszeiten“
unique_id: wesheurecreuse
value_template: >-
["tic1"] {% if "dig" in states.sensor.wesdata.attributes.lower() %}["PTEC"]
1
{% anders %}
0
{% endif %}
Zusätzlich zur Tic-Messung (Teleinfo) ist das WES auch in der Lage, den Verbrauch von 4 separaten Stromleitungen mithilfe von metrischen Stromzangen zu überwachen. Sie können beispielsweise den Verbrauch Ihres Warmwasserbereiters, Ihrer Ladestation für Elektrofahrzeuge, Ihrer Heizung usw. überwachen. Sie müssen diesen Code verwenden:
#Ampere-Metrische Klemmen zur Einhaltung bestimmter spezifischer Positionen
wespince1inst:
freundlicher_name: „Durchlauferhitzer“
unique_id: wespince1inst
Geräteklasse: aktuell
Maßeinheit: 'A'
value_template: >-
["pince"] {{ states.sensor.wesdata.attributes| schweben }}["I1"]
wespince1total:
freundlicher_Name: „Gesamtwassererhitzer“
unique_id: wespince1total
Geräteklasse: Energie
Maßeinheit: 'kWh'
value_template: >-
["pince"] {{ states.sensor.wesdata.attributes| schweben }}["INDEX1"]
wespince1watt:
freundlicher_name: „Warmwasserbereiterverbrauch“
unique_id: wespince1watt
Geräteklasse: Leistung
Maßeinheit: 'W'
value_template: >-
Standardmäßig meldet das WES nur den Momentanverbrauch in Ampere und den Verbrauchsindex. Da ich auch den Momentanverbrauch in Watt haben wollte, habe ich eine kleine Berechnung hinzugefügt, um „wespince1watt“ zu erhalten. Sie können den „freundlichen_Namen“ ändern, um einen Namen zu verwenden, der Ihrer Verwendung entspricht. Wenn Sie die 4 möglichen Zangen verwenden, duplizieren Sie einfach diesen Code (ich stelle Ihnen ihn vollständig in der Datei zum späteren Herunterladen zur Verfügung).
Der WES-Server verfügt außerdem über Impulszähler, die für verschiedene Zwecke genutzt werden können, beispielsweise zur Überwachung des Wasser- oder Gasverbrauchs. Zu Hause wird der erste Sensor verwendet, um meine zu verfolgen Wasserzähler:
#Impulssensoren, beispielsweise für Wasser oder Gas
wespulse1:
freundlicher_name: „Wasserzähler“
unique_id: wespulse1
Geräteklasse: Wasser
Maßeinheit: 'L'
value_template: >-
["impulsion"] {{ states.sensor.wesdata.attributes| schweben }} ["INDEX1"]
Abhängig von Ihrer Verwendung müssen Sie den Namen anpassen, aber auch die „device_class“ und die „unit_of_measurement“. Sie finden eine Definition von hier verschiedene mögliche Werte.
Abhängig davon, was mit dem WES verbunden ist, können weitere Informationen abgerufen werden. Insbesondere erfolgt die Temperaturmessung (bis zu 30 Sonden!) über diesen Code:
#Temperaturfühler, bis zu 30 möglich
wessonde1:
freundlicher_name: „Wohnzimmer“
unique_id: wessonde1
Geräteklasse: Temperatur
Maßeinheit: '°C'
value_template: >-
["temp"] {{ states.sensor.wesdata.attributes| schweben }} ["SONDE1"]
Oder der Status der Relais:
#Relais
wesrelay1:
freundlicher_name: „Relais 1“
unique_id: wesrelai1
value_template: >-
["relais"] {{ states.sensor.wesdata.attributes| schweben }} ["RELAIS1"]
wesrelay2:
freundlicher_name: „Relais 2“
unique_id: wesrelai2
value_template: >-
["relais"] {{ states.sensor.wesdata.attributes| schweben }} ["RELAIS2"]
Wir haben auch analoge Eingänge, virtuelle Schalter und sogar Variablen.
In dieser Datei finden Sie den vollständigen Code mit der richtigen Einrückung und Kommentaren, die Ihnen die Orientierung erleichtern.
Selbstverständlich entsprechend Ihren Bedürfnissen anpassbar. Ich für meinen Teil verwende nur die beiden TIC-Messgeräte, die 4 metrischen Amperezangen und ein Impulsmessgerät.
Sobald Ihre Konfiguration gespeichert ist, müssen Sie zu „Entwicklungstools“ gehen und dann auf „Konfiguration prüfen“ klicken, um sicherzustellen, dass keine Probleme in der Dateisyntax vorliegen.

Wenn alles in Ordnung ist, müssen Sie nur noch auf „Neustart“ klicken.
Wenn Sie nach dem Neustart von Home Assistant zu Einstellungen / Geräte und Dienste / Entitäten gehen und „wes“ in die Suchleiste eingeben, sollten Sie alle für den WES erstellten Sensoren finden:

Von dort aus können Sie damit Szenarien auslösen, Dashboards zur Verbrauchsüberwachung erstellen usw.
ABER noch nicht im Home Assistant Energy-Dashboard verwenden.
Integrieren Sie WES in die Home Assistant Energy-Tabelle
Das Home Assistant Energy-Dashboard ist wirklich sehr gut gemacht. Es werden aber nur Indizes oder Gesamtverbrauchszähler akzeptiert. Wir könnten sagen, dass dies gut für das WES ist, da wir Sensoren für die Indizes erstellt haben. Damit diese Sensoren jedoch in der Liste der kompatiblen Geräte im Energie-Dashboard angezeigt werden, müssen sie über ein Argument vom Typ „state_class: total“ verfügen. Wenn dieses Argument direkt in die Konfiguration von MQTT-Sensoren eingebracht werden kann, ist dies bei den hier erstellten Sensoren für WES nicht der Fall, da wir uns im Kontext von REST-Aufrufen und nicht von MQTT befinden.
Glücklicherweise können wir die Sensordeklaration in einer Datei „customize.yaml“ ändern, indem wir diesen Codetyp für jeden Sensor hinzufügen, der den Gesamtverbrauch darstellt:
sensor.westic1bleuhp:
state_class: insgesamt
Gerät:
Bezeichner: „WES Server“
Name: „WES-Server“
Modell: „WES“
Hersteller: „Cartelectronic“
Ich hinterlasse Ihnen hier meine vollständige Akte:
Legen Sie es einfach im Homeassistant-Verzeichnis ab und starten Sie Home Assistant erneut (nachdem Sie überprüft haben, ob der Code in Ordnung ist).
Anschließend können wir endlich unsere verschiedenen Indizes zum Energie-Dashboard hinzufügen, sei es für Teleinfo, Verbrauch, Produktion, Wasserverbrauch usw.

Nach einer Weile haben wir unsere Verbrauchsüberwachung mit Details zu Neben- und Spitzenzeiten (in hellerem Blau). Ich überwache meine Photovoltaikproduktion auch in Gelb:

Ebenso finde ich die Verbrauchsüberwachung meines Warmwasserbereiters unter den anderen Einzelgeräten:

Und da haben Sie es!
Abschluss
Als ich mein Hausautomationssystem nach und nach auf Home Assistant migrierte, habe ich viel Zeit damit verbracht, zu recherchieren, wie ich meinen WES-Server integrieren kann, da dieser im Gegensatz zu Jeedom kein gebrauchsfertiges Home Assistant-Plugin hat. Verschiedene Themen beschäftigen sich damit, darunter:
- A Beitrag im Forum des WES-Herstellers, Cartelectronic
- A Beitrag im HACF-Forum
Mithilfe der Home Assistant-Dokumentation können Sie außerdem die Funktionsweise der Geräte besser verstehen. REST-Sensoren.
Die native MQTT-Kompatibilität hätte die Sache viel einfacher gemacht, aber letztendlich ist es uns gelungen, alle Daten aus dem WES wiederherzustellen, die perfekt in Home Assistant verwendbar sind, das ist die Hauptsache. Die Integration funktioniert bei mir nun seit etwas mehr als einem Monat und es sind keine Probleme zu melden. Ich kann mein WES verwenden, was mir die Vervielfachung von Sensoren erspart, da es viele Dinge nativ verwaltet. Wenn dieser Leitfaden einigen helfen kann, die wie ich nach einer Lösung gesucht haben!