TC mit Schaltaktor peeren zwecks Fussbodenheizungssteuerung

Begonnen von Rechi, 24 August 2013, 15:47:44

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: Rechi schrieb am So, 29 September 2013 11:15Hallo Damian.

folgender Befehl
define wz_Heizung1 THRESHOLD wz_Temp_Weather:measured-temp:1.0:wz_Temp_Climate:desired-temp AND vactor_Btn5:state:off wz_Heizkreis_01

liefert die Fehlermeldung:
wz_Heizung1: value:wz_Temp_Climate:desired-temp, init_desired_value needs a numeric parameter


Hast du die aktuelle Version von THRESHOLD?

Die vorherige Version konnte das nicht.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Rechi

Danke Damian.

Das war es! Scheint jetzt zu funktionieren. Werde es weiter beobachten und Erfahrungen posten.

Viele grüße.

Thomas

Rechi

Hallo Damian.

Jetzt wird's peinlich :-/

THRESHOLD und Heating_Control funktionieren klasse solange ich nicht eigenen FHEM Code einbringe.

Ich benutze einen Displaytaster der mit einem virtuellen Aktor (20 Kanäle) gepeert ist. Ich will den virtuellen Autor auslesen und basierend auf dem Status entsprechend schalten. Hier zwei Beispiele:

define mz_Heizung THRESHOLD mz_Temp_Weather:measured-temp:1.0:mz_Temp_Climate:desired-temp AND vactor_Btn5:state:off mz_Heizkreis_01

vactor_Btn5 ist der virtuelle Aktor der die Heizung auf Notbetrieb stellt (voll ein ohne Regelung). Wenn er aus ist soll THRESHOLD die Temperatur regeln basierend auf den entsprechenden Werten.

define HC_wz Heating_Control wz_Temp_Climate 12345|05:30|22 12345|07:30|19 1|12:30|22 2345|14:30|22 67|06:00|22 12347|22:00|19 56|23:00|19 {
if (vactor_Btn1 eq "off")
fhem("set @ desired-temp %")
}

#vactor_Btn1 ist auch ein virtueller Aktor der bestimmt, ob die Solltemperaturen planmäsig gesetzt werden sollen. Mit dem Aktor möchte ich die Temperaturregelung unterbrechen wenn ich zum Beispiel ungeplant zu Hause bin. Mit einem notify auf den virtuellen Aktor hier würde ich die Soll-Temperatur setzen und der gesetzte Aktor soll verhindern, daß per Hearing_Control die Temp neu gesetzt wird solange ich zu Hause bin.
 
Im Log kommen folgende Fehlermeldung:
Bareword found where operator expected at (eval 148) line 1, near ") fhem"
   (Missing operator before fhem?)
2013.10.02 05:30:00 3: syntax error at (eval 148) line 1, near ") fhem"

Ich schätze mal dass mein Anfänger PERL hier einfach daneben liegt.

Wie muss ich den virtuellen Aktor einbinden dass er richtig gelesen wird?

Sorry für die dämliche Fragen und Danke schon mal in voraus für die Antwort!

VG

Thomas

Damian

Versuch mal:

define HC_wz Heating_Control wz_Temp_Climate 12345|05:30|22 12345|07:30|19 1|12:30|22 2345|14:30|22 67|06:00|22 12347|22:00|19 56|23:00|19 {
if (vactor_Btn1 eq "off")
{fhem("set @ desired-temp %")}}

oder es sollte auch gehen:

define HC_wz Heating_Control wz_Temp_Climate 12345|05:30|22 12345|07:30|19 1|12:30|22 2345|14:30|22 67|06:00|22 12347|22:00|19 56|23:00|19 {
fhem("set @ desired-temp %") if (vactor_Btn1 eq "off")}

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Ich sehe gerade, dass du direkt auf vacktor_Btn1 zugreifen willst, dass geht normalerweise über Value("vacktor_Btn1"), dann müsste es eher heißen:

define HC_wz Heating_Control wz_Temp_Climate 12345|05:30|22 12345|07:30|19 1|12:30|22 2345|14:30|22 67|06:00|22 12347|22:00|19 56|23:00|19 {
 fhem("set @ desired-temp %") if (Value("vactor_Btn1") eq "off")}

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

locodriver

Jetzt mal wieder eine Wortmeldung von mir:

Die FB ist seit gestern in Betrieb und der TC muss nun erst mal das Aufheizverhalten der FB mitbekommen.
Die FB ist ein "Rohr im Rohr"-System, d.h. in einem äußeren Rohr ist ein inneres mit Distanzstücken befestigt, durch welches das Heizwasser fließt. Zwischen beiden ist ein Luftpolster. Die FB arbeitet mit normalen Vorlauftemperaturen und wird mit einem konventionellen Thermostat geregelt, welcher in der "Unibox T" M 30 x 5 von Oventrop eingebaut ist (s. Bild). Ich habe den Thermostat mit einer Verlängerung versehen und konnte so den VD montieren - die letzte halbe Umdrehung war ziemlich mühselig, da man nur mit einem Schraubenzieher durch den Spalt zwischen VD und Abdeckung an die Überwurfmutter des VDs kommt.
Dann eine Lernfahrt gemacht und den TC erst mal auf 21°C eingestellt. Gegen 21 Uhr war ich dann mal prüfen und es war schon relativ warm, sodass ich die Solltemp. auf 19°C reduziert habe.
Da der TC ja nicht für FBs gedacht ist, hat er ziemlich weit geöffnet, aber ich denke, das wird sich einspielen.
Ich habe auch nicht vor, ständig die Solltemp. zu ändern - das ist ja bei einer FB nicht zielführend.
Bei kurzfristigem Wärmebedarf kann der Handtuchheizkörper mit normalem Thermostat noch zusätzlich benutzt werden.

Anbei noch die beiden Plots (der Graph des Solltemp. ist mit Vorsicht zu genießen, da ich (bis jetzt) nichts gegen den Plotabriss tue).

Mit welchen Solltemp. arbeitet Ihr bei einer FB?

Schönes WE,

Uwe
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

Rechi

Hi Damian,

Danke für den Tip. Funktioniert! Warum aber die if Abfrage am Ende stehen muss verstehe ich nicht. Aber auch egal.
Jetzt kommt natürlich noch eine Frage :-)

define mz_Heizung THRESHOLD mz_Temp_Weather:measured-temp:1.0:mz_Temp_Climate:desired-temp AND vactor_Btn5:state:off mz_Heizkreis_01

Funktioniert hier nicht. Threshold schaltet dabei gar nicht (ohne AND funktioniert schaltet Threshold wie es soll). Liegt das auch am Auslesen des virtuellen Aktors (vactor)? Kann ich hier auch einen Perl code einbringen in der Form:

define mz_Heizung THRESHOLD mz_Temp_Weather:measured-temp:1.0:mz_Temp_Climate:desired-temp AND {if (Value("vactor_Btn5") eq "off")} mz_Heizkreis_01



VG.

Thomas

Damian

Zitat von: Rechi schrieb am Mo, 07 Oktober 2013 16:54Hi Damian,

Danke für den Tip. Funktioniert! Warum aber die if Abfrage am Ende stehen muss verstehe ich nicht. Aber auch egal.
Jetzt kommt natürlich noch eine Frage :-)
Ist halt Perl, da sind verschiedene Schreibweisen möglich;)

Zitatdefine mz_Heizung THRESHOLD mz_Temp_Weather:measured-temp:1.0:mz_Temp_Climate:desired-temp AND vactor_Btn5:state:off mz_Heizkreis_01

Funktioniert hier nicht. Threshold schaltet dabei gar nicht (ohne AND funktioniert schaltet Threshold wie es soll). Liegt das auch am Auslesen des virtuellen Aktors (vactor)? Kann ich hier auch einen Perl code einbringen in der Form:

define mz_Heizung THRESHOLD mz_Temp_Weather:measured-temp:1.0:mz_Temp_Climate:desired-temp AND {if (Value("vactor_Btn5") eq "off")} mz_Heizkreis_01

Hinter AND ist die Ausführung von Perlcode nicht vorgesehen - ist auch nicht nötig.

Ich vermute, dass du heizen willst, wenn  vactor_Btn5 off ist.

Dann brauchst anstelle von AND vactor_Btn5:state:off eher OR vactor_Btn5:state:on, denn bei wahr wird cmd1_gt gesendet und das ist hier der Off-Befehl (siehe Commandref zu THRESHOLD).

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

rechi2

Hallo an alle.

Also, nachdem Damian mir als blutiger Anfänger noch ein paar einfache Kniffe in Perl per PN mitgeteilt hat, möchte ich hier mein funktionierendes Ergebnis nochmal gesammelt mitteilen.

Konfiguration:
- CUL an Fritzbox
- FHEM von FHEM.de
- HM-TC-CC in den Zimmern. Solltemperatur wird von FHEM gesteuert bzw. am TC gesetzt.
- HM-LC-SW4-DR zum Schalten der Heizungsventile. Hier ist es wichtig zu verstehen, dass ich in einem Mehrfamilienhaus wohne und ich die Fussbodenheizungskreise nur per Ventil an oder aus schalten. Ich habe keinen direkten Zugriff auf die Heizung selbst.
- HM-PB-4DIS-WM für verschiedene Funktionen

Nach dem pairen (nicht peeren; gepeert ist nur der Wandschalter mit den virtuellen Aktoren) verwende ich folgende Funktionen:

define wz_Heizung1 THRESHOLD wz_Temp_Weather:measured-temp:0.5:wz_Temp_Climate:desired-temp AND vactor_Btn5:state:OFF wz_Heizkreis_01
#der virtuelle Aktor (vactor_Btn5) wird vom Display Wandschalter geschaltet und mit dem kann ich THRESHOLD komplett aushebeln. Nur für den Notfall gedacht.
#Hyterese mit 0.5° hat sich bei mir als sehr angenehm erwiesen. Ich hatte vorher 1° und da waren die gefühlten Schwankungen zu groß wegen der Trägheit des Systems.

wz_Temp_Climate 12345|05:30|23.5 12345|07:30|19 1|12:30|23.5 2345|14:30|23.5 67|06:00|23 12347|22:00|19 56|23:00|19 { fhem("set @ desired-temp %") if (Value("vactor_Btn1") eq "ON")}
#Setzt die Solltemperatur je nach Wochentag und je nach Uhrzeit. Der virtuelle Autor (vactor_Btn1) wird auch vom Display Wandschalter gesteuert und damit kann ich die Tages-/Wochenschaltung ausschalten falls doch mal jemand zu Hause ist die Woche über. Die Feiertagsabfrage baue ich später noch ein.

Ganz herzlichen Dank an Damian (vor allem für seine Geduld!) und alle anderen die mir hier sehr viel geholfen haben.

Macht einfach Spass.

Viele Grüße

Thomas


thoweiss

Hallo zusammen,

im angehängten PDF findet man eine gute Beschreibung der Regelfunktionen eines Heizungsaktors von  Gira.

Dort wird sehr ausführlich die Regelung über Thermische Stellantriebe und die dazugehörigen Parameter beschrieben.

Vielleicht hilft euch das ja bei der Entwicklung eurer Scripte.

Gruß,
Thorsten

locodriver

Hallo, heute nochmal eine Wortmeldung zur Verwendung TC mit VD. Seit ein paar Tagen lauft die FB im Dauerbetrieb mit konstanter Solltemp. Mittlerweile "scheint"der TC das Heizverhalten der FB mitbekommen zu haben; er hat täglich für ca. 2 Stunden den VD bis max. 8% geöffnet und hielt damit die Temp. hinreichend konstant.
Heute war von 14:42 bis 15:27 das Fenster geöffnet und ein entsprechender Temperatursturz war die Folge. Im Anhang mal der Plot vom Aufheizen danach. Ich finde, das ist eine ansprechende Ausregelung. Somit ist der TC wohl auch als Regler für FBs geeignet. Ich nehme an, dass eq3 das nicht kommuniziert, weil sie entsprechende Szenarien nicht getestet haben und somit keine Garantien für das Regelverhalten in Verbindung mit einer FB geben wollen.
Für mich ist das momentan völlig ausreichend, zumal ich ja den TC noch zur Feuchtemessung benötige (Lüftersteuerung) - das ist aber noch nicht eingebaut und hier OT.

Uwe.
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

Damian

Zitat von: locodriver am 16 Oktober 2013, 20:29:28
Somit ist der TC wohl auch als Regler für FBs geeignet. Ich nehme an, dass eq3 das nicht kommuniziert, weil sie entsprechende Szenarien nicht getestet haben und somit keine Garantien für das Regelverhalten in Verbindung mit einer FB geben wollen.

Wenn es das Problem nicht gäbe, dass zwei solche Thermostate nicht in einen konventionellen FB-Verteiler nebeneinander passen, da der Abstand nur zwei Zoll beträgt.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

locodriver

Das ist ja blöd, kann man die Ventile etwas nach "außen" drehen? Dann würden die VDs vielleicht drauf passen.

Uwe
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster