Die ungeliebten Nachtspeicheröfen, für mich GELÖST!

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

Joker971
Beiträge: 126
Registriert: 22.12.2015, 22:01
Danksagung erhalten: 2 Mal

Die ungeliebten Nachtspeicheröfen, für mich GELÖST!

Beitrag von Joker971 » 23.12.2015, 12:42

Hi Forum,
als ich mir neulich Gedanken dazu gemacht habe wie und ob meine Nachtspeicheröfen überhaupt angesteuert werden, habe ich festgestellt das es keinerlei Steuerung gibt! Ich wohne in einem 2 Fam. Haus in der obersten Etage, der Zählerschrank hängt bei mir im Keller und ich bin selbst Elektriker. In der Verteilung ist zwar eine Zentralsteuerung verbaut aber die ist garnicht angeschlossen (ich vermute weil defekt!) Es wurde alles so angeklemmt das einzig die EVU-Freigabe dafür sorgt wann die Öfen in den Auflademodus gehen. Da ich mir die Schaltpläne von der internen Verdrahtung der Öfen vom Hersteller besorgt habe (Stiebel Eltron / ETS 308) weiss ich wie diese Dinger "ticken". Der Aufladethermostat in jedem Ofen sorgt dafür das die am Ofen eingestellte Ladung eingehalten wird und im Falle einer Zentralsteuerung wird der Ofen auf die höchste Ladung gestellt und die Zentralsteuerung beschaltet einen "Heizwiederstand" der den Auladethermostat vorgaukelt es wäre genug Aufladung vorhanden. Das geschieht wohl mit einer gepulsten Spannung.

Da ich nicht weiss wie die gepulste Spannung aussehen soll (Der Hersteller schweigt sich da leider aus) habe ich mir folgendes überlegt: Was wäre wenn ich einfach die EVU-Freigabe begrenze ? Im Normalfall habe ich von 01:50 Uhr bis 07:05 und von 19:15 Uhr bis 22:00 Uhr die Freigabe. Also dachte ich mir ich schalte die Öfen auf höchste Ladung und begrenze mittels einem Relais und einem Schaltaktor die Zeit der Ladefreigabe. Ich habe mir also eine Tabelle gemacht in 10%-Schritten und berechnet wie lange ich die freigabe unterdrücken muss damit die Öfen am Ende der Freigabe entsprechend geladen sind. Das wäre z.b für 10% 06:25 Uhr. Eine laufzeit von nur 31 Minuten auf höchte Ladestufe.

Dann habe ich mir eine weitere Tabelle gemacht von welcher bis welcher Temperatur soll welche Ladung anstehen. ich bin von 18°C - -18°C ausgeganegen. Ebenfalls in 10 Schritten aufgeteilt ergäbe das für jeden Temperaturschritt 3.6 °C. D.h von 18-14.4°C ist 10% Ladung, von 14.4 - 10.8°C ist 20% Ladung e.t.c.
Dann bin ich hingegangen und habe mir ein Script hier aus dem Forum genommen welches mir über Wetter.com eine 3-Tages Vorschau der Temperaturen auswertet. Klappt wunderbar und anhand der Temperatur von Morgen wird entsprechend die Ladung automatisch eingestellt!

Bis auf die Temperaturvorhersage habe ich alles ohne Scripte realisiert, nur einfache Programme die allerdings recht umfangreich geworden sind. Hier und da gibt es noch Optimierungsmöglichkeiten aber im grossen und ganzen läuft es seit 1 Woche prblemlos. Die Temperaturschritte müssen noch etwas angepasst werden weil es mir in der Wohnung noch ca. 3 Grad zu warm ist aber das war es auch schon.

Wer näheres darüber erfahren möchte kann sich gerne hier dazu äussern :-)

Benutzeravatar
Roland M.
Beiträge: 9803
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 252 Mal
Danksagung erhalten: 1380 Mal

Re: Die ungeliebten Nachtspeicheröfen, für mich GELÖST!

Beitrag von Roland M. » 23.12.2015, 13:01

Hallo und willkommen im Forum!

Ja, ein Aufladesteuerung für einen Nachtspeicherofen war auch mein Einstieg in die Homematic!
Hier war die bidirektionale Kommunikation ausschlaggebend, denn ein "dauerladender" Ofen kann ganz schön unangenehm werden...
Als die CCU(1) dann hier stand, kam die Wohnungsgenossenschaft mit der Ankündigung, Fernwärme ins Haus legen zu lassen.
Na ja, nach den üblichen Verzögerungen wurden dann eben die Heizkörperventile homematisiert... ;)

Und ja, ich hab mir die Steuerung der Öfen auch genau angesehen. Ich muß zugeben, eine elektromechanische Meisterleistung!
Da werden Bimetallschalter mit gepulster Spannung "vorgespannt" (bitte nur mit Drehspulmeßgerät messen, nicht mit digitalem Multimeter! Pulsdauer 0,1 - 1 s), der Restwärmefühler arbeitet wieder dagegen usw. usf.
Allerdings nach 30 Jahren auch schon mechanisch nicht mehr ganz zuverlässig, zum Start der Heizsaison war es immer eine Ungewissheit, ob alle Öfen auch wieder mitmachen wollen...

Aber schön, hier auch "Success Stories" lesen zu können!


Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

Joker971
Beiträge: 126
Registriert: 22.12.2015, 22:01
Danksagung erhalten: 2 Mal

Re: Die ungeliebten Nachtspeicheröfen, für mich GELÖST!

Beitrag von Joker971 » 23.12.2015, 13:27

Hi Roland M.
ja da fragt man sich echt....WHY ??? Ich meine warum dieser ganze elektromechanische Hick - Hack wenn es doch so einfach geht ? Keine Ahnung was sich Ingeneure dabei gedacht haben aber heutige Zentralsteuerungen von Stibel-Eltron arbeiten immer noch nach dem gleichen Prinzip!
Aussschlaggebend für eine Anschaffung der CCU(2) waren in der Tat die Nachtspeicheröfen aber mittlerweile steuere ich schon viel mehr damit. Leider sind die Möglichkeiten in einer Mietswohnung etwas begrenzt ;-) Es ist schon fastzinierend was man mit der CCU alles anstellen kann wenn man könnte wie man wollte :mrgreen:

Benutzeravatar
Roland M.
Beiträge: 9803
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 252 Mal
Danksagung erhalten: 1380 Mal

Re: Die ungeliebten Nachtspeicheröfen, für mich GELÖST!

Beitrag von Roland M. » 23.12.2015, 15:31

Hallo!
Joker971 hat geschrieben:ja da fragt man sich echt....WHY ??? Ich meine warum dieser ganze elektromechanische Hick - Hack wenn es doch so einfach geht ?
Heute ist das mit Elektronik eine Kleinigkeit.
Aber in der Blütezeit der Nachtspeicheröfen, den späten 60er- und 70er-Jahren des letzten Jahrtausends war es eine Kunst, bei einfacher Elektroinstallation analoge Signale wie Außentemperatur, Restwärme, Wärrmebedarf, etc. so auszuwerten, daß zur richtigen Zeit ein Schütz anzieht.
Keine Ahnung was sich Ingeneure dabei gedacht haben aber heutige Zentralsteuerungen von Stibel-Eltron arbeiten immer noch nach dem gleichen Prinzip!
Ich behaupte, etablierte Technik ändert man das nicht so schnell.

Auch unsere Aufladesteuerung mußte ein Jahr vor dem Umstieg auf die Fernwärme ausgetauscht werden, die neue AEG elfamatic µC3000 ist ein Microprozessor mit LCD-Display usw. und gibt genau wie die alte B1 das gepulste Signal für die Öfen aus. 1970 meets 2010... :)

Leider sind die Möglichkeiten in einer Mietswohnung etwas begrenzt ;-)
Problem kenne ich auch von wo... ;)


Roland


PS: Wenn jemand eine AEG elfamatic µC3000 braucht, bitte melden! ;)
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

Joker971
Beiträge: 126
Registriert: 22.12.2015, 22:01
Danksagung erhalten: 2 Mal

Re: Die ungeliebten Nachtspeicheröfen, für mich GELÖST!

Beitrag von Joker971 » 06.11.2016, 23:34

Hallo Forum,

meine Steuerung funktioniert bis heute problemlos, bis auf 1 Sache ! Die Restwärme ! Wenn der Aussentemperaturverlauf ungünstig ist oder die Wettervorhersage zu ungenau ist, schaukeln sich die Nachtspeicheröfen auf und werden zu warm. Nicht sehr dramatisch viel aber man merkt es deutlich! Das lies mir dann doch keine Ruhe ! Ist immerhin eine verschwendung von Energie und Geld. Was ich brauchte war die Restwärmeerkennung der Öfen. Diese dient dazu zu erkennen wieviel wärme im Ofen vor der nächsten Ladung noch vorhanden ist . So lässt sich das Problem des "Zuviel ladens" beheben. Ich habe dann also keine Ruhe gegeben und recherchiert, mit welchen Signalen eine herkömmliche Zentralsteuerung funktioniert, um eben ein solchen Signal nach meinen bedürfnissen selbst zu generieren.
In jedem Ofen ist eine Heizpatrone eingebaut die dem Kerntemperaturfühler eine bestimmte Temperatur vorgaukeln kann so das der Ofen nicht jedesmal volle Pulle aufläd. Über ein Thermostat ist auch der Restwärmefühler daran gekoppelt. Diese Heizpatrone wird im Normalfall über die Zentralsteuerung mit einer gepulsten 230V Wechselspannung beschaltet. Je wärmer die Heizpatrone wird um so weniger läd der Ofen auf (Es ist dann keine Einstellung am Ofen selbst mehr nötig!). Das ist dann das sogenannte ED-Signal. Und das sieht in den meisten Fällen so aus, das ein Impulsphase 10 Sekunden dauert. Steht nun (bei einem ED80 Signal) 8 Sekunden von diesen 10 Sekunden eine Spannung an dann sind das 0% Aufladung. Steht nur 4 Sekunden von diesen 10 Sekunden ein Signal an dann sind das nur 50% Aufladung...und so weiter. Also habe ich mir einen Wemos D1 mit Display und einem Solid-State-Relais genommen und verschaltet. Da der Wemos auch über einen HTTP Server verfügt kann ich diesen über die entsprechenden Parameter per Browser einstellen (start - stop - load=xx). Das ganze habe ich jetzt in ein altes FI-Leergehäuse gepackt und in meinem Schaltschrank eingebaut. Das ganze mit den Signalleitungen der Öfen verbunden und fertig. Jetzt kann die CCU schön über W-Lan und einfachen Links mit Prozentangabe den Microcontroller einstellen und den Impuls starten oder stoppen. Eine halbe Stunde vor jeder Ladung schalte ich den Impuls ein und am Ende der Ladung wieder aus. Funktioniert bis jetzt recht gut aber der Langzeittest steht noch aus. Wer mehr darüber erfahren möchte kann sich gerne melden :-)
20161106_233106.jpg
So sieht es dann aus:

John Madoxx
Beiträge: 1
Registriert: 06.01.2020, 15:26

Re: Die ungeliebten Nachtspeicheröfen, für mich GELÖST!

Beitrag von John Madoxx » 06.01.2020, 15:31

Hallo Joker kannst du mir vielleicht bei der Steuerung für die Nachtspeicher einige Informationen geben möchte das auch gerne umbauen. Lieben Gruß John

Joker971
Beiträge: 126
Registriert: 22.12.2015, 22:01
Danksagung erhalten: 2 Mal

Re: Die ungeliebten Nachtspeicheröfen, für mich GELÖST!

Beitrag von Joker971 » 16.01.2020, 23:22

Hi, was möchtest du denn wissen ?

Dominik.
Beiträge: 1
Registriert: 19.07.2020, 07:46
System: in Planung

Re: Die ungeliebten Nachtspeicheröfen, für mich GELÖST!

Beitrag von Dominik. » 19.07.2020, 08:20

Hey Joker, kannst Du deine Einstellungen und den Code mit mir teilen? Welche Komponenten benutzt Du und wie sind sie verdrahtet? Brauche ich lediglich die folgenden Teile?

- Smart Home Zentrale CCU3
- WeMos D1 Mini WiFi Board
- WeMos 0,66 " OLED Shield
- Solid-State-Relais

Dein Setup ist genau das wonach ich gesucht habe, hört sich super cool an! Ich renoviere gerade meine Wohnung, werde die Nachtspeicheröfen nicht ersetzen aber möchte sie super gerne mit Wettervorhersage upgraden.

Besten Gruß, Dominik

Joker971
Beiträge: 126
Registriert: 22.12.2015, 22:01
Danksagung erhalten: 2 Mal

Re: Die ungeliebten Nachtspeicheröfen, für mich GELÖST!

Beitrag von Joker971 » 14.12.2020, 21:39

Hi,

leider ist das schon ziemlich lange her daher kann ich dir mit einem Schaltplan nicht mehr dienen. Aber die Komponenten sind schon richtig so!
Den Code habe ich noch :

Code: Alles auswählen

#include <NTPtimeESP.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <TimeLib.h>
#include <DS3232RTC.h> 
#include <Wire.h> 
#include <ESP8266WebServer.h>
#include "SSD1306.h"
#include "SSD1306Brzo.h"


const char* ssid            = "XXXXXXXXXX";          // Anpassen!
const char* password    = "XXXXXXXXXXXXX";    // Anpassen!
const char* Networkname = "Heizung";            // Anpassen!
const int ssrRelaisPin = D6;                             // Anpassen! An diesen PIN das Solid-State Relais anschliessen!
const String ED_Mode = "ED80";                      // Anpassen!


SSD1306  display(0x3c, D1, D2);
NTPtime NTPch("de.pool.ntp.org");
ESP8266WebServer server(80); // Webserver initialisieren auf Port 80

strDateTime dateTime;
byte D=0;
int ED = 0;
int ED_OnTime = 0;
bool Start = false;
unsigned long millisStamp;
unsigned long Next_On;
unsigned long Next_Off;
bool Pulse_Active;
unsigned long milliCounter;
String milliString;
String Li;

void setup() {
  Serial.begin(9600);
  Serial.println();
  Serial.println("Booted");
  
  display.init();
  display.flipScreenVertically();
  display.setTextAlignment(TEXT_ALIGN_LEFT);
  display.setFont(ArialMT_Plain_10);

  
  if(Establish_Wlan() == true){                                    // WLan einschalten
      setSystemTime();                                             // NTP-Zeit holen
  }
                                                                  
  D=day(now());                                                    // Aktuellen Tag merken
  pinMode(ssrRelaisPin, OUTPUT); // Relais-Pin als Ausgang setzen
  digitalWrite(ssrRelaisPin,LOW);
  
  // HTTP-Anfragen bearbeiten
  server.on("/", Reset);
  server.on("/Time", SetTime);
  server.on("/load", ED_Load);
  server.on("/start", ED_Start);
  server.on("/stop", ED_Stop);
  server.begin();

  SetupDisplay("");
}




void loop() {

   
   if(D != day(now())){
     setSystemTime();
     D=day(now());
     delay(1000);
   } 
   server.handleClient(); // auf HTTP-Anfragen warten

   if (Start==true){
      if (Pulse_Active == false){
        //Serial.println("Neuer Impuls gestartet(" + String(millis()- millisStamp)+ ")");
        millisStamp = millis();
        Next_Off = millisStamp + ED_OnTime;
        Next_On = millisStamp + 10000;
        milliCounter = millis() + 1000;
        Pulse_Active = true;
        digitalWrite(ssrRelaisPin,HIGH);
        Li="o";
        milliString = "o";
        SetupDisplay(milliString);
      }else{

        if (millis()>= milliCounter){
          milliString=milliString + Li;
          milliCounter = milliCounter + 1000;
          SetupDisplay(milliString);
        }
        
        if (millis()>= Next_Off){
          digitalWrite(ssrRelaisPin,LOW);
          Li=".";
         }
        if (millis()>=Next_On){
          Pulse_Active = false;
        }
        if (millis()<millisStamp){
          Pulse_Active = false;
        }
      }
   }else{
       millisStamp = 0;
       Next_Off=0;
       Next_On=0;
       milliCounter = 0;
       milliString = "";
   }
   
}

 void setSystemTime(){
  
  Serial.println();
  Serial.println("NTP-Zeit holen");
  Serial.println();
  
 // first parameter: Time zone in floating point (for India); second parameter: 1 for European summer time; 2 for US daylight saving time (not implemented yet)
  dateTime = NTPch.getNTPtime(1.0, 1);
  NTPch.printDateTime(dateTime);

  byte actualHour = dateTime.hour;
  byte actualMinute = dateTime.minute;
  byte actualsecond = dateTime.second;
  int actualyear = dateTime.year;
  byte actualMonth = dateTime.month;
  byte actualday =dateTime.day;
  byte actualdayofWeek = dateTime.dayofWeek;
  setTime(dateTime.hour,dateTime.minute,dateTime.second,dateTime.day,dateTime.month,dateTime.year); 
}


bool Establish_Wlan(){
  
       
      WiFi.mode(WIFI_STA);                                                            // WiFi-Modus nur Client !
      WiFi.hostname(Networkname);                                                     // WiFi Name ändern
      
      Serial.println();
      Serial.println();
      
      Serial.print("Connecting to ");
      Serial.println(ssid);
      unsigned long startTime = millis();
      WiFi.begin(ssid, password);                                                     // WiFi Verbindung aufbauen
      while ((WiFi.status() != WL_CONNECTED) && ((millis()- startTime) < 10000UL)) {  // 10 Sekunden auf Verbindung warten
        delay(400);
        Serial.print(".");
      }
     
      if (WiFi.status() == WL_CONNECTED){
         Serial.println("");
         Serial.println("WiFi connected"); 
         Serial.println("IP address: ");
         Serial.println(WiFi.localIP());
         return true;
      }else{
         Serial.println("");
         Serial.println("WiFi not connected");
         WiFi.disconnect();
         return false;
      }
      
}


void Reset() {
  ED=0;
  server.send(200, "text/plain", "Reset");
  delay(100);
  Serial.println("Reset");
}
void SetTime() {
 
  server.send(200, "text/plain", "Zeit wird neu geladen.");
  delay(100);
  Serial.println("Zeit wird neu geladen");
  setSystemTime();
}
void ED_Load() {
  String ld = server.arg("load");
  if(ld !=""){
    if(ld.toInt() >= 0 && ld.toInt() <= 100){
       if(Start==false){
          ED=ld.toInt();
          Loading_Display();
          SetupDisplay("");
          }else{
          Meldung("Bitte zuerst den Impuls stoppen!");
       }
    }else{
      Meldung(" - load - Ausserhalb des gueltigen Bereichs (0 - 100)!");
    }
  }
}


void Loading_Display(){
  server.send(200, "text/plain", "Aufladung: " + String(ED) + "%");
  delay(100);
  Serial.println("Aufladung: " + String(ED) + "%");
}

void ED_Start(){
  if(Start==true){
    Meldung("ED-Impuls läuft bereits, erst stoppen!");
  }else{
    Start = true;
    if (ED_Mode == "ED80"){
       ED_OnTime = 8000-(80*ED);
    }
    Meldung("Starte ED-Impuls(" + ED_Mode + "), " + String(ED) + "%" + " Aufladung bei " + String(ED_OnTime) + " Millisekunden");
  }
}

void ED_Stop(){
  Start=false;
  digitalWrite(ssrRelaisPin,LOW);
  Meldung("Stoppe ED-Impuls");
  SetupDisplay("");
}

void Meldung(String Text){
  Serial.println(Text);
  delay(100);
  server.send(200, "text/plain", Text);
}

void SetupDisplay(String Pulse){
  display.clear();
  display.setTextAlignment(TEXT_ALIGN_LEFT);
  display.setFont(ArialMT_Plain_10);
  display.drawString(31, 15, "Mode: " + ED_Mode);
  display.drawString(31, 25, "Vol: " + String(ED) + "%");
  display.drawString(31, 35, "Pulse:");
  display.drawString(31, 45, Pulse);
  display.display();
}
Wenn du den Code so übernommen hast kannst du über Http Befehle an den Wemos senden:

http://xxx.xxx.xxx.xxx/Time -->> Zeit wird aus dem I-Net geladen
http://xxx.xxx.xxx.xxx/stop -->> Impuls wird gestoppt
http://xxx.xxx.xxx.xxx/start -->> Impuls wird gestartet, geht nur wenn Impuls noch nicht läuft!
http://xxx.xxx.xxx.xxx/load?load=xx -->> xx ist die Prozentzahl, diese wird auf der CCU ermittelt.

Ich bin auch kein Programmierprofi und habe mir den Code so "zusammengeschustert". Er funktioniert bei mir immerhin.
So ich hoffe das hilft dir weiter :D

Patrick Notstrom
Beiträge: 1
Registriert: 08.10.2022, 11:26
System: in Planung

Re: Die ungeliebten Nachtspeicheröfen, für mich GELÖST!

Beitrag von Patrick Notstrom » 08.10.2022, 11:41

Hallo,

ist bei diesem Thema noch jemand aktiv?

Ich würde gerne wissen ob ich das mit dem zwischen geschalteten Relais richtig verstanden habe. Das Relais ist in die "gepulste Steuerleitung Z1" verdrahtet. Dieses Relais wird dann anhand der gesammelten Daten beschaltet und begrenzt dann das ohnehin schon "gepulste" Signal bzw. belässt das Signal im Originalzustand.


Ich hoffe ich konnte mein Anliegen einigermassen rüberbringen. :)

Antworten

Zurück zu „Projektvorstellungen“