TapHome

Vaillant aroTHERM plus + sensoCOMFORT VRC 720 (eBUS, micro-ebusd)

Packet Parser → HTTP
Eingereicht von
Zuletzt aktualisiert: 11. 2026

Erfordert externes Gateway

eBUS Adapter (ebusd.eu) eBUS Adapter Shield or Stick C6 with micro-ebusd (HTTP JSON API, port 80) — Produktseite

Vaillant aroTHERM plus + sensoCOMFORT VRC 720 (eBUS, micro-ebusd)

Die Vorlage Vaillant aroTHERM plus verbindet TapHome mit einer Luft-Wasser-Wärmepumpe Vaillant aroTHERM plus und ihrem Systemregler sensoCOMFORT VRC 720 über einen eBUS Adapter Shield oder Stick C6 von ebusd.eu. Der Adapter sitzt am eBUS des Reglers und führt micro-ebusd aus, das die Vaillant-Nachrichten dekodiert und über eine lokale HTTP-JSON-API anbietet. TapHome spricht nur mit dem Adapter im lokalen Netzwerk; eine Cloud wird nicht verwendet.

Die Vorlage liest Außen-, Raum-, Vorlauf- und Warmwassertemperatur, den Wasserdruck, Leistung und Energie der Wärmepumpe und die Fehler des Reglers. Sie stellt den Raum-Sollwert der Zone 1, den Warmwasser-Sollwert sowie die Betriebsarten der Zone 1 und des Warmwassers ein und startet eine einmalige Warmwasserladung.

Community-Vorlage — noch nicht mit TapHome an einem echten Adapter getestet. Die Vorlage wurde im TapHome-Portal aus der Dokumentation von micro-ebusd und den ebusd-Nachrichtendefinitionen für den VRC 720 und die aroTHERM plus erstellt. Getestet wurde sie nur mit einem simulierten Adapter auf einem lokalen TapHome Core 2025.2, nicht mit einem echten Adapter, Regler oder einer echten Wärmepumpe; Erfahrungen aus der Praxis sind willkommen. Laden Sie das XML auf dieser Seite herunter oder holen Sie es aus dem TapHome-Portal: Vaillant aroTHERM plus + VRC 720 — Community-Vorlage, und importieren Sie es als neues Modul.

Die Vorlage ergänzt die offizielle TapHome-Vorlage eBUS Adapter Shield C6 Stick, die über MQTT den Zustand des Adapters selbst zeigt (Bussignal, Daemon, Temperatur); beide können nebeneinander laufen. Mit der Community-Vorlage für den Gebläsekonvektor Vaillant aroVAIR, die Modbus RTU verwendet, hat sie nichts zu tun.

Was Sie brauchen

  • Vaillant aroTHERM plus mit dem Regler sensoCOMFORT VRC 720 am eBUS.
  • eBUS Adapter Shield C6 oder Stick C6 (adapter.ebusd.eu) mit der neuesten Firmware und aktiviertem micro-ebusd. micro-ebusd ist eine kostenpflichtige Funktion des Adapters, die ein Token freischaltet; jeder Adapter erhält eine 30-tägige Testlizenz.
  • Adapter und TapHome Core im selben lokalen Netzwerk.

Hardware-Anschluss

Der Adapter wird an die beiden eBUS-Klemmen des Reglers VRC 720 angeschlossen; der eBUS ist verpolungssicher. Die aroTHERM plus kommuniziert mit dem Regler über denselben Bus, daher ist keine Leitung zur Außeneinheit nötig. Schalten Sie vor Arbeiten an den Klemmen des Reglers die Netzspannung ab.

Verbinden Sie den Adapter wie in seiner Dokumentation beschrieben mit dem lokalen Netzwerk und reservieren Sie seine IP-Adresse im Router, damit TapHome ihn immer erreicht.

Konfiguration

micro-ebusd aktivieren

  1. Aktualisieren Sie den Adapter auf die neueste Firmware (adapter.ebusd.eu).
  2. Holen Sie ein micro-ebusd-Token unter token.ebusd.eu (eine 30-tägige Testlizenz pro Adapter, danach kostenpflichtig) und geben Sie es in der Weboberfläche des Adapters ein.
  3. Nach der Aktivierung antwortet die HTTP-JSON-API unter http://<adapter-ip>/api/v1/ebus.

Kreisnamen ermitteln

micro-ebusd adressiert jeden Wert über Kreis und Nachrichtennamen. Öffnen Sie http://<adapter-ip>/api/v1/ebus/list im Browser: Die Seite listet die Kreise und Nachrichten, die der Adapter am Bus gefunden hat. Der Regler sensoCOMFORT VRC 720 erscheint je nach Version als ctlv2, ctlv3 oder 720, die Außeneinheit der aroTHERM plus als hmu. Der Importdialog nennt auch 700 für den VRC 700; die Vorlage wurde nach den Nachrichtendefinitionen des VRC 720 geschrieben.

Importparameter

ParameterStandardwertBeschreibung
ADAPTER_IP(leer)IP-Adresse des eBUS-Adapters
CONTROLLER_CIRCUITctlv2Kreisname des Reglers aus /api/v1/ebus/list
HEAT_SOURCE_CIRCUIThmuKreisname der Außeneinheit der aroTHERM plus

Der Import legt zwei Module am selben Adapter an: sensoCOMFORT VRC 720 (ctlv2) mit acht Geräten und aroTHERM plus (hmu) mit dem Stromzähler der Wärmepumpe.

Gerätefunktionen

Temperaturen und Druck

  • Außentemperatur — Außentemperatur, wie sie der VRC 720 anzeigt.
  • Vorlauftemperatur — Systemvorlauftemperatur (Heizungsvorlauf).
  • Wasserdruck — Wasserdruck der Heizungsanlage in bar (nur lesbar).

Zone 1

  • Thermostat Zone 1 — Raumtemperatur und der Sollwert, den der Regler tatsächlich verwendet. Ein in TapHome eingestellter Sollwert (5–30 °C) wird als Quick Veto gesendet: eine vorübergehende Änderung, das Zeitprogramm des Reglers bleibt unverändert. Nach dem Schreiben liest die Vorlage den Wert erneut vom Bus.
  • Betriebsart Zone 1 — Aus, Auto (Zeitprogramm), Manuell / Tag und Nacht. Die Vorlage sendet die Namen aus der ebusd-Definition (off, auto, day, night). Am VRC 720 ist der Modus day der manuelle Modus, und einen Nachtmodus hat der VRC 720 nicht.

Warmwasser

  • Warmwasser-Thermostat — Temperatur des Warmwasserspeichers und Warmwasser-Sollwert, einstellbar von 35 bis 75 °C.
  • Betriebsart Warmwasser — Aus, Auto, Tag oder Nacht.
  • Warmwasser-Einmalladung — Einschalten startet die Ladung; ist der Speicher geladen, kehrt der Regler selbst auf Auto zurück und der Schalter zeigt wieder aus.

Strom der Wärmepumpe

Das Modul aroTHERM plus (hmu) hat ein Gerät, Stromzähler der Wärmepumpe, einen Stromzähler der Außeneinheit:

  • Leistung — aktuelle elektrische Leistung der Wärmepumpe in kW.
  • Gesamtverbrauch — gesamter Stromverbrauch der Wärmepumpe in kWh. Der Zähler ist eine 16-Bit-Zahl (höchstens 65535 kWh); bei einem Gerät, das viele Jahre läuft, kann er daher schon wieder bei null begonnen haben.

Außerdem zeigt es drei Serviceattribute:

ServiceattributBeschreibung
COP (Heizen)Leistungszahl der Wärmepumpe im Heizbetrieb
Gesamter Wärmeertrag [kWh]Gesamter Wärmeertrag der Wärmepumpe — Wärmeenergie, kein Strom
BetriebszustandZustand, den die Außeneinheit meldet: ready, heating, cooling, heating_water oder error

Fehler des Reglers

Das Modul sensoCOMFORT VRC 720 (ctlv2) liest in jedem Zyklus die aktuellen Fehler des Reglers. Für jedes seiner fünf Fehlerfelder, das nicht null ist, zeigt das Modul einen Fehler mit der Fehlernummer, zum Beispiel Controller error code: 1025.

Wie die Vorlage mit dem Adapter spricht

Jeder Wert ist eine Nachricht der ebusd-Definition. Die Vorlage liest sie mit GET /api/v1/ebus/{circuit}/{message}/get?from=1, das aus dem Cache des Adapters antwortet oder den Bus fragt, und nimmt data.fields.value aus der Antwort. Ein Schreibvorgang ist PUT /api/v1/ebus/{circuit}/{message}/set mit dem Body {"fields":{"value":…}}, gefolgt von einem Lesen mit from=2, das immer den Bus fragt. Die Module und alle Geräte lesen alle 60 s.

Keines der Geräte schreibt etwas, wenn der TapHome Core startet: Sie übernehmen ihren Zustand vom Adapter, nicht vom letzten Wert in TapHome.

Manche Firmware-Versionen des VRC 720 bestätigen einen Schreibvorgang und führen ihn nicht aus. Da die Vorlage den Wert nach jedem Schreiben erneut vom Bus liest, zeigt TapHome danach den Wert, den der Regler tatsächlich verwendet, nicht den eingestellten.

Was die Vorlage nicht tut

  • Installateurparameter (Heizkurve, maximale Vorlauftemperatur) sind bewusst weggelassen — die Vorlage ändert die Installateureinstellungen des Reglers nicht.
  • Kühlen der Zone 1, die Zonen 2 und 3 sowie das Wochenzeitprogramm sind nicht Teil der Vorlage.
  • Weitere Werte der Außeneinheit (Lufteintrittstemperatur, Kompressorauslastung, aktuelle Wärmeleistung) sind am Bus verfügbar, werden aber nicht gelesen.

Fehlerbehebung

Überhaupt keine Werte

Prüfen Sie, ob micro-ebusd aktiviert und das Token nicht abgelaufen ist: Ohne micro-ebusd antwortet der Adapter nicht auf /api/v1/ebus. Prüfen Sie, ob sich http://<adapter-ip>/api/v1/ebus/list im Browser öffnet.

Die Geräte des Reglers zeigen keinen Wert

Der Kreisname stimmt nicht. Öffnen Sie http://<adapter-ip>/api/v1/ebus/list, suchen Sie den Namen des Reglers (ctlv2, ctlv3 oder 720) und der Außeneinheit (hmu) und importieren Sie die Vorlage mit diesen Namen erneut.

Ein Sollwert oder eine Betriebsart springt auf den alten Wert zurück

Der Regler hat den Schreibvorgang nicht ausgeführt; TapHome zeigt den vom Bus zurückgelesenen Wert. Prüfen Sie die Betriebsart der Zone und die Firmware des Reglers.

Modulfehler Controller error code: …

Der Regler meldet einen Fehler mit dieser Nummer. Schlagen Sie ihn in der Dokumentation des Reglers oder der Wärmepumpe nach; der Modulfehler verschwindet, wenn der Regler ihn zurücksetzt.

Verfügbare Geräte

sensoCOMFORT VRC 720 (ctlv2) Modul

sensoCOMFORT VRC 720 (ctlv2)

Lesen (Modul)
VAR response := SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/Currenterror/get?from=1");
IF response.IsSuccess
  VAR e0 := PARSEJSON(response.Content, "data.fields.error", true);
  VAR e1 := PARSEJSON(response.Content, "data.fields.error_1", true);
  VAR e2 := PARSEJSON(response.Content, "data.fields.error_2", true);
  VAR e3 := PARSEJSON(response.Content, "data.fields.error_3", true);
  VAR e4 := PARSEJSON(response.Content, "data.fields.error_4", true);
  IF !ISNULL(e0)
    IF e0 != 0
      ADDERROR(0, "Controller error code: " + e0);
    END
  END
  IF !ISNULL(e1)
    IF e1 != 0
      ADDERROR(1, "Controller error_1 code: " + e1);
    END
  END
  IF !ISNULL(e2)
    IF e2 != 0
      ADDERROR(2, "Controller error_2 code: " + e2);
    END
  END
  IF !ISNULL(e3)
    IF e3 != 0
      ADDERROR(3, "Controller error_3 code: " + e3);
    END
  END
  IF !ISNULL(e4)
    IF e4 != 0
      ADDERROR(4, "Controller error_4 code: " + e4);
    END
  END
END
Außentemperatur Temperatursensor Nur lesen

Außentemperatur, wie sie der Regler VRC 720 anzeigt

numeric Einheit: °C

Außentemperatur

Temperatur lesen
VAR response := SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/DisplayedOutsideTemp/get?from=1");
IF response.IsSuccess
  RETURN(PARSEJSON(response.Content, "data.fields.value", true));
END
RETURN(NaN);
Thermostat Zone 1 Thermostat

Raumtemperatur und aktiver Sollwert der Zone 1; ein neuer Sollwert wird als Quick Veto gesendet — eine vorübergehende Änderung, das Zeitprogramm bleibt unverändert

numeric Einheit: °C

Thermostat Zone 1

Temperatur lesen
VAR response := SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/Z1RoomTemp/get?from=1");
IF response.IsSuccess
  RETURN(PARSEJSON(response.Content, "data.fields.value", true));
END
RETURN(NaN);
Solltemperatur lesen
VAR response := SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/Z1ActualRoomTempDesired/get?from=1");
IF response.IsSuccess
  RETURN(PARSEJSON(response.Content, "data.fields.value", true));
END
RETURN(NaN);
Solltemperatur schreiben
VAR body := "{\"fields\":{\"value\":" + Se + "}}";
SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/Z1QuickVetoTemp/set", "PUT", body, "Content-Type: application/json");
SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/Z1QuickVetoTemp/get?from=2");
Betriebsart Zone 1 Mehrwertschalter

Betriebsart der Zone 1 — Aus, Auto (Zeitprogramm), Manuell / Tag oder Nacht; am VRC 720 ist der Modus day der manuelle Modus, einen Nachtmodus gibt es dort nicht

enum numeric
Werte / Zustände: Aus · Auto · Manuell / Tag · Nacht

Betriebsart Zone 1

Schaltzustand lesen
VAR response := SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/Z1OpMode/get?from=1");
IF response.IsSuccess
  # micro-ebusd returns the name of the value from the ebusd definition (off, auto, day, night); a number is accepted too
  VAR v := TOSTRING(PARSEJSON(response.Content, "data.fields.value", true));
  IF v = "off" OR v = "0"
    RETURN(0);
  END
  IF v = "auto" OR v = "1"
    RETURN(1);
  END
  IF v = "day" OR v = "manual" OR v = "2"
    RETURN(2);
  END
  IF v = "night" OR v = "3"
    RETURN(3);
  END
END
RETURN(NaN);
Schaltzustand schreiben
# Names from the ebusd definition; on the VRC 720 "day" is the manual mode
VAR name := SWITCH(Mu, 0, "off", 1, "auto", 2, "day", 3, "night", "");
IF name != ""
  SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/Z1OpMode/set", "PUT", "{\"fields\":{\"value\":\"" + name + "\"}}", "Content-Type: application/json");
  # Read back from the bus: a write the controller ignored shows the real mode at the next read
  SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/Z1OpMode/get?from=2");
END
Warmwasser-Thermostat Thermostat

Temperatur des Warmwasserspeichers und Warmwasser-Sollwert, einstellbar von 35 bis 75 °C

numeric Einheit: °C

Warmwasser-Thermostat

Temperatur lesen
VAR response := SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/HwcStorageTemp/get?from=1");
IF response.IsSuccess
  RETURN(PARSEJSON(response.Content, "data.fields.value", true));
END
RETURN(NaN);
Solltemperatur lesen
VAR response := SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/HwcTempDesired/get?from=1");
IF response.IsSuccess
  RETURN(PARSEJSON(response.Content, "data.fields.value", true));
END
RETURN(NaN);
Solltemperatur schreiben
VAR body := "{\"fields\":{\"value\":" + Se + "}}";
SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/HwcTempDesired/set", "PUT", body, "Content-Type: application/json");
SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/HwcTempDesired/get?from=2");
Betriebsart Warmwasser Mehrwertschalter

Betriebsart des Warmwasserkreises — Aus, Auto, Tag oder Nacht

enum numeric
Werte / Zustände: Aus · Auto · Tag · Nacht

Betriebsart Warmwasser

Schaltzustand lesen
VAR response := SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/HwcOpMode/get?from=1");
IF response.IsSuccess
  # micro-ebusd returns the name of the value from the ebusd definition (off, auto, day, night); a number is accepted too
  VAR v := TOSTRING(PARSEJSON(response.Content, "data.fields.value", true));
  IF v = "off" OR v = "0"
    RETURN(0);
  END
  IF v = "auto" OR v = "1"
    RETURN(1);
  END
  IF v = "day" OR v = "manual" OR v = "2"
    RETURN(2);
  END
  IF v = "night" OR v = "3"
    RETURN(3);
  END
END
RETURN(NaN);
Schaltzustand schreiben
# Names from the ebusd definition; on the VRC 720 "day" is the manual mode
VAR name := SWITCH(Mu, 0, "off", 1, "auto", 2, "day", 3, "night", "");
IF name != ""
  SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/HwcOpMode/set", "PUT", "{\"fields\":{\"value\":\"" + name + "\"}}", "Content-Type: application/json");
  # Read back from the bus: a write the controller ignored shows the real mode at the next read
  SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/HwcOpMode/get?from=2");
END
Warmwasser-Einmalladung Schalter

Einmalige Warmwasserladung — Einschalten startet die Ladung, nach dem Aufladen des Speichers kehrt der Regler selbst auf Auto zurück

boolean
Werte / Zustände: Active · OFF

Warmwasser-Einmalladung

Schaltzustand lesen
VAR response := SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/HwcSFMode/get?from=1");
IF response.IsSuccess
  VAR v := TOSTRING(PARSEJSON(response.Content, "data.fields.value", true));
  IF v = "load" OR v = "6"
    RETURN(1);
  END
  RETURN(0);
END
RETURN(NaN);
Schaltzustand schreiben
# load = one-time hot water charge; the controller returns to auto by itself when the tank is charged
VAR name := IF(St, "load", "auto");
SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/HwcSFMode/set", "PUT", "{\"fields\":{\"value\":\"" + name + "\"}}", "Content-Type: application/json");
SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/HwcSFMode/get?from=2");
Vorlauftemperatur Temperatursensor Nur lesen

Systemvorlauftemperatur (Heizungsvorlauf), wie sie der Regler VRC 720 meldet

numeric Einheit: °C

Vorlauftemperatur

Temperatur lesen
VAR response := SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/SystemFlowTemp/get?from=1");
IF response.IsSuccess
  RETURN(PARSEJSON(response.Content, "data.fields.value", true));
END
RETURN(NaN);
Wasserdruck Variable Nur lesen

Wasserdruck der Heizungsanlage in bar

numeric Einheit: bar

Wasserdruck

Lesen
VAR response := SENDHTTPREQUEST("/api/v1/ebus/" + "$[CONTROLLER_CIRCUIT]" + "/WaterPressure/get?from=1");
IF response.IsSuccess
  RETURN(PARSEJSON(response.Content, "data.fields.value", true));
END
RETURN(NaN);
Verbindung: Packet Parser → HTTP
Mögliche Verbesserungen (5)
  • Cooling of zone 1 — The controller definition has cooling setpoints for the zone and the heating circuit; the template covers heating only.
  • Installer parameters (heat curve, maximum flow temperature) — Left out on purpose — installer settings of the controller are not changed from TapHome.
  • Weekly time programme — Reading and editing the weekly schedule of the zone and the hot water is not part of the template.
  • Further heat pump values — Air intake temperature, compressor utilisation and current heat output of the outdoor unit.
  • Further zones — The template covers zone 1 only.

Quellen

  • micro-ebusd HTTP JSON API (get, set, list, from=0/1/2, token)
    token.ebusd.eu 2026-11-04
  • ebusd message definitions — Vaillant sensoCOMFORT VRC 720 (15.ctlv2.csv)
    ebus.github.io 2026-11-04
  • ebusd message definitions — Vaillant aroTHERM plus outdoor unit (08.hmu.csv)
    ebus.github.io 2026-11-04
  • ebusd configuration — Vaillant index
    ebus.github.io 2026-11-04
  • micro-ebusd MQTT documentation
    token.ebusd.eu 2026-11-04

Haben Sie ein Problem mit dieser Gerätevorlage gefunden?

Sagen Sie uns, was nicht funktioniert, was fehlt oder wie sich die Vorlage verhalten sollte. Ihr Feedback hilft uns, den Katalog genau zu halten.

Community — ungeprüft

Möchtest du das in deinem TapHome Core verwenden?

Öffne diese Vorlage im Kundenportal, um sie auf eine deiner Wohnungen anzuwenden, oder entwirf eine Anpassung und reiche sie an den Katalog ein.

Im Portal öffnen