Elektronik_Header_3Lüftersteuerung mit ESP-01

 

Circon-Monitor

Die Circon signalisiert hektisch ROT mit der LED blinkend, wenn das Rückschlagventil im Warmwasserzirkulationskreislauf ein Problem hat, aber diese LED sitzt im Heizraum, ggf. hinter dem Warmwasserspeicher versteckt. Die Chance, das hektische Blinken zeitnah zu sehen, geht gegen Null.

Die entsprechende Anzeige im Wohnzimmer wäre cool, eine Kamera dafür im Keller zu installieren ein denkbarer Ansatz, kommt aber nicht in Frage. Ein Farbsensor an einem ESP8266 angeschlossen schon eher.

Ist ein ESP mit “Programm” im Spiel, drängt sich natürlich sofort eine Anforderung in den Vordergrund, die bisher mit einem längeren Blick in die Anleitung aufgelöst wurde:
“Was bedeuten die Farben und die Anzahl der Lichtblitze und wieviele Blitze waren das eben überhaupt”? Bei 8-mal Rot kommt man beim Mitzählen ganz leicht ins Straucheln. Ich habe mich schon erwischt, dass ich die LED mit Zeitraffer aufgenommen habe, um die Impulse zählen zu können - das im Zusammenhang mit einem Sensorfehler.

Hier eine Darstellung der möglichen Blinkfolgen, die die Circon kennt:

Circon Blinkfolgen

Der Sensor bzw. das hinterlagerte Programm auf dem ESP8266 muss also die Anzahl der Blinkimpulse zählen und die Farbe der LED mit ins Kalkül nehmen, um den Text aus der Spalte “Zustand” an die Anzeige übermitteln zu können.

Fun fact am Rande: In der aktuellen Anleitung von 2020 ist diese Darstellung auf das absolute Minimum reduziert, nur noch Text, keine Punktfolgen,  keine Angaben zu den Zeiten. Meine Informationen stammen aus der Anleitung von 2011, die ich gerettet habe.

Ich bin mit dem VEML6040 ins Rennen gegangen und habe mir nach anfänglichen Versuchen in Eigenregie von Gemini helfen lassen.

Das resultierende Programm auf dem ESP8266 gibt zwei unterschiedliche Darstellungen des Circon-Zustands aus. Einmal eine HTML Seite, die im Browser die aktuellen Werte und insbesondere das Verhältnis von Rot- zu Grün-Anteil ausgibt:

Circon Live-Monitor

Die LED ist eine Rot-Grün-Version und kann neben den beiden Grundfarben durch additive Mischung auch Orange darstellen. Es zeigte sich bei der Entwicklung des Programmcodes, dass die Anstiegszeiten der Helligkeit der beiden LED Chips unterschiedlich sind und der Sensor schnell genug reagiert, um sich davon verwirren zu lassen. Im Programm ist also eine Dämpfung eingebaut, die man sicherlich auch über die Einstellung der Samplezeit hätte erledigen können.

Die zweite Darstellung ist auf den realen Betrieb abgestimmt und stellt über ein REST Interface dieselben Werte als JSON String zur Verfügung:

{"sequenz":"3 x [GRÜN]","zustand":"Pumpe AUS: Bereit","info":"Laufstatistik: < 15% Verluste"}

Auf diese Information stützt sich der Teil der Konstruktion, der im Wohnzimmer die Anzeige spiegeln soll.

Für die Umsetzung der Wohnzimmeranzeige gab es verschiedene Ansätze aus der Historie. Die PV-Anzeige ist mit Qt erstellt, OpenCNCPilot basiert auf C#, WPF und Helix. Qt hat eindeutig den Platznachteil. Damit eine Qt Applikation läuft, sind hunderte DLLs notwendig, die für den Transport vom Entwicklungsrechner auf das Display gepackt und dort wieder entpackt werden müssen. C# und WPF gehören ebenfalls nicht zu meinen Kernkompetenzen, ich habe mich also für das absolute Minimum entschieden - die Nutzung von Windows Forms. Das verspricht eine einzelne, kleine EXE-Datei, die alles an Bord hat, was zur Ausführung benötigt wird.

Letztlich ist der “simple” C# Code dann doch ein bisschen in die Breite gegangen, denn neben der eigentlichen Anzeige der Fakten isst ja das Auge bekanntlich mit ;)

Bis das Icon, eine stilisierte grüne LED, eine schmalere Caption, abgerundete Ecken und sich dynamisch an den dargestellten Inhalt anpassende Fensterumrandung eingebaut waren, hat sich die App von 15 auf 50 kB aufgebläht, wohl in der Hauptsache dem Icon geschuldet.

Circon-Monitor

Der im Bild sichtbare grüne Rand um die stilisierte LED herum signalisiert, dass die Kommunikation zum Server im Keller steht. Ist das nicht der Fall, wird der Rand rot.

Circon-Monitor

Ein geschickter Schachzug zur Vermeidung von unzähligen Datenpaketen im LAN um den aktuellen Zustand der LED live widerzuspiegeln, ist die Implementierung einer Statemachine, die das Blinkmuster und die Farben(n) als Input bekommt und die Blinkfolge lokal in der App nachbildet. An Daten im LAN wird nur alle zwei Sekunden die oben dargestellte JSON Zeile übertragen.

 


Beim Aufruf dieser Funktion werden Daten an Google in USA übermittelt. Neben Ihrer IP-Adresse wird auch die URL der besuchten Seite übertragen.
Besucherzaehler

Besucher seit
25.11.2000