Tecalor Wärmepumpe in Home Assistant einbinden
Überwachung & Steuerung über ESP32 und MCP2515 CAN-Bus
💡 Idee
Hier möchte ich euch zeigen, mit welchen Mitteln ich meine Tecalor-Heizung in mein Home Assistant-System eingebunden habe.
Die Idee kam mir, weil mir die rund 600 € für das originale Tecalor ISP-Steuergerät einfach zu teuer waren.
🎯 Ziel meiner Steuerung
Eins vorweg:
Ich möchte mit dieser Steuerung keine automatischen Heizprogramme umsetzen, sondern vor allem:
- die aktuellen Betriebsparameter der Heizung im Blick behalten
- Warmwasser und Heizbetrieb zentral steuern können – ohne jedes Mal in den Keller zu laufen
⚙️ Vorbereitung: Der hydraulische Abgleich
Wer eine Wärmepumpe mit Fußbodenheizung und Raumthermostaten betreibt, ist wahrscheinlich schon auf das Thema hydraulischer Abgleich gestoßen.
Was bedeutet „hydraulischer Abgleich“ eigentlich?
Ein hydraulischer Abgleich sorgt dafür, dass jeder Raum genau so viel warmes Heizungswasser bekommt, wie er wirklich benötigt – nicht mehr und nicht weniger.
Ohne diesen Abgleich fließt das Heizungswasser oft einfach den kürzesten Weg entlang. Das führt dazu, dass Räume, die näher an der Heizung liegen, zu warm, und entferntere Räume zu kalt werden.
Beim hydraulischen Abgleich werden daher alle Raumthermostate und Stellmotoren am Heizkreisverteiler deaktiviert oder entfernt.
Stattdessen stellt man direkt am Heizkreisverteiler für jeden Raum die Durchflussmenge manuell ein.
So bekommt jeder Heizkreis nur noch so viel warmes Wasser, wie nötig ist, um die gewünschte Raumtemperatur zu erreichen.
Das Ergebnis:
- gleichmäßig warme Räume
- eine leiser und effizienter arbeitende Wärmepumpe
- keine hydraulischen Kurzschlüsse, bei denen das Wasser zu schnell zirkuliert
Kurz gesagt:
Ein sauber eingestellter hydraulischer Abgleich ist die Grundvoraussetzung für ein effizientes Heizsystem – und damit die perfekte Basis, um die Anlage anschließend digital zu überwachen und zu steuern.
🔌 Mein Ansatz: Die Tecalor-Wärmepumpe mit Home Assistant verbinden
Nachdem der Heizkreislauf sauber abgeglichen war, wollte ich auch die Daten der Wärmepumpe selbst im Blick haben.
Meine Tecalor THZ 404 ECO bietet zwar ein internes Menü mit allen wichtigen Werten, doch jedes Mal dafür in den Keller zu laufen, war auf Dauer einfach unpraktisch.
Das originale Tecalor ISP-Steuergerät wäre zwar die offizielle Lösung – kostet aber rund 600 €, was mir für reines Monitoring eindeutig zu viel war.
Also habe ich mir die Frage gestellt:
Kann man die Wärmepumpe nicht einfach direkt an ein eigenes System anbinden?
Die Antwort: Ja – über den CAN-Bus!
Die THZ-Serie von Tecalor (baugleich mit Stiebel Eltron LWZ) nutzt für die interne Kommunikation den Controller Area Network Bus (CAN-Bus).
Diesen Bus kann man mit einem ESP32-Mikrocontroller und einem passenden CAN-Transceiver-Modul relativ einfach „abhören“ und die Werte anschließend per MQTT oder direkt über die ESPHome API an Home Assistant übermitteln.
Damit lassen sich Live-Daten wie Temperaturen, Betriebsmodi oder Fehlermeldungen anzeigen – ganz ohne ISP-Modul.
🧰 Hardware-Aufbau: Tecalor ↔ ESP32 ↔ MCP2515 ↔ Home Assistant
Ziel
Die Tecalor-Wärmepumpe per CAN-Bus mit einem ESP32-PoE zu verbinden.
Der ESP32 liest die Werte am Bus (über den MCP2515) und liefert sie an Home Assistant.
Stückliste
- Hardware:
- ESP32-PoE Board (z.b. ESP32 NodeMCU)
- CAN-Transceiver: AZDelivery MCP2515 CAN Bus
- Jumper: Jumperkappe (nur falls Terminierung am Leitungsende nötig)
- Jumper Wire: Jumper Wire 40 x 20cm
- Leitung: Steuerleitung 3×0,25
Gehäuse: nutze ich ein selbst gebautes per 3D Druck
- Software:
- ESP32: OneESP32ToRuleThemAll
- Home Assistant: ESPHome Builder
🧩 Software & Einrichtung
Ich benutze das in Home Assistant integrierte ESPHome Builder.
Um auf die YAML-Dateien zuzugreifen, nutze ich den Studio Code Server.
- Ladet euch auf GitHub folgendes Projekt herunter:
👉 https://github.com/kr0ner/OneESP32ToRuleThemAll - Entpackt das ZIP und kopiert den Inhalt in euer Home Assistant ESPHome-Verzeichnis.

- Ihr erhaltet die Datei
esp32-poe-technik.yaml– bei mir heißt sie thz404.yaml passt dort den Namen eures Geräts an, sowie die Plattform eures CANBUS (ihr könnt das untere übernehmen):
esphome:
name: esp32-poe-technik
friendly_name: ESP32-PoE Technik
#########################################
# #
# CAN configuration #
# #
#########################################
canbus:
- id: !extend wp_can
platform: mcp2515
spi_id: McpSpi
cs_pin: GPIO16
bit_rate: 20kbps
- Entfernt in den Packages-Sektionen unten das
#vor eurem Gerät:
packages:
# energymeter: !include ./yaml/energymeter.yaml
# evu: !include ./yaml/evu.yaml
# watermeter: !include ./yaml/watermeter.yaml
# sensors: !include ./yaml/sensors.yaml
thz404: !include ./yaml/thz404.yaml
# thz504: !include ./yaml/thz504.yaml
# thz55eco: !include ./yaml/thz5_5_eco.yaml
# ttf07: !include ./yaml/ttf07.yaml
# wpl13: !include ./yaml/wpl13.yaml
# kondensatpumpe: !include ./yaml/kondensatpumpe.yaml
secrets.yaml
Wie ihr seht, liest die YAML eine secrets.yaml ein.
Dort werden WLAN-Daten und Schlüssel hinterlegt:
#########################################
# #
# WLAN Passwords #
# #
#########################################
wifi_ssid: "Test"
wifi_password: "Test8888"
#########################################
# #
# ESPHome Keys #
# #
#########################################
api_encryption_key: "dniqawnhdiuqhdizuqhdzghqzudguzqwgawduztgw"
ota_password: "dawudiaihbdzhwgbazdghuzgabd"
🔐 Hinweis:
Dasota_passwordist das ESPHome-eigene Passwort und erlaubt es, den ESP32 per WLAN zu flashen.
⚡ Flashen
Schließt den ESP32 per USB an euer Home Assistant-Gerät an und flasht die Config mit dem ESPHome Builder.
Unter „New Device“ sollte euer Board automatisch erkannt werden.
Im Log könnt ihr bereits sehen, ob CAN-Bus-Abfragen stattfinden.
Solange nichts angeschlossen ist, erscheinen hier natürlich noch Fehlermeldungen.
Kommen wir zum Anschluss der Hardware:
wir nehmen den MCP2515 und schließen die PINs per Jumper Kabel an den GPIO Pins des ESP32 wie folgt an:
| MCP2515 – Pin | Funktion | ESP32 GPIO |
| VCC | Betriebsspannung | 3.3V (nicht 5V!) |
| GND | Masse | GND |
| SCK | SPI Clock | GPIO14 (clk-pin) |
| SI (MOSI) | SPI In | GPIO13 (mosi_pin) |
| SO (MISO) | SPI Out | GPIO4 (miso_pin) |
| CS | SPI Chip Select | GPIO16 (cs_pin) |
| INT | Interrupt | nicht notwendig |
| CANH | CAN High | an THZ CANH |
| CANL | CAN Low | an THZ CANL |
Anschluss an der Tecalor-Heizung
⚠️ Wichtig:
Vorher unbedingt den Strom abschalten!
Seitlich an der Wärmepumpe befindet sich eine Abdeckung mit der Klemmbelegung.
![]() | ![]() |
Dort findet ihr die Anschlüsse CAN-H und CAN-L, an die ihr eure Steuerleitung anschließt.
Das andere Ende kommt an die Schraubklemmen des MCP2515.

🔧 Terminierung (Jumper J1)
Wichtig!!!
Wenn euer MCP2515 das letzte Gerät am CAN-Bus ist,
also wenn ihr nur die Heizung und danach den MCP2515 habt,
müsst ihr bei „J1“ am MCP2515 den Jumper setzen!
Warum?
Der CAN-Bus funktioniert nur zuverlässig, wenn beide Enden mit einem 120 Ω Abschlusswiderstand versehen sind.
Diese Widerstände verhindern Reflexionen und Störungen.
Beispiel:
[ Tecalor / Wärmepumpe ] ─── [ MCP2515 Modul (ESP32) ]
→ Der MCP2515 ist das zweite (und letzte) Gerät am Bus
→ Jumper „J1“ setzen ✅
Wenn ihr jedoch mehrere Geräte habt (z. B. ein ISP-Modul oder Erweiterungen),
dann Jumper offen lassen!
Mehr als zwei Terminierungen dämpfen das Signal oder legen den Bus lahm.
✅ Abschluss
Überblick:
- Hardware gekauft
- ESP32-Config eingerichtet
- ESP32 geflasht
- Hardware verkabelt
Wenn alles richtig gemacht wurde, erscheint in Home Assistant unter
Einstellungen → Add-ons → ESPHome
ein neues Gerät – eure Tecalor-Heizung 🎉
Dort findet ihr alle Sensoren, die ihr anschließend auf dem Dashboard visualisieren könnt.



Schreibe einen Kommentar