Communication / MQTT
MiniHPC is capable of sending measured data and adjusting its settings via the MQTT protocol.
To enable this feature, it is first necessary to configure MiniHPC's access to the local MQTT broker. After opening the device's IP address, select the MQTT menu. You will be prompted to enter the username and password, which are provided in the 9.2 WiFi AP menu.
: turns MiniHPC's access to the configured MQTT broker on or off. : the IP address of the MQTT broker on the local network. : the TCP port of the MQTT broker. : the username for accessing the MQTT broker. : the password for accessing the MQTT broker. : an optional name for the initial topic on which MiniHPC will send measured data and listen for configuration changes. If there are multiple MiniHPC devices on the MQTT network, it is necessary to choose a unique root topic for each device. : the topic on which MiniHPC listens and, once any content is detected, sends the entire configuration and all measured data to the MQTT server (typically upon a Home Assistant restart). : determines the time intervals at which MiniHPC sends measured data to the MQTT server.For viewing all available data, we recommend the MQTT explorer application.
- displays the measured data. The data is updated only when a change occurs for the given item. All measured data will be displayed upon MiniHPC startup or whenever any setting is changed in MiniHPC.
- displays the current MiniHPC configuration.
- topic for sending configuration changes. Changes will only be allowed if permissions are enabled in the 9.4 Permissions menu.
- topic for sending a configuration change that will be applied but not saved to MiniHPC's memory. MiniHPC's memory has a limited number of write cycles, and under normal use, it does not get damaged. However, if an automated script is used to modify parameters multiple times per minute, it is recommended to use this topic. The change will only be allowed if permissions are enabled in the menu 9.4 Permissions
- topic for sending external sensor values. Changes will only be allowed if permissions are enabled in the 9.4 Permissions menu.
For the set and setsensor topics, you can send a single value or a set of values in JSON format.
Description of the Data Output from the MQTT Topic miniHPC/data/# or the file data.json
Name | Multiplier | Description |
---|---|---|
t1 | 1°C | Temperature T1 |
t2 | 1°C | Temperature T2 |
t3 | 1°C | Temperature T3 |
t4 | 1°C | Temperature T4 |
t5 | 1°C | Temperature T5 |
t6 | 1°C | Temperature T6 |
tout | 1°C | External temperature |
tsuc | 1°C | Temperature at the evaporator |
texh | 1°C | Temperature at the compressor discharge |
outMode | -- | Outdoor unit mode: Cool-, Dry-, Fan-, Heat- |
outState | -- | Compressor state: 0 - off; 1 - on |
outFrequency | 1Hz | Compressor frequency |
outFan | 1RPM | Speed of the outdoor unit's fan |
outPower | 1W | Compressor power consumption |
outEEV | -- | Position of the expansion valve |
outDCbus | 1V | Voltage at the inverter output |
outDefrost | 1/0 | Defrost status |
outDCcurrent | 1A | Current drawn by the compressor |
flow | 1l/min | Flow of the heating water |
tset | 1°C | Set temperature by the regulator |
tIDUroom | 1°C | Tpreset from the 4.1 Outdoor unit menu |
tIDUset | 1°C | Tamb from the 4.1 Outdoor unit menu |
R1 | 1/0 | Relay R1 status |
R2 | 1/0 | Relay R2 status |
R3 | 1/0 | Relay R3 status |
R4 | 1/0 | Relay R4 status |
R5 | 1/0 | Relay R5 status |
S1 | 1/0 | Input S1 status |
S2 | 1/0 | Input S2 status |
pwrOutHP | 1W | Current output energy of the heat pump |
heatTimeHP | 1s | Compressor runtime during heating |
heatTimeELH | 1s | Runtime of the electric auxiliary heater on R2 |
heatTimeDefr | 1s | Total defrosting time |
heatCountHP | 1x | Number of compressor starts during heating |
heatCountELH | 1x | Number of electric heater activations on R2 |
heatCountDefrost | 1x | Number of defrost cycles |
coolTimeHP | 1s | Compressor runtime during cooling |
coolCountHP | 1x | Number of compressor starts during cooling |
dhwLegTime | 1s | Time of the last anti-legionella heating (since 1.1.1970) |
dhwTimeHP | 1s | Compressor runtime during TPV heating |
dhwTimeELH | 1s | Electric TPV heating runtime via relay R1 |
dhwCountHP | 1x | Number of compressor starts during TPV heating |
dhwCountELH | 1x | Number of relay R1 activations for electric TPV heating |
heatPwrIn | 1mWh | Electrical energy consumed for heating |
coolPwrIn | 1mWh | Electrical energy consumed for cooling |
dhwPwrIn | 1mWh | Electrical energy consumed for TPV heating |
heatPwrOutHP | 1mWh | Thermal energy produced for heating |
heatPwrOutELH | 1mWh | Thermal energy produced by electric auxiliary heating for heating |
coolPwrOut | 1mWh | Thermal energy removed by cooling |
dhwPwrOut | 1mWh | Thermal energy produced for TPV heating |
BTtemp | 1°C | BT sensor temperature |
BThum | 1% | BT sensor relative humidity |
BTbat_mv | 1mV | BT sensor battery voltage |
BTbat_lev | 1% | BT sensor battery level |
BTrssi | 1dBm | BT sensor signal strength |
Description of the Configuration from the MQTT Topic miniHPC/config/# or the file config.json
Setting (key) | Default | Min | Max | Multiplier | Description |
---|---|---|---|---|---|
mode | 0 | 0 | 2 | -- | Mode: 0 - off; 1 - Heating; 2 - Cooling |
heating_onoff_input | 0 | 0 | 3 | -- | 1.1 Enable heating based on: 0 - Always on; 1 - Thermostat S2; 2 - Flow meter S1/I1; 3 - T1 as thermostat |
heating_reg_input | 1 | 0 | 2 | -- | 1.2 Temperature regulation based on: 0 - T1 room temperature; 1 - T2/T3 fixed output; 2 - T2/T3 output/equithermal |
heating_t1_hysteresis | 5 | 1 | 50 | 0.1°C | 1.1 T1 as thermostat - hysteresis |
heating_reg_temp | 2 | 2 | 3 | -- | 1.2 Temperature regulation: 2 - T2; 3 - T3 |
temperature_T1 | 250 | 100 | 300 | 0.1°C | 1.2 / 2.2 T1 - room temperature |
temperature_T3 | 35 | 15 | 55 | 1°C | 1.2 T2/T3 - output water/fixed - heating |
temperature_T3_cool | 20 | 10 | 25 | 1°C | 2.2 T2/T3 - output water/fixed - cooling |
heating_eqtr_m10 | 40 | 20 | 50 | 1°C | 1.3 T2/T3 temperature at -10°C outside |
heating_eqtr_p10 | 25 | 20 | 50 | 1°C | 1.3 T2/T3 temperature at +10°C outside |
heating_eqtr_offset | 0 | -9 | 9 | 1°C | 1.3 Custom equithermal offset |
heating_eqtr_avg | 24 | 0 | 24 | 1h | 1.3 Averaging of the external temperature |
heating_eqtr_t1off | 0 | 0 | 100 | 0.1x°C | 1.3 T2/T3 offset based on T1 |
heating_schedule_time | 360,720,1020,1320 | 0 | 1439 | 1 min | 1.4 Timer - times |
heating_schedule_offset | 0,0,0,0 | -100 | 100 | 0.1°C | 1.4 Timer - offsets |
heating_schedule_affect | 7 | 0 | 7 | -- |
1.4 Timer - affects
Bit mask: 1 - T1, 2 - T2/T3, 4 - Eqtr |
heating_elh_mode | 0 | 0 | 3 | -- | 1.5 Electric heating R2 - mode: 0 - HP; 1 - HP+EH; 2 - HP/EH; 3 - EH |
heating_elh_out_temp | -5 | -20 | 20 | 1°C | 1.5 Electric heating outdoor temperature |
heating_elh_delay | 120 | 10 | 600 | 1min | 1.5 Delay for electric heating activation |
heating_elh_offset | 20 | 1 | 50 | 0.1°C | 1.5 Electric heating - hysteresis |
heating_pump_delay | 60 | 5 | 3600 | 1sec | 1.6 R3 pump - delay time for turning off heating |
cooling_onoff_input | 0 | 0 | 3 | -- | 2.1 Enable cooling based on: 0 - Always on; 1 - Thermostat S2; 2 - Inverted Thermostat S2; 3 - T1 as thermostat |
cooling_reg_input | 0 | 0 | 1 | -- | 2.2 Cooling regulation based on: 0 - T1 room temperature; 1 - T3 output water/fixed |
cooling_t1_hysteresis | 5 | 1 | 50 | 0.1°C | 2.1 T1 as thermostat - hysteresis |
cooling_schedule_time | 360,720,1020,1320 | 0 | 1439 | 1 min | 2.3 Timer - times |
cooling_schedule_offset | 0,0,0,0 | -100 | 100 | 0.1°C | 2.3 Timer - offsets |
cooling_pump_delay | 60 | 5 | 3600 | 1sec | 2.4 R3 pump - delay time for turning off cooling |
cooling_3wayV | 1 | 0 | 1 | -- | 2.5 3-way valve R5 for cooling: 0 - Off; 1 - On |
cooling_bt_enable | 0 | 0 | 1 | -- | 2.6 Read BT sensor: 0 - Off; 1 - On |
cooling_dp_offset | 0 | -100 | 100 | 0.1°C | 2.6 Dew point offset for cooling |
ntc_t1_by_bt | 0 | 0 | 1 | -- | 2.6 Replace T1 NTC temperature with BT temperature: 0 - Off; 1 - On |
dhw_onoff | 0 | 0 | 1 | -- | 3.1 Domestic Hot Water (DHW) heating: 0 - Off; 1 - On |
dhw_temp_diff | 20 | 5 | 50 | 1°C | 3.1 Switching differential |
dhw_temp_target | 55 | 20 | 80 | 1°C | 3.1 Target DHW temperature |
dhw_schedule_time | 360,720,1020,1320 | 0 | 1439 | 1 min | 3.2 Timer - times |
dhw_schedule_offset | 0,0,0,0 | -20 | 20 | 1°C | 3.2 Timer - offsets |
dhw_schedule_affect | 1 | 0 | 3 | -- |
3.2 Timer - affects
1 - Target temperature; 2 - Switching differential; 3 - both |
dhw_al_frequency | 7 | 1 | 30 | 1 day | 3.3 Anti-legionella - frequency |
dhw_al_day | 6 | 1 | 7 | -- |
3.3 Day of the week
1 - Monday; 2 - Tuesday; 3 - Wednesday; 4 - Thursday; 5 - Friday; 6 - Saturday; 7 - Sunday |
dhw_al_time | 120 | 0 | 1439 | 1 min | 3.3 Time - minute |
dhw_al_temp | 65 | 10 | 80 | 1°C | 3.3 Target temperature |
dhw_temp_hp | 45 | 20 | 55 | 1°C | 3.4 Max DHW temperature T5 for HP |
dhw_hp_time | 90 | 30 | 240 | 1min | 3.4 Max HP runtime |
dhw_temp_t6 | 56 | 20 | 60 | 1°C | 3.4 Max T6 temperature |
dhw_pump_delay | 60 | 5 | 3600 | 1sec | 3.5 R3 pump - delay time for turning off DHW |
dhw_elh_mode | 0 | 0 | 2 | -- | 3.6 Electric heating - mode: 0 - only R1; 1 - turn on R1+R3+R4; 2 - turn on R2+R3+R4 |
flow_imp | 476 | 1 | 1000 | 1imp/l | 7.3 Flow meter calibration |
power_input | 0 | 0 | 2 | -- | 7.4 Input electrical energy: 0 - Outdoor unit; 1 - External meter on S1; 2 - External meter on S2 |
odu_power_calib | 0 | -100 | 100 | 0.5% | 7.4 Outdoor unit power calibration |
power_input_pulses | 10 | 1 | 100 | 100pulses/kWh | 7.4 External meter calibration for S1/S2 |
cal_idu_heat_pid | 0 | 0 | 1 | -- | 7.5 Ragulation 0-IDU sim; 1-PID |
cal_idu_heat_pidMinF | 30 | 15 | 85 | 1 | 7.5 Min frequency |
cal_idu_heat_pidMaxF | 85 | 30 | 120 | 1 | 7.5 Max frequency |
cal_idu_heat_pidP | 50 | 0 | 255 | 1 | 7.5 P |
cal_idu_heat_pidI | 12 | 0 | 255 | 1 | 7.5 I |
cal_idu_heat_pidD | 10 | 0 | 255 | 1 | 7.5 D |
cal_idu_heat_preset | 22 | 16 | 30 | 1°C | 7.5 Preset temperature |
cal_idu_heat_offset | 6 | 2 | 10 | 0.5°C | 7.5 Temperature offset |
cal_idu_heat_uplimit | 6 | 1 | 10 | 0.5°C | 7.5 Upper limit |
cal_idu_heat_downlimit | 10 | 2 | 20 | 0.5°C | 7.5 Lower limit |
cal_idu_heat_gain | 10 | 1 | 30 | 0.1 | 7.5 Temperature gain |
cal_idu_cool_preset | 22 | 16 | 30 | 1°C | 7.6 Preset temperature |
cal_idu_cool_offset | 0 | -4 | 2 | 0.5°C | 7.6 Temperature offset |
cal_idu_cool_uplimit | 10 | 2 | 10 | 0.5°C | 7.6 Upper limit |
cal_idu_cool_downlimit | 10 | 2 | 10 | 0.5°C | 7.6 Lower limit |
cal_idu_cool_gain | 10 | 1 | 30 | 0.1 | 7.6 Temperature gain |
cal_idu_dhw_preset | 30 | 20 | 30 | 1°C | 7.7 Preset temperature |
cal_idu_dhw_offset | -10 | -20 | 10 | 0.5°C | 7.7 Temperature offset |
cal_idu_dhw_ff | 0 | 30 | 120 | 1 | 7.7 Fixed frequency 0-IDU sim; >30-FF |
protect_fs | 2 | 0 | 3 | -- |
8.1 Flow protection
Bit mask: 1 - Flow switch S1, 2 - Flow sensor I1 |
protect_fselm | 50 | 20 | 250 | 0.1l/min | 8.1 Flow sensor I1 limit |
protect_fs_time | 60 | 1 | 240 | 1sec | 8.1 Time without protection at startup |
protect_defr_t3 | 100 | 50 | 250 | 0.1°C | 8.2 Minimum temperature T3 |
protect_anfreeze_t6 | 50 | 20 | 250 | 0.1°C | 8.2 Activate R3 pump below T6 temperature |
protect_anblock_r3t | 10 | 0 | 60 | 1sec | 8.3 Protection against R3 blockage - time |
protect_anblock_r3d | 3 | 1 | 30 | 1days | 8.3 Protection against R3 blockage - delay |
protect_anblock_r4t | 60 | 0 | 60 | 1sec | 8.3 Protection against R4 blockage - time |
protect_anblock_r4d | 3 | 1 | 30 | 1days | 8.3 Protection against R4 blockage - delay |
protect_anblock_r5t | 60 | 0 | 60 | 1sec | 8.3 Protection against R5 blockage - time |
protect_anblock_r5d | 3 | 1 | 30 | 1days | 8.3 Protection against R5 blockage - delay |
protect_overload | 0 | 0 | 1 | -- | 8.4 Do not turn on R1 and R2 simultaneously: 0 - Off; 1 - On |
odu_heat_relay | 0 | 0 | 5 | -- | 8.5 Relay switching DHW heating: 0 - Off; 1 - R1; 2 - R2; 4 - R4; 5 - R5 |
odu_heat_outt | 0 | -15 | 5 | 1°C | 8.5 Outdoor temperature threshold |
odu_heat_time | 5 | 1 | 60 | 1min | 8.5 Heating time |
odu_heat_adds | 30 | 0 | 240 | 1s/1°C | 8.5 Additional time |
odu_power_limit | 0 | 0 | 2 | -- | 13.2 Outdoor unit power limit: 0 - No limit; 1 - Level 1 (70%); 2 - Level 2 (50%) |
odu_power_limit_time | 0 | 0 | 1 | -- | 13.2 Time-based activation: 0 - Off; 1 - On |
odu_power_limit_from | 1320 | 0 | 1439 | 1 min | 13.2 Start |
odu_power_limit_to | 360 | 0 | 1439 | 1 min | 13.2 End |
odu_night_mode | 0 | 0 | 2 | -- | 13.3 Night mode: 0 - Off; 1 - Always on; 2 - Time-based |
odu_night_mode_from | 1320 | 0 | 1439 | 1 min | 13.3 Start |
odu_night_mode_to | 360 | 0 | 1439 | 1 min | 13.3 End |
Method for Modifying the Configuration via the MQTT Topic miniHPC/set
Individual configuration parameters of MiniHPC can be modified via the MQTT topic miniHPC/set/PARAMETER. Instead of the value PARAMETER, you substitute the specific variable name from the table above.
For example, to send a new value for the output water temperature T3 (variable temperature_T3) to 33°C, send the value 33 to the MQTT topic miniHPC/set/temperature_T3.
If you need to modify several variables at once, you can use the JSON string method and send them to the topic: miniHPC/set/json. For example, to modify the variables dhw_temp_target and dhw_temp_diff in one step, construct the JSON string:
For automated scripts that regularly adjust the configuration, please use the MQTT topic miniHPC/setns/PARAMETER, which applies the change but does not permanently save it to MiniHPC's memory.
Method for Sending Values from External Sensors via MQTT
MiniHPC has the ability to receive values from some sensors via MQTT and thereby replace their physical connection to MQTT. The sent value will be retained in memory for 60 minutes and then will expire. Therefore, it is necessary to send these values regularly at intervals shorter than 1 hour. Ideally, for example, once per minute.
Sensor | Unit | Description |
---|---|---|
T1 | 1.00°C | Replacement of the indoor temperature T1 |
Tout | 1.00°C | Replacement of the external temperature measured by the outdoor unit of the air conditioner |
RH | 1.00% | Indoor relative humidity |
Individual values of external sensors can be sent via the MQTT topic miniHPC/setsensor/SENSOR. Instead of the value SENSOR, you substitute the specific sensor name from the table above.
For example, to send the room temperature T1 value of 24.56°C, send the value 24.56 to the MQTT topic miniHPC/setsensor/T1.
If you need to modify several sensors at once, you can use the JSON string method and send them to the topic: miniHPC/setsensor/json. For example, to send sensors T1 and RH in one step, construct the JSON string: