Heizungssteuerung -Vorstellung-

Begonnen von Mitch, 20 Mai 2014, 09:27:15

Vorheriges Thema - Nächstes Thema

Mitch

Hallo Zusammen,

da seit dem Wochende nun endlich meine Heizungssteuerung komplett und ohne Fehler funktioniert, wollte ich dies hier einmal der Gemeinschaft vorstellen (vielleicht kann ja der Eine oder Andere etwas davon gebrauchen).

Grundsätzlich nutzte ich FHZ1300, FHT8b mit Fensterkontakten an FHEM.
Die Steuerung der Heizung erfolgt komplett über FHEM, die FHTs laufen alle auf manuell.

Den Code zum definieren der FHTs spare ich mir jetzt, das sollte Grundverständnis sein.

Als erstes Modul meiner Steuerung nutze ich das Modul Heating_Control für jedes Zimmer/jeden FHT:
define HCB Heating_Control FHT_Bad 12345|06:00|22 12345|07:30|19 67|08:30|22 67|10:00|19 18:00|21 22:00|14 (ReadingsVal("HCAutomatik", "state", "") eq "on")
attr HCB alias Bad
attr HCB group Heizplan
attr HCB room Heizung


Den Heizplan kann ich über einen Dummy ein- und ausschalten:
define HCAutomatik dummy
attr HCAutomatik alias Heizungsautomatik
attr HCAutomatik devStateIcon on:general_an off:general_aus
attr HCAutomatik group Automatik
attr HCAutomatik icon sani_heating_automatic
attr HCAutomatik room Heizung
attr HCAutomatik sortby 1
attr HCAutomatik webCmd on:off


define act_on_HCAutomatikAn notify HCAutomatik:on {\
     Heating_Control_SetAllTemps();;\
     fhem("set HCS_System on");;\
}

define act_on_HCAutomatikAus notify HCAutomatik:off {\
    fhem("set FHT_.* desired-temp 14.0 ;; set HCS_System off");;\
    system ("curl -s -F 'token=xxxx' -F 'user=xxxx' -F 'message=Heizungsplan ausgeschaltet' https://api.pushover.net/1/messages.json");;\
}

Bei einer Deaktivierung werden alle FHTs auf 14 Grad eingestellt und es wird mir zu Info eine Pushnachricht geschickt.

Als nächstes habe ich das Modul HCS intergiert:
define HCS_System HCS Vaillant
attr HCS_System alias Vaillant Steuerung
attr HCS_System devStateIcon demand:sani_heating_temp idle:sani_heating_manual off:general_aus
attr HCS_System deviceCmdOff off
attr HCS_System deviceCmdOn on
attr HCS_System event-on-change-reading state,devicestate,eco,overdrive
attr HCS_System icon sani_heating_manual
attr HCS_System idleperiod 5
attr HCS_System interval 5
attr HCS_System loglevel 5
attr HCS_System mode thermostat
attr HCS_System room Heizung
attr HCS_System thermostatThresholdOff 0.5
attr HCS_System thermostatThresholdOn 0.5
attr HCS_System valveThresholdOff 40
attr HCS_System valveThresholdOn 35

define Heizkessel FS20 xxxx xx
attr Heizkessel IODev FHZ
attr Heizkessel alias Vaillant Heizkessel (ON = Kessel AUS)
attr Heizkessel comment Wenn ON ist Kessel aus
attr Heizkessel devStateIcon on:general_an off:general_aus
attr Heizkessel group HCS
attr Heizkessel icon sani_boiler_temp
attr Heizkessel model fs20st

Hiermit steuere ich meine Vaillant Heizung potentialfrei über einen FS20 Einkanalempfänger an.
Das Relais ist so angeschlossen, dass die Heizung an ist, wenn das Relais abegfallen ist (dies hat den Vorteil, dass auch bei einem Defekt des Empfängers die Heizung funktioniert).
Ich habe dazu noch einen Dummy angelegt, damit ich abfragen kann, ob schon geschalten wurde, damit nicht alle 5 Minuten (der Abfrageinterval von HCS) der FS20 geschalten wird:
define Vaillant dummy
attr Vaillant alias Vaillant Heizsystem
attr Vaillant devStateIcon on:general_an off:general_aus
attr Vaillant group HCS
attr Vaillant icon sani_boiler_temp
attr Vaillant room Heizung
attr Vaillant webCmd on:off

define act_on_Vaillant notify Vaillant:.* {\
  if (ReadingsVal("Vaillant", "state", "on") eq "on" && ReadingsVal("Heizkessel", "state", "off") eq "on") {\
    fhem("set Heizkessel off");;\
  }\
  else {\
    if (ReadingsVal("Vaillant", "state", "off") eq "off" && ReadingsVal("Heizkessel", "state", "off") eq "off") {\
  fhem("set Heizkessel  on");;\
}\
   }\
}


Des weiteren habe ich mir einen "ECO-Script" angelegt (vielen Dank an das Forum für die Hilfe), welcher alle FHTs um 2 Grad runter setzt und zwar von dem im Moment anliegenden Wert:
define HZ.Absenkung dummy
attr HZ.Absenkung alias ECO Mode - Heizungsabsenkung 2 Grad
attr HZ.Absenkung devStateIcon on:general_an off:general_aus
attr HZ.Absenkung group Automatik
attr HZ.Absenkung icon time_eco_mode
attr HZ.Absenkung room Heizung
attr HZ.Absenkung webCmd on:off

define act_on_HZ.Absenkung_An notify HZ.Absenkung:on {\
my @@FHT=devspec2array("TYPE=FHT");;\
        foreach(@@FHT) {\
my $t = ReadingsVal("$_", "desired-temp", "")-2;;\
fhem("set $_ desired-temp ".$t);;\
}\
}

define act_on_HZ.Absenkung_Aus notify HZ.Absenkung:off set HCAutomatik on

define ECOMode.Aus notify Anwesenheit:Zuhause {\
  if (ReadingsVal("HZ.Absenkung", "state", "") eq "on") {\
    fhem ("set HZ.Absenkung off");;\
  }\
}


Diese ECO-Schalter triggere ich auch über das Modul Precense und Geofancy mit einem watchdog an. Der watchdog wird bei Abwesenheit aktiviert und läuft 30 Minuten. Wenn bis dahin niemand zurück hin, wird ECO aktiviert:
define ECOMode watchdog Anwesenheit:Unterwegs 00:30 Anwesenheit:Zuhause set HZ.Absenkung on
attr ECOMode regexp1WontReactivate 1


Zusätzlich trigger ich ECO über die Aussentemperatur. Wird 22 Grad erreicht oder überschritten, wird ECO aktiviert. Unterhalb 22 Grad wieder deaktiviert:
define act_on_Aussentemperatur notify Wetterstation:temperature:.* {\
  if (ReadingsVal("Wetterstation", "temperature", "") >= "22" && ReadingsVal("Sonnenindikator", "state", "off") eq "off") {\
    fhem("set Sonnenindikator on");;\
  }\
  else {\
    if (ReadingsVal("Wetterstation", "temperature", "") < "22" && ReadingsVal("Sonnenindikator", "state", "off") eq "on") {\
  fhem("set Sonnenindikator  off");;\
}\
   }\
}

define Sonnenindikator dummy
attr Sonnenindikator devStateIcon on:sun27 off:sun7
attr Sonnenindikator group HCS
attr Sonnenindikator icon clear3

define act_on_Sonnenindikator notify Sonnenindikator:on set HZ.Absenkung on
define act_on_Sonnenindikator.Aus notify Sonnenindikator:off set HZ.Absenkung off


Dies soll als "Denkanstoss" dienen. Ich habe mir auch alles zu FHEM aus diesem Forum "gezogen".
Nachbau erlaubt und erwünscht.

Gerne Beantworte ich Frage und nehme Anregungen und Verbesserungsvorschläge danked an  ;)
FHEM im Proxmox Container

Elektrolurch

Hallo,

ich habe auch eine Heizungssteuerung realisiert, die aber in zwei Punkten wohl von Deiner abweicht:
1. Die Steuerung der einzelnen Räume überlasse icfh den FHTs (auto). Da ich 10 Stück im Einsatz habe, verringere ich so den Funkverkehr. Die Programmierung, bzw. Abwesenheitsshaltung mache ich per fhem. Für die Programmierung habe ich einen dummy mit Raumauswahl, tag- und Absenktemperatur, Wochentag und den 4 möglichen Uhrzeiten.
Die Abwesenheit erfolgt sogar personenbezogen (einzelne Räume gehen dann aus dem Standardprogramm heraus).
2. Die benötigte Vorlauftemperatur für den Heizkreislauf wird aus den Temperaturdifferenzen zwischen Soll- und Isttemperatur der Thermostate und der Ventilstellung berechnet. Bei einer Ventilstellung von 80 % ist die Vorlauftemperatur optimal. Diese wird von fhem an der Heizungsanlage eingestellt. Die Witterungsführung ist völlig deaktiviert.
Bei Unterschreiten einer bestimmten Ventilstellung (Absenkbetrieb) swird die Pumpe für den Heizkreis zur Stromersparnis ganz ausgeschaltet.
Somit erfolgt auch automatisch eine Umschaltung in den Sonmerbetrieb.

Ferner hängt da noch eine Solaranlage mit dran, die Priorität beim Berechnen eines Heizbedarfs (Gas) hat. (Rückstellung der Gasaufheizung zugunsten Solar, da geht die Wetterprognose mit ein).
Da ich an der Hz das Einschalten des Brenners und den Gasfluß abfragen kann, berechne ich auch noch den Gasverbrauch und den Gesamtenergiebedarf (Gas + Solar) und erhalte so die Energiebilanz je Tag und Monat.

Gruß


Elektrolurch

configDB und Windows befreite Zone!

svenson08

Mal ein dickes Lob für deine Ausführung. Einen Wunsch hätte ich aber, pack das ganze doch auch ins Wiki.

Mitch

Danke.
Login für WIKI habe ich gerade beantragt. Sobald der da ist, mach ich einen Eintrag.
FHEM im Proxmox Container

Thorsten Pferdekaemper

Zitat von: Elektrolurch am 20 Mai 2014, 10:57:142. Die benötigte Vorlauftemperatur für den Heizkreislauf wird aus den Temperaturdifferenzen zwischen Soll- und Isttemperatur der Thermostate und der Ventilstellung berechnet.
Hi,
wie übergibst Du die Vorlauftemperatur dann an Deine Heizungsanlage?
Gruß,
    Thorsten
FUIP

ph1959de

Zitat von: Mitch am 20 Mai 2014, 12:21:52
Login für WIKI habe ich gerade beantragt. Sobald der da ist, mach ich einen Eintrag.
Ich habe heute bereits die Wiki-Seiten für http://www.fhemwiki.de/wiki/Heating_Control und http://www.fhemwiki.de/wiki/HCS angelegt (und jeweils hierher auf diesen Thread verlinkt).

Wenn es aus Deiner Sicht Sinn macht, kannst Du Deine Informationen auf die beiden Seiten "verteilen". Falls nicht, und Du lieber eine eigene Seite anlegst, dann verknüpfe (mit [[...]]) doch bitte auf die beiden Modulseiten und trage Deine neue Seite in die Liste der http://www.fhemwiki.de/wiki/Anwendungsszenarien ein.

Danke, Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Mitch

FHEM im Proxmox Container

Elektrolurch

Hallo,

hier die Antwort zur Frage der Vorlauftemperatur:
Ich habe an der Weishaupt-Anlage ein Webinterface.Da kann ich alle Werte für den Gasbrenner, die Heizkreise und die Solaranlage auslesen und auch setzen. Damit ist die Anlage komplett von fhem steuerbar.
Aus Öko-Sicht macht es meiner Meinung nach erst richtig Sinn, den Heizbedarrf nicht von der Außentemperatur, sondern von den gewünschten Temperaturen in den Räumen abhängig zu machen. Damit fällt auch eine Einstellung der Heizkurve (Steilheit,Offset) weg und die Vorlauftemperatur ist immer gerade so hoch, wie tatsächlich benötigt wird.
Die Temperatur im Heizkreis wird über einen Mischer eingestellt, der den Rücklauf in den Vorlauf einmischt, um so die gewünschte Heizkreistemperatur zu erhalten.
Somit reagiert die Heizkreisregelung sofort, d.h. nach ca. 10 Minuten habe ich die eingestellte Temperatur  auch am Heizkörper.

Gruß

Elektrolurch
configDB und Windows befreite Zone!

Thorsten Pferdekaemper

Zitat von: Elektrolurch am 21 Mai 2014, 09:34:11Ich habe an der Weishaupt-Anlage ein Webinterface.
Könntest Du mir die genaue Bezeichnung von dem Ding verraten?
ZitatAus Öko-Sicht macht es meiner Meinung nach erst richtig Sinn, den Heizbedarrf nicht von der Außentemperatur, sondern von den gewünschten Temperaturen in den Räumen abhängig zu machen.
Denke ich auch, deshalb mache ich's genauso. Meine Regelung hat aber kein Interface, so dass ich sie ein bisschen austricksen muss.
ZitatDie Temperatur im Heizkreis wird über einen Mischer eingestellt, der den Rücklauf in den Vorlauf einmischt, um so die gewünschte Heizkreistemperatur zu erhalten.
Ich habe keinen Mischer und soweit ich das verstehe ist das bei meinem Brennwertkessel auch ganz gut so. Möglicherweise verstehe ich hier was falsch, aber wird durch einen Mischer nicht auch die Rücklauftemperatur u.U. höher? Das ist dann für den Brennwert-Effekt nicht gerade zuträglich.
Zitatd.h. nach ca. 10 Minuten habe ich die eingestellte Temperatur  auch am Heizkörper.
Da ich keinen Mischer habe, schwankt bei mir auch die Temperatur im Heizkörper. Das scheinen die Regelventile (Homematic RTs) aber im Griff zu haben. Die Raumtemperatur schwankt nur im Zehntel Grad Bereich.
Außerdem habe ich das kleine Problemchen, dass mein ("offizieller") Heizkesselregler glaubt, dass er außentemperaturgeführt ist und daher einen Mittelwert berechnet. Daher dauert es manchmal eine Weile, bis das ganze reagiert. Das will ich demnächst versuchen umzubauen.

Gruß,
    Thorsten
FUIP

Elektrolurch

Hallo,

das Interface für die Weishaupt gibt es in zwei Ausführungen: Wcmcom Home und Professionell. Es hängt am internen Bus der Anlage.

Das Brennwertgerät holt sein Wasser aus dem Pufferbehälter und nicht aus dem Heizkreislauf. Damit ist die Effizienz sichergestellt.
Bei den meisten Heizungsanlagen müsste der Regeltyp einstellbar sein.
BEi  mir gibt es Witterungsführung, Konstantvorlauf, Raumführung und Witterungs/Raumführung.
Ich setze das per fhem auf Konstantvorlauf und setze die Heizkreistemperatur dann manuell.
So ein elektrischer Mischer müsste sich aber eleicht  nachrüsten lassen und auch an die Steuerung der Hz anschließbar sein.

Gruß

Elektrolurch
configDB und Windows befreite Zone!

epsrw1

Zitatelektrischer Mischer

ich habe ein fhem-modul zur steuerung eines mischers über relais für einen standard-motor mit r/l lauf gerade in erprobung, kommt hier online sobald es sicher funktioniert.
so ein alter 4-wege-mischer nebst motor findet sich i.d.r. auf dem schrott, einfach die alte steuerung abklemmen und fertig.
grüße, florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

maseb

Hallo Mitch,
ich bin mit großm Interesse auf dein Modul HCS und deine Einbindung mit Heating Control gestoßen.

Heating Control nutze ich schon seit letztem Jahr für die Einbindung meiner FHT`s in fhem.

HCS ist daher total super zum integrieren der FHT`s in die Steuerung von Mischer und Heizungspumpe. Dies erledigt meine Centra Steuerung.

Nun zum Problem.
Beim definieren von HCS mit

define HCS_System HCS Vaillant

bekomme ich eine Fehlermeldung das es das device Vaillant nicht gibt.

mit
define Vaillant structure room FHT......

kommt die Meldung das es das device schon gibt.

Wie komme ich da weiter?
Ich habe schon viel gelesen aber noch nichts gefunden das mich weiterbringt.

Viele Grüße
Rudi



CUL mit EM 1000 S/IR und EM 1000 HSM

Mitch

Halo Rudi,

Vaillant ist das Device, bei mir ein HM Autor, welcher den Brenner schaltet.

Einfach gesprochen, wenn HCS feststellt, dass keine Wärme benötigt wird, schaltet es "Vailant", welches den brenner an meiner Therme ausschaltet.

Die Definition lautet: define <NAME> HCS <DEVICE>

Du brauchst also etwas, um deine Heizung ein- und aus zuschalten.
Welche Heizung hast Du denn?
Kannst du diese Ansteuern?
Bei meiner Vailant gibt es extra eine Klemme für den Brenner, um diesen extern anzusteuern. An dieser hängt ein Relais und das wird über den HM-Aktor geschalten.
FHEM im Proxmox Container

maseb

Hallo Mitch,
vielen Dank für deine Antwort.

Vorweg, HCS ist ein tolles Modul.

Ich habe deine Konfiguration für das geänderte Modul übernommen und auf meine Bedürfnisse hin angepasst.
Heute  Abend hat es schon mal im Probelauf funktioniert.

Wir haben eine Pelleltheizung mit Puffer. Dieser stellt unser Brauch und Heizungswasser zur Verfügung.
Eine alte Centra Steuerung mit Außentemperaturfühler steuert den 3Wege Mischer und die Heizungspumpe. Diese Steuerung hat einen Eingang für eine Fernbedienung. An diese möchte ich mit einem FS20 Funkschalter mit potentialfreiem Ausgang gehen.

Dein Modul schaltet schon mal den FS20 Funkschalter.
Nun muss ich noch richtig anschliessen und gut.



Vielen Dank
Rudi
CUL mit EM 1000 S/IR und EM 1000 HSM

Ascos

#14
Hallo alle miteinander,

zunächst einmal ein dickes Lob an euch. Das Forum ist echt super und hat mir schon sehr geholfen.
Ich habe heute das Skript bei mir eingerichtet und angepasst. Es läuft soweit auch alles einwandfrei.

Mir ist nur aufgefallen, das wenn ich das Fenster geöffnet habe und mein Thermostat (Beide Homematic, gepeert via FHEM) die Temperatur auf 5° abgesenkt wurde, die Temperatur trotzdem geändert wird, wenn eine neue laut Programm eingestellt werden soll. Somit würde die Heizung anfangen zu heizen, obwohl das Fenster offen ist. Kann man das irgendwie vermeiden?

Zudem eine Frage zum Eco-Modus. Wenn ich die Wohnung verlasse und die aktuelle Temperatur abgesenkt wird, wie verhält sich das, wenn nun für FHEM eine neue Temperatur eingestellt werden soll. Wird die auch abgesenkt, oder ist die dann normal?

Leider bin ich noch sehr neu in Sachen FHEM, sodass ich für jede Hilfe dankbar bin.

Viele Grüße
Ascos

Edit:

Frage 2 habe ich nun getestet und es ist wie vermutet. Wenn bei Abwesenheit die Temperatur lauf FHEM geändert wird, wird die programmierte Temperatur verwendet, nicht die abgesenkte. Wie kann ich das ändern?
1x RaspberryPi 3, HMUART, HMLAN
4x HM-CC-RT-DN, 4x HM-Sec-SCo, 4x HM-TC-IT-WM-W-EU, 1 Jeelink, 4 Lacrosse Fühler, 2 LD382A
1x ZBox mit Kodibuntu, mehrere schaltbare Steckdosen