UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

[NEUHEIT] Sommer / Winterumschaltung nach DIN

Hier stellen Foristen und Kunden Ihre EIGENEN Logikbausteine vor. Diese Logikbausteine stehen jedem im Rahmen der vom Autor eingeräumten / genannten Lizenz zur Verfügung.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

Ersteller
Robert_Mini
Reactions:
Beiträge: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

Sommer / Winterumschaltung nach DIN

#1

Beitrag von Robert_Mini »

Hallo zusammen!

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
Ausgänge:
  • 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).
Nutzungsrechte:
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:

Bild

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. */
Zuletzt geändert von Robert_Mini am Sa Dez 26, 2020 9:45 pm, insgesamt 5-mal geändert.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

StefanW
Elaborated Networks
Reactions:
Beiträge: 9689
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4831 Mal
Danksagung erhalten: 7632 Mal
Kontaktdaten:

#2

Beitrag von StefanW »

Super, das ist wirklich sehr sehr gut!

Danke dass Du Deine tolle Arbeit mit uns teilst und freigibst!

Bitte weitere Autoren, greift zu, seht Euch das an und setzt Eure Ideen um

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

Smart Jeanie
Reactions:
Beiträge: 64
Registriert: Mo Sep 10, 2018 3:10 pm
Hat sich bedankt: 92 Mal
Danksagung erhalten: 68 Mal

#3

Beitrag von Smart Jeanie »

Die Winter-/Sommerumschaltung für die Heizung über diese Logik finde ich super.
Du schreibst, ein möglicher Anwendungsfall könnte auch die Beschattung sein. Ich kann mir im Moment keinen sinnvollen Fall für die Umschaltung Sommer-/Winter bei der Beschattung vorstellen, was die Steuerung über die Temperatur angeht. Hast Du mal ein Beispiel dafür?

LG
Markus
Markus

TWS 950Q #268, Software-Stand V3.5x, nicht in Verwendung

Ersteller
Robert_Mini
Reactions:
Beiträge: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

#4

Beitrag von Robert_Mini »

Hallo Markus!

Konkret habe ich das hier in Verwendung: viewtopic.php?f=65&t=1565

Im Sommer wird immer 100% beschattet, sobald die Sonne im Fenster steht, im Winter wird die Behanghöhe proportional zur Temperatur gesteuert.
Damit wird das Empfinden wesentlich angenehmer!

lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
Benutzeravatar

MeisterLampe
Reactions:
Beiträge: 81
Registriert: Di Dez 18, 2018 8:17 am
Wohnort: Braunschweig
Hat sich bedankt: 35 Mal
Danksagung erhalten: 35 Mal

#5

Beitrag von MeisterLampe »

Im Winter möglichst viel Wärme reinlassen (also möglichst keine Beschattung), bzw. Rolläden als zusätzliche Isolierung runterfahren in Räumen ohne Sonneneinstrahlung und wenn niemand drin ist.
Im Sommer möglichst viel Wärme draußen lassen. Also die Rolläden runterfahren, in den Räumen, in denen die Sonne reinscheinen kann.
Viele Grüße Philipp
Timberwolf Server 2600 | ID:246 | VPN offen
Benutzeravatar

773H
Reactions:
Beiträge: 428
Registriert: Mo Okt 15, 2018 9:24 pm
Hat sich bedankt: 103 Mal
Danksagung erhalten: 208 Mal

#6

Beitrag von 773H »

Werden geniale Bausteine wie dieser mit einem kommenden Update in den LE permanent eingepflegt oder muss man den per Custom Logic für alle Zeiten selber "reinfrickeln"?

Gruß Stephan
TWS 2500 ID:677, PBM ID:495 & ID:632, TWS 2500 ID:574, TWS 2500 ID:220, PBM ID:1022, VPN offen, Neustart kein Problem

Ersteller
Robert_Mini
Reactions:
Beiträge: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

#7

Beitrag von Robert_Mini »

Ich denke die werden eingepflegt, aber das "reinfrickeln" versteh ich nun nicht wirklich :angry-argument: .
Im Forum auf "Code kopieren" klicken, im TWS neue Logik => Custom => Einfügen + Name eingeben - fertig.

lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
Benutzeravatar

773H
Reactions:
Beiträge: 428
Registriert: Mo Okt 15, 2018 9:24 pm
Hat sich bedankt: 103 Mal
Danksagung erhalten: 208 Mal

#8

Beitrag von 773H »

@Robert_Mini "figurative speach"! :text-imsorry:
:D
TWS 2500 ID:677, PBM ID:495 & ID:632, TWS 2500 ID:574, TWS 2500 ID:220, PBM ID:1022, VPN offen, Neustart kein Problem

Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#9

Beitrag von Robosoc »

Mega, Robert, Danke. Jetzt erst gesehen und sofort eingebaut :-)
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Dragonos2000
Reactions:
Beiträge: 2181
Registriert: So Aug 12, 2018 1:38 pm
Wohnort: Karlsruher Raum
Hat sich bedankt: 481 Mal
Danksagung erhalten: 889 Mal

#10

Beitrag von Dragonos2000 »

@Robert: Mir ist gerade aufgefallen, dass der Baustein beim ersten Starten keine Werte sendet bis er mindestens 1 Tag erfasst hat. :confusion-scratchheadyellow: Bei der genaueren Analyse kommt das durch eine Division durch 0, weil der Level $Counter mit 0 initialisiert wird.
Beim monatlichen Reset setzt Du $Counter hingegen auf 1 zurück, womit der Mittelwert dann eigentlich nicht mehr richtig gerechnet wird (wenn ich gerade keinen Denkfehler habe). :think:

Hast Du das so bewusst in Kaufe genommen?
Lg
Jochen
____________________________________________________________
TW 2600 #188
VPN offen, Zugriff jederzeit, Experimente jederzeit, Reboot jederzeit
Antworten

Zurück zu „Zusätzliche Logikbausteine“