In diesem Artikel beschreibe ich, wie man eine China Diesel Heizung mit einem Shelly+ UNI nachrüstet, um die Steuerung zu automatisieren. Damit ist es möglich, die Heizung automatisch zu starten, wenn es friert. Ist die gewünschte Temperatur erreicht schaltet sich die Dieselheizung von allein wieder ab. Eine manuelle Steuerung über Bluetooth, App oder WLAN gibt es als Bonus dazu und das ganze kostet nur rund 20€.
Ein Hauptkritikpunkt bei den China Diesel Heizungen ist, dass diese keine Temperatur abhängige Startfunktion haben. Zweitens: ist die Zieltemperatur einmal erreicht können sie sich nicht ausschalten, sondern nur auf kleinster Stufe weiter laufen. Diese beiden Probleme löst man elegant mit einem Shelly plus UNI.
Die benötigten Teile / Einkaufsliste
Verwendet habe ich einen Shelly plus UNI und einen digitalen Temperatursensor vom Typ DS18B20. Beides kostet zusammen ca 20 – 25€. Der Shelly plus Uni ist für dieses Projekt ideal, da er besonders einfach über WLAN programmiert werden kann. Er lässt sich mit unterschiedlicher Gleichspannung, Wechselspannung oder stabilisierten +5V betreiben, was ihn universell einsatzbar macht.
Abgesehen davon wird ein Lötkolben, ein kleiner Schraubenzieher und etwas Schrumpfschlauch zum isolieren benötigt. Ich hab mir einen Nachmittag lang Zeit genommen, aber nach 2 – 3 Stunden ist eigentlich alles erledigt, inklusive programmieren.
Shelly Homepage mit vielen weiteren Infos: shelly.com
Aufbau: DS18B20 mit dem Shelly plus UNI verbinden
Der digitale Temperatursensor mit silbernem Kopf hat drei Kabel, die mit dem Shelly verbunden werden müssen.
- Schwarz / Masse / GND vom DS18B20 wird mit dem grünen Kabel (7, GND) vom Shelly verbunden
- Rot / Versorgungsspannung / VDD vom DS18B20 wird mit dem gelben Kabel (4, Sensor VCC) vom Shelly verbunden
- Gelb / Data / DQ vom DS18B20 wird mit dem blauen Kabel (5, DATA) vom Shelly verbunden
An das schwarze / grüne Kabel für Masse / GND sollte ein in diesem Schritt ca 10 cm langes, zusätzliches Kabel gelötet werden. Das wird später noch für die Stromversorgung (genauer: Masseanschluss, GND) vom Shelly gebraucht. Das Bild weiter unten zeigt es. Aus Gründen der Übersichtlichkeit hab ich es in diesem Schritt ^^ nicht fotografiert. Alle offen liegenden Kontakte müssen mit Schrumpfschlauch verschlossen werden.
Aufbau: Shelly plus UNI an einer China Diesel Heizung anschliessen
Als nächstes wird der Shelly mit dem Kontroller der China Heizung verbunden. Bei mir ist es die weit verbreitete „blaue“ Steuerung, aber der hier gezeigte Anschluss lässt sich leicht auf alle möglichen China Diesel Heizungen übertragen.
Zunächst das Bedienteil abziehen, um es stromlos zu machen. Die Schrauben, um das Bedienteil zu öffnen sind unter der geklebten Scheibe versteckt.
- Masse / GND vom Shelly (grün, Kabel 7, die oben erwähnte split Abzweigung) wird an das schwarze Kabel (GND) vom Bedienteil angelötet.
- +5V vom Shelly (grau, Kabel 6) wird an das rote Kabel (+5V) vom Bedienteil angelötet
Anstatt die Kabel vom Bedienteil abzulöten würde ich sie einfach drin lassen und den Lötpunkt von oben etwas verzinnen. Dann verzinnt man die Kabel, die man anlöten möchte. Jetzt muss man das verzinnte Kabel nur noch auf die Lötstelle halten, kurz erhitzen und schon ist es verbunden.
Die beiden Kabel vom Shelly Ausgang Out 1 werden mit dem Mikrotaster vom Bedienteil verbunden. Welches der beiden Kabel wo dran gelötet wird ist dabei egal. Auch hier würde ich das Lötauge vom Mikrotaster vorher mit etwas Lötzinn versehen und das Kabel extra verzinnen. Dann beides zusammen halten, kurz mit der Lötspitze erhitzen und schon ist es miteinander verbunden.
Wenn man das so macht muss man nicht mit Lötkolben, Kabel und Lötzinn gleichzeitig herum jonglieren.
Wenn man das Bedienteil wieder mit der China Heizung verbindet geht die Uhr an und auf der Platine vom Shelly fängt eine rote LED an zu blinken.
Aufklappen, falls eine anderes Bedienteil ohne 5 Volt vorhanden ist
Falls es nicht möglich ist, irgendwo 5 Volt zu klauen kann der Shelly über VAC 1 und VAC 2 (rotes Kabel 1, schwarzes Kabel 2) mit Strom versorgt werden. Über rot / schwarz kann der Shelly mit Gleichspannung zwischen 9 und 28 Volt versorgt werden, zum Beispiel von der Stromversorgung der China Heizung selbst mit 12 Volt oder 24 Volt.
Erste Einrichtung vom Shelly plus UNI und dem Thermosensor über WLAN mit dem Computer
Sobald der Shelly mit Strom versorgt ist baut er ein kleines WLAN Netzwerk auf. In dem kann man sich mit einem Computer oder Tablet anmelden. Am Computer kann das etwas kniffelig sein, falls der bereits mit WLAN oder dem Ethernet Netzwerk verbunden ist.
„Failsafe“ ist wie folgt:
- Am Computer mit dem WLAN Netzwerk vom Shelly verbinden
- Windows Taste + X gleichzeitig drücken und im dort erscheinenden Menü „Windows Power Shell“ anclicken.
- ipconfig in der power shell eintippen + enter drücken
Der ipconfig Befehl verrät einem unter Windows, in welchen Netzwerken man angemeldet ist. Im Beispiel oben hat der Shelly als Standard Gateway die IP 192.168.33.1 und mein Computer hat die 192.168.33.2 erhalten.
Im Browser daher die 192.168.33.1 (Gateway Shelly) eintippen, um auf die Benutzeroberfläche zu kommen. Es kann sein, dass der Shelly eine andere IP hat als in diesem Beispiel. Aber was im Netzwerk los ist zeigt einem der Befehl ipconfig an.
In der Benutzeroberfläche muss jetzt der Thermosensor hinzugefügt werden.
Clicke dazu auf „Peripherals“ und dann auf das blaue plus Zeichen. Füge den dort erscheinenden DS18B20 hinzu und speichere ab. Damit ist die Hardware Einrichtung abgeschlossen. Es macht Sinn, daraufhin alles etwas einzupacken und mit Kabelbindern zu sichern.
Ich hab den Shelly erst mal provisorisch am Bedienteil befestigt, bis ich was besseres hab.
Programmierung der Steuerung für die China Diesel Heizung
Nun wird es Zeit, dem Shelly etwas zu tun zu geben. In meinem Fall wollte ich, dass die Platine die Heizung einschaltet, wenn es anfängt zu frieren. Dann soll die Heizung abgeschaltet werden, wenn es warm genug ist. Dazu sind zwei Aktionen nötig, die im Homescreen unter Actions angelegt werden.
Heizung bei Frost einschalten:
Aufgabe: falls die Temperatur unter 10°C fällt soll für eine Sekunde der Einschalter der Heizung betätigt werden. Das ganze Aktion sieht so aus, genaue Erklärungen sind unten:
Bei active time kann optional eine Tageszeit festgelegt werden, zu der die Schaltung aktiv ist. Zum Beispiel: nur Nachts. Erfordert aber eine korrekte Uhr, Zeit Sync per Internet.
Unter execute when wird festgelegt, wann eine Aktion (drücken vom Taster) erfolgen soll. Hier hab ich eine Temperaturmessung alle 60 Sekunden ausgewählt. Bei repeat when hab ich 600 Sekunden (10 Minuten) eingetragen.
Erklärung: die Heizung braucht eine gewisse Zeit zum starten. Mal angenommen, der Shelly würde nach 60 Sekunden nachsehen, ob die Temperatur unter 10 Grad ist – dann wäre das vermutlich immer noch der Fall. Damit die Platine nicht nochmal auf den Knopf drückt und die Heizung gleich wieder ausmacht baut man mit der repeat when Funktion eine Pause ein, in der erneute Aktionen für 600 Sekunden unterdrückt werden.
Condition bestimmt, dass bei „falls weniger als“ UND „10 Grad“ eine Aktion erfolgen soll.
Then do ist dann der eigentliche Schaltvorgang. Shelly schaltet damit OUT 0 an, betätigt daher den Taster. Flip value after bestimmt, das nach einer Sekunde der Schalter von 1 auf 0 geschaltet wird.
Output 0 – Output state On – Flip value after 1 sec
Die Shelly Platine hält den Taster daher nicht dauerhaft gedrückt / eingeschaltet, sondern betätigt ihn und lässt ihn dann nach einer Sekunde wieder los. Genau so, wie es ein Mensch tun würde und wie es das Bedienteil der China Diesel Heizung erwartet.
Heizung herunterfahren, wenn eine bestimmte Temperatur erreicht ist:
Aufgabe: falls die Temperatur über 17°C steigt soll für zwei Sekunden der Einschalter (ist auch Ausschalter) der Heizung betätigt werden.
So programmiert startet die Heizung, wenn es kälter als 10 Grad in der Kabine ist und fährt sie runter, wenn es warm genug geworden ist. Ich hab die Heizung selber auf 18°C eingestellt, so dass der Shelly bei 17°C eingreift und sie ausschaltet.
Nach dem Auslösen hab ich 2000 Sekunden (etwa eine halbe Stunde) Wartezeit eingestellt, in der der Shelly keine Aktionen unternimmt. Das sollte reichen, um die Kabine im Winter in den Bereich zwischen 10°C und 17°C abkühlen zu lassen.
Denkbar wäre aber auch, die Heizung auf 18°C einzustellen und eine Abschaltung durch den Shelly bei 23°C zu programmieren. In dem Fall dreht die China Diesel Heizung bei 18°C runter und hält die Temperatur. Falls sich der Raum auf kleinster Stufe jedoch weiter aufheizt greift der Shelly dann als Notabschaltung ein. Allen Chinaheizungen ist gemeinsam, dass sie nicht abschalten, sondern nur auf kleinster Stufe weiter laufen können. Eine Überhitzung durch eine unbeabsichtigt weiter laufende Chinaheizung auf 35°C tagsüber (alles schon erlebt) verhindert man so.
Im Hauptmenü sehen die beiden fertig programmierten Aktionen wie folgt aus:
Wenn alles soweit funktioniert und erprobt ist sollte noch ein WLAN Passwort für den Access Point AP gesetzt werden. WLAN selbst kann in den Settings ausgeschaltet werden, falls die Shelly Platine nicht anderes machen soll als lokal die China Diesel Heizung zu steuern.
Access Point WLAN Passwort setzen:
- Settings – Access Point Settings aufrufen
- Haken bei Open AP (offenes wlan) entfernen
- Passwort vergeben + abspeichern
Die Reichweite vom kleinen Shelly Access Point ist nicht besonders hoch. Trotzdem verhindert diese Vorsichtsmassnahme, dass sich zum Beispiel Kids auf dem Campingplatz auf der suche nach gratis Internet einwählen und irgend etwas verstellen. (Beispiel: WLAN Passwort setzen oder Heizung starten)
Mögliche Probleme bei diesem Entwurf:
Problematisch kann im Moment noch sein, dass der Shelly nicht wirklich weiss, ob die Heizung an ist oder nicht. Er reagiert nur auf die Temperatur und drückt einen Knopf. In der Annahme, dass die Heizung gerade aus ist, wenn es unter 10 Grad ist und in der Annahme, dass die Heizung wahrscheinlich an ist, wenn es über 17 Grad sind.
In diesem Programmierbeispiel würde der Shelly daher im Sommer bei 20 Grad den Knopf der Heizung drücken und sie unbeabsichtigt einschalten – in der Annahme sie auszuschalten. Vielleicht könnte man das mit einem zweiten Temperatursensor beheben, der direkt mit dem Abgasrohr oder dem Gehäuse der Heizung verbunden ist. Denkbar wäre es damit, die Heizung nur dann abzuschalten, wenn der zweite Temperatursensor z.B. über 50°C hat.
Noch eine Möglichkeit wäre es, beide Schalt Ausgänge vom Shelly mit den zwei Knöpfen der „simplen“ Fernbedienung zu verbinden. Die Fernbedienung hat einen ON und einen OFF Button. Mehrfach unbeabsichtigt OFF drücken, obwohl die Heizung aus ist schadet jedenfalls nicht weiter.
Bei diesem alternativen Bauvorschlag käme man ohne ein auseinanderbauen vom Bedienteil aus. Fraglich wären dann aber die Stromversorgung für den Shelly. 12 Volt bekommt man jedoch über die Aufbau Batterien. Das wird dann an das rote und schwarze Kabel (Kabel 1, Kabel 2) angeschlossen. Die Fernbedienung kann man meiner Meinung nach ruhig weiter mit der 3 Volt CR2032 Knopfzelle betreiben, diese dürfte mehrere Jahre lang funktionieren. Manche Fernbedienungen haben aber auch eine LR27A mit 12 Volt drin, diese könnte entnehmen und die Kontakte direkt mit den 12 Volt Versorgungsspannung für den Shelly verbinden.
Bitte beachten, dass die beiden Ausgänge im Web Menü beim programmieren out 0 und out 1 heissen. In der Bedienungsanleitung oder auf der Packung haben sie die missverständliche Bezeichnung out 1 und out 2.
Ich hatte erst überlegt, den Shelly mit einer Fernbedienung zu verbinden. In meinem Fall hätte es aber bedeutet, die bidirektionale Fernbedienung mit Display zu verlieren bzw die Möglichkeit, die Heizung bequem vom Bett aus zu steuern.
… das funktioniert in diesem Entwurf nämlich nach wie vor parallel !
Die Lösung mit der Fernbedienung wäre failsafe, aber ich hab das nicht gemacht, weil meine Kabine unterwegs immer unter Aufsicht ist und die Heizung nur im Winter aktiv ist. Dass die Heizung morgens um 5:00h bei Minustemperaturen einfach mal von alleine an und um 6:30 bei behaglichen Temperaturen wieder aus geht hab ich mir jedenfalls oft gewünscht.
Das ist natürlich nur ein Beispiel, wie man so einer China Diesel Heizung eine naheliegende, intelligente, tempertaturabhängige Steuerung hinzufügt. Mit dem Shelly lassen sich noch viel komplexerer Aktionen realisieren. So liesse sich damit eine Zeitschaltung bauen oder wie beschrieben mit einem zweiten Temperatursensor überwachen, ob die Heizung selbst an ist oder aus. Für den Shelly gibt es Sensoren, die zusätzlich Gas, Feuchtigkeit, Batterie Spannung, Tankfüllstände und vieles mehr überwachen können.
In diesem Bauvorschlag wird nur einer der zwei Schaltausgänge und nur ein Thermosensor verwendet. Das ist so einfach wie möglich. Das reizt die Möglichkeiten der kleinen Platine bei weitem nicht aus. Zwei digitale 1/0 Eingänge, der analoge Eingang, ein Zähler und der zweite Schaltausgang kommen in diesem Bauvorschlag gar nicht zum Einsatz. Mit der bereits vorhandenen Platine könnte man daher noch viel mehr steuern, ohne Mehrausgaben.
Eine weitere, spannende Möglichkeit, auf die ich eventuell in einem späteren Artikel eingehe ist die Steuerung per WLAN, Bluetooth oder App vom Handy aus. Der Shelly stellt nicht nur ein WLAN zur Konfiguration bereit, sondern kann sich selber mit einem bestehenden WLAN verbinden. Das macht die Anlage für eine Steuerung per Internet interessant, um die Heizung aus der Ferne zu steuern oder zu überwachen. Oder als Alarmanlage, die eine Meldung absetzt.
Last not least möchte ich mich ganz herzlich bei Matthias Kremer aus Fuenen, Dänemark bedanken. Matthias hat mir diese Platine als Alternative zur „Afterburner“ Steuerung empfohlen, die wesentlich teurer und schwer zu beschaffen ist. Beim Afterburner ist es ausserdem immer Glückssache, ob sie mit der jeweiligen Hauptplatine läuft. Der Shelly plus Uni ist viel universeller und vielseitiger.
Viel Spass beim basten ! Lass einen Kommentar da, wenn der Artikel für dich nützlich war. Bei eher komplexen, technischen Fragen zum Anschluss oder zur Programmierung am besten einen Eintrag im Forum (hier clicken) machen. Das gilt auch für Fotos von realisierten Projekten.
Sehr schöne, ausführliche Beschreibung, anzumerken bliebe mir noch: Es finden sich 3-D gedruckte Gehäuse für den Shelly und wer mag, kann für die Kosten eines Stück Drahtes noch die Hubfrequenz der Kolbenpumpe überwachen/zählen und sich daraus den Verbrauch oder Füllstand seines Tankes berechnen lassen. Für komplexere Fragen zur Programmierung oder gleich zur fertigen Scripterstellung fand ich übrigens chatGPT ganz hilfreich.
Grüße von Fünen
Matthias