Skip to content

Repository files navigation

HP-Remote

License: MIT Platform: ESP32-S3 Framework: Arduino MQTT Home Assistant GitHub last commit

Vollständige bidirektionale Fernsteuerung für Bosch / Buderus Brauchwasser-Wärmepumpen

HP-Remote

Ein ESP32-S3-CAM liest das selbstleuchtende 7-Segment-Display optisch aus und simuliert alle 6 kapazitiven Fronttasten über eine PCB mit I2C-Touch-Interface. Dank Rückkopplung von OCR und Tastensteuerung lassen sich Solltemperatur und Uhrzeit verifiziert einstellen – auf Wunsch vollautomatisch durch Tastensperre und Standby hindurch. Die Anbindung läuft universell über MQTT – Messwerte und Tastensteuerung sind so in jede MQTT-fähige Umgebung integrierbar. Für Home Assistant gibt es zusätzlich MQTT Auto-Discovery, sodass alle Sensoren und Tasten dort ohne manuelle Konfiguration erscheinen.

Basiert auf dem ESP32-Display-Reader von DocBig, portiert auf den ESP32-S3-CAM und um I2C Touch-Steuerung erweitert.


Letzte Änderungen

Siehe CHANGELOG.md für die vollständige Historie.


Kompatible Geräte

Getestet mit der Steuerung der folgenden baugleichen Brauchwasser-Wärmepumpen:

Hersteller Modell
Bosch Compress 5000 DW – CS5001DW 200 / 200 C / 260 / 260 C
Buderus WPT 200.4A / WPT 260.4A (baugleich)

Andere Geräte mit identischem kapazitivem Bedienpanel (selbstleuchtendes 7-Segment-Display, 6 Touch-Tasten) lassen sich vermutlich ebenfalls anbinden, sind aber nicht getestet.


Was das Projekt macht

Funktion Mechanismus
Display auslesen OV2640-Kamera → OCR → MQTT (Set Temp, Water Temp, Symbole)
Tasten drücken PCF8574 I2C → 6 × TLP281-4 Optokoppler → kapazitive Kontaktflächen auf PCB. Einzel-, Mehrfach-, Lang-Druck, Tastenkombinationen, Sequenzen und benannte Shortcuts (Standby, Gebläse, Tastensperre, Timer)
Solltemperatur setzen Verifizierter Closed-Loop (set_temp): liest per OCR, regelt nach, trifft den Zielwert exakt. Grobsprung + Feinschliff für Tempo, optional vollautomatisch durch Tastensperre und Standby hindurch (auto)
Uhrzeit setzen Verifiziertes Stellen der WP-Uhr (set_time) für Sommer-/Winterzeit oder Drift – Stunden und Minuten getrennt, kürzeste Richtung, mit Feintuning-Durchgängen
Live-Stream MJPEG-Stream (Port 81) auf /live mit ausklappbarer Direktsteuerung: Tasten, Shortcuts und Temperatur-Stepper/Presets
Home Assistant Optionale MQTT Auto-Discovery: Sensoren + 6 Button-Entities + Live-URL
Konfiguration Webinterface im Browser, ROI-Editor, OTA-Updates
Config-Storage NVS (Preferences) – kein Dateisystem nötig

Dokumentation

Die ausführliche Dokumentation ist in vier Bereiche aufgeteilt:

Dokument Inhalt
Hardware & Montage Board, Touch-PCB, Pinouts, Schaltungsprinzip, Aufbau & Montage
Inbetriebnahme & Konfiguration Flashen, WLAN/MQTT, ROIs einrichten, MQTT-API (inkl. Solltemperatur- & Uhrzeit-Closed-Loop mit auto), Home Assistant
Test & Debugging I2C-Scan, Multimeter-Test, OCR-Diagnose (Test Detection), REST-API
MQTT ohne Home Assistant Direkte Steuerung per CLI, MQTT-Tools, Cron & Node-RED

🚀 Web Installer

Firmware direkt im Browser flashen – kein Tool erforderlich:

👉 Web Installer starten

ESP32-S3-CAM per USB anschließen, „Install" klicken (Chrome / Edge).


Projektstruktur

HP-Remote/
├── src/
│   ├── main.cpp                  ← Setup + Loop + Solltemperatur-Closed-Loop (set_temp/auto)
│   ├── touch_config.h            ← PCF8574 Adresse, I2C-Pins, Port-Zuordnung
│   ├── touch_controller.h/.cpp   ← I2C/PCF8574: press(), hold(), releaseAll(), rescan()
│   ├── camera_service.cpp        ← OV2640 Pinout ESP32-S3-CAM, MJPEG-Stream
│   ├── analyzer.cpp/.h           ← 7-Segment OCR
│   ├── mqtt_service.cpp/.h       ← MQTT + Touch-Callback + Shortcuts + Subscribe
│   ├── mqtt_ha_discovery.cpp/.h  ← HA Auto-Discovery: Sensoren, Buttons, Stream
│   ├── web_server.cpp/.h         ← Webinterface + REST API + MJPEG Port 81
│   ├── web_ui.h                  ← eingebettetes HTML/JS
│   ├── app_config.cpp/.h         ← Konfiguration + JSON
│   ├── storage_service.cpp/.h    ← NVS (Preferences)
│   ├── device_identity.cpp/.h    ← MAC-basierte Geräte-UID
│   ├── wifi_manager.cpp/.h       ← WiFi + AP-Setup
│   ├── ota_service.cpp/.h        ← OTA
│   └── debug_log.h               ← Log-Makros
├── docs/                          ← Dokumentation + kompilierte Binaries
│   ├── HARDWARE.md                ← Hardware & Montage
│   ├── SETUP.md                   ← Inbetriebnahme & Konfiguration
│   ├── DEBUG.md                   ← Test & Debugging
│   ├── MQTT-EXAMPLES.md           ← MQTT-Steuerung ohne Home Assistant
│   ├── images/                    ← Bilder für die Doku
│   ├── HP-Remote-merged.bin       ← Erstinstallation (USB, alle Partitionen)
│   └── HP-Remote-OTA.bin          ← OTA-Update (nur Applikation)
├── platformio.ini                ← Board: esp32-s3-devkitc-1, qio_opi PSRAM
├── partitions_ota.csv            ← OTA-Partitionstabelle
├── version_build.py              ← injiziert FW_VERSION + FW_BUILD
├── merge_bin.py                  ← erzeugt HP-Remote-OTA.bin + HP-Remote-merged.bin
└── README.md                     ← Übersicht (dieses Dokument)

Lizenz

MIT – basiert auf ESP32-Display-Reader von DocBig.

About

ESP32-S3-CAM Fernsteuerung für Bosch/Buderus (Compress 5000 DW – CS5001DW 200 / 200 C / 260 / 260 C Buderus WPT 260.4A) Wärmepumpen – liest das Display per OCR, simuliert die Tasten, steuert über MQTT. Damit lässt sich das Gerät völlig ohne irgendwelche Eingriffe in das Selbige komplett aus der Ferne bedienen und steuern!

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages