Heizungssteuerung realisieren

Begonnen von spranz, 01 Februar 2016, 18:25:05

Vorheriges Thema - Nächstes Thema

spranz

Hallo, nachdem ich meine Lichtsteuerung im Haus mittels FHEM nun am laufen habe, wollte ich mich an die Heizung wagen.
Ich habe vor 6 Jahren die Steuerung mit FS20 Komponenten und logischen Relaisverschaltungen realisiert.
Nun wollte ich das Ganze auf Homematic umbauen. Zur krönung am Ende vieleicht noch in Kombination mit einer Anwesenheitserkennung (Bluetooth).
Aber das hat noch Zeit.
Im Moment habe ich ein Wandthermostat und einen Schaltaktor (der Heizkontakt zur Therme) mit FHEM verbunden.
Ich möchte noch ein Zweites Wandthermostat für einen zweiten Raum mit einbinden (ist in meiner Zeichnung schon berücksichtigt)
Ich bin zwar gelernter Elektroniker und kann eine S7 programmieren, bei FHEM fehlen mir leider die Ansätze wie ich Starten muss.

Wandthermostat = HM Wandthermostat
Sommer = Variable aus YahooWetter (Temp>22°)
Frost =  Variable aus YahooWetter (Temp<2°) 
ECO = Variable aus Softwareschalter (vom Handy zu bedienen) und später über Abwesenheit autom.
Heizen = HM Schaltaktor an der Therme

Kann mir jemand grob das Gerüst erklären, wie ich das Ganze umsetzen kann?
Ich kenne mich mit der Pearlprogrammierung leider überhaupt nicht aus.
Oder gibt es ein Modul für sowas?
Wie erstelle ich die Sommer/Frost Variablen?
Wie realisiere ich den ECO Softwareschalter?
Paare ich die HM Geräte untereinander? -Ich denke nur direkt mit FHEM und verabeite von dort weiter..oder?

Ja, ich stehe leider noch total am Anfang, bin aber jetzt schon begeistert von den Möglichkeiten mit diesem System.

MfG
Spranz


cs-online

Hallo,

ich gehe mal davon aus, daß Deine Therme (welche hast Du da ?) über einen Kontakt verfügt, durch den die Therme erkennt, daß eine Heizanforderung vorliegt oder ? Demzufolge brauchst Du einen Aktor, der diesen Kontakt schließt. Könntest dafür z.B. einen Homematic.Bausatz 1 bis 4 Schaltaktoren nehmen und dort ein Relais nachschalten. Der würde mit FHEM gepairt, so daß Du aus FHEM heraus den Kontakt schließen könntest.
Dann bliebe die Frage, wie Du die Infos von den Wandthermostaten ins FHEM bekommst. Problem bei den HM-Schaltern ist immer, daß die nur auf kurzes Tasten ausgelegt sind, bei längerem Drücken gehen die in den Anlernmodus, das klappt dann nicht wie gewünscht.  Möglich z.B. über die GPIOs vom Raspi. Die interne Logik müßtest Du dann in einer Perl-Funktion mittels If-Schleife darstellen und abhängig vom Ergebnis den HM-Aktor ein- bzw. ausschalten.

Grüße
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

spranz

Das ist mir soweit schon alles klar.
Es geht mir primär um die Codezeile wie ich meine Logische Verknüpfung in Pearl umsetzen kann.
Oder ob es für sowas ein fertiges Modul mit solchen Verknüpfungsmöglichkeiten gibt.
Da kenne ich mich einfach nicht gut genug mit aus... Oder habt Ihr nen Link zum informieren für mich?

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Reinhart

#4
Ich glaube was du für den Anfang nach deinen Angaben brauchst sind ganz einfache logische Verknüpfungen.


define Heizungssteuerung at +*00:10:00 IF (Value("Sommer") == 0 && ($hour>=6 && $hour<21) && (Value("ECO") == 1 ) (set Heizen on)

es wird alle 10 Minuten überprüft ob kein Sommer ist und die Zeit zwischen 6-21 Uhr beträgt und jemand anwesend ist, dann wird die Heizung eingeschaltet. Die Zeit kannst natürlich auch weglassen wenn du durchheizen willst.


define Frostueberwachung at +*00:15:00 IF (Value("Frost") == 1 ) (set Heizen on)

bei Frost (unter -2 Grad) immer heizen


define HeizungAus at *21:00:00 IF (Value("Frost") == 0 ) (set Heizen off)

um 21:00 Uhr die Heizung abschalten, aber nur wenn kein Frost ist

Da du sehr einfache Komponenten angegeben hast, wird dir auch so eine einfache Lösung reichen. Das soll dir nur als Beispiel dienen, wie die anfangen kannst, der Rest wird dann ohnehin täglich mehr!

Die Variablen Sommer und ECO würde ich vorerst zum Testen als Dummy definieren und erst wenn alles funktioniert auf die Wetterdaten zugreifen. Immer Step by Step.

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

spranz

Super, danke erstmal für deine Antwort. Ich denke ich muss mich näher mit Pearl beschäftigen. Wenn ich meine Verknüfungen damit realisieren möchte, wird es doch nicht so einfach wie ich dachte...
Erstmal werde ich damit anfangen nur das Wandthermostat zum laufen zu bekommen, und dann step by step...
Gibt es eigentlich irgendwo ein Übersicht was es für fertige Module es gibt (und was sie können) also in der Commandref habe ich die schon entdeckt, aber gibt es das irgendwie nach Themen sortiert?

cs-online

Hi spranz,

Reinhart hat doch schon nahezu alle benötigten Funktionen aufgeschrieben, die werden einfach einzeln in die Befehlszeile hineinkopiert, nur den Schalter "Heizen" (hier also z.B. der HM-Aktor) und die beiden Sensoren "Eco" und "Frost" musst Du noch einbinden, dann ist doch schon alles, was Du realisieren wolltest, fertig. Coole Lösung von Reinhart,

Grüße

Christian
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

Reinhart

#7
der Ordnung halber noch ein Beispiel wie du einen Dummy "Sommer" erstellen kannst.

define Sommer dummy
attr Sommer alias Heizbetrieb Ein/Aus
attr Sommer group Heizung
attr Sommer icon weather_frost
attr Sommer room Heizung
attr Sommer setList state:0,1
attr Sommer webCmd state

Nach diesem Muster kannst du dir deine Dummys alle aufbauen.

Ob du mit Ein/Aus oder 0/1 arbeitest ist Geschmacksache, in den vorigen Beispielen habe ich es mit 0/1 gezeigt. Den Sommer/Winterbetrieb automatisch nach Kalenderprogramm zu machen finde ich weniger sinnvoll, weil das primär ja vom Wetter abhängt, daher ist der Ansatz Dummy und händisch bedienen besser. Du kannst jetzt schon händisch einschalten und die IF Abfragen überprüfen (wenn du die anderen auch noch anlegst).

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Friese

#8
Hallo spranz,

wie ich sehe sind wir beide noch Neulinge von HomeMatic und FHEM. Seit 8 Wochen beschäftige ich mich mit dem Thema, weil meiner Frau und mir die bisherige Heizungsregelung überhaupt nicht gefallen hat. Die Heiztherme ist eine Junkers ZWR 18-4 AE 21 mit Raumthermostat TR-100 als Leitthermostat im Wohnzimmer. Eine sicherlich nicht mehr "state of the art" Kombination. Dadurch ist eine individuelle Temperaturregelung in den anderen Räumen nicht möglich, denn wenn es im Wohnzimmer warm genug ist kann ich die Temperatur in der Küche oder dem Badezimmer erhöhen wollen, es tut sich aber nichts weil die Heiztherme nicht einschaltet. Dazu müsste man die elektrische Schaltung an der Therme so verändern, dass dadurch die Umwälzpumpe dauernd laufen würde und damit auf Wärmeanforderung den Brenner einschaltet.

Die Lösungsmöglichkeiten sind mit FHEM und entsprechender Hardware äußerst vielfältig. Gelesen im Forum und im wiki habe ich bisher viel, aber verstanden noch lange nicht alles. Deshalb habe ich habe einen Lösungsansatz verfolgt den ich vom Verständnis auch nachvollziehen kann.

Laut Schaltbild des Wandthermostaten TR-100 gibt es einen sogenannten Fernschalter. Wenn dieser geschlossen ist schaltet die Therme in den Sparbetrieb (Nachtabsenkung z.B 18 Grad). Bei Öffnung wieder in die eingestellte Betriebsart (Tagbetrieb z.B. 22 Grad). In die von Junkers benutzte "Stetigregelung" wollte ich nicht eingreifen. Das ist zwar möglich, wie hier beschrieben:  http://www.fhemwiki.de/wiki/Junkers_Therme_Stetigregelung, ist mir aber zu aufwändig. Deshalb habe ich den Wandthermostaten in den HWR verbannt und dort wieder mit der Therme verbunden.

Alle Heizkörper in der Wohnung bekamen neue Ventile (HM-CC-RT-DN). Aus Komfortgründen noch Wandthermostate (HM-TC-IT-WM-W-EU) im Wohnzimmer, Schlafzimmer, Bad und Küche. Der Schalter zum Schalten des Fernkontaktes der Therme ist ein HM-LC-SW1-BA-PCB für 22,95 Euro von  http://www.reichelt.de/Aktoren-Homematic/HM-FSA-BAT/3/index.html?&ACTION=3&LA=2&ARTICLE=162505&GROUPID=4786&artnr=HM+FSA+BAT. Der Schalter ist batteriebetrieben und hängt noch an einer 9V Blockbatterie. Da aber an der Therme immer 24V vorhanden sind, baue ich das noch mit einem DC Step-Down Schaltwandler (von 24V auf 12V) um. Soweit zu den Hardwareseitigen Vorraussetzungen.

Die Steuerung mit FHEM gestaltete sich anfangs schwierig, mit Hilfe einiger Fachleute aus dem Forum ist mir die Umsetzung meiner Idee dann doch gelungen.

Die Wärmeanforderung in jedem Zimmer wird über den Zustand der Ventilöffnung gemeldet.

define VentilePosition DOIF
attr VentilePosition state {([HZ_BAD:actuator]+[HZ_KUE:actuator]+[HZ_WOHNZ_re:actuator]+[HZ_WOHNZ_li:actuator]+[HZ_SCHL:actuator]+[HZ_GAST:actuator]+[HZ_ARBEIT:actuator]+[HZ_FLUR:actuator])/8}


Damit bekomme ich den Mittelwert aller Ventilöffnungen (zwischen 0 und 100).

Den Brenner schalte ich mit dem Thermenschalter:
define Brenner DOIF ([VentilePosition] < [HeizBedarf]) (set Thermenschalter on) DOELSEIF ([VentilePosition] > [HeizBedarf]) (set Thermenschalter off)

Der Heizbedarf wird mit einem dummy festgelegt:
define HeizBedarf dummy
attr HeizBedarf setlist state:2,3,4,5,6,7,8


Die Schwelle für den Heizbedarf habe ich auf 6 gesetzt, damit nicht schon beim geringsten Wärmebedarf eines HK's die Therme eingeschaltet wird. Da muss man halt experimentieren. Diese Art der Regelung funktioniert seit ca. 3 Wochen problemlos. Eine Erweiterung mit Einstellungen für Automatik, ECO, Boost sowie An- und Abwesendheitserkennung via Handy ist in Arbeit. Eigentlich ganz einfach, wenn man die FHEM-Syntax verstanden hat. :)

Gruß, Friese