Viessmann E3 CAN do

Greifen Sie auf Daten per CAN-Bus zu, für Viessmann E3-Geräte, z.B. Vitocal, Vitocharge, Energiezähler E380CA und E3100CB

Aktueller Release
1.1.3
Entwickler
MyHomeMyData
Lizenz
MIT

e3oncan-Adapter für ioBroker

Hinweis: Navigationslinks in diesem Dokument funktionieren am besten auf GitHub . Relative Links zu anderen Dokumenten (z. B. data-points.md ) öffnen sich ebenfalls auf GitHub.

Eine deutsche Version dieser Dokumentation ist verfügbar: README.de.md

Inhaltsverzeichnis


Überblick

Geräte der Viessmann E3-Serie (One Base-Ökosystem) tauschen große Datenmengen über den CAN-Bus aus. Dieser Adapter greift auf diese Kommunikation zu und stellt die Daten in ioBroker zur Verfügung.

Zwei Betriebsarten funktionieren unabhängig voneinander und können kombiniert werden:

ModusBeschreibung
SammelnDas Gerät überwacht passiv den CAN-Bus und extrahiert Daten in Echtzeit, sobald Geräte diese austauschen. Es werden keine Anfragen gesendet. Ideal für schnell wechselnde Werte wie den Energiefluss.
US-SonCANLiest und schreibt aktiv Datenpunkte mithilfe des UDS-Protokolls (Universal Diagnostic Services over CAN). Erforderlich für Sollwerte, Zeitpläne und Daten, die nicht spontan übertragen werden.

Welche Modi verfügbar sind, hängt von Ihrer Gerätetopologie ab. Details dazu finden Sie in der Beschreibung der Gerätetopologie . Anregungen für die Verwendung des Adapters finden Sie in der Beschreibung der Anwendungsfälle .

Wichtige Teile dieses Adapters basieren auf dem open3e- Projekt. Eine Python-basierte Implementierung, die ausschließlich Daten sammelt und MQTT verwendet, ist unter E3onCAN verfügbar.


Was ist neu in Version 1.1.1?

Aktualisierte Datenpunktdefinitionen

Die Definitionen der Datenpunkte wurden auf Version 20260705 (allgemein) und 20260630 (Variante) aktualisiert.

Neuer O3ESwitch-Codec

Ein neuer CodecO3ESwitch Für Datenpunkte, deren Struktur von einem Gerätetyp-Diskriminatorbyte abhängt, wurde eine neue Funktion hinzugefügt. Das erste Byte wählt die aktive Variante aus einer Menge vordefinierter Codec-Zweige aus. Dies ermöglicht die vollständige strukturierte Dekodierung von ZigBee-Geräteslot-DIDs (2086–2143, 2262), wobei sich die dekodierten Felder je nach Gerätetyp unterscheiden (z. B. Klimasensor, Thermostatventil, Fußbodenthermostat, Aktor).

Dezimalrundeung für numerische Codecs

Numerische Codecs (O3EInt8 ,O3EInt16 ,O3EInt32 ,O3EInt64 ,O3EFloat32 ) unterstützen nun eine optionaledecimals Parameter. Wenn der Wert größer als 0 ist, wird das dekodierte Ergebnis auf die entsprechende Anzahl an Dezimalstellen gerundet. Dies wird beispielsweise verwendet fürSignalLevel (Skalierung 2,55, Dezimalstellen 2), um übermäßig lange Gleitkommawerte zu vermeiden.

Einheiten und Metadaten werden beim Start festgelegt, wenn sich die Datenpunktstruktur ändert

Wenn der Adapter beim Start erkennt, dass sich die Struktur eines Datenpunkts geändert hat (neue Version indidsE3var.json oderdidsE3.json ) werden nun Einheiten und Beschreibungen für alle Unterzustände des neu aufgebauten Baums korrekt erfasst. Zuvor wurden Einheiten nur während eines Datenpunktscans festgelegt; nach einer Strukturaktualisierung war ein nachfolgender Scan erforderlich, um sie zu befüllen.


Was ist neu in Version 1.0.3?

Kein erneuter Build nach einem Node.js-Upgrade mehr.

Das native CAN-Modulsocketcan wurde auf Version 4.2.1 aktualisiert, die die stabile N-API- Schnittstelle verwendet. Das Modul muss bei einem Node.js-Versionswechsel nicht mehr neu kompiliert werden. Ein Upgrade von Node.js (z. B. von Version 22 auf 24) erfordert keinen neuen Befehl mehr.iob rebuild Anschließend startet der Adapter ohne weitere Schritte.

Geplanter Datenpunktfilter auf der Registerkarte „Datenpunkte“.

Durch Klicken auf das grüne Symbol mit der Anzahl der geplanten Datenpunkte auf einer Gerätekarte wird die Karte nun so gefiltert, dass nur noch geplante Datenpunkte angezeigt werden . Dies erleichtert die Überprüfung und Anpassung der Planung für ein bestimmtes Gerät. Ein erneutes Klicken auf das Symbol oder die Kartenüberschrift stellt die vollständige Ansicht wieder her.

Schutz benutzerdefinierter Variantendatenpunktdefinitionen

Benutzerdefinierte Strukturen ine3oncan.0.<DEVICE>.info.udsDidsSpecific kann nun durch Hinzufügen vor automatischen Updates geschützt werden"protected": true zum Eintrag. Optional"reason" Das Feld wird protokolliert, sobald der Schutz wirksam wird. Ohne Schutz werden Variantendatenpunktdefinitionen (die auch in der Liste aufgeführt sind) protokolliert.didsE3var.json Die Definitionen werden automatisch aktualisiert, sobald eine neuere Version verfügbar ist – dieses Verhalten bleibt unverändert. Weitere Informationen finden Sie in der Dokumentation .

Aktualisierte Datenpunktdefinitionen

Die Definitionen der Datenpunkte wurden auf Version 20260528 (allgemein) und 20260527 (Variante) aktualisiert. Highlights:

  • ZigBee DIDs 2084–2319 vollständig strukturiert (Geräteeigenschaften, Stromwerte in 57-Byte- und 68-Byte-Varianten)
  • Raum-DIDs 1884–1943 strukturiert (Name, Typ, Temperaturregelung, Fenstererkennung, min./max. Luftfeuchtigkeit)
  • Neue, von ViGuide abgeleitete DID-Strukturen für Brennstoffzellenmetriken, Energieabdeckung und Batterie-/Wechselrichterabonnements
  • Unknown* Felder verwenden jetzt einheitlichRawCodec

Was ist neu in Version 1.0.0?

Registerkarte „Datenpunkte“

Eine neue Seite mit e3oncan-Datenpunkten ist direkt an die Instanzzeile des Adapters in der ioBroker-Instanzansicht angeheftet. Klicken Sie auf Klicken Sie auf die Schaltfläche in der Instanzzeile, um sie zu öffnen. Sie bietet eine eigene Benutzeroberfläche zur Verwaltung von Zeitplänen und Erfassungseinstellungen pro Gerät und Datenpunkt – für alltägliche Änderungen muss nicht der vollständige Adapterkonfigurationsdialog geöffnet werden.

Automatische Erkennung von Energiezählern

Energiezähler (E380 und E3100CB) werden nun während des Gerätescans automatisch durch passives CAN-Abhören auf beiden CAN-Kanälen erkannt . Statusnamen werden automatisch anhand der erkannten CAN-Adresse und des Kanals vergeben. Die Aktivierung/Deaktivierung und die Erfassungsverzögerung für jeden Energiezähler werden ausschließlich im Datenpunkte-Tab konfiguriert.

Beim ersten Start nach einem Upgrade von einer früheren Version wird die vorherige Energiezählerkonfiguration automatisch migriert.

Automatische Erkennung von Collect-fähigen Geräten

Während des Datenpunkt-Scans überwacht der Adapter passiv den CAN-Bus, um zu erkennen, welche Geräte den Sammelmodus unterstützen. Erkannte Geräte werden im Gerätekarten-Header des Datenpunkt-Tabs mit einem Stecknadelsymbol hervorgehoben.

Flexibler Datenpunktscan

Die neue Option „Datenpunktwerte während des Scans im Objektbaum speichern“ steuert, ob die aktuellen Werte während des Scans in den Objektbaum geschrieben werden. Ist die Option deaktiviert, aktualisiert der Adapter weiterhin Werte und Metadaten für alle vorhandenen Datenpunktobjekte – lediglich neue Objekte werden während des Scans nicht erstellt. Dies ist nützlich, um Metadaten nach einer Migration zu aktualisieren, ohne alle Statuswerte neu schreiben zu müssen.

Bustopologieanalyse

Nach dem Scan der Datenpunkte analysiert der Adapter automatisch die während des Scans erfassten Bustopologiedaten und erstellt eine Zusammenfassung. Das Ergebnis wird in zwei neuen Zuständen gespeichert.info Kanal:

  • info.topology – strukturiertes JSON mit allen gefundenen UDS-zugänglichen Geräten und Topologieelementen (aus allen Topologiematrizen entfernt).
  • info.topologyHtml – Eine gerenderte HTML-Tabelle, farblich nach Bustyp (CanInternal, CanExternal, CanRaw, ModBus, ServiceBus) gekennzeichnet, mit einem UDS-Badge für Geräte, die auch über UDS erreichbar sind. Zur Anzeige in vis, jarvis oder jedem HTML-fähigen Widget geeignet.

Schnellstart

Voraussetzungen

  • Ein USB-zu-CAN- oder CAN-Adapter, der an den externen oder internen CAN-Bus Ihres Viessmann E3-Geräts angeschlossen ist.
  • Ein Linux-basiertes Hostsystem (nur Linux wird unterstützt).
  • Der CAN-Adapter ist betriebsbereit und im System sichtbar, z. B. alscan0 (überprüfen mitifconfig ).
  • Einzelheiten zur Einrichtung des CAN-Adapters finden Sie im Wiki des open3e-Projekts .

Wichtig: Stellen Sie sicher, dass kein anderer UDSonCAN-Client (z. B. open3e) ausgeführt wird, während Sie diesen Adapter zum ersten Mal einrichten. Parallele UDS-Kommunikation führt zu Fehlern in beiden Anwendungen.

Ersteinrichtung – auf einen Blick

  1. Installieren Sie den Adapter und öffnen Sie dessen Konfigurationsdialog.
  2. Konfigurieren Sie Ihren/Ihre CAN-Adapter auf der Registerkarte CAN-Adapter und speichern Sie die Einstellungen.
  3. Suchen Sie auf der Registerkarte „Liste der UDS-Geräte“ nach E3-Geräten.
  4. Suchen Sie auf der Registerkarte „Liste der Datenpunkte“ nach Datenpunkten (dauert bis zu 5 Minuten).
  5. Richten Sie auf der Registerkarte „Aufgaben“ Lesepläne ein und speichern Sie diese.

Die detaillierten Schritte sind im unten stehenden Konfigurationsleitfaden beschrieben.


Konfigurationsleitfaden

Schritt 1 – CAN-Adapter

Öffnen Sie den Adapterkonfigurationsdialog und wechseln Sie zur Registerkarte CAN-Adapter .

  • Geben Sie den Namen Ihrer CAN-Schnittstelle ein (Standard:can0 ).
  • Aktivieren Sie für jede Schnittstelle, die Sie verwenden möchten, die Option „Mit Adapter verbinden“ .
  • Drücken Sie auf SPEICHERN . Die Adapterinstanz wird neu gestartet und verbindet sich mit dem CAN-Bus.

Falls Sie über einen zweiten CAN-Bus (z. B. einen internen Bus) verfügen, konfigurieren Sie diesen hier als zweiten Adapter. Nach der Konfiguration des zweiten Adapters wird ein zweiter Reiter „Zuweisungen“ angezeigt.

Schritt 2 – Gerätescan und Energiezählererkennung

Wechseln Sie zur Registerkarte „Liste der UDS-Geräte“ und klicken Sie auf die Schaltfläche „Scannen“ .

  • Der Scanvorgang dauert einige Sekunden. Sie können den Fortschritt im Adapterprotokoll verfolgen (öffnen Sie dazu einen zweiten Browsertab).
  • Alle im Bus gefundenen E3-Geräte werden aufgelistet. Sie können die Geräte in der zweiten Spalte umbenennen – diese Namen dienen als Kennungen im Objektbaum von ioBroker.
  • Klicken Sie auf SPEICHERN , wenn Sie fertig sind. Die Instanz wird neu gestartet.

Während des Gerätescans liest der Adapter auch die Datenformatkonfiguration des Geräts (Datenpunkt 382), einschließlich der Temperatureinheiten (°C oder °F) und des Datums-/Zeitformats. Diese Daten werden gespeichert und bei nachfolgenden Datenpunktscans verwendet.

Energiezählererkennung

Während der Gerätescan läuft, empfängt der Adapter passiv Signale vom CAN-Bus der Energiezähler E380 und E3100CB. Es ist keine zusätzliche Scanzeit erforderlich – die Erkennung erfolgt parallel. Das Ergebnis wird gespeichert und angezeigt.

  • Im Adapterkonfigurationsdialog (Registerkarte Liste der UDS-Geräte ) als Textzusammenfassung.
  • Auf der e3oncan- Datenpunktseite als einzelne Karten für jeden erkannten Zählertyp (siehe unten ).

Schritt 3 – Datenpunktscan

Wechseln Sie zur Registerkarte „Liste der Datenpunkte“ , klicken Sie auf „Scan starten…“ und bestätigen Sie mit „OK“ .

Bitte haben Sie Geduld – der Scan kann bis zu 5 Minuten dauern. Der Fortschritt wird im Adapterprotokoll angezeigt.

Was der Scan bewirkt:

  • Ermittelt alle verfügbaren Datenpunkte für jedes Gerät.
  • Fügt jedem Datenpunktobjekt Metadaten (Beschreibung, Einheit, Lese-/Schreibzugriff) hinzu.
  • Legt die physikalischen Einheiten basierend auf der in Schritt 2 ermittelten Geräteformatkonfiguration fest.
  • Erstellt den vollständigen Objektbaum für jedes Gerät in ioBroker.
  • Erkennt Collect-fähige Geräte durch passives Abhören ihrer Zeitsignale im CAN-Bus (keine zusätzliche Scanzeit erforderlich – läuft parallel). Für jedes erkannte Gerät wird im Gerätekarten-Header der e3oncan- Datenpunkteseite ein Stecknadelsymbol angezeigt.

Dieser Schritt ist für die Nutzung im Nur-Lese-Modus nicht unbedingt erforderlich, wird aber dringend empfohlen – und ist notwendig, wenn Sie Datenpunkte beschreiben möchten.

Speichere die Datenpunktwerte während des Scans im Objektbaum.

Standardmäßig schreibt der Scan auch den aktuellen Wert jedes Datenpunkts in den Objektbaum (json ,raw ,tree Sie können das Verhalten mithilfe der Option „Datenpunktwerte während des Scans im Objektbaum über der Scan-Schaltfläche speichern“ anpassen. Wenn diese Option deaktiviert ist, aktualisiert der Adapter Werte und Metadaten bereits vorhandener Datenpunktobjekte, erstellt aber keine neuen – diese werden automatisch beim ersten Datenempfang nach dem Scan erstellt.

Diese Option ist nützlich, wenn Sie eine große Anzahl von Statusänderungen während des Scans vermeiden möchten (z. B. auf Systemen mit vielen Geräten). Wenn Sie zuvor einen Scan mit gespeicherten Werten durchgeführt haben und nun einen Neustart wünschen, können Sie die Daten aller Geräte gefahrlos löschen.json ,raw , odertree Unterobjekte aus dem ioBroker-Objektbaum werden vom Adapter beim nächsten Datenempfang automatisch neu erstellt. Hinweis: Das gleichzeitige Löschen einer großen Anzahl von Objekten führt dazu, dass ioBroker viele interne Ereignisse gleichzeitig auslöst, was kurzzeitig zu einem Anstieg des RAM-Verbrauchs führen kann. Löschen Sie Objekte daher in kleinen Gruppen, wenn Ihr System speicherbelastet ist.

Hinweis zu Verlaufsadaptern: Das Löschen von Objekten löscht nicht die vom Verlaufsadapter (History, InfluxDB, SQL) gespeicherten Verlaufsdaten. Die aufgezeichneten Werte bleiben im Backend des Adapters erhalten und werden in den Diagrammen wieder angezeigt, sobald die Status-ID neu erstellt wurde. Die Konfiguration des Verlaufsabonnements (das „Aktiviert“-Flag des Objekts) geht jedoch beim Löschen eines Objekts verloren und muss für das neue Objekt manuell wieder aktiviert werden.

Warnung: Löschen Sie niemals dieinfo Kanal (z. B.e3oncan.0.info Diese Datei enthält Scan-Ergebnisse, Informationen zur Energiezählererkennung, Verzögerungen, aktive Flags, Zusammenfassungen der Bustopologie und den CAN-Verbindungsstatus. Durch das Löschen dieser Datei gehen Konfigurationsdaten verloren, die nicht automatisch wiederhergestellt werden können.

Bustopologieanalyse

Nach Abschluss des Scans generiert der Adapter automatisch eine Bustopologie-Zusammenfassung und speichert diese in zwei Zuständen iminfo Kanal:info.topology (JSON) undinfo.topologyHtml (HTML). Weitere Details finden Sie in der unten stehenden Bus-Topologieanalyse .

Nach dem Scan können Sie die gefundenen Datenpunkte auf der e3oncan- Datenpunkteseite durchsuchen und verwalten (siehe unten ).

Schritt 4 – Aufgaben und Zeitpläne

Die empfohlene Methode zum Konfigurieren von Lesezeitplänen und des gerätespezifischen Erfassungsmodus ist die e3oncan- Datenpunkteseite (siehe unten ).

Energiezähler

Wenn der Gerätescan E380- oder E3100CB-Energiezähler erkannt hat, wird auf der Seite „e3oncan-Datenpunkte“ für jeden erkannten Zähler eine Karte angezeigt. Aktivieren Sie die Datenerfassung mit dem Schalter „Erfassen“ auf der Karte. Legen Sie im Feld „Verzögerung (s)“ das minimale Intervall zwischen den Wertaktualisierungen in ioBroker fest. Der Standardwert von 5 Sekunden wird empfohlen, da Energiezähler mehr als 20 Werte pro Sekunde übertragen. Die Einstellung auf 0 führt zu einer erheblichen Belastung von ioBroker.

Klicken Sie nach Abschluss der Arbeit auf „Speichern & Schließen“ . Überprüfen Sie die Objektstruktur, um sicherzustellen, dass Daten erfasst werden.


Bustopologieanalyse

Nach dem Scan der Datenpunkte analysiert der Adapter alle während des Scans erfassten Bustopologiedaten und speichert das Ergebnis in zwei Zuständen iminfo Kanal:

ZustandRolleInhalt
info.topologyjsonStrukturiertes JSON: Liste der über UDS zugänglichen Geräte und aller Topologieelemente, Duplikate aus allen Topologiematrizen entfernt
info.topologyHtmlhtmlGerenderte HTML-Tabelle, farblich nach Bustyp gekennzeichnet, mit einem UDS- Symbol auf Geräten, die auch UDS-fähig sind.

Anzeige der HTML-Tabelle

Die einfachste Möglichkeit, die Topologie in ioBroker anzuzeigen, besteht in der Verwendung eines Dashboard-Tools, das HTML-Zustände rendern kann:

  • jarvis : StateHTML- Widget hinzufügen → auswählene3oncan.x.info.topologyHtml Die
  • vis / vis2 : Einfaches Widget hinzufügen – Zeichenkette (unmaskiert) oder HTML → Auswahle3oncan.x.info.topologyHtml Die

Hinweis: Dieinfo.topology Undinfo.topologyHtml Die Zustände können zu groß sein, um im Standarddialog des ioBroker-Admin-Editors angezeigt zu werden. Dies ist eine bekannte Einschränkung der Admin-Oberfläche für große Zeichenketten-Zustände. Die Zustände sind korrekt geschrieben und können von Skripten und Widgets normal verwendet werden.


Registerkarte „e3oncan-Datenpunkte“

Die Seite „e3oncan-Datenpunkte“ dient als zentrale Anlaufstelle zum Anzeigen von Datenpunkten und zum Konfigurieren von UDSonCAN-Lesezeitplänen sowie des gerätespezifischen Erfassungsmodus. Sie öffnet sich in einem neuen Browser-Tab, wenn Sie in der Instanzansicht des ioBroker-Admins auf die Schaltfläche „Datenpunkte“ in der Instanzzeile des Adapters klicken.

Durchsuchen von Datenpunkten

Alle Geräte und erkannten Energiezähler werden als ausklappbare Karten angezeigt, die standardmäßig zusammengeklappt sind, sodass Sie Ihr gesamtes System auf einen Blick erfassen können. Klicken Sie auf eine Kartenüberschrift, um sie auszuklappen. Das Suchfeld filtert nach Name oder ID, und passende Karten werden automatisch ausgeklappt.

Wurde für ein Gerät noch kein Datenpunktscan durchgeführt, erscheint oben auf der Seite ein Warnhinweis. Wurde bereits ein Scan durchgeführt, die in Version 1.x eingeführte automatische Datenerfassung jedoch noch nicht ausgeführt, empfiehlt ein Informationsbanner einen neuen Datenpunktscan. Dieser Hinweis kann mit der Schaltfläche „Nicht mehr anzeigen“ dauerhaft ausgeblendet werden.

Gerätekarten

Jede Gerätekarte listet ihre Datenpunkte mit ID, Name, Codec und Zeitplaneinstellungen auf. Die Schaltfläche „Erfassen“ und die minimale Aktualisierungszeit werden in der Kartenüberschrift angezeigt. Wurde während des Scans der Datenpunkte Datenverkehr vom Gerät erfasst, erscheint zur Bestätigung ein grünes Stecknadelsymbol in der Kartenüberschrift. Sind Datenpunkte geplant, erscheint ein grünes „N“ -Symbol. Klicken Sie darauf, um die Karte zu erweitern und nur die geplanten Datenpunkte anzuzeigen. Ein erneuter Klick auf das Symbol entfernt den Filter. Durch Klicken auf die Kartenüberschrift wird der Filter entfernt und die Karte – je nachdem, ob sie durch das Symbol geöffnet wurde – ein- oder ausgeblendet.

Energiezählerkarten

Wurden während des Gerätescans Energiezähler erkannt (siehe Schritt 2 ), erscheint oben auf der Seite für jeden erkannten Zähler eine Karte. Aktivieren Sie die Datenerfassung mit dem Schalter „Erfassen“ und legen Sie im Feld „Verzögerung (s)“ das minimale Intervall zwischen den Wertaktualisierungen in ioBroker fest.

Terminplanung

Für jeden Datenpunkt können Sie Folgendes tun:

  • Beim Start prüfen – der Datenpunkt wird einmalig beim Start des Adapters ausgelesen.
  • Geben Sie ein Intervall (s) ein – der Datenpunkt wird in diesem Intervall wiederholt ausgelesen.

Beide Optionen lassen sich kombinieren. Verwenden Sie den Zeitplanfilter (Alle / Bei Start / Intervall), um sich schnell auf bereits geplante Datenpunkte zu konzentrieren.

Topologie

Die Schaltfläche „Topologie“ in der Symbolleiste öffnet das Bus-Topologiediagramm in einem modalen Dialog. Das Diagramm wird nach jedem Datenpunkt-Scan automatisch generiert (siehe Bus-Topologieanalyse ). Die Schaltfläche ist deaktiviert, bis Topologiedaten verfügbar sind.

Sparen

Klicken Sie auf „Speichern“ , um Ihre Änderungen anzuwenden, ohne den Tab zu schließen. „Speichern & Schließen“ speichert die Änderungen und schließt den Tab, sodass Sie wieder zur Instanzenansicht gelangen. „Verwerfen & Schließen“ schließt den Tab, ohne die Änderungen zu speichern – ein Neustart des Adapters wird nicht ausgelöst. Ein Symbol für nicht gespeicherte Änderungen wird angezeigt, sobald Änderungen ausstehen.

Hinweis: Beim Speichern werden die Zeitpläne aller in diesem Tab angezeigten Geräte anhand des aktuellen UI-Zustands neu erstellt. Zeitpläne für hier nicht aufgeführte Geräte (z. B. direkt im Adapterkonfigurationsdialog hinzugefügt) bleiben unverändert. Falls für dasselbe Gerät an beiden Stellen Zeitpläne vorhanden sind, hat beim Speichern der Tab „Datenpunkte“ Vorrang. Doppelte Einträge werden automatisch entfernt.


Lesedatenpunkte

Die Datenpunkte werden automatisch gemäß den von Ihnen konfigurierten Zeitplänen ausgelesen. Die Werte erscheinen in der Objektstruktur von ioBroker unter dem Gerätenamen und sind wie folgt organisiert:json ,raw Undtree Unterobjekte mit für Menschen lesbaren Namen und Metadaten.

Lesen eines bestimmten Datenpunkts auf Anfrage

Sie können jederzeit jeden Datenpunkt anfordern, indem Sie den Status bearbeiten.e3oncan.0.<DEVICE>.cmnd.udsReadByDid und die Eingabe einer Liste von Datenpunkt-IDs, zum Beispiel[3350, 3351, 3352] Wenn der Datenpunkt auf dem Gerät verfügbar ist, wird der Wert in der Objektstruktur angezeigt und kann in Leseplänen verwendet werden.

Der numerische Scanbereich ist derzeit begrenzt (z. B. 256–3338 in Version 0.11.0). Verwenden SieudsReadByDid um Datenpunkte außerhalb dieses Bereichs zu untersuchen.


Schreiben von Datenpunkten

Das Schreiben ist bewusst einfach gehalten: Ändern Sie den Wert des entsprechenden Zustands in ioBroker und speichern Sie ihn, ohne dies zu überprüfen.Acknowledged (ack)-Kontrollkästchen. Der Adapter erkennt den nicht bestätigten Schreibvorgang und sendet ihn an das Gerät.

Etwa 2,5 Sekunden nach dem Schreiben liest der Adapter den Datenpunkt vom Gerät zurück und speichert den bestätigten Wert. Wird der Status anschließend nicht bestätigt, überprüfen Sie das Adapterprotokoll auf Fehlerdetails.

Whitelist der beschreibbaren Datenpunkte

Das Schreiben ist auf Datenpunkte auf einer Positivliste beschränkt, die hier gespeichert ist:

e3oncan.0.<DEVICE>.info.udsDidsWritable

Sie können die Liste erweitern, indem Sie diesen Status bearbeiten. Speichern Sie die Änderung, ohne sie zu aktivieren.Acknowledged Die

Manche Datenpunkte können selbst dann nicht geändert werden, wenn sie auf der Whitelist stehen – das Gerät gibt eine negative Antwort zurück. Der Adapter versucht es dann mit einem alternativen Dienst (nur interner CAN-Bus). Überprüfen Sie Schreibvorgänge immer, indem Sie kontrollieren, ob der Wert bestätigt wurde.


Datenpunkte und Metadaten

Detaillierte Informationen darüber, wie Datenpunkte strukturiert sind, wie Variantendatenpunkte und Metadaten funktionieren und wie Temperatur-/Datums-/Zeitformate behandelt werden, finden Sie in data-points.md .


Energiezähler

Energiezähler werden während des Gerätescans automatisch erkannt. Eine manuelle Konfiguration ist nicht erforderlich. Der Adapter weist jedem Zähler basierend auf seinem Fundort einen Statusnamen im Objektbaum von ioBroker zu.

KanalCAN-AdresseStaatsname
UDS CAN98e380
UDS CAN97e380_97
2. CAN98e380_98
2. CAN97e380_97

e380 (ohne Suffix) wird für die CAN-Adresse 98 auf dem UDS CAN-Kanal verwendet, um die Rückwärtskompatibilität mit bestehenden Installationen zu gewährleisten.e3100cb wird immer für den E3100CB verwendet.

Die Erfassungsverzögerung (standardmäßig 5 s) kann pro Zählertyp auf der Seite „e3oncan-Datenpunkte“ angepasst werden. Änderungen werden nach einem Neustart des Adapters wirksam.

E380-Daten und -Einheiten

Es werden bis zu zwei E380-Energiezähler unterstützt. Die Datenpunkt-IDs hängen von der CAN-Adresse des Geräts ab:

  • CAN-Adresse 97: Datenpunkte mit geraden IDs
  • CAN-Adresse 98: Datenpunkte mit ungeraden IDs
AUSWEISDatenEinheit
592, 593Wirkleistung L1, L2, L3, GesamtW
594, 595Blindleistung L1, L2, L3, Gesamtvar
596, 597Absoluter Strom L1, L2, L3; cosPhiA, -
598, 599Spannung L1, L2, L3; FrequenzV, Hz
600, 601Kumulierte Importe, ExportekWh
602, 603Gesamtwirkleistung, GesamtblindleistungW, var
604, 605Kumulierte ImportekWh

E3100CB Daten und Einheiten

AUSWEISDatenEinheit
1385_01Kumulierte ImportekWh
1385_02Kumulierte ExportekWh
1385_03Zustand: −1 = Einspeisung / +1 = Versorgung
1385_04Gesamte WirkleistungW
1385_08Wirkleistung L1W
1385_12Wirkleistung L2W
1385_16Wirkleistung L3W
1385_05Blindleistung gesamtvar
1385_09Blindleistung L1var
1385_13Blindleistung L2var
1385_17Blindleistung L3var
1385_06Aktueller, absoluter L1-WertA
1385_10Aktueller, absoluter L2-WertA
1385_14Aktueller, absoluter L3-WertA
1385_07Spannung L1V
1385_11Spannung L2V
1385_15Spannung L3V

Häufig gestellte Fragen und Einschränkungen

Warum sollte man Collect und UDSonCAN zusammen verwenden?

Collect liefert Ihnen Echtzeitdaten für alle zwischen den Geräten ausgetauschten Daten – schnell veränderliche Werte wie den Energiefluss und langsam veränderliche Werte wie Temperaturen, die alle sofort aktualisiert werden. UDSonCAN ermöglicht Ihnen den Zugriff auf Daten, die nicht spontan übertragen werden, typischerweise Sollwerte und Konfigurationswerte. Die Kombination beider Systeme bietet Ihnen ein umfassendes und aktuelles Bild Ihres Systems.

Welche Geräte unterstützen den Sammelmodus?

Das Collect-Protokoll ist derzeit bekannt für:

  • Vitocal / HPMUMASTER (Sammel-ID)0x693 (interner CAN-Bus)
  • Vitocharge VX3 und Vitoair / EMCUMASTER (Sammel-ID)0x451 (externer und interner CAN-Bus)

Die Collect-CAN-IDs werden während des Gerätescans automatisch anhand des UDS-Gerätenamens zugewiesen. Geräte, die oben nicht aufgeführt sind, erhalten keine automatische Collect-ID; diese kann manuell in der Adapterkonfiguration eingegeben werden.

Kann ich open3e gleichzeitig verwenden?

Ja, unter bestimmten Bedingungen. Wenn Sie in diesem Adapter ausschließlich den Collect-Modus verwenden, kann open3e ohne Einschränkungen parallel dazu ausgeführt werden. Wenn Sie hier UDSonCAN verwenden, sollten Sie open3e nicht gleichzeitig für dieselben Geräte ausführen – dies führt zu sporadischen Kommunikationsfehlern in beiden Anwendungen.

Der Adapter funktioniert nach einem Node.js-Upgrade nicht mehr. Was kann ich tun?

Ab Adapterversion 1.0.3 verwendet das native CAN-Modul (socketcan) die N-API und muss nach einem Node.js-Upgrade nicht mehr neu kompiliert werden. Falls Sie eine ältere Version verwenden, aktualisieren Sie bitte zuerst den Adapter. Sollte das Problem nach dem Upgrade weiterhin bestehen, melden Sie es bitte.

Was unterscheidet es vom open3e-Projekt?

  • Direkte Integration in ioBroker: Konfiguration über Dialoge, Daten direkt im Objektbaum sichtbar.
  • Echtzeit-Erfassungsmodus zusätzlich zu UDSoNCAN.
  • Das Schreiben von Daten ist einfacher: Man ändert einfach einen Statuswert und speichert ihn, ohne eine Bestätigung abzugeben.
  • MQTT ist nicht erforderlich (obwohl MQTT natürlich über die normale ioBroker-Konfiguration verfügbar ist).
  • Die 64-Bit-Ganzzahlkodierung für Schreibvorgänge ist auf Werte unter 2^52 (4.503.599.627.370.496) beschränkt. Die Dekodierung funktioniert über den gesamten 64-Bit-Bereich korrekt.

Kann ich Datenpunkte außerhalb des Scanbereichs anfordern?

Ja. Bearbeiten Sie den Bundesstaat.e3oncan.0.<DEVICE>.cmnd.udsReadByDid und geben Sie eine Liste von Datenpunkt-IDs ein, z. B.[3350, 3351, 3352, 3353] Verfügbare Datenpunkte werden in der Objektstruktur angezeigt und können in Leseplänen verwendet werden. Nicht verfügbare Datenpunkte führen zu einer „Negative Antwort“-Meldung im Protokoll.


Spenden


Wenn dir dieses Projekt gefallen hat – oder du einfach nur großzügig sein möchtest –, spendiere mir doch ein Bier. Prost! 😉

Changelog

1.1.3 (2026-09-11)

  • (MyHomeMyData) Fixed CAN connection dropping unexpectedly and never recovering on a healthy bus (updated socketcan to 4.3.1, which stops treating a recoverable socket error the same as a real disconnect). Refer to issue #255.

1.1.2 (2026-07-16)

  • (MyHomeMyData) Fixed missing update of meta data (unit, description) when user changes device specific data point definition

1.1.1 (2026-07-06)

  • (MyHomeMyData) Update of list of data points for E3 devices to version 20260705 (common)
  • (MyHomeMyData) Fixed duplicate display of variant data points in data point list of WebUI

1.1.0 (2026-07-05)

  • (MyHomeMyData) Update of list of data points for E3 devices to version 20260701 (common) and 20260630 (variant)
  • (MyHomeMyData) Added codec O3ESwitch for device-dependent data point structures selected by a discriminator byte
  • (MyHomeMyData) Added optional decimals parameter to numeric codecs to round decoded values
  • (MyHomeMyData) Added update of meta data during startup, when structure of data point has changed

1.0.3 (2026-06-02)

  • (MyHomeMyData) Update of list of data points for E3 devices to version 20260528 for common and 20260527 for variant data points; For details see this changelog
  • (MyHomeMyData) Suppress spurious variant-did warning when common dict covers the length
  • (MyHomeMyData) User-defined variant data point structures in udsDidsSpecific can now be protected from automatic updates by adding "protected": true (and an optional "reason" text) to the entry; see documentation
  • (MyHomeMyData) Updated socketcan dependency to 4.2.1 (N-API) — the native CAN module no longer needs to be rebuilt after a Node.js upgrade

Older versions

Older changelog entries are available in CHANGELOG_OLD.md.

License

MIT License

Copyright (c) 2024-2026 MyHomeMyData juergen.bonfert@gmail.com

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.