WiFiThermostat
WLAN-angebundener Raumthermostat für elektrisch gesteuerte Heizungen basierend auf dem ESP8266 Microcontroller
English version
Vorüberlegungen
Ich war auf der Suche nach WLAN-fähigem Ersatz für einen bestehenden Raumthermostat, um die Heizungssteuerung zukünftig in ein Home Automation System einbinden zu können.
Ziel war dabei ein offenes System, keine Abhängigkeit von Cloud-Diensten und ein hoher Automatisierungsgrad, den "normale" Thermostate nicht bieten können. Zeitsteuerungen, wie sie viele am Markt erhältliche Lösungen bieten erscheinen nur bedingt sinnvoll, da fixe Heizzeiten zumindest in meinem Fall nicht den tatsächlichen Bedarf abdecken können. Die Steuerung sollte also möglichst - neben definierten Zeitfenstern - die Anwesenheit in der Wohnung mit einbeziehen, sowie eine Fernsteuerung via Internet ermöglichen. Prinzipiell nicht allzu schwierig zu lösen mit diversen Home Automation Servern, vor allem da ich so etwas sowieso schon experimentell im Einsatz hatte.
Zum damaligen Zeitpunkt gab es am Markt nur einige wenige Produkte der Kategorie "Smart Thermostat" mit welchen das prinzipiell lösbar war. Sogar welche mit Anwesenheitserkennung via Android-App (und Hersteller-Cloud). Zum Teil sehr ansehnliche Geräte, aber alle hatten Probleme die mich letztlich vom Kauf absehen ließen:
- die meisten verbreiteten Lösungen bestehen aus einer Zentraleinheit und per Funk angebundenen Heizkörperventilen
- für meinen Bedarf nicht geeignet, da eigene Gastherme in der Wohnung und alte, mit Thermostatventilen inkompatible Heizkörper
- weitere Funk-basierte Lösungen
- neben der Bedieneinheit für den Raumthermostat auch noch ein proprietäres LAN-Funk-Gateway und ein Relais-Modul notwendig
- Abhängigkeit von Cloud-Diensten des Herstellers (designed für die Bedienung via Smartphone-App, für netzwerktechnisch unbedarfte User... oder doch Daten sammeln...?)
- für mich das absolute No-Go für solche Geräte. Das MUSS ganz einfach funktionieren auch wenn das Internet oder das WLAN länger ausfällt. Zumindest inwieweit ein Offline-Notbetrieb möglich ist ist meist in den Unterlagen gar nicht ersichtlich.
- was passiert, wenn der Hersteller die Dienste für sein nicht mehr lukratives altes Produkt einstellt oder Pleite geht?
- keine offenen Schnittstellen, bzw. keine, die lokal aus dem Netzwerk ansprechbar und ohne Cloud-Service nutzbar waren, oder auch einfach nicht (ausreichend) dokumentiert
- Verfügbarkeit (nicht alle Produkte werden überall vertrieben bzw. offiziell unterstützt, Grauimport wäre zwar möglich aber im Garantiefall ungut)
- zu teuer, zu "hip", zu komplex Umgesetzt für die eigentlich einfache Aufgabe
Nach einiger Zeit - und da auch in der Open Source Welt nichts 100% passendes oder nur experimentelle Ansätze zu finden waren - stand für mich irgendwann fest: entweder selbst machen oder gar nicht.
Klar war...
- für die Aufgabe würde ein einfacher, leistungsschwacher, WLAN-fähiger Microcontroller wie der ESP8266, mit dem ich bereits seit einiger Zeit experimentiert hatte, vollkommen ausreichen
- ich brauche und möchte keine Touch-Bedienung, Vollfarb-Display usw. - günstige Standardkomponenten wie ein 1602 LCD character display und normale Taster reicht
- keine eingebauten Timer/Uhr nötig, da die Steuerung über den Home Automation Server sowieso "intelligenter" als fix konfigurierte Timer ist oder dies zumindest mehr als abdecken kann
Entwicklungsziele
- so einfach wie möglich, so kompliziert wie nötig
- Standalone-Betrieb bei Ausfall der Infrastruktur muss möglich sein
- Betriebssicherheit hat oberste Priorität
- Aufbau aus leicht verfügbaren Standardkomponenten (tatsächlich hatte ich für den Prototypen abgesehen vom Gehäuse alle Teile in meinem Bastel-Kastel)
- offene Schnittstellen, kein "Cloudzwang"
Voraussetzungen und Kompatibilität
- kann alle Raumthermostate ersetzen, die eine Heizung per Schaltkontakt (230V oder 24V) direkt ansteuern
- Bus- oder Funkangebundene Thermostate/Heizungssteuerungen werden nicht unterstützt
- Verkabelung - 3 direkte Leitungen vom Heizgerät zum Thermostat müssen vorhanden und getrennt von der restlichen Elektroinstallation sein
Funktionsüberblick
- Messung der aktuellen Raumtemperatur und Luftfeuchtigkeit mit einem DHT22-Sensor
- Glättung der Messwerte, Ausfilterung nicht plausibler Werte (falls solche auftreten)
- Thermostat mit konfigurierbarer Hysterese und 3 Modi (Normalbetrieb, Nachtabsenkung, Langzeit-Absenkung)
- Steuerungseinheit mit LCD Display und Tasten zur direkten Bedienung
- separate Versorgungs- und Bedieneinheit
- Fernsteuerung aller Funktionen über WLAN (MQTT-Protokoll, Web-Interface)
- problemloser Standalone-Betrieb auch ohne Netzwerkverbindung
- Einrichtung/Konfiguration via Web-Interface
- offene Schnittstellen (MQTT, Web-API)
- aktuelle Einstellung kann automatisch abgespeichert werden und übersteht so auch Stromausfälle
- Telemetrie der Messdaten und Statusinformationen via WLAN (MQTT-Protokoll)
- Konfiguration bestimmter Parameter (Absenktemperaturen usw.) auch via MQTT
- Anschluss eines Bewegungsmelder-Moduls möglich, welcher automatisch die Displaybeleuchtung aktivieren kann (ansonsten nur zur Meldung an einen Home-Automation-Server wie Home Assistant vorgesehen, Status wird über MQTT gesendet)
- initiale Einrichtung via WLAN im AP-Modus mit captive portal
- Anzeige der Außentemperatur am Display (wenn diese über MQTT angeliefert wird)
- Betriebssicherheit:
- falsche/unplausible Messwerte vom Temperatursensor werden ignoriert - Heizungssteuerung erfolgt nur wenn ein aktueller und plausibler Messwert vorliegt
- automatische Neuverbindung wenn die Verbindung getrennt wird
- automatischer Neustart wenn über einen längeren Zeitraum WLAN oder der MQTT-Server nicht verbunden werden kann
- automatischer Neustart falls die Software nicht mehr reagiert (ESP8266 eingebauter WDT Timer)
- Betriebsfähigkeit bleibt immer weitestgehend erhalten (Ausgenommen Funktionen die Netzwerk benötigen wenn keine Verbindung besteht bzw. ein zyklische kurze Ausfälle im Fall eines notwendigen Neustarts (konfigurierbar))
- Vorgesehen für Steuerung durch folgende Home Automation Systeme (via MQTT-Protokoll oder HTTP API):
- Home Assistant
- primäre Zielplattform
- Funktionen:
- Änderung der Soll-Temperatur
- Änderung des Modus (Normalbetrieb, Nachtabsenkung...)
- Anzeige von aktueller Temperatur/Luftfeuchtigkeit, Status der Heizung
- Automatische Aktualisierung bei Änderungen lokal am Bedienteil oder via Web-Interface
- Domoticz
- frühere Zielplattform
- seit Anfang 2018 nicht mehr weiterentwickelt
- Funktionsumfang wie Home Assistant
- OpenHAB
- ungetestet, sollte aber über die Befehle für Home Assistant funktionieren
Hardware
Hardware
Software
Libraries
Web Interface
Screenshots hier: Web Interface