Local Viessmann E3 Heat Pump CAN-to-MQTT Adapter (Plug & Play for Home Assistant)

Hello everyone,

Tired of the official ViCare Cloud API limits, connection drops, and internet dependency for your Viessmann heat pump? I was too.

To solve this, I developed a compact hardware adapter that reads data locally and purely passively from the CAN bus of Viessmann E3-generation heat pumps (e.g., Vitocal 250-A, 252-A, etc.) and streams it via Wi-Fi as a structured JSON payload to your MQTT broker.

Since I highly value the open-source community, I decided to go with a hybrid "Open Hardware / Premium Software" approach:

:hammer_and_wrench: For the DIY Makers (Open Hardware):
The schematics, PCB layout (featuring full galvanic isolation to protect your expensive heat pump!), and the Bill of Materials (BOM) are completely open and available on GitHub. You can order the PCBs themselves (e.g., via JLCPCB) and solder them your own. A 3D-printable STL file for the enclosure is included as well.

:package: For Convenience Buyers (Assembled Hardware):
If you don't want to solder SMD components yourself, you can buy the fully assembled and tested hardware inside its enclosure directly from me for approx. €35 (plus shipping from Germany).

:laptop: The Firmware & Native Home Assistant Auto-Discovery:
The firmware features a local web interface for easy Wi-Fi and MQTT setup. Most importantly, it supports native Home Assistant MQTT Auto-Discovery. Once connected, all sensors—including flow rates (in L/h), daily energy consumption (in kWh for the Energy Dashboard), temperatures, and binary On/Off states—pop up automatically as a ready-to-use device in your Home Assistant dashboard.

To protect the months of reverse-engineering work that went into deciphering the Viessmann CAN data points, the firmware uses a fair offline license model:

  • A basic version (allows testing the hardware connection and displays your unique ESP32 Chip ID) is completely free.
  • The full version unlocking all data points and HA Auto-Discovery requires a one-time software license of €50 per device (activated offline via a simple license file uploaded to the device's filesystem).

You can find the GitHub repository here: GitHub - chrkir/hcv: Home control modul for Viessmann Vitocal · GitHub

If you are interested in a pre-assembled hardware board or have questions about supported data points, feel free to reply here or send me a PM!

Best regards,
chrkir

:loudspeaker: Feature Update: Selective DID Upload & Custom MQTT Payloads!

Hey everyone,
I just pushed a major update to GitHub (v.0.88) that grants full control over which data points are processed and sent via MQTT.

What's new:

  • Selective DIDs: You can now upload a custom vcalobj.did file via the adapter's web interface.
  • Performance Boost: Only the DIDs specified in your file will be actively captured from the CAN bus and streamed via MQTT. No more cluttered brokers or unnecessary network traffic!
  • Custom Views: The selected DIDs will also define what is displayed on the adapter's built-in web app.

This is perfect for keeping your Home Assistant dashboard clean and focusing only on the metrics you actually care about (like flow rates, energy consumption, or core temperatures).

Head over to GitHub to grab the latest firmware build and check out the updated documentation on how to format your .did file.

Thanks for your ongoing support and feedback!