NEU! Insider Preview IP3 verfügbar - Fettes Connectivity Upgrade zu den Feiertagen!
Jetzt könnt ihr tausende Geräte mehr anschließen, mit wenigen Klicks: Alexa, Netatmo, Aquara, Bosch, NEFF, Siemens, Gaggenau, Thermador, Constructa, SONOS, hue, somfy, Spotify, NUKI, tado, blink, ring, Gardena, neato, iRobot, Husquarna, Apple Watch, Go-e Charger, fitbit, Google, Weather Underground, telegram, Twitter (wer noch mag) und 700 weitere.
Soviel Connectivity gab es noch nie auf einen Schlag.
Damit Euch nicht langweilig wird. Weitere Info im Wiki: https://elabnet.atlassian.net/l/cp/1yDzrSQU

----------------------------------------------------------------------------------------------------------------------------------------------------------
Hauptversion 3.5.1 verfügbar - Jetzt mit HTTP-API und hunderten Verbesserungen
Info im Forum: viewtopic.php?f=8&t=3831

[Problem] Raumtemperaturregler mit Kühlungsoption für Fußbodenheizung

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
Antworten

Ersteller
azietz
Reactions:
Beiträge: 11
Registriert: Do Mär 14, 2019 12:46 pm
Wohnort: Hamburg
Hat sich bedankt: 5 Mal
Danksagung erhalten: 23 Mal

Raumtemperaturregler mit Kühlungsoption für Fußbodenheizung

#1

Beitrag von azietz »

Hallo zusammen,

auch wenn ein derartiger Regler aufgrund verfügbarer Aktoren mit Regler nicht unbedingt erforderlich ist. Habe ich aus der Not geboren eine Custom-Logik für einen Raumteperaturregler mit Kühlungsoption erstellt.

Bild

Code: Alles auswählen

/**
 *  FB RTR mit Kühlung V1.0
 * Arno Zietz 22.11.22
 * 
 * "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."
*/
{
  "_Meta": { // Optional
    "Description": "FB RTR mit Kühlen",
    "Version": "1.00",
    "Icon": "" // format: "data:image/svg+xml;base64,ENCODED_FILE"
  },
  "Input":[
    ["Sw","Schalter","$Switch","c"],
	["Cool","Kühlen","$Cool","c"],
    ["TempIn","Temperatur Messung","$VAR<TempIn!>","a"],
    ["Const_TempInaktiv","Schwellwert ob Regelung notwendig","$TempCompInaktiv","u"],
    ["Const_TempMax","Schwellwert, ob Temperatur zu hoch","$TempCompMaxWarm","u"],
    ["Soll","Soll-Wert","$Reference","c"],
    ["Kp","Proportional-Term","$Kp","u"],
    ["Ki","Integral-Term","$Ki","u"],
    ["Kd","Diverential-Term","$Kd","u"]
  ],
  "Output":[
    ["Stell","Stellgröße","$Out","a"],
    ["FuehlerAlarm","bei 1 kein Temperaturwert innerhalb der Überwachungszeit","$Alarm_Sensor","c"],
    ["HitzeAlarm","bei 1 zu Hohe gemessene Temperatur","$Alarm_MaxTemp","c"],
    ["Status","HK aktiv oder inaktiv","$Status","a"]
  ],
  "Level":[
    ["$Switch","bool",false],
	["$Cool","bool",false],
    ["$CompSwitch","bool",false],
    ["$Alarm_Sensor", "bool",false],
    ["$Alarm_MaxTemp", "bool",false],
    ["$dummyTrue","bool",true],
    ["$dummyFalse","bool",false],
    ["$VAR<TempIn!>","float",15],
    ["$watchdogTime","integer",360],
    ["$Status","bool",false],
    ["$internStatus","bool",false],
    ["$TempCompInaktiv","float",18],
    ["$TempCompMaxWarm","float",30], 
    ["$Reference","float",20],
    ["$Controlled","float",20],
    ["$Manipulate","float",0],
    ["$Kp","float",0],
    ["$Ki","float",0],
    ["$Kd","float",0],
    ["$Konst100","float",100],
    ["$Konst1","float",1],
	["$Konst0","float",0],
    ["$Out","float",0]
  ],
  "Module":[
    ["Comparator","$Reference","$CompSwitch","$TempCompInaktiv"],
    ["And",["$CompSwitch","$Switch"],"$internStatus"],
    ["Multiplexer",["$dummyFalse",0],"$Out","$internStatus"],
    ["Multiplexer",["$dummyFalse",0],"$Status","$internStatus"],
    ["Break",["-$internStatus"]],
    ["Statistic",["$VAR<TempIn!>"],0,0,"$Controlled",0],
    ["Comparator","$Controlled","-$internStatus","$TempCompMaxWarm"],
    ["Multiplexer",["$dummyFalse",0],"$Out","$internStatus"],
    ["Multiplexer",["$dummyFalse",0],"$Status","$internStatus"],
    ["Multiplexer",["$dummyTrue","$dummyFalse"],"$Alarm_MaxTemp","$internStatus"],
    ["Break",["-$internStatus"]],
    ["PID controller","$Reference","$Controlled","$Manipulate","$Kp","$Ki","$Kd"],
	["Polynomial","$Manipulate","$Manipulate",["$Konst0","$Konst100"]],
	["Latch","-$Manipulate","$Manipulate","$Cool",0],
	["Latch","$Manipulate","$Manipulate","-$Cool",0],
    ["Limiter","$Manipulate","$Out",0,["-$Konst0","$Konst100"]],
    ["Comparator","$Out","$internStatus",0],
    ["Multiplexer",["$dummyFalse","$dummyTrue"],"$Status","$internStatus"]
  ]
}
Ich habe die Anwendung getestet. Die Anwendung lief wie erwartet. Es laufen 26 Logiken für alle Räume des Hauses. Alles wie gewünscht.
Die Ist-temperaturen kommen per Telegramm aus der KNX-Anlage, die Soll-Temperaturen kommen per Comet-Visu ebenfalls über den KNX. Die Stellgrößen gehen nachdem die Lgik fertiggestellt und gespeichert wurde wie gewünscht raus. Zum Testen habe ich die EIngangswerte "Kühlung", "Soll-Temperatur" entsprechend mit der Visualierung geändert. Die Stellgrößen werden entsprechend auf den KNX gesendet.

Nach jetzt über 2 Monaten Nutzungsdauer ist mir folgemdes aufgefallen:
  1. Logik gespeichert und getestet
  • Nach einiger Zeit (1 Tag?) lässt sich die Stellgröße nicht mehr verändern. Es wir der falsche Wert gesendet, obwohl sich die EIngangswerte entsprechend ändern
  • Nach erneuter Speicherung, läuft es wieder
Ich vermute ich habe innerhalb der Logik irgend etwas übersehen.

Freue mich über Feedback. Vielleicht hat ja auch jemand eine Idee, was ich übersehen haben.

Arno
-----------------------------------------------
TWS3500 id: 908 VPN offen Reboot nach Rücksprache
TWS3500 id: 1089 VPN offen Reboot nach Rücksprache

KNX seit 1993
wiregate seit 2015
timberwolf seit 2019

Ersteller
azietz
Reactions:
Beiträge: 11
Registriert: Do Mär 14, 2019 12:46 pm
Wohnort: Hamburg
Hat sich bedankt: 5 Mal
Danksagung erhalten: 23 Mal

#2

Beitrag von azietz »

Hallo,

ich habe das jetzt nochmal genauer verfolgt mittels Auswertung über die InfluxDB und Diagrammen in der Cometvisu.

Die regelung scheint zu laufen, der Eindruck, das es keine Regelung gibt liegt an den Gegebenheiten vor Ort wie:
  • gewünschte Temperatur wird nicht erreicht, weil nicht genug Wärme
  • gewünschte Temperatur wird nicht erreicht, weil Wärme bei geschlossenem Ventil nicht weggeht.
Der regler wird aufgrund der Parameter dann träge.

Ich werde es weiter beobachten.

Arno
-----------------------------------------------
TWS3500 id: 908 VPN offen Reboot nach Rücksprache
TWS3500 id: 1089 VPN offen Reboot nach Rücksprache

KNX seit 1993
wiregate seit 2015
timberwolf seit 2019
Antworten

Zurück zu „Zusätzliche Logikbausteine“