← zurück zur Übersicht · Hardware & Montage · Inbetriebnahme · Debugging
HP-Remote ist nicht auf Home Assistant angewiesen. Die gesamte Kommunikation läuft über einfache MQTT-Topics – damit lässt sich das Gerät aus jeder MQTT-fähigen Umgebung heraus auslesen und steuern: per Kommandozeile, mit grafischen Tools, aus Skripten, Node-RED, ioBroker, openHAB usw.
Dieses Dokument zeigt die direkte Steuerung über MQTT-Bordmittel.
Alle Topics leiten sich vom Basis-Topic ab. Dieses ist frei konfigurierbar; der Standard ist:
heatpump/hp_remote_XXXXXX/state
(XXXXXX = die letzten Stellen der MAC-Adresse). Daraus ergeben sich:
| Topic | Richtung | Inhalt |
|---|---|---|
<BASE> |
ESP → Welt | ausgelesene Display-Werte (JSON, retained) |
<BASE>/touch/cmd |
Welt → ESP | Befehle (Tastendrücke, Shortcuts) |
<BASE>/touch/state |
ESP → Welt | Rückmeldung zum letzten Befehl |
<BASE>/availability |
ESP → Welt | online / offline (LWT) |
<BASE>/health |
ESP → Welt | Health-/Statusdaten (JSON) |
<BASE>/snapshot |
ESP → Welt | aktuelles Kamerabild (JPEG, falls aktiviert) |
Das exakte Topic herausfinden: Beim Verbinden gibt das Gerät im Serial-Log die abonnierte Befehlsadresse aus:
MQTT subscribed: heatpump/hp_remote_a1b2c3/state/touch/cmdGenau auf dieses Topic werden die Befehle gesendet. Wer das Basis-Topic im Webinterface ändert, passt die Beispiele unten entsprechend an.
Das Kommandozeilen-Tool mosquitto_pub (Teil der Mosquitto-Tools) ist der direkteste Weg. Grundform:
mosquitto_pub -h <BROKER> -t '<BASE>/touch/cmd' -m '<JSON>'Mit Authentifizierung:
mosquitto_pub -h <BROKER> -u <USER> -P <PASS> -t '<BASE>/touch/cmd' -m '<JSON>'Annahme: Broker 192.168.1.10, Basis-Topic heatpump/hp_remote_a1b2c3/state.
Einzelner Tastendruck (Temperatur +1):
mosquitto_pub -h 192.168.1.10 \
-t 'heatpump/hp_remote_a1b2c3/state/touch/cmd' \
-m '{"button":"up"}'Mehrfachdruck (5× = +5 °C):
mosquitto_pub -h 192.168.1.10 \
-t 'heatpump/hp_remote_a1b2c3/state/touch/cmd' \
-m '{"button":"up","count":5}'Die Firmware kompensiert automatisch den vom WP-Controller „verschluckten" ersten Druck: Bei
count ≥ 2wird intern ein Druck zusätzlich gesendet, sodasscount:5echte +5 ergibt.
Langer Druck (Settings 5 s, z. B. Parametermenü):
mosquitto_pub -h 192.168.1.10 \
-t 'heatpump/hp_remote_a1b2c3/state/touch/cmd' \
-m '{"button":"settings","duration":5000}'Tastenkombination (Up+Down gleichzeitig 3 s):
mosquitto_pub -h 192.168.1.10 \
-t 'heatpump/hp_remote_a1b2c3/state/touch/cmd' \
-m '{"combo":["up","down"],"duration":3000}'Sequenz (Tasten nacheinander):
mosquitto_pub -h 192.168.1.10 \
-t 'heatpump/hp_remote_a1b2c3/state/touch/cmd' \
-m '{"sequence":["settings","up","up"]}'Benannter Shortcut (z. B. Standby ein/aus):
mosquitto_pub -h 192.168.1.10 \
-t 'heatpump/hp_remote_a1b2c3/state/touch/cmd' \
-m '{"shortcut":"standby"}'Verfügbare Shortcuts: standby, fan, lock, timer, params (Details siehe SETUP.md → Benannte Shortcuts).
Solltemperatur verifiziert setzen (Closed-Loop mit OCR-Kontrolle):
# absolut: exakt auf 58 °C regeln
mosquitto_pub -h 192.168.1.10 \
-t 'heatpump/hp_remote_a1b2c3/state/touch/cmd' \
-m '{"set_temp":58}'
# relativ verifiziert: +5 °C, mit OCR-Kontrolle des Ergebnisses
mosquitto_pub -h 192.168.1.10 \
-t 'heatpump/hp_remote_a1b2c3/state/touch/cmd' \
-m '{"button":"up","count":5,"verify":true}'
# mit auto: bei aktiver Tastensperre selbst entsperren, einstellen, wieder sperren
mosquitto_pub -h 192.168.1.10 \
-t 'heatpump/hp_remote_a1b2c3/state/touch/cmd' \
-m '{"set_temp":58,"auto":true}'Das Gerät liest den Sollwert, drückt Richtung Ziel, kontrolliert per Kamera und regelt nach. Die Rückmeldung kommt auf <BASE>/touch/state, z. B. {"ok":true,"set_temp":58,"value":58} oder im Fehlerfall {"ok":false,"error":"display_locked"}. Mit "auto":true hebt das Gerät eine aktive Tastensperre selbst auf und setzt sie danach wieder (Antwort enthält dann "auto_unlocked":true,"relocked":true). Voraussetzung ist eine passende ROI-Benennung (Label enthält Soll/Set/Target bzw. Ist/Water und Lock) – siehe SETUP.md.
Uhrzeit stellen (Sommer-/Winterzeit, Drift-Korrektur):
mosquitto_pub -h 192.168.1.10 \
-t 'heatpump/hp_remote_a1b2c3/state/touch/cmd' \
-m '{"set_time":"14:45"}'Das Gerät liest die aktuelle Uhrzeit, stellt Stunden und Minuten getrennt ein (kürzeste Richtung) und kontrolliert das Ergebnis – bei Bedarf in bis zu 3 Durchgängen. Rückmeldung z. B. {"ok":true,"set_time":"14:45","value":"14:45","passes":2}. Voraussetzung ist ein Uhrzeit-ROI (Label enthält Uhr/Zeit/Time/Clock).
Mit {"set_time":"14:45","auto":true} erledigt das Gerät auch eine aktive Tastensperre und den Standby selbst (entsperren → aufwecken → stellen → einschlafen → sperren) – die Antwort enthält dann zusätzlich "auto_unlocked":true,"relocked":true bzw. "auto_woken":true,"reslept":true. Ein solcher Vorgang kann über eine Minute dauern; das Feedback kommt zuverlässig am Ende.
Display-Werte mitlesen (die ausgelesenen Temperaturen, Symbole usw.):
mosquitto_sub -h 192.168.1.10 \
-t 'heatpump/hp_remote_a1b2c3/state'Ausgabe (Beispiel):
{"valid":true,"Ist-Temperatur":47,"Soll-Temperatur":60,"Uhrzeit-HP":732,"Run":true}Rückmeldung zum letzten Befehl mitlesen:
mosquitto_sub -h 192.168.1.10 \
-t 'heatpump/hp_remote_a1b2c3/state/touch/state'Ausgabe nach einem Tastendruck:
{"last":"up","ok":true}Alles auf einmal beobachten (Wildcard über alle Sub-Topics):
mosquitto_sub -h 192.168.1.10 -v \
-t 'heatpump/hp_remote_a1b2c3/state/#'Das -v zeigt zusätzlich das Topic vor jeder Nachricht – praktisch zum Debuggen.
Wer nicht auf der Kommandozeile arbeiten möchte:
| Tool | Plattform | Eignung |
|---|---|---|
| MQTT Explorer | Windows/macOS/Linux | Topics als Baum durchklicken, Nachrichten senden/empfangen – ideal zum Erkunden |
| MQTTX | Windows/macOS/Linux | moderner Client, gut für gespeicherte Befehls-Vorlagen |
| IoT MQTT Panel | Android/iOS | Dashboard mit eigenen Buttons – z. B. ein Button pro Shortcut |
| MQTT.fx | Desktop | klassischer Allrounder |
Tipp für Dashboard-Apps (z. B. IoT MQTT Panel): Lege je einen Button an, der auf <BASE>/touch/cmd publiziert, mit fester Payload wie {"shortcut":"standby"}. So baust du dir in wenigen Minuten eine eigene Fernbedienung ohne jegliche Smart-Home-Plattform.
Beispiel: Jeden Abend um 22:00 Uhr in den Standby schalten, morgens um 5:00 Uhr wieder aktivieren. In der Crontab (crontab -e):
# Wärmepumpe abends in Standby
0 22 * * * mosquitto_pub -h 192.168.1.10 -t 'heatpump/hp_remote_a1b2c3/state/touch/cmd' -m '{"shortcut":"standby"}'
# morgens wieder aus dem Standby
0 5 * * * mosquitto_pub -h 192.168.1.10 -t 'heatpump/hp_remote_a1b2c3/state/touch/cmd' -m '{"shortcut":"standby"}'Hinweis:
standbyist ein Umschalter (toggle). Es lohnt sich, vorher den tatsächlichen Zustand über das Display-Topic zu prüfen, statt blind zu schalten.
#!/usr/bin/env bash
BROKER=192.168.1.10
BASE=heatpump/hp_remote_a1b2c3/state
# aktuellen Zustand einmalig lesen (-C 1 = nach 1 Nachricht beenden)
STATE=$(mosquitto_sub -h "$BROKER" -t "$BASE" -C 1)
echo "Aktueller Status: $STATE"
# Beispiel: nur hochheizen wenn Ist-Temp unter 45 °C
IST=$(echo "$STATE" | grep -o '"Ist-Temperatur":[0-9]*' | grep -o '[0-9]*')
if [ "$IST" -lt 45 ]; then
mosquitto_pub -h "$BROKER" -t "$BASE/touch/cmd" -m '{"button":"up","count":3}'
echo "Solltemperatur erhöht."
fiEin minimaler Flow zum Senden eines Shortcuts:
- Inject-Node (löst manuell oder per Zeitplan aus)
- Function- oder Change-Node, setzt
msg.payload:{"shortcut":"fan"} - MQTT-out-Node, Topic
heatpump/hp_remote_a1b2c3/state/touch/cmd
Zum Anzeigen der Display-Werte:
- MQTT-in-Node, Topic
heatpump/hp_remote_a1b2c3/state - JSON-Node (parst die Payload)
- Debug- oder Dashboard-Node (z. B. Gauge auf
msg.payload["Ist-Temperatur"])
Da alles über Standard-MQTT läuft, funktionieren ioBroker (mqtt-Adapter), openHAB (MQTT Binding), FHEM und eigene Python-Skripte (paho-mqtt) nach demselben Muster: auf <BASE> lauschen, an <BASE>/touch/cmd senden.
Beispiel mit Python (paho-mqtt):
import paho.mqtt.publish as publish
publish.single(
topic="heatpump/hp_remote_a1b2c3/state/touch/cmd",
payload='{"shortcut":"timer"}',
hostname="192.168.1.10",
)Damit das Gerät Befehle annimmt und Werte sendet, muss MQTT im Webinterface aktiviert sein. Bei deaktiviertem MQTT bleibt das Gerät ruhig (siehe SETUP.md). Die periodische Display-Auswertung läuft ebenfalls nur bei aktivem MQTT – die Tastensteuerung per /touch/cmd reagiert jedoch unabhängig davon, sobald eine MQTT-Verbindung besteht.
Die Wärmepumpe führt Tastenbefehle nur aus, wenn die Tastensperre nicht aktiv ist. Bei verriegeltem Display (Locked-Symbol leuchtet) bleiben alle /touch/cmd-Befehle wirkungslos. Den Status kann man am Locked-Wert im Display-Topic ablesen; entsperren bzw. umschalten lässt sich per Shortcut:
mosquitto_pub -h 192.168.1.10 \
-t 'heatpump/hp_remote_a1b2c3/state/touch/cmd' \
-m '{"shortcut":"lock"}'← zurück zur Übersicht · Hardware & Montage · Inbetriebnahme · Debugging