The mqtt prefix is configurable within AquaMQTT/include/config/ExampleConfiguration.h
:
constexpr char mqttPrefix[] = "prefix/";
Using the prefix, the $root
topic is created, which is $prefix/aquamqtt/
and used by all of the below messages.
Value | MQTT Topic | Format | Unit | Other Information |
---|---|---|---|---|
Last Will | $root/stats/lwlState |
Enum | ONLINE, OFFLINE -- retained | |
OperationMode | $root/stats/aquamqttMode |
Enum | LISTENER, MITM | |
Active Overrides (HMI) | $root/stats/activeOverrides |
json | Active Overrides are flagged either with 1 (overridden) or 0 (not overridden) Example Payload: { "operationMode": 0, "operationType": 0, "waterTempTarget": 0, "heatingElementEnabled": 0, "emergencyModeEnabled": 0, "configInstallation": 0 , "time/date": 1 } |
|
Active Overrides (MAIN) | $root/stats/activeOverridesMain |
json | Active Overrides are flagged either with 1 (overridden) or 0 (not overridden) Example Payload: { "statePV": 1, "stateSolar": 1 } |
|
Override Modes | $root/stats/overrideMode |
Enum | STANDARD , PV HP , PV HE or PV BOOST . See README-PV.md for additional information. |
|
Flag PV heat pump | $root/stats/flagPVModeHeatPump |
bool | Status of the pv heat pump flag. See README-PV.md for additional information. | |
Flag PV heat element | $root/stats/flagPVModeHeatElement |
bool | Status of the pv heat element flag. See README-PV.md for additional information. | |
IP Address | $root/stats/ipAddress |
string | e.g. 192.168.188.62 | |
RSSI | $root/stats/rssiDb |
int | dB | |
Message Protocol Version | $root/stats/protocolVersion |
string | LEGACY, NEXT | |
Messages OK | $root/stats/$channel/msgHandled |
uint64 | ||
Messages IGNORED | $root/stats/$channel/msgUnhandled |
uint64 | ||
Messages CRC NOK | $root/stats/$channel/msgCRCNOK |
uint64 | ~~ | |
Dropped Bytes | $root/stats/$channel/droppedBytes |
uint64 | ~~ |
$channel
is either hmi
and main
or listener
depending on the AquaMQTT operation mode.
Value | MQTT Topic | Format | Unit | Other Information | LEGACY | NEXT |
---|---|---|---|---|---|---|
Target Water Temperature | $root/hmi/waterTempTarget |
float | °C | ✔️ | ✔️ | |
Operation Mode | $root/hmi/operationMode |
Enum | AUTO, MAN ECO ON, MAN ECO OFF, BOOST, ABSENCE | ✔️ | ✔️ | |
Operation Type | $root/hmi/operationType |
Enum | TIME WINDOW, ALWAYS ON | ✔️ | ✔️ | |
Operation Time Window A | $root/hmi/timerWindowA |
string | e.g. 22:00-06:00 | ✔️ | ✔️ | |
Operation Time Window B | $root/hmi/timerWindowB |
string | e.g. 04:00-08:00 | ✔️ | ✔️ | |
Current Time | $root/hmi/time |
string | e.g 09:11:59 | ✔️ | ✔️ | |
Current Date | $root/hmi/date |
string | e.g 07.09.2023 | ✔️ | ✔️ | |
Emergency Mode Enabled | $root/hmi/emergencyMode |
bool | ✔️ | ✔️ | ||
Heating Element Enabled | $root/hmi/heatingElementEnabled |
bool | ✔️ | ✔️ | ||
Anti-Legionella Mode | $root/hmi/antiLegionellaPerMonth |
uint8 | 0 (off), 1 (once per month), etc | ✔️ | ✔️ | |
Configuration AirDuct | $root/hmi/configAirduct |
Enum | INT/INT, INT/EXT, EXT/EXT | ✔️ | ✔️ | |
Configuration FanExhaust | $root/hmi/configFanExhaust |
Enum | STOP, LOW SPEED, HIGH SPEED Note: Only available in AirDuct mode INT/EXT | ✔️ | ✔️ | |
Configuration Installation | $root/hmi/configInstallation |
Enum | HEAT PUMP ONLY, BOILER BACKUP / HEAT PUMP PRIORITY, BOILER BACKUP / HEAT PUMP OPTIMIZED, BOILER BACKUP / BOILER OPTIMIZED, BOILER BACKUP / BOILER PRIORITY, HEAT PUMP AND SOLAR BACKUP | ✔️ | ✔️ | |
HMI SetupState | $root/hmi/setupState |
Enum | OK, PARTIAL RESET, FACTORY RESET | ✔️ | ❌ | |
PV Input Activated | $root/hmi/pvInputActivated |
bool | ✔️ | ✔️ | ||
Raw Message (Debug Mode Only) | $root/hmi/debug |
string | ✔️ | ✔️ |
Value | MQTT Topic | Format | Unit | Other Information | LEGACY | NEXT |
---|---|---|---|---|---|---|
Present Error Code | $root/main/errorCode |
uint8 | 0 if there is no present error, else the error-code | ✔️ | ❌ | |
Current Water Temperature | $root/main/waterTemp |
float | °C | ✔️ | ✔️ | |
Supply Air Temperature | $root/main/supplyAirTemp |
float | °C | ✔️ | ✔️ | |
Lower Evaporator Air Temperature | $root/main/evaporatorAirTempLower |
float | °C | ✔️ | ✔️ | |
Upper Evaporator Air Temperature | $root/main/evaporatorAirTemp |
float | °C | ✔️ | ✔️ | |
Compressor Outlet Temperature | $root/main/compressorOutletTemp |
float | °C | ❌ | ✔️ | |
Fan-Level PWM | $root/main/fanPWM |
float | % | ✔️ | ✔️ | |
State: Fan On/Off | $root/main/stateFan |
bool | ✔️ | ✔️ | ||
State: Heatpump On/Off | $root/main/stateHeatpump |
bool | ✔️ | ✔️ | ||
State: Heating Element On/Off | $root/main/stateElement |
bool | ✔️ | ✔️ | ||
State: Boiler Backup On/Off | $root/main/stateExtBoiler |
bool | ✔️ | ✔️ | ||
State: Defrost On/Off | $root/main/stateDefrost |
bool | ✔️ | ✔️ | ||
State: Solar Input Signal Detected | $root/main/stateSolar |
bool | ✔️ | ✔️ | ||
State: PV Input Signal Detected | $root/main/statePV |
bool | ✔️ | ✔️ | ||
Setting: 1st Fan-Level PWM | $root/main/settingPWM_1 |
uint8 | % | ✔️ | ❌ | |
Setting: 2nd Fan-Level PWM | $root/main/settingPWM_2 |
uint8 | % | ✔️ | ❌ | |
Setting: 3rd Fan-Level PWM | $root/main/settingPWM_3 |
uint8 | % | ✔️ | ❌ | |
Setting: Min. Target Temp | $root/main/settingMinTargetTemp |
uint8 | °C | ✔️ | ❌ | |
Setting: Min. Anti-Legionella Temp | $root/main/settingMinLegionellaTemp |
uint8 | °C | ✔️ | ❌ | |
Setting: Wattage Heat Element | $root/main/settingWattageElement |
uint16 | W | ✔️ | ❌ | |
Setting: Boiler Capacity | $root/main/settingBoilerCapacity |
uint16 | l | ✔️ | ❌ | |
Setting: Boiler Brand | $root/main/settingBoilerBrand |
Enum | Atlantic, Thermor, Sauter, No Name | ✔️ | ❌ | |
Capability: Has Heat Exchanger | $root/main/capabilityHeatExchanger |
bool | ✔️ | ❌ | ||
Capability: Has Circulation | $root/main/capabilityCirculation |
bool | ✔️ | ❌ | ||
Capability: Has PV-Input | $root/main/capabilityPVInput |
bool | ✔️ | ❌ | ||
Capability: Has Communication | $root/main/capabilityCommunication |
bool | ✔️ | ❌ | ||
Capability: Has Anti-Dry-Heating | $root/main/capabilityAntiDryHeating |
bool | ✔️ | ❌ | ||
Raw Message (Debug Mode Only) | $root/main/debug |
string | ✔️ | ✔️ |
Value | MQTT Topic | Format | Unit | Other Information | LEGACY | NEXT |
---|---|---|---|---|---|---|
Total Heatpump Hours | $root/energy/totalHeatpumpHours |
uint32 | h | retained | ✔️ | ✔️ |
Total Heating Element Hours | $root/energy/totalHeatingElemHours |
uint32 | h | retained | ✔️ | ✔️ |
Total Hours | $root/energy/totalHours |
uint32 | h | retained | ✔️ | ❌ |
Total Energy | $root/energy/totalEnergyWh |
uint64 | Wh | ✔️ | ✔️ | |
Total Water Production | $root/energy/totalWaterProduction |
uint16 | l | Note: Expected to wrap-around at UINT16_MAX | ✔️ | ❌ |
Current Power Heatpump | $root/energy/powerHeatpump |
uint16 | W | Note: It is possible to define an additional custom mqtt topic for this attribute within Configuration.h |
✔️ | ❌ |
Current Power Heating Element | $root/energy/powerHeatingElem |
uint16 | W | Note: It is possible to define an additional custom mqtt topic for this attribute within Configuration.h |
✔️ | ❌ |
Current Power Total | $root/energy/powerTotal |
uint16 | W | ✔️ | ✔️ | |
Observed Maximum Air Temperature | $root/energy/diagAirTempMax |
int8 | °C | ❌ | ✔️ | |
Observed Minimum Air Temperature | $root/energy/diagAirTempMin |
int8 | °C | ❌ | ✔️ | |
Observed Maximum Evaporator Upper Temperature | $root/energy/diagEvaUpperMax |
int8 | °C | ❌ | ✔️ | |
Observed Minimum Evaporator Upper Temperature | $root/energy/diagEvaUpperMin |
int8 | °C | ❌ | ✔️ | |
Observed Maximum Evaporator Lower Temperature | $root/energy/diagEvaLowerMax |
int8 | °C | ❌ | ✔️ | |
Observed Minimum Evaporator Lower Temperature | $root/energy/diagEvaLowerMin |
int8 | °C | ❌ | ✔️ | |
Observed Maximum Compressor Outlet Temperature | $root/energy/diagCompressorMax |
int8 | °C | ❌ | ✔️ | |
Observed Minimum Compressor Outlet Temperature | $root/energy/diagCompressorMin |
int8 | °C | ❌ | ✔️ | |
Observed Maximum Water Temperature | $root/energy/diagWaterTempMax |
int8 | °C | ❌ | ✔️ | |
Observed Minimum Water Temperature | $root/energy/diagWaterTempMin |
int8 | °C | ❌ | ✔️ | |
Raw Message (Debug Mode Only) | $root/energy/debug |
string | ❌ | ✔️ |
Collected Error Messages are provided to mqtt, the latest/recent occurred error is always error number == 1. The values within the message reflect the state when the error has been created.
Value | MQTT Topic | Format | Unit | Other Information | LEGACY | NEXT |
---|---|---|---|---|---|---|
Error Number | $root/error/%requestId/errorNumber |
uint8 | ✔️ | ✔️ | ||
Error Code | $root/error/%requestId/errorCode |
uint8 | ✔️ | ✔️ | ||
Date | $root/error/%requestId/date |
string | e.g. 25.5.2024 | ✔️ | ❌ | |
Time (hh:ss) | $root/error/%requestId/time |
string | e.g. 21:29 | ✔️ | ❌ | |
Water Temperature | $root/error/%requestId/waterTemp |
float | ✔️ | ❌ | ||
Lower Evaporator Air Temperature | $root/error/%requestId/evaporatorAirTempLower |
float | ✔️ | ❌ | ||
Upper Evaporator Air Temperature | $root/error/%requestId/evaporatorAirTemp |
float | ✔️ | ❌ | ||
Fan-Level PWM | $root/error/%requestId/fanPWM |
uint8 | % | ✔️ | ❌ | |
Total Heatpump Hours | $root/error/%requestId/totalHeatpumpHours |
uint16 | ✔️ | ❌ | ||
Total Heating Element Hours | $root/error/%requestId/totalHeatingElemHours |
uint16 | ✔️ | ❌ | ||
Raw Message (Debug Mode Only) | $root/error/debug |
string | ✔️ | ✔️ |
Using this topics you may override the HMI Controller in AquaMQTT OperationMode Man-In-The-Middle. Currently these are the only ones implemented. If you need more overrides, feel free to raise an issue or even provide an PR.
Value / Action | MQTT Topic | Format | Unit | Example Payload | Other Information |
---|---|---|---|---|---|
Target Water Temperature | $root/ctrl/waterTempTarget |
float | °C | "55.0 " |
Overrides the water temperature target: Allowed range is from 20°C to 62°C. |
Operation Mode | $root/ctrl/operationMode |
Enum | "BOOST " |
Overrides the operation mode, may affect the waterTempTarget. For example BOOST and ABSENCE will automatically set the waterTempTarget accordingly. | |
Operation Type | $root/ctrl/operationType |
Enum | "ALWAYS ON " |
Overrides the operation type | |
Installation Config | $root/ctrl/configInstallation |
Enum | "HEAT PUMP ONLY ", "BOILER BACKUP / HEAT PUMP PRIORITY" ", "... " |
Overrides the installation config | |
AirDuct Config | $root/ctrl/configAirduct |
Enum | "INT/INT ", "INT/EXT ", "EXT/EXT " |
Overrides the air duct config | |
FanExhaust Config | $root/ctrl/configFanExhaust |
Enum | "STOP ", "LOW SPEED ", "HIGH SPEED " |
Overrides the fan exhaust config. Note: This will only have an effect in AirDuct mode INT/EXT | |
Enable or disable heating element | $root/ctrl/heatingElementEnabled |
bool | "1 " |
Allow the DHW heat pump to use the heating element if needed. Sanity: It is not possible to disable the heating element in case emergency mode is enabled. | |
Enable or disable emergency mode | $root/ctrl/emergencyModeEnabled |
bool | "0 " |
Forces the DHW heat pump to use only the heating element. Sanity: it is not possible to enable emergency mode if heating element has been disabled. | |
Set PV Mode Heat Pump Flag | $root/ctrl/flagPVModeHeatPump |
bool | "1 " |
See README-PV.md additional information. Note: It is possible to define an additional custom mqtt topic for this attribute within Configuration.h |
|
Set PV Mode Heat Element Flag | $root/ctrl/flagPVModeHeatElement |
bool | "1 " |
See README-PV.md for additional information. Note: It is possible to define an additional custom mqtt topic for this attribute within Configuration.h |
|
Reset Overrides | $root/ctrl/reset |
Void | Removes all previous set overrides. |
Note: Calling a ctrl
topic with an empty payload ""
will reset individual override.