**[Projektvorstellung] ESP32 Display Reader – 7-Segment-Anzeigen und Symbole per Kamera auslesen (MQTT / Home Assistant)**

Hallo zusammen,

ich möchte euch mein aktuelles Projekt vorstellen, an dem ich in letzter Zeit gearbeitet habe:

:backhand_index_pointing_right: ESP32 Display Reader :link: GitHub - DocBig/ESP32-Display-Reader: ESP32 optical reader for 7-segment displays and symbols using a camera with MQTT and Home Assistant integration. · GitHub

Worum geht’s? Die Firmware läuft auf einem ESP32 mit Kamera (z. B. ESP32-CAM oder ESP32 WROVER mit PSRAM) und liest damit optisch 7-Segment-Anzeigen sowie Statussymbole aus. Die erkannten Werte – also Zahlen oder Ein/Aus-Zustände – werden anschließend per MQTT veröffentlicht und landen dank Home Assistant Auto Discovery automatisch als Entitäten in HA. Kein LAN-Anschluss am Gerät, keine Modbus-Basteleien – einfach Kamera davor, ROIs einrichten, fertig.

Ursprünglich ist das Projekt entstanden, weil ich die Werte meiner Buderus WPT260.4 AS Warmwasser-Wärmepumpe in Home Assistant haben wollte.

Die Methode funktioniert aber perfekt bei so ziemlich allen selbstleuchtenden Displays mit 7-Segment-Darstellung.

LCDs gehen ebenfalls, brauchen aber eine externe möglichst gleichmäßige Aus/Beleuchtung.
Das kann leider etwas „tricky“ sein. Aktuell teste ich noch verschiedene Möglichkeiten die Erkennung bei diesen Displays zu optimieren!

Features im Überblick:

  • :camera: Kamerabasierte Erkennung von 7-Segment-Anzeigen und Statussymbolen
  • :satellite_antenna: MQTT-Integration mit konfigurierbarem Publish-Intervall
  • :house: Home Assistant Auto Discovery
  • :light_bulb: Steuerung einer optionalen Beleuchtung (PWM) + zweiter Kanal für WS2812B
  • :repeat_button: Pre-Capture Trigger über MQTT (z. B. Relais für externe Lampe oder „Fingerbot“ zur Display Aktivierung)
  • :control_knobs: Segment-/Profile-Editor für verschiedene Displaytypen
  • :globe_with_meridians: Komplette Konfiguration über das Webinterface
  • :counterclockwise_arrows_button: OTA-Updates sowie Export/Import der Config als JSON

Installation: Am einfachsten geht’s über den Web Installer direkt im Browser – kein Flashtool nötig: :backhand_index_pointing_right: ESP32 Display Reader – Web Installer

Alternativ klassisch per PlatformIO (Details im Repo).

Die Doku (Installation, Webinterface, ROI-Konfiguration, Segment-Profile, HA-Integration, Debugging) ist komplett auf Deutsch im docs/-Ordner des Repos verlinkt.

Über Feedback, Verbesserungsvorschläge, Issues oder einen :star: auf GitHub würde ich mich natürlich freuen.
Falls jemand das Ganze an einem anderen Display testet: lasst mich gerne wissen, welches Gerät ihr ausgelest habt – ich sammle und veröffentliche die Erfahrungsberichte gerne in meinem Repo.

Viele Grüße DocBig :waving_hand:

6 „Gefällt mir“

Ist sozusagen Markiert
wirklich nettes Projekt :waving_hand:

Mahlzeit, ich durfte das Projekt schon einmal vorab testen, lieben Dank nochmal an @Dr.Big, auch für die Bereitstellung der Hardware :hugs:. Jetzt kann ich endlich mal die Warmwassertemperatur bei uns auslesen und auswerten.

Bei mir ist das Display nicht hintergrundbeleuchetet, also muss ich mein Display beleuchten, sonst bekommt die CAM keine korrekte Werte hin. Daher habe ich einen kleinen Rahmen gedruckt, mit zwei LED Streifen versehen und dann wie in den Bildern zu sehen montiert. Jetzt ist das Display schön gleichmäßig ausgeleuchtet.

Hier ein Screenshot der Cam (kommt so in HA an)

Und so sieht das bei mir im Tool aus, wobei ich wieder auf 2 Digits zurückgegangen bin (also ohne Kommastelle). Mit den kleinen icons für Heizen, Warmwasser, Brenner experementiere ich noch herum.

Habe dann noch AutoThreshold und Contrast Stretch (per digit) aktiviert und seitdem kommen die Zahlen-Werte (Temperatur) korrekt in HA an.

Bei Warmwasser funktioniert das mit der icon Erkennung ebenfalls schon ganz gut, aber bei Heizen bekomme ich noch keine zuverlässigen Werte.

Mein Verlauf der letzten Tage sieht prinzipell so aus, wie ich mir das vorgestellt habe und man kann wirklich gut sehen, wann die Therme wieder angeht und das Wasser aufheizt. Damit kann ich arbeiten und jetzt endlich noch besser optimieren und z.B. die Max-Wassertemp noch etwas herunterschrauben.

So schauen übrigens die Werte bzw. das Mqtt Gerät in HA dazu aus. Sie werden über MQTT weitergeleitet, funktioniert wunderbar und man kann auch den Push-Intervall frei einstellen, bei mir aktuell 50sec.

Also wirklich ein sehr schönes Projekt mit praktischem Nutzen. Finde ich Klasse :slight_smile: :+1:

2 „Gefällt mir“

Eine Frage habe ich an Dich:

Wie viele Stunden haben DEINE Tage eigentlich…?

Das gibt es doch gar nicht oder hast du einen Zwillings_Jan…? :joy:

Flow, Flux, FB-Portal jetzt das hier…

Ich warte mal ab was morgen von dir kommt. :slight_smile:

1 „Gefällt mir“

Freut mich sehr das es jetzt bei dir stabil läuft und „Nutzen“ bringt! :+1:

Und auch vielen Dank für deine so ausführliche Rezension (noch dazu wo ich so gut weg komme damit) :folded_hands:

Möchte nochmals erwähnen das es bei „selbstleuchtenden Display“ bei mir seit fast einem Jahr stabil und fehlerfrei läuft. Ich habe das ganze in den letzten 3 Monaten nur auf ein „Bediener/Nutzer freundlicheres Level“ gebracht , alle Einstellungen lassen sich jetzt komfortabel per Web GUI durchführen und entsprechend anpassen!

Habe gerade das ganze bei einem „Kunden“ installiert, auch an einer Brauchwasser WP wo noch erschwerend hinzukam das das Display erst mit einem „Touch“ aufgeweckt werden muss.
Konnte wir aber problemlos mittels eines „Fingerbots“ und des „Pre-Capture Triggers“ lösen, auch das läuft nun schon gute 4 Wochen fehlerfrei!

Aktuell „experimentiere“ ich noch an der Optimierung der Erkennung bei LCD Display’s und hoffe das ich da noch Verbesserungen erreichen kann!

Wenn man bedenkt das diese „mickrige“ Kamera :scream: allein knapp 20 Einstellungs - Parameter hat an den man „drehen“ kann, werde ich doch hoffentlich noch eine „bessere“ Konfig finden! :wink:

Würde mich sehr freuen wenn sich noch weitere „Anwender“ dafür finden und das ganze sinnvoll nutzen können!
:waving_hand:

1 „Gefällt mir“