Ein paar neue Bausteine sind fertig!
Funktion:
Der Baustein berechnet laufend auf Basis der Außentemperatur von 3 Zeitpunkten (T1 um 7:00, T2 um 14:00 und T3 um 22:00) einen Mittelwert, bei dem 22:00 doppelt gewichtet wird, d.h. T_avg = (T1+T2+2xT3)/4.
Liegt der Mittelwert unter T_Winter (Default 14°C), wird der Heizungsmodus=0 geschaltet, oberhalb T_Sommer (Default 16°C), wird auf Heizungsmodus=1 geschaltet. Die Funktion ist ähnlich dem HS-Baustein 19830.
Hinweis: Die Logik wird nur um 7:00, 14:00 und 22:00 getriggert und ausgewertet. Eine Umschaltung Sommer/Winter erfolgt somit ebenfalls nur zu diesen Zeiten.
Anwendungsbeispiele:
Umschaltung zwischen Sommer und Winterbetrieb der Heizung oder Beschattung.
Eingänge:
- Außentemperatur: aktuelle Außentemperatur (muss zyklisch gesendet sein).
Temp_Sommer: Temperatur, oberhalb der auf Sommerbetrieb geschaltet werden soll
Temp_Winter: Temperatur, unterhalb der auf Winterbetrieb geschaltet werden soll
- Heizungsmodus Sommer/Winter: Ausgabe 1 für Sommerbedtrieb, 0 für Winterbetrieb.
- Temperatur Tag gleitend: Hier wird jeweils um 7:00, 14:00 und 22:00 der Mittelwert T_avg gesendet
- Temperatur Mittelwert Monat: Mittelwert seit Monatsbeginn. Es wird kontinuierlich der letzte Mittelwert aufsummiert und mit T3 um 22:00 gesendet, am Monatsanfang wird zurückgesetzt. Ich verwende diesen Wert, um am Monatsanfang den Mittelwert des Vormonats in ein csv-File zu speichern.
- Counter: Aktuelle Anzahl von Werten zur Mittelwertbildung (optional aktivierbar).
- Temp1 / 7:00 etc.: Letzter Temperaturwert um 7:00, 14:00 bzw. 22:00 (optional aktivierbar).
Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht.
Falls wer einen freiwilligen Beitrag zur Motivation leisten will: Klick
Viel Spaß damit und gerne Rückmeldung, wenn was fehlt oder euch die Sache gefällt.
Robert
Der Baustein:
Code: Alles auswählen
/**===========================================================
Temperaturmittel und Sommer/Winter Umschaltung nach DIN
============================================================*/
{
"Input": [
["Außentemperatur","Gemessene Außentemperatur","$I_Temperature","u"],
["Temp. Sommer","Außentemperatur bei der auf Sommer umgeschaltet wird","$I_TempSommer","c"],
["Temp. Winter","Außentemperatur bei der auf Winter umgeschaltet wird","$I_TempWinter","c"]
],
"Output": [
["Heizungsmodus Sommer/Winter","Ausgabe ob Sommer oder Winter","$Output","ct"],
["Temperatur Tag gleitend","(T1+T2+T3*T3)/4","$Temperature_avg","ct"],
["Temperatur Mittelwert Monat","Mittelwert seit Monatswechsel","$Temperature_avg_Monat","c"],
["Counter","Anzahl Werte","$Counter?","c"],
["Temp1 / 7:00","Anzahl Werte","$Temp1_?","c"],
["Temp2 / 14:00","Anzahl Werte","$Temp2_?","c"],
["Temp3 / 22:00","Anzahl Werte","$Temp3_?","c"]
],
"Level": [
["$I_Temperature","float",0.0],
["$I_TempSommer","float",0.0],
["$I_TempWinter","float",0.0],
["$I_Totzone","float",0.0],
["$Output","bool",false],
["$Temperature_sum","float",0.0],
["$Temperature_avg","float",0.0],
["$Temperature_sum_Monat","float",0.0],
["$Temperature_sum_temp","float",0.0],
["$Temperature_avg_Monat","float",0.0],
["$Temperature_avg_MonatLast","float",0.0],
["$Counter","integer",0],
["$Counter_temp","integer",1],
["$Counter_Lim","integer",0],
["$Val_ok","bool",false],
["$Temp1_","float",0.0],
["$Temp2_","float",0.0],
["$Temp3_","float",0.0],
["$Reset1","bool",false],
["$Reset2","bool",false],
["$Reset3","bool",false],
["$ResetMonatTrigger","bool",false],
["$KonstTrue","bool",true],
["$Konst0","float",0.0],
//["$Konst0int","int",0],
["$Konst1","float",1.0],
["$Konst4","float",4.0],
["$KonstFalse","bool",false],
["$I_Interval_Enable","bool",true],
["$I_Interval","float",300.0],
["$Zeitpunkt1","string","0 0 7 * * *"],
["$Zeitpunkt2","string","0 0 14 * * *"],
["$Zeitpunkt3","string","0 0 22 * * *"],
["$ResetMonat","string","20 2 0 1 * *"]
],
"Module": [
// Trigger für 7 / 14 und 22 Uhr
["Cron","$KonstTrue","$Reset1",0,"$Zeitpunkt1"],
["Cron","$KonstTrue","$Reset2",0,"$Zeitpunkt2"],
["Cron","$KonstTrue","$Reset3",0,"$Zeitpunkt3"],
["Cron","$KonstTrue","$ResetMonatTrigger",0,"$ResetMonat"],
// Temperatur speichern
["Multiplexer",["$Temp1_","$I_Temperature"],"$Temp1_","$Reset1"],
["Multiplexer",["$Temp2_","$I_Temperature"],"$Temp2_","$Reset2"],
["Multiplexer",["$Temp3_","$I_Temperature"],"$Temp3_","$Reset3"],
// Mittelwert berechnen
["Polynomial","$Konst1","$Temperature_sum",["$Temp1_","$Temp2_","$Temp3_","$Temp3_"]],
["Ratio", "$Temperature_sum", "$Temperature_avg", "$Konst4"],
// Überprüfung
["Comparator","$Temperature_avg","$Output",["$I_TempWinter","$I_TempSommer"]],
// Summe um aktuellen Mittelwert erhöhen (nur bei Reset3)
["Polynomial","$Konst1","$Temperature_sum_temp",["$Temperature_sum_Monat","$Temperature_avg"]],
["Polynomial","$Konst1","$Counter_temp",["$Counter","$Konst1"]],
["Multiplexer",["$Temperature_sum_Monat","$Temperature_sum_temp"],"$Temperature_sum_Monat","$Reset3"],
["Multiplexer",["$Counter","$Counter_temp"],"$Counter","$Reset3"],
// Divisor prüfen und bei Null mit 1 ersetzen
["Limiter","$Counter","$Counter_Lim","$Val_ok",["$Konst0", "$Konst0"]],
["Latch","$Konst1","$Counter","$Val_ok",0],
["Ratio", "$Temperature_sum_Monat", "$Temperature_avg_Monat", "$Counter"],
// Ergebnis überschreiben und alten Divisor wiederherstellen
["Latch","$Konst0","$Temperature_avg_Monat","$Val_ok",0],
["Latch","$Konst0","$Counter","$Val_ok",0],
// Summe und Counter zurücksetzen
["Multiplexer",["$Counter","$Konst0"],"$Counter","$ResetMonatTrigger"],
["Multiplexer",["$Temperature_sum_Monat","$Konst0"],"$Temperature_sum_Monat","$ResetMonatTrigger"],
// Reset auf 0 setzen
["Multiplexer",["$Reset1","$KonstFalse"],"$Reset1","$Reset1"],
["Multiplexer",["$Reset2","$KonstFalse"],"$Reset2","$Reset2"],
["Multiplexer",["$Reset3","$KonstFalse"],"$Reset3","$Reset3"],
["Multiplexer",["$ResetMonatTrigger","$KonstFalse"],"$ResetMonatTrigger","$ResetMonatTrigger"]
]
}
/** Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License")
die unter https://wrgt.news/TOLL zum Download zur Verfügung steht. */