Fußbodenheizung mit Rücklauftemperaturbegrenzer (RTL)

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Antworten
DJDieter
Beiträge: 311
Registriert: 11.01.2008, 14:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 33 Mal
Danksagung erhalten: 19 Mal

Fußbodenheizung mit Rücklauftemperaturbegrenzer (RTL)

Beitrag von DJDieter » 12.11.2018, 15:00

Hallo Zusammnen,

da in meinem Haus eine Fußbodenheizung mit Rücklauftemperaturbegrenzer (war vor 25 Jahren so) eingebaut ist, überlege ich schon seit Jahren, wie man das steuern könnte, da die Heizung so 24 Stunden heizt. Nun habe ich dafür etwas gebastelt, um den RTL via CCU zu regeln. Vielleicht kann es der Eine oder Andere gebrauchen.

An Bauteilen wird benötigt:
1 x Arduino Uno
1 x Stepper-Motor-Shield gibt's z.B. hier
1 Zahnrad mit 64 und eines mit 32 Zähnen gibt's z.B. hier
1 Steppermotor mit Getriebe (Nema 14 mit Planetengetriebe 51:1) wie z.B. den hier
1 x Motorhalterung entsprechend der Gegebenheiten (ich habe einen einfachen 90°-Winkel genommen)
1 x 8-Kanal-Empfangsmodul HM-MOD-Re-8
1 x Netzteil 6V/1A
1 x Arduino Grundwissen und viel Geduld

Als erstes wird in das 64er Zahnrad mit einer Lochsäge ein Loch gesägt, das etwas kleiner ist als der RTL. Anschließend mit einer Feille auf den exakten Durchmesser erweitert. Dann das Zahnrad auf den RTL schieben und fest(!) verkleben. Ich habe dafür einen UV-härtenden Kleber verwendet.
Dann wird das 32er Zahnrad auf die Getriebewelle des Schrittmotors geschoben. Jetzt müßt ihr schauen, wie ihr die Halterung mit dem Motor befestigen könnt, damit die Zahnräder ineinander greifen und nirgends streifen. Wenn alles paßt, wird durch Zahnrad und Anriebswelle ein kleines Loch gebohrt und das Ganze mittels Splint o.ä. fixiert.
Arduino sowie Motorshield fertig zusammenlöten (falls nicht fertig gekauft). Auf eine Lochrasterplatine entsprechende Sockelleisten für den Arduino und das HM-MOD-Re-8 löten. Das Motor-Shield wird direkt auf den Arduino gesteckt. Die Pins 8, 9, 10, 11 und 12 des Arduino werden mit den Pins Out 1, 2, 3, 4 und 5 des HM-MOD-Re-8 verbunden und jeweils mit einem 10kOhm Pullup-Widerstand auf Plus gelegt.
Pullup-Widerstand.jpg
Das Motor-Shield ist unbedingt an das Netzteil anzuschließen. Bei einer Stromaufnahme von 0,8A raucht sonst die USB-Buchse ab.
Hier dann der Arduino-Sketch dazu (der ist sicher noch verbesserungswürdig - dazu reichen meine Programmierkenntnisse aber leider nicht aus)

Code: Alles auswählen

/* 
For use with the Adafruit Motor Shield v2 
---->  http://www.adafruit.com/products/1438
*/


#include <Wire.h>
#include <Adafruit_MotorShield.h>

// Create the motor shield object with the default I2C address
Adafruit_MotorShield AFMS = Adafruit_MotorShield(); 
// Or, create it with a different I2C address (say for stacking)
// Adafruit_MotorShield AFMS = Adafruit_MotorShield(0x61); 

// Connect a stepper motor with 200 steps per revolution (1.8 degree) to motor port #1 (M1/M2) oder #2 (M3/M4);
Adafruit_StepperMotor *Motor = AFMS.getStepper(200, 1);


int Comfort=8; // Taster an Pin8
int Eco=9; // Taster an Pin9
int Aus=10; // Taster an Pin10
int RW=11; //Taster an Pin11 - 100 Schritte Richtung Aus
int FW=12; //Taster an Pin12 - 100 Schritte Richtung Comfort
int ComfortSet=HIGH;
int EcoSet=HIGH;
int AusSet=HIGH;
int Forward=HIGH;
int Backward=HIGH;
int ComfortPosition=2;
int EcoPosition=1;
int AusPosition=0;
int AktuellePosition;
int StartPosition;

void setup()
{
  Serial.begin(9600);           // set up Serial library at 9600 bps
  Serial.println("Schrittmotor Nema");
  pinMode(Comfort, INPUT);
  pinMode(Eco, INPUT);
  pinMode(Aus, INPUT);
  pinMode(RW, INPUT);
  pinMode(FW, INPUT);
  pinMode(LED_BUILTIN, OUTPUT);

  AFMS.begin();  // create with the default frequency 1.6KHz
  //AFMS.begin(1000);  // OR with a different frequency, say 1KHz
  
  Motor->setSpeed(100);  // 10 rpm (je höher der Wert, desto niedriger das Drehmoment)
  AktuellePosition=ComfortPosition;
}

void loop()
{
  ComfortSet=digitalRead(Comfort); //Zunächst werden die Eingänge abgefragt.
  EcoSet=digitalRead(Eco);
  AusSet=digitalRead(Aus);
  Forward=digitalRead(FW);
  Backward=digitalRead(RW);
  while(ComfortSet==HIGH && EcoSet==HIGH && AusSet==HIGH && Forward==HIGH && Backward==HIGH)
  { 
  ComfortSet=digitalRead(Comfort);
  EcoSet=digitalRead(Eco);
  AusSet=digitalRead(Aus);
  Forward=digitalRead(FW);
  Backward=digitalRead(RW);
  }

if(ComfortSet == LOW)
 {
  Serial.println("Comfort");
  if(AktuellePosition==0)
  {Motor->step(7500, FORWARD, DOUBLE);}
  else if(AktuellePosition==1)
  {Motor->step(3800, FORWARD, DOUBLE);}
  else if(AktuellePosition==2)
  {Motor->step(0, FORWARD, DOUBLE);}
  AktuellePosition=2;
  Serial.println(AktuellePosition);
  Motor->release();
  delay(500);
 }
 
 else if(EcoSet == LOW)
 {
  Serial.println("Eco");
  if(AktuellePosition==0)
  {Motor->step(3700, FORWARD, DOUBLE);}
  else if(AktuellePosition==1)
  {Motor->step(0, FORWARD, DOUBLE);}
  else if(AktuellePosition==2)
  {Motor->step(3800, BACKWARD, DOUBLE);}
  AktuellePosition=1;
  Motor->release();
  Serial.println(AktuellePosition);
  delay(500);
 }
 
 else if(AusSet == LOW)
 {
  Serial.println("Aus");
  if(AktuellePosition==0)
  {Motor->step(0, FORWARD, DOUBLE);}
  else if(AktuellePosition==1)
  {Motor->step(3700, BACKWARD, DOUBLE);}
  else if(AktuellePosition==2)
  {Motor->step(7500, BACKWARD, DOUBLE);}
  AktuellePosition=0;
  Serial.println(AktuellePosition);
  Motor->release();
  delay(500);
 }
  else if(Forward == LOW)
 {
  Serial.println("100 Schritte vorwärts");
  {Motor->step(100, FORWARD, DOUBLE);}
  Motor->release();
  delay(500);
 }
   else if(Backward == LOW)
 {
  Serial.println("100 Schritte rückwärts");
  {Motor->step(100, BACKWARD, DOUBLE);}
  Motor->release();
  delay(500);
 }
}
Bei der Spannungszufuhr oder einem Reset geht der Code immer davon aus, dass der Motor auf Comfort steht.
Erläuterung zur Funktionsweise:
Je nach Stellung des Motors wird bei entsprechendem Signal der Motor um die entsprechenden Schritte vorwärts oder Rückwärts bewegt und diese Position wird dann gespeichert. Das Einstellen der jeweils benötigten Schrittzahl erfordert viel Zeit und Geduld. Über die Pins 11 und 12 lassen sich Korrekturen vornehmen, ohne das die gespeicherte Position geändert wird.
Dann auf der CCU je ein Programm erstellen für Comfort, Eco und Aus. Ich verwende als Auslöser je eine virtuelle Taste, die ich dann in entsprechende Zeitsteuerungen einbaue.
Wichtig ist, dass die Einschaltdauer nur 0,5 Sekunden betragen darf!
Screenshot_2018-11-12 HomeMatic WebUI.png
Screenshot_2018-11-12 HomeMatic WebUI.png (19.31 KiB) 8193 mal betrachtet
IMG_1376.JPG
IMG_1377.JPG
Schaltplan.jpg
Raspberry PI 4 mit RaspberryMatic, 4 LAN-Gateways, zwei HmIP-HAP und 248 Geräte
CUxD mit 357 Kanälen auf 64 Geräten
Zusatzsoftware: XML-API, CUxD-Highcharts, NEO-Server, Programmedrucken, CUxD, E-Mail, Philips Hue, Messenger, CCU-Historian, JB-HP-Devices, HomeKit HomeMatic
Anbindungen: Wolf eBus; NodeMCU-Ultraschall-Füllstandsmessung mit Temperatureinfluß; Fußbodenheizung mit Rücklauftemperaturbegrenzer (RTL)

mash4077
Beiträge: 65
Registriert: 26.05.2018, 08:43

Re: Fußbodenheizung mit Rücklauftemperaturbegrenzer (RTL)

Beitrag von mash4077 » 12.11.2018, 22:09

Respekt!

docffm
Beiträge: 29
Registriert: 06.03.2018, 11:11
System: Alternative CCU (auf Basis OCCU)
Wohnort: Karben
Danksagung erhalten: 4 Mal

Re: Fußbodenheizung mit Rücklauftemperaturbegrenzer (RTL)

Beitrag von docffm » 14.11.2018, 14:45

Spannende Konstruktion...es geht aber auch einfacher: es gibt ein elektrisch gesteuertes RTL-Ventil (Heißt Unibox RTL-TH basic, gibts z.B. bei www.selfio.de)...da ist eine Sicherheits-Temperaturbegrenzung von 40° fest eingestellt und es gibt einen elektrischen Regelantrieb (wird nur ein/aus gesteuert). Dieser Regelantrieb wird nun über einen HM-Schaltaktor HM-LC-Sw1-FM geschaltet, der wiederum über einen Wandthermostat HM-TC-IT-WM-W-EU gesteuert wird. Die RTL-Box kostet um 140€, zusätzlich rund 90€ für Schaltaktor und Wandthermostat...ich bin gerade dabei, bei mir im Haus mehrere Bäder zu renovieren und diese und noch zwei andere Räume mit Fußbodenheizung auszustatten und werde das (in Zusammenarbeit mit meinem Heizungsbauer) so machen...werde dann später über die Umsetzung berichten..

DJDieter
Beiträge: 311
Registriert: 11.01.2008, 14:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 33 Mal
Danksagung erhalten: 19 Mal

Re: Fußbodenheizung mit Rücklauftemperaturbegrenzer (RTL)

Beitrag von DJDieter » 14.11.2018, 15:04

docffm hat geschrieben:
14.11.2018, 14:45
Spannende Konstruktion...es geht aber auch einfacher: es gibt ein elektrisch gesteuertes RTL-Ventil (Heißt Unibox RTL-TH basic, gibts z.B. bei www.selfio.de)...da ist eine Sicherheits-Temperaturbegrenzung von 40° fest eingestellt und es gibt einen elektrischen Regelantrieb (wird nur ein/aus gesteuert). Dieser Regelantrieb wird nun über einen HM-Schaltaktor HM-LC-Sw1-FM geschaltet, der wiederum über einen Wandthermostat HM-TC-IT-WM-W-EU gesteuert wird. Die RTL-Box kostet um 140€, zusätzlich rund 90€ für Schaltaktor und Wandthermostat...ich bin gerade dabei, bei mir im Haus mehrere Bäder zu renovieren und diese und noch zwei andere Räume mit Fußbodenheizung auszustatten und werde das (in Zusammenarbeit mit meinem Heizungsbauer) so machen...werde dann später über die Umsetzung berichten..
Das kenn ich. Ist bei mir leider nicht möglich, da der RTL schon seit dem Bau drin ist und aus Platzmangel auch nicht ausgetauscht werden kann.
Raspberry PI 4 mit RaspberryMatic, 4 LAN-Gateways, zwei HmIP-HAP und 248 Geräte
CUxD mit 357 Kanälen auf 64 Geräten
Zusatzsoftware: XML-API, CUxD-Highcharts, NEO-Server, Programmedrucken, CUxD, E-Mail, Philips Hue, Messenger, CCU-Historian, JB-HP-Devices, HomeKit HomeMatic
Anbindungen: Wolf eBus; NodeMCU-Ultraschall-Füllstandsmessung mit Temperatureinfluß; Fußbodenheizung mit Rücklauftemperaturbegrenzer (RTL)

HomeManiac
Beiträge: 73
Registriert: 24.12.2015, 13:13
Hat sich bedankt: 2 Mal

Re: Fußbodenheizung mit Rücklauftemperaturbegrenzer (RTL)

Beitrag von HomeManiac » 09.12.2018, 18:58

Hallo,

also Ich finde die Lösung richtig gut und bin am überlegen so etwas ähnliches nach zubauen.

Frage(n):
Warum hast Du denn einen Schrittmotor mit Planetengetriebe - mit dieser großen Übersetzung 51:1?
Dann kommt noch Faktor 2 mit den Zahnrädern dazu. Läuft da der Motor nicht "ewig" um das Ziel zu erreichen?

Wie machst Du das mit dem Stromausfall? Speicherst Du bei jedem Schritt den Zustand des Schrittmotors im EEPROM?
Hast Du eine Endlagen-Microschalter?

MfG
Werner

DJDieter
Beiträge: 311
Registriert: 11.01.2008, 14:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 33 Mal
Danksagung erhalten: 19 Mal

Re: Fußbodenheizung mit Rücklauftemperaturbegrenzer (RTL)

Beitrag von DJDieter » 09.12.2018, 19:23

HomeManiac hat geschrieben:
09.12.2018, 18:58
Hallo,

also Ich finde die Lösung richtig gut und bin am überlegen so etwas ähnliches nach zubauen.

Frage(n):
Warum hast Du denn einen Schrittmotor mit Planetengetriebe - mit dieser großen Übersetzung 51:1?
Dann kommt noch Faktor 2 mit den Zahnrädern dazu. Läuft da der Motor nicht "ewig" um das Ziel zu erreichen?

Wie machst Du das mit dem Stromausfall? Speicherst Du bei jedem Schritt den Zustand des Schrittmotors im EEPROM?
Hast Du eine Endlagen-Microschalter?

MfG
Werner
Die große Übersetzung ist notwendig, da der RTL relativ schwergängig ist und die Kraft sonst nicht ausreicht. Von meiner Heizstellung 3 bis auf 0 zurück benötigt der Motor geschätzt etwa 10-15 Sekunden.

Das Problem mit dem Stromausfall habe ich bis jetzt leider noch nicht lösen können. Mit dem Endlagen-Schalter habe ich mir auch schon überlegt. Ist aber relativ schwierig anzubauen.
Raspberry PI 4 mit RaspberryMatic, 4 LAN-Gateways, zwei HmIP-HAP und 248 Geräte
CUxD mit 357 Kanälen auf 64 Geräten
Zusatzsoftware: XML-API, CUxD-Highcharts, NEO-Server, Programmedrucken, CUxD, E-Mail, Philips Hue, Messenger, CCU-Historian, JB-HP-Devices, HomeKit HomeMatic
Anbindungen: Wolf eBus; NodeMCU-Ultraschall-Füllstandsmessung mit Temperatureinfluß; Fußbodenheizung mit Rücklauftemperaturbegrenzer (RTL)

HomeManiac
Beiträge: 73
Registriert: 24.12.2015, 13:13
Hat sich bedankt: 2 Mal

Re: Fußbodenheizung mit Rücklauftemperaturbegrenzer (RTL)

Beitrag von HomeManiac » 09.12.2018, 21:15

... danke für die Antworten.

Eigentlich wollte ich kein/kaum Geld ausgeben. Ich hab noch einen NEMA23 mit Steuerung rumliegen, ich hoffe der schafft das direkt.
Als Steuerung hab ich einen Esp8266 (WEMOS D1) im Blick. Das Ding hat ja schon WiFi etc....

Mein RTL ist in so einer "Unterputz-Dose" (ohne Strom). Ich müsste ein Loch bohren um auf die andere Seite der Mauer zu kommen.
Dort einen Schlitz bis zur nächsten Steckdose (ca. 1 Meter). Ach wenn dies alles nur nicht mit Dreck verbunden wäre :(

Was meine Frau (wieder) dazu sagen wird :mrgreen: :lol:

HomeManiac
Beiträge: 73
Registriert: 24.12.2015, 13:13
Hat sich bedankt: 2 Mal

Re: Fußbodenheizung mit Rücklauftemperaturbegrenzer (RTL)

Beitrag von HomeManiac » 23.02.2019, 12:26

So, Ich hab das Ganze jetzt auch umgesetzt:

Der Antrieb besteht aus einem NEMA17, GT2 Riemen, Pulley 16, einem Spanner und einer selbstgedrucktem Mitnehmer mit 62 Zähnen.
Für den Schrittmotor habe ich einen A4988 genommen.

Gesteuert wird das ganze mit einem ESP8266-12 (Wemos D1) und MQTT/Node-Red. Beim Einschalten (und 1x pro Woche) macht er eine
Initialisierungfahrt. Beide Endanschläge werden darüber hinaus mit Endschalter überwacht.
20190223_120514.jpg

Nochmal vielen Dank für die Idee an den TE! :D

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“