De bedoeling is niet om Home Assistant te vervangen. Home Assistant blijft de primaire integratie via de native ESPHome API. MQTT is een compacte, publish-only exportlaag voor systemen zoals Node-RED, dashboards, logging, scripts en andere tooling die graag een vaste JSON-stroom leest.
Wat doet MQTT wel?
publiceert compacte status- en telemetry-snapshots;
bewaart optioneel laatste snapshots via retained topics;
laat je broker, gebruiker, wachtwoord, base topic en publish-profiel instellen via de web-app;
biedt een aparte diagnostics-laag voor meer interne context als je die bewust inschakelt.
Wat doet MQTT niet?
geen Home Assistant discovery;
geen entity mirror van alle ESPHome-entiteiten;
geen command-interface in deze fase;
geen vervanging van de native ESPHome API.
Topics
De huidige basis is:
openquatt/statusopenquatt/schemaopenquatt/stateopenquatt/heat_pumpsopenquatt/diagnostics
status, schema, state en heat_pumps zijn bedoeld als de compacte hoofdlaag. diagnostics is optioneel en zwaarder van aard.
Voorbeeld JSON
Een typische hoofd-snapshot ziet er ongeveer zo uit:
{
"schema": "openquatt.state.v1",
"control_mode": "CM3 - Heating",
"strategy": "Power House",
"heat_request": true,
"cool_request": false,
"demand_f": 8,
"outside_temp_c": 4.8,
"room_temp_c": 19.9,
"room_setpoint_c": 20.0,
"supply_temp_c": 31.2,
"supply_target_c": 32.0,
"flow_lph": 780,
"total_power_input_w": 980,
"total_heat_power_w": 4200,
"cop": 4.3,
"fault_active": false
}
De warmtepompdetails komen in een aparte snapshot:
{
"schema": "openquatt.heat_pumps.v1",
"hp1": {
"working_mode": 1,
"working_mode_text": "Heating",
"compressor_level": 5,
"power_input_w": 490,
"heat_power_w": 2100,
"flow_lph": 390,
"water_in_c": 29.6,
"water_out_c": 31.4,
"defrost": false,
"fault_active": false
},
"hp2": {
"working_mode": 1,
"working_mode_text": "Heating",
"compressor_level": 5,
"power_input_w": 500,
"heat_power_w": 2080,
"flow_lph": 395,
"water_in_c": 29.2,
"water_out_c": 31.1,
"defrost": false,
"fault_active": false
}
}
En de optionele diagnostics-laag kan extra interne context geven:
{
"schema": "openquatt.diagnostics.v1",
"strategy_phase": "heat",
"strategy_debug_state": "normal",
"request_reason": "active_cm",
"heating_debug_state": "target_following",
"duo_optimizer_reason": "balanced_load",
"flow_control_mode": "AUTO",
"flow_mode": "selected",
"flow_mismatch": false,
"commissioning_status": "ready",
"flow_autotune_status": "idle",
"firmware_update_status": "idle",
"firmware_update_progress": 0
}
Publish-profielen
OpenQuatt ondersteunt vier profielen:
offessentialstandarddiagnostic
De basisregel is:
essentialpubliceert alleen de hoofdlijn;standardvoegt warmtepompdetails toe;diagnosticvoegt de interne diagnostiek toe.
Instellen via de web-app
Open de web-app via:
http://openquatt.local
Ga daarna naar:
Instellingen -> Systeem -> MQTT
Daar stel je minimaal in:
broker;
poort;
gebruikersnaam;
wachtwoord;
base topic;
publish-profiel;
retain snapshots;
intervals per profiel.
MQTT start standaard uit. Pas na opslaan en expliciet inschakelen probeert OpenQuatt verbinding te maken.
Gebruik voor normaal meekijken liever Home Assistant. MQTT is bedoeld voor extra systemen die een compacte JSON-stroom willen lezen.
Waarom experimenteel?
Omdat deze laag bewust compact is gehouden en nog verder kan veranderen op basis van praktijkgebruik. Dat is beter dan doen alsof de interface al definitief is.
De focus ligt nu op:
stabiliteit;
beperkte berichtvolume;
heldere JSON-contracten;
veilige scheiding tussen telemetry en regeling.