TapHome

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

Packet Parser → HTTP
Inviato da
Ultimo aggiornamento: 11. 2026

Richiede gateway esterno

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

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

Il template Vaillant aroTHERM plus collega TapHome a una pompa di calore aria-acqua Vaillant aroTHERM plus e al suo regolatore di sistema sensoCOMFORT VRC 720 tramite un eBUS Adapter Shield o Stick C6 di ebusd.eu. L’adattatore è collegato all’eBUS del regolatore ed esegue micro-ebusd, che decodifica i messaggi Vaillant e li offre tramite un’API HTTP JSON locale. TapHome comunica solo con l’adattatore nella rete locale; il cloud non viene usato.

Il template legge la temperatura esterna, ambiente, di mandata e dell’acqua calda, la pressione dell’acqua, la potenza e l’energia della pompa di calore e gli errori del regolatore. Imposta il setpoint ambiente della zona 1, il setpoint dell’acqua calda, le modalità di funzionamento della zona 1 e dell’acqua calda e avvia una carica singola dell’acqua calda.

Template della community — non ancora testato con TapHome su un adattatore reale. Il template è stato generato nel portale TapHome dalla documentazione di micro-ebusd e dalle definizioni dei messaggi ebusd per il VRC 720 e la aroTHERM plus. È stato testato solo con un adattatore simulato su un TapHome Core 2025.2 locale, non con un adattatore, un regolatore o una pompa di calore reali, e l’esperienza sul campo è benvenuta. Scarica l’XML da questa pagina o dal portale TapHome: Vaillant aroTHERM plus + VRC 720 — template della community, e importalo come nuovo modulo.

Il template completa il template ufficiale TapHome eBUS Adapter Shield C6 Stick, che tramite MQTT mostra lo stato dell’adattatore stesso (segnale del bus, servizio, temperatura); i due possono funzionare insieme. Non ha nulla a che fare con il template della community per il ventilconvettore Vaillant aroVAIR, che usa Modbus RTU.

Cosa serve

  • Vaillant aroTHERM plus con il regolatore sensoCOMFORT VRC 720 sull’eBUS.
  • eBUS Adapter Shield C6 o Stick C6 (adapter.ebusd.eu) con il firmware più recente e micro-ebusd attivato. micro-ebusd è una funzione a pagamento dell’adattatore, sbloccata con un token; ogni adattatore riceve una licenza di prova di 30 giorni.
  • L’adattatore e il TapHome Core nella stessa rete locale.

Collegamento hardware

L’adattatore si collega ai due morsetti eBUS del regolatore VRC 720; l’eBUS non ha polarità. La aroTHERM plus comunica con il regolatore sullo stesso bus, quindi non serve alcun filo verso l’unità esterna. Prima di lavorare sui morsetti del regolatore togli l’alimentazione di rete.

Collega l’adattatore alla rete locale come descritto nella sua documentazione e riserva il suo indirizzo IP nel router, così TapHome lo raggiunge sempre.

Configurazione

Attivare micro-ebusd

  1. Aggiorna l’adattatore al firmware più recente (adapter.ebusd.eu).
  2. Ottieni un token micro-ebusd su token.ebusd.eu (una licenza di prova di 30 giorni per adattatore, poi a pagamento) e inseriscilo nell’interfaccia web dell’adattatore.
  3. Dopo l’attivazione l’API HTTP JSON risponde su http://<adapter-ip>/api/v1/ebus.

Trovare i nomi dei circuiti

micro-ebusd indirizza ogni valore per circuito e nome del messaggio. Apri http://<adapter-ip>/api/v1/ebus/list nel browser: elenca i circuiti e i messaggi che l’adattatore ha trovato sul bus. Il regolatore sensoCOMFORT VRC 720 compare, a seconda della versione, come ctlv2, ctlv3 o 720, l’unità esterna della aroTHERM plus come hmu. La finestra di importazione indica anche 700 per il VRC 700; il template è stato scritto sulle definizioni dei messaggi del VRC 720.

Parametri di importazione

ParametroValore predefinitoDescrizione
ADAPTER_IP(vuoto)Indirizzo IP dell’adattatore eBUS
CONTROLLER_CIRCUITctlv2Nome del circuito del regolatore da /api/v1/ebus/list
HEAT_SOURCE_CIRCUIThmuNome del circuito dell’unità esterna della aroTHERM plus

L’importazione crea due moduli sullo stesso adattatore: sensoCOMFORT VRC 720 (ctlv2) con otto dispositivi e aroTHERM plus (hmu) con il contatore elettrico della pompa di calore.

Funzionalità dei dispositivi

Temperature e pressione

  • Temperatura esterna — temperatura esterna come la mostra il VRC 720.
  • Temperatura di mandata — temperatura di mandata dell’impianto (mandata del riscaldamento).
  • Pressione dell’acqua — pressione dell’acqua dell’impianto di riscaldamento in bar (sola lettura).

Zona 1

  • Termostato zona 1 — temperatura ambiente e il setpoint che il regolatore usa davvero. Un setpoint impostato in TapHome (5–30 °C) viene inviato come quick veto: una modifica temporanea, il programma orario del regolatore resta invariato. Dopo la scrittura il template rilegge il valore dal bus.
  • Modalità di funzionamento zona 1 — Spento, Auto (programma orario), Manuale / Giorno e Notte. Il template invia i nomi della definizione ebusd (off, auto, day, night). Sul VRC 720 la modalità day è la sua modalità manuale e il VRC 720 non ha una modalità notte.

Acqua calda

  • Termostato acqua calda sanitaria — temperatura del bollitore e setpoint dell’acqua calda, regolabile da 35 a 75 °C.
  • Modalità acqua calda sanitaria — Spento, Auto, Giorno o Notte.
  • Carica singola acqua calda — l’accensione avvia la carica; a bollitore carico il regolatore torna da solo in auto e l’interruttore mostra di nuovo spento.

Elettricità della pompa di calore

Il modulo aroTHERM plus (hmu) ha un solo dispositivo, Contatore elettrico della pompa di calore, un contatore dell’unità esterna:

  • Potenza — potenza elettrica attuale della pompa di calore in kW.
  • Consumo totale — consumo totale di elettricità della pompa di calore in kWh. Il contatore è un numero a 16 bit (al massimo 65535 kWh), quindi su un’unità in funzione da molti anni può essere già ripartito da zero.

Mostra anche tre attributi di servizio:

Attributo di servizioDescrizione
COP (riscaldamento)Coefficiente di prestazione della pompa di calore in riscaldamento
Resa termica totale [kWh]Resa termica totale della pompa di calore — energia termica, non elettricità
Stato operativoStato indicato dall’unità esterna: ready, heating, cooling, heating_water o error

Errori del regolatore

Il modulo sensoCOMFORT VRC 720 (ctlv2) legge a ogni ciclo gli errori attuali del regolatore. Per ciascuno dei suoi cinque campi di errore diverso da zero, il modulo mostra un errore con il numero dell’errore, ad esempio Controller error code: 1025.

Come il template comunica con l’adattatore

Ogni valore è un messaggio della definizione ebusd. Il template lo legge con GET /api/v1/ebus/{circuit}/{message}/get?from=1, che risponde dalla cache dell’adattatore o interroga il bus, e prende data.fields.value dalla risposta. Una scrittura è PUT /api/v1/ebus/{circuit}/{message}/set con il corpo {"fields":{"value":…}}, seguita da una lettura con from=2, che interroga sempre il bus. I moduli e tutti i dispositivi leggono ogni 60 s.

Nessun dispositivo scrive qualcosa all’avvio del TapHome Core: prendono il loro stato dall’adattatore, non dall’ultimo valore in TapHome.

Alcune versioni del firmware del VRC 720 confermano una scrittura senza eseguirla. Poiché il template rilegge il valore dal bus dopo ogni scrittura, TapHome mostra poi il valore che il regolatore usa davvero, non quello che hai impostato.

Cosa il template non fa

  • I parametri dell’installatore (curva di riscaldamento, temperatura massima di mandata) sono esclusi di proposito — il template non modifica le impostazioni dell’installatore del regolatore.
  • Il raffrescamento della zona 1, le zone 2 e 3 e il programma orario settimanale non fanno parte del template.
  • Altri valori dell’unità esterna (temperatura dell’aria aspirata, utilizzo del compressore, potenza termica attuale) sono disponibili sul bus ma non vengono letti.

Risoluzione dei problemi

Nessun valore

Verifica che micro-ebusd sia attivato e che il token non sia scaduto: senza micro-ebusd l’adattatore non risponde su /api/v1/ebus. Verifica che http://<adapter-ip>/api/v1/ebus/list si apra nel browser.

I dispositivi del regolatore non mostrano alcun valore

Il nome del circuito non corrisponde. Apri http://<adapter-ip>/api/v1/ebus/list, trova il nome del regolatore (ctlv2, ctlv3 o 720) e dell’unità esterna (hmu) e importa di nuovo il template con questi nomi.

Un setpoint o una modalità torna al vecchio valore

Il regolatore non ha eseguito la scrittura; TapHome mostra il valore riletto dal bus. Verifica la modalità di funzionamento della zona e il firmware del regolatore.

Errore del modulo Controller error code: …

Il regolatore segnala un errore con questo numero. Cercalo nella documentazione del regolatore o della pompa di calore; l’errore del modulo scompare quando il regolatore lo cancella.

Dispositivi disponibili

sensoCOMFORT VRC 720 (ctlv2) Modulo

sensoCOMFORT VRC 720 (ctlv2)

Lettura (modulo)
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
Temperatura esterna Sensore di temperatura Solo lettura

Temperatura esterna come la mostra il regolatore VRC 720

numeric Unità: °C

Temperatura esterna

Lettura temperatura
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);
Termostato zona 1 Termostato

Temperatura ambiente e setpoint attivo della zona 1; un nuovo setpoint viene inviato come quick veto — una modifica temporanea, il programma orario resta invariato

numeric Unità: °C

Termostato zona 1

Lettura temperatura
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);
Lettura temperatura desiderata
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);
Scrittura temperatura desiderata
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");
Modalità di funzionamento zona 1 Interruttore multivalore

Modalità di funzionamento della zona 1 — Spento, Auto (programma orario), Manuale / Giorno o Notte; sul VRC 720 la modalità day è quella manuale e la modalità notte non esiste

enum numeric
Valori / Stati: Spento · Auto · Manuale / Giorno · Notte

Modalità di funzionamento zona 1

Lettura stato interruttore
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);
Scrittura stato interruttore
# 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
Termostato acqua calda sanitaria Termostato

Temperatura del bollitore e setpoint dell'acqua calda, regolabile da 35 a 75 °C

numeric Unità: °C

Termostato acqua calda sanitaria

Lettura temperatura
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);
Lettura temperatura desiderata
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);
Scrittura temperatura desiderata
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");
Modalità acqua calda sanitaria Interruttore multivalore

Modalità di funzionamento del circuito dell'acqua calda — Spento, Auto, Giorno o Notte

enum numeric
Valori / Stati: Spento · Auto · Giorno · Notte

Modalità acqua calda sanitaria

Lettura stato interruttore
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);
Scrittura stato interruttore
# 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
Carica singola acqua calda Interruttore

Carica singola dell'acqua calda — l'accensione avvia la carica, a bollitore carico il regolatore torna da solo in auto

boolean
Valori / Stati: Active · OFF

Carica singola acqua calda

Lettura stato interruttore
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);
Scrittura stato interruttore
# 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");
Temperatura di mandata Sensore di temperatura Solo lettura

Temperatura di mandata dell'impianto (mandata del riscaldamento) indicata dal regolatore VRC 720

numeric Unità: °C

Temperatura di mandata

Lettura temperatura
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);
Pressione dell'acqua Variabile Solo lettura

Pressione dell'acqua dell'impianto di riscaldamento in bar

numeric Unità: bar

Pressione dell'acqua

Lettura
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);
Connessione: Packet Parser → HTTP
Possibili miglioramenti (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.

Fonti

  • 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

Hai trovato un problema con questo template?

Dicci cosa non funziona, cosa manca o come dovrebbe comportarsi il template. Il tuo feedback ci aiuta a mantenere il catalogo accurato.

Community — non revisionato

Vuoi usarlo nel tuo TapHome Core?

Apri questo template nel Customer Portal per applicarlo a una delle tue case, o crea una proposta di modifica e inviala al catalogo.

Apri nel portale