ich habe einen kompakten Hardware-Adapter entwickelt, der die Daten von Viessmann-Wärmepumpen (E3-Generation, z. B. Vitocal 250-A) rein passiv und lokal am CAN-Bus mitliest und per WLAN als strukturiertes JSON via MQTT bereitstellt.
Das Projekt ist ab sofort teil-offen auf GitHub verfügbar! Da mir die Open-Source-Gemeinschaft wichtig ist, gehe ich einen hybriden Weg:
Für Selbermacher (Open Hardware):
Die Schaltpläne, das Platinen-Layout (mit galvanischer CAN-Trennung zum Schutz der Wärmepumpe!) und die Stückliste liegen komplett frei auf GitHub. Ihr könnt euch die Platine selbst bestellen und löten. Ein Gehäuse-STL für den 3D-Druck ist ebenfalls dabei.
Für Komfort-Käufer (Fertige Hardware):
Wer nicht selbst löten möchte oder keine SMD-Ausrüstung hat, kann die fertig aufgebaute Hardware im Gehäuse direkt von mir für ca. 35 € (zzgl. Versand) beziehen.
Die Firmware & Home Assistant Auto-Discovery:
Die Firmware bietet ein lokales Webinterface zur WLAN-/MQTT-Einrichtung und unterstützt das offizielle Home Assistant MQTT-Discovery. Alle Sensoren (Temperaturen, Durchfluss in L/h, Tages-Energieverbräuche in kWh, On/Off-Zustände) ploppen vollautomatisch als fertiges Gerät in HA auf.
Da der Hauptaufwand in der monatelangen Analyse der CAN-Datenpunkte und der Software-Stabilität steckt, läuft die Firmware über ein faires Lizenzmodell:
Eine Basisversion (zum Testen der Hardware-Verbindung und Auslesen der Chip-ID) ist kostenlos.
Die Vollversion mit allen Datenpunkten und HA-Discovery kostet eine einmalige Software-Lizenz von 50 € pro Gerät.
Wer Interesse an einer fertig aufgebauten Hardware oder Fragen zu den unterstützten Datenpunkten hat, kann sich gerne hier im Thread oder per PN melden!
es gibt ein neues, wichtiges Feature-Update für den E3-Adapter, das ab sofort auf GitHub bereitsteht!
Die wichtigsten Neuerungen im Überblick:
Individuelle DID-Auswahl: Ihr könnt ab sofort eine eigene vcalobj.did-Datei über das Webinterface des Adapters hochladen.
Ressourcen schonen: Der Adapter liest fortan nur noch die DIDs vom CAN-Bus aus und überträgt sie per MQTT, die ihr explizit in der Datei definiert habt. Das hält euren ioBroker / Home Assistant und das WLAN absolut sauber und schlank.
Angepasste App-Ansicht: Die Auswahl bestimmt gleichzeitig, welche Werte in der lokalen Web-App des Adapters angezeigt werden.
Wer also z.B. nur die Kern-Temperaturen und die Wärmemengen für das Energie-Dashboard braucht, kann alle anderen Datenpunkte mit einem Schlag deaktivieren.
Den neuen Firmware-Build und die Anleitung zum Aufbau der .did-Datei findet ihr im GitHub-Repository.
Ich freue mich auf euer Feedback zur neuen Version!
es gibt ein größeres Update für den ESP32 CAN-Adapter! Neben dem Auslesen könnt ihr eure Vitocal jetzt auch aktiv über Home Assistant steuern und die CAN-Analyse gezielter durchführen.
Die wichtigsten Neuerungen auf einen Blick:
Aktive Steuerung der Vitocal (Schreib-Zugriff für DIDs) Ihr könnt ab sofort Werte direkt per MQTT verändern – beispielsweise den Raumtemperatur-Sollwert für den Mischerkreis.
Beispiel: Um die Soll-Temperatur auf 20 °C zu setzen, schickt ihr einfach folgende MQTT-Payload an HCV/writeDid:
JSON
{"did": 424, "value": 200}
(Hinweis: Der Wert 200 entspricht 20,0 °C wegen der Skalierung Float_10 in der DID-Definition).
Rückmeldung: Der Adapter sendet das Ergebnis der Steuerung direkt an HCV/writeDidResponse ({"status": "success"} oder {"status": "error"}).
Neuer CAN-Bus Filter für Loggings Wer eigene MQTT-Nachrichten bauen oder unbekannte DIDs analysieren möchte, kann das Logging nun auf bestimmte CAN-IDs eingrenzen. Das spart Speicher und macht die Log-Analyse deutlich übersichtlicher.
Flexibleres DID-Handling & UI-Optimierung Die DID-Strukturen wurden überarbeitet und die Hilfetexte im Web-Interface zur besseren Lesbarkeit angepasst.
Wichtiger Hinweis zum Schreiben von Werten:
Das Schreiben von Parametern greift direkt in die Steuerung ein. Bitte prüft vor dem Senden eigener DIDs die Skalierungen (z. B. Float_10) in eurer vcalobj.did.
Feedback, Fragen oder Ideen für weitere DIDs könnt ihr gerne hier im Thread oder auf GitHub hinterlassen!
Beispiel: Einbindung in Home Assistant (YAML)
Hier ist ein kurzes Beispiel, wie ihr den Raumtemperatur-Sollwert (DID 424) über ein Home Assistant Skript oder eine Automation per MQTT anpasst:
script:
set_vitocal_room_temperature:
alias: "Vitocal Raum-Solltemperatur setzen"
description: "Setzt den Raumtemperatur-Sollwert für Mischerkreis 1"
fields:
target_temp:
description: "Zieltemperatur in °C (z. B. 20.5)"
example: 20.5
sequence:
- action: mqtt.publish
data:
topic: "HCV/writeDid"
payload: >
{
"did": 424,
"value": {{ (states('input_number.vitocal_target_temp') | float * 10) | int }}
}
Tipp zur Skalierung in HA: Da die Vitocal Werte im Format Float_10 erwartet, wird die Temperatur in der Template-Zeile einfach mit 10 multipliziert (aus 20.0 °C wird somit der Wert 200).
Titel: [Beta-Test] Vitocal 200 S CAN-to-MQTT Bridge: Eigenständige Lese-Software für die Vitocal (WO1C / CAN)
Hallo zusammen,
neben der bestehenden Lösung für die Vitocal 250 (E3-Serie) steht ab sofort auch eine Beta-Variante für die Vitocal 200 (WO1C / HCV-Serie) bereit. Die HCV-Hardware ist mit der V250 Variante identisch.
Da sich das Protokoll der Vitocal-200-Generation grundlegend von der E3-Serie unterscheidet, gibt es hierfür einen eigenen Software-Stand.
Wichtige Hinweise zum aktuellen Beta-Status:
Schreibschutz / Passiv: In dieser Beta-Phase sind keinerlei Schreiboperationen auf den CAN-Bus zugelassen. Die Software arbeitet rein lesend/passiv, um das Heizungssystem absolut zu schonen.
Unvollständige DIDs: Es werden derzeit noch nicht alle DIDs/Messwerte erkannt oder angezeigt. Die Adress-Zuordnungen der WO1C-Plattform werden schrittweise erweitert.
Rückmeldungen & Traces: Da aktuell völlig unklar ist, wie groß das Interesse in der Community ist, bitte ich um Verständnis, dass Auswertungen von zugesendeten CAN-Traces und Rückmeldungen evtl. etwas zeitversetzt erfolgen.
Was die V200-Software in dieser Beta bietet:
Eigenes Profil-Format (vcalobj200.did): NATIVE Unterstützung für Adressen im WO1C-Hex-Format (z. B. 0x0100, 0x0371).
Integrierter CAN-Logger & Download: Der Bus-Traffic kann in die Datei canLog200.txt geschrieben und direkt über die Web-Oberfläche heruntergeladen werden (dank Chunked-Streaming auch über hcv.local ohne Abstürze).
Web-UI Dashboard: Live-Anzeige der bereits dekodierten Datenpunkte direkt im Browser.
Aufruf an Interessierte mit Vitocal 200 / WO1C:
Wer Lust hat, die Firmware auf eigener Hardware zu testen oder rohe CAN-Traces zur Analyse beizusteuern, findet das Projekt und die Hardware-Dateien hier:
[UPDATE v1.14.0] Viessmann Vitocal 250 per Web-Interface steuern
Ab sofort müsst ihr Parameter der Vitocal 250 (wie die Warmwasser-Solltemperatur) nicht mehr zwingend per MQTT-Payload senden. Mit der v1.14.0 könnt ihr Werte direkt über das HCV Web-Interface anpassen.
Visueller Dialog: Klick auf den Parameter öffnet ein Eingabefenster mit Dropdown/Wertauswahl.
Integrierter Plausibilitäts-Schutz: Min/Max-Grenzen (Min: 10 | Max: 60) und die zugehörige DID (0x18C) werden direkt angezeigt, um Fehleingaben zu vermeiden.
1-Klick-Übertragung: Ein Klick auf Senden schreibt den neuen Sollwert sofort auf den CAN-Bus der Heizung.
Hallo chrkir, sehr schöne Lösung - würde ich gerne einsetzen und bestellen. Bin aber neu im Forum, so dass anscheinend persönliche Nachrichten noch blockiert sind. Geht die Kontaktaufnahme vielleicht umgekehrt?
besten Dank für dein Interesse. Dieser Beitrag verweist ja auf gihub mit den Entsprechenden Dateien (Software und Hardware) sowie die Internetseite (embdes.com) mit Konatkdaten und Informationen. Dort, sowie hier, kannst Du gerne nachfragen bzw. mich Kontaktieren soweit die Informationen in github nicht ausreichen.
Grüße
Christian
e3oncan ist für erfahrene Nutzer definitiv eine gute Lösung, wenn man alles in einer zentralen Instanz betreiben und selbst tiefgehende Anpassungen vornehmen möchte.
Wer allerdings eine systemunabhängige und entkoppelte Lösung (eine einsatzfertige Plug-and-Play-Lösung) sucht, profitiert bei unserem ESP32-HCV-Adapter von ein paar entscheidenden Vorteilen:
Eigenständiges Zusatzgerät (Standalone & Edge Device): Die Verarbeitung der Daten läuft direkt auf der kleinen Chip-Hardware an der Heizung. Die Anbindung bleibt stabil – egal ob dein Hauptserver neu startet, ein Update macht oder ausfällt. Keine Bindung an ein bestimmtes System (Standard-MQTT): Durch das offene Datenformat (MQTT) bist du absolut flexibel. Das Gerät lässt sich universell in jede beliebige Smart-Home-Software oder App einbinden. Integriertes Web-Interface mit Direkt-Steuerung: Du hast direkt auf dem Gerät eine eigene Mini-Webseite im Browser. Werte können dort nicht nur abgelesen, sondern über ein einfaches Formular mit automatischer Grenzwerte-Prüfung sicher verstellt werden (z. B. die Warmwasser-Solltemperatur) – ganz ohne erst ein eigenes Dashboard programmieren zu müssen. Eingebaute Analyse-Funktion: Das Gerät bringt eine eigene Daten-Aufzeichnung direkt im Browser mit. Man braucht keine speziellen Treiber oder Zusatz-Software auf dem PC, um den Datenverkehr der Heizung zu analysieren.
Am Ende ist es eine Frage der Philosophie: Möchte man eine Lösung, die als Software auf dem zentralen Server läuft, oder ein eigenständiges kleines Hardware-Gateway direkt an der Vitocal.
Wobei der Begriff „reine Softwarelösung“ bei e3oncan streng genommen auch nicht ganz stimmt: Man benötigt dafür schließlich ebenfalls ein Zusatzkabel (einen USB-Anschlussadapter mit elektrischer Schutzisolierung). Zudem ist man durch das Datenkabel auf maximal 10 Meter Abstand zur Heizung beschränkt – unter anderem, weil zu lange Kabelabzweigungen (Stichleitungen) am Datenbus der Heizung zu Störungen führen können. Unser kleines ESP32-Gateway sitzt hingegen direkt an der Heizung und schickt die Daten ganz unkompliziert per WLAN ins Hausnetzwerk.
ein neues Update für den ESP32 HCV-Adapter ist verfügbar! Mit der Version v1.19.0 wurden wichtige Detail-Fixes an der Benutzeroberfläche vorgenommen sowie die Stabilität von MQTT und WLAN weiter erhöht.
Die wichtigsten Neuerungen (v1.16 – v1.19):
UI & CAN-Anzeige gefixt (v1.19):
Behebung eines Fehlers aus v1.18, durch den CAN-Daten im Web-UI nicht richtig dargestellt wurden.
Korrektur der Darstellung von Ganzzahl-DIDs (Integer Units).
MQTT & Home Assistant Auto-Discovery (v1.18):
Sauberes Re-Discovery in Home Assistant nach einem MQTT-Reconnect (inkl. Berücksichtigung von Retained Messages).
Nach dem Systemstart wird für DIDs bis zum ersten gültigen Lese-Wert vorübergehend -- angezeigt.
Automatische Aktualisierung der DID-Objekte direkt nach einem Upload.
WLAN & System-Stabilität (v1.16 – v1.17):
Verbessertes WLAN-Reconnect-Verhalten (Automatischer Kanal-Reset nach Timeout).
Neuer globaler System-Reset inklusive sauberm Deregistrieren des CAN-Busses (can deinit).
Überarbeitetes WLAN-Konfigurationsmenü mit integrierter Access-Point-Auswahl.
Das Release v1.19.0 steht ab sofort auf GitHub bereit. Ein Update von der v1.18 wird wegen der korrigierten CAN-Anzeige empfohlen!
mit dem Release v1.25 steht ein umfassendes Update für das HCV-Modul bereit!
Besonders im Bereich der Vitocharge VX3 Integration hat sich einiges getan. Die Datenpunkte wurden komplett modularisiert und die Engine kann flexibel an das jeweilige Setup angepasst werden.
Die VX3-Datenpunkte werden ab sofort sauber in einer eigenen Objektdatei (vx3obj.did) verwaltet. Dadurch lässt sich das Modul nun in drei unterschiedlichen Betriebsmodi betreiben:
Wärmepumpe (Ohne VX3): Klassischer Betrieb für reine Vitocal-Anlagen.
Wärmepumpe + VX3: Kombibetrieb – liest sowohl die Heizungs- als auch die Photovoltaik-/Speicherdaten ab.
VX3 (Ohne WP): Ideal für Installationen, bei denen nur der Vitocharge Stromspeicher / Inverter ohne Wärmepumpe ausgelesen werden soll.
Highlights der aktuellen Versionen (v1.22 – v1.25):
Dynamische DID-Engine (v1.25 / v1.24): Kein Hardcoding mehr nötig! Egal ob 8-Bit (z. B. SOC in %), 16-Bit signed/unsigned (z. B. Lade-/Entladeleistung) oder 32-Bit Multi-Frame UDS-Antworten (z. B. Einspeise- und Bezugszähler DID 535) – alles wird dynamisch über die .did-Tabellen dekodiert.
Web-Interface & Stabilität (v1.23): Das Aktualisierungs-Flickern auf der Hauptseite wurde eliminiert und die Filterlogik für reine Ist-Wert-Sensoren (Read-Only) korrigiert.
Viel Spaß beim Testen! Feedback zu weiteren DIDs oder den neuen Betriebsmodi ist wie immer herzlich willkommen.
viele von euch haben nach einer festen Kabelverbindung gefragt, da Wärmepumpen und Speicher oft im Keller stehen, wo der WLAN-Empfang nicht immer optimal ist.
Es gibt ein wichtiges Hardware-Update: Den ESP32-HCV Adapter gibt es ab sofort auch als Ethernet & WLAN Edition mit integriertem RJ45-LAN-Anschluss!
Was ist neu?
RJ45 Ethernet-Anschluss (LAN): Direkte Kabelverbindung zum Router/Switch für maximale Ausfallsicherheit und stabile Datenübertragung.
Dual-Option: Kann wahlweise per LAN-Kabel oder wie gewohnt über WLAN betrieben werden.
Ideal für den Heizungskeller: Kein Verbindungsabbruch mehr durch dicke Kellerdecken oder geschirmte Heizungsräume.
Voller Funktionsumfang: 100 % lokal, cloudfrei, galvanische CAN-Bus-Trennung und native Home Assistant Auto-Discovery.
Lieferbarkeit & Details:
Die Ethernet-Version ist ab dem 1. Oktober lieferbar.
Firmware-Update v1.33 für HCV-Adapter (WLAN/Ethernet Fixes & Telnet-Diagnose)
Hallo zusammen,
Die neue Firmware v1.33 für den HCV-Adapter steht ab sofort auf GitHub bereit.
In dieser Version wurden vor allem Verbindungsprobleme bei der WLAN-Einrichtung an modernen Routern sowie die Cold-Boot-Stabilität bei der Ethernet-Variante behoben.
Die wichtigsten Neuerungen & Fixes:
Verbesserte WLAN-Kompatibilität:
Anpassung des Handshake-Verhaltens (PMF / WPA2/WPA3-Mixed Mode) für neuere Provider-Router und Access Points (u. a. A1, Magenta, Asus, FRITZ!Box).
Deaktivierung des WLAN-Power-Save (WIFI_PS_NONE), um Paketverluste und Verbindungsabbrüche zu verhindern.
Ethernet Boot-Fix:
Behebung eines Absturzes beim Einschalten (ESP_RST_PANIC) mit gestecktem LAN-Kabel durch eine korrigierte Initialisierungsreihenfolge des SPI-Treibers und der Event-Handler.
Erweitertes Telnet-Diagnose-Terminal:
Telnet (Port 23) steht nun auf allen Interfaces zur Verfügung (SoftAP, Station-Modus und Ethernet).
Überarbeitete State-Machine zur sauberen Filterung von Telnet-Steuerzeichen (IAC).
NTP & System-Diagnostics:
Zuverlässigere Zeitsynchronisation nach dem Verbindungsaufbau.
Neues Logging für Boot-Reset-Gründe, System-Speicher (MinFree) und MQTT-Verbindungsstatus.
Wichtiger Hinweis für die Ersteinrichtung (WLAN-AP):
Sobald der Adapter sich erfolgreich mit dem eigenen WLAN-Netzwerk verbindet, schaltet er den eigenen Access Point (HCV_AP) ab. Die IP-Adresse 192.168.3.1 ist ab diesem Moment nicht mehr erreichbar.
Das Webinterface ist danach direkt über die von eurem Router zugewiesene lokale IP-Adresse erreichbar (z. B. [http://192.168.1.](http://192.168.1.)x – einfach kurz in die DHCP-Tabelle des Routers schauen).
Bei Fragen oder Feedback schreibt einfach kurz hier im Thread!
Viele Grüße
Christian