Benutzer-Werkzeuge

Webseiten-Werkzeuge


friedhof:heizungsregler

Heizungssteuerung


Die mechnische Zuverlässigkeit der Stellmotoren war nur so mittel.
Dieser Artikel dient rein archivarischen Zwecken


Motivation

Wenn man mal abends shutdown im shack macht, merkt man erstmal wieviele Heizkörper der shack eigentlich hat, die alle einzeln abgedreht werden müssen. Dieser Vorgang ist fehlerträchtig (einzelne Heizkörper werden vergessen) und macht wenig Spaß. Da muss es doch eine bessere Lösung für geben!

Projektstatus

Idee » Research » Proof of concept » Redesign » Proof of concept V2

yankee's Konzept

Folgende Dinge sollen Bedacht werden:

  • Die Lösung soll Energie sparen, nicht noch mehr verbrauchen –> Sie muss einen geringen Eigenverbrauch haben.
  • Die Lösung als Gesamtes muss auf viele Heizkörper skalieren und die Kosten müssen sich dabei in Grenzen halten.
  • Die Lösung soll einfach zusammen zu bauen sein.
  • Die Lösung soll verlässlich sein.
  • Um die Heizungen anzusteuern ist ein Temperaturfühler nicht ausreichend, weil die Temperatur am einen Ende des Raums nicht viel über die Temperatur auf der anderen Seite aussagen muss. Eine Raumhälfte auf 30°C zu heizen, damit es auf der anderen Seite des Raums noch 20°C sind ist blöd.
  • Es gibt jede Menge Heizungsregler auf dem Markt die man umrüsten könnte. Die sind jedoch alle unterschiedlich aufgebaut und 10 mal das gleiche Model kaufen heißt nicht unbedingt, dass 10 mal der gleiche Motor drin steckt.
  • Eine Zeitschaltuhr ist im shack nicht hilfreich, denn die Öffnungszeiten des shack lassen sich in kein verlässliches Muster abbilden.

Die üblichen billigen Heizungsregler auf dem Markt haben einen „Manuell-Modus“ bei dem man einfach die gewünschte Temperatur mit +/- Tasten einstellt und dann die Temperatur geregelt wird. (Manuell im Gegensatz zu Automatik mit Zeitschaltuhr). Die Heizungsregler haben einen internen Temperatursensor womit der „mehrere Sensoren“-Aspekt beachtet ist, das Zeug ist billig, einfach zusammenzubauen, funktioniert gleichermaßen, egal welche Hardware im Gerät steckt, verbraucht wenig Strom etc. etc. Ist eigentlich was wir brauchen, nur dass die das gleiche Problem wie die mechanischen Dinger haben: Keine zentrale Steuerung. Im Gegensatz zu den mechanischen Reglern lässt sich dort jedoch ganz simpel durch Simulation eines Tastendrucks die Temperatur verstellen.

–> Einfach mit einem Mikrocontroller „Tasten drücken“. Das lässt sich dann skripten und beispielsweise mit dem großen roten Power-down-Schalter koppeln, so dass wenn der ausgeschaltet wird alle Heizkörper runterfahren.

Rahmenbedingungen

Heizkörper

Folgende Heizkörper befinden sich im shack:

Raum Anzahl Heizkörper
Lounge 5
Seminarraum 3
Media-Lab 1
E-Lab 2
Serverraum 2
Werkstatt 2
Getränkelager 1
Lager 1
Küche 1
Flur (zwischen Küche/Portal) 1
Bad 1 1
Bad 2 1
Optionsräumne (von vorne nach hinten) 2,2,2,1

Aufbau

Heizungsregler

Wir verwenden umgebaute Heizungsregler von Conrad für 10 Euro/Stück. Diese werden wie folgt umgebaut:

  1. Deckel vom Heizungsregler entfernt. Batterieklappe ist leider im Deckel –> abgelötet
  2. Man sieht 4×2 Kontakte wo die Taster waren die durch die Taster verbunden werden. Der Kontakt an der LCD abgewandten Seite ist jewails ground, bzw mit geringen Widerstand (4,7-30 Ohm habe ich gemessen) mit Ground verbunden. Den kann man sich als sparen und einfach ground nehmen. An die dem LCD zugewandten Kontakten ist dann je ein Kabel angelötet (rot=auto/man, schwarz=prog, weiß=+, grün=-)
  3. An die +/- Taster ein Draht angelötet, sowie an der Batterieklappe einen Draht zur Spannungsversorgung angelötet

Die Heizungsregler werden dann mit einer Steuerungsplatine mit CAN-Controller angeschlossen.

CAN-Adressen

Jeder Heizkörper bekommt eine Basisadresse zugeweisen. Von der Basisadresse werden die letzten drei Bits genutzt um die Funktion zu identifizieren:

Funktionsbits Funktion Nutzdaten
Bin Dec Funktion 1. Byte 2. Byte 3. Byte
000 0 Aktuelle Temperatur anfragen - - -
000 0 Aktuelle Temperatur melden aktuelle Temperatur in steps - -
001 1 Setze Temperatur Temperatur in Steps (-1 falls unbekannt) boolean „sicheres setzen“) -
010 2 Taste gedrückt 0 = Minus, 1 = Plus, Tastendrucklänge in 0.512ms Schritten
2-7 For Future Use - - -

Das Funktionsbyte insgesamt ist folgendermaßen aufgebaut:

RRRC CFFF
R = Reserved For Future Use (lies als "0")
C = Category (0 = Controller, 1 = Heizkörper 1, 2 = Heizkörper 2)

Sicheres Setzen

„sicheres setzen“ bedeutet, dass der Controller zunächst so häufig auf Minus drückt, bis der Heizungsregler garantiert auf step 0 steht. Es kann passieren, dass der Controller einen Tastendruck ausführt, diese jedoch nicht beim Heizungsregler erkannt wird. In diesem Fall würde die tatsächlich gesetzte Temperatur von der Temperatur abweichen, die der Controller meint gesetzt zu haben. Die Funktion „sicheres setzen“ sorgt dafür, das solche Effekte wieder ausgeglichen werden.

Steps

Step Temperature
0 Aus
1 8.0°C
2 8.5°C
3 9.0°C
45 30.0°C
46 MAX

Heizungssteuerung 2.0

Erster Prototyp basierend auf ESP8266 + espeasy. IP Addresse 10.42.27.61, ganz linke Heizung, nicht an dauerstrom, besitzt Akkupack und sollte die Nacht überleben.

  • Pin 12: Herunter Knopf, Temperatur -0.5Grad
  • Pin 13: Hoch Knopf, Temperatur +0.5Grad
  • Minimale Temperatur: 7.5 Grad (OFF steht auf dem Display)
  • Maximale Temperatur: 30.5 Grad (ON steht auf dem Display)
  • Puls von 500ms für einen Druck (GPIO von off auf on auf off)
  • eine sekunde Pause zwischen drucken

Aktuell gibt es zwei möglichkeiten der Steuerung.

HTTP

curl 'http://10.42.27.61/control?cmd=Pulse,12,0,500'

Einen 500ms Puls auf gpio 12 (Knopf runter) startend von off hin zu on hin zu off.

MQTT

Auf `mqtt.shack`:

  import paho.mqtt.client as mqtt
  from time import sleep
  broker_address="mqtt.shack"
  client = mqtt.Client("P1")
  client.connect(broker_address)
  # einen Reset durchführen und zu einer Validen Temperatur kommen:
  for i in range(50):
    client.publish("easy/thermo01/cmd","Pulse,12,0,500")
    sleep(1)

shell

Temperatur (Sollwert) um 5° erhöhen

for i in {1..10}  
do
   curl 'http://10.42.27.61/control?cmd=Pulse,13,0,500'
   sleep 1
done
friedhof/heizungsregler.txt · Zuletzt geändert: 2022-11-06 15:16 von chris