So, hier kommt jetzt mal die von mir ab und an schon angekündigte, fertigge Lösung für eine Heizkurve im TWS.
Sie ist im Moment eher für FBH in Niedrigenergiehäusern ausgelegt, aber ich denke, sie ist gut beschrieben und man kann sie leicht auch für anderen Anwendungsfälle nutzen.
Estmal ein optischer Vorgeschmack:
Um sich der Sache ersteinmal spielerisch zu nähern, habe ich eine einfache Exceltabelle zur Planung erstellt, die Ihr gerne nutzen könnt:
So, jetzt wird es spannend - das Logikmodul: Die beiden in der Exceltabelle ermittelten Parameter "Faktor für x1" und "Faktor für x2 gebe ich als Parameter vor, alles Andere per KNX (aktuell nur über Cometvisu-Slider). Inhibit ist im Code vorbereitet, nutze ich aber aktuell noch nicht:
Der Custom-Code:
Code: Alles auswählen
/**
* Heizkurve V3.0 gekrümmt für FBH in Niedrigenergiehaus optimiert
*
* ACHTUNG: ggf. ist es ratsam den ersten Eingangsparameter statt auf a auf u zubetreiben und die Logik mit einem Trigger-Eingang auszulösen, wenn sich die Aussentemperatur sehr häufig ändert oder gesendet wird.
*
* Excelformel in Zelle E10 = =MAX(E$4;MIN(E$1*($A10*E$7+POTENZ($A10;2)*E$6)-E$1*(20*E$7+POTENZ((20);2)*E$6)-E$4+E$2;E$5))
* wobei
* E$1 = Heizkurvenvorwahl 0,7 - 1,3 (default 1,0)
* E$2 = Parallelverschiebung in K (default 0K)
* E$4 = Min-Vorlauftemperatur in °C (default 22°C)
* E$5 = Max-Vorlauftemperatur in °C (default 28°C)
* E$6 = Faktor für quadratischen Kurvenparameter x^2 (default -0,005)
* E$7 = Faktor für linearen Kurvenparameter x^1 (default -0,18)
* $A10 = Aussentemperatur
*
* Formel zerlegt:
* Teil 1: =MAX(E$4;MIN( Berechnung 6 Obere und untere Begrenzung
* Teil 2: E$1* Berechnung 2 (Multiplikation mit $T1) führt zu $T2
* Teil 3: ($A10*E$7+POTENZ($A10;2)*E$6) Berechnung 1 führt zu $T1
* Teil 4: - Berechnung 5 ($T2 - $T4 - E$4 + E$2) führt zu $T5
* Teil 5: E$1* Berechnung 4 (Multiplikation mit $T3) führt zu $T4
* Teil 6: (20*E$7+POTENZ((20);2)*E$6)-E$4 Berechnung 3 führt zu $T3
* Teil 7: +E$2; Berechnung 5 ($T2 - $T4 - E$4 + E$2) führt zu $T5
* Teil 8: E$5)) Berechnung 6 Obere und untere Begrenzung
*/
{
"Level":[
// Eingangsvariablen
["$T_aussen","float",20],
["$Kurve","float",1.0],
["$ParallelV","float",0.0],
["$Faktor_x1","float",-0.18],
["$Faktor_x2","float",-0.005],
["$Min","float",22.0],
["$Max","float",28.0],
["$VAR<Inhibit?>","bool",false],
// Ausgangsvariablen
["$T_vorlauf","float",22],
// interne Variablen
["$T1","float",0],
["$T2","float",0],
["$T3","float",0],
["$T4","float",0],
["$T5","float",0],
["$Const1_0","float",1],
["$Const20_0","float",20],
["$Val_ok","bool",true]
],
"Module":[
["Break",["$VAR<Inhibit?>"]],
// Berechnung 1:
["Polynomial", "$T_aussen", "$T1", [0, "$Faktor_x1", "$Faktor_x2"]],
// Berechnung 2:
["Polynomial", "$Kurve", "$T2", [0, "$T1"]],
// Berechnung 3:
["Polynomial", "$Const20_0", "$T3", ["-$Min", "$Faktor_x1", "$Faktor_x2"]],
// Berechnung 4:
["Polynomial", "$Kurve", "$T4", [0, "$T3"]],
// Berechnung 5:
["Polynomial", "$Const1_0", "$T5", ["$T2", "-$T4", "$ParallelV"]],
// Begrenzung der Vorlauftemperatur innerhalb von $Min und $Max
["Limiter","$T5","$T_vorlauf","$Val_ok",["$Min", "$Max"]]
],
"Input":[
["T_Aussen","Aussentemperatur","$T_aussen","c"],
["Heizkurve_Vorwahl","Heizkurvenvorwahl 0,7 - 1,3 (default 1,0)","$Kurve","u"],
["Parallel_Versch","Parallelverschiebung in [K] (default 0K)","$ParallelV","u"],
["Faktor_x^1","Faktor aus dem Polynom 1. Grades für die Kurvenberechnung","$Faktor_x1","u"],
["Faktor_x^2","Faktor aus dem Polynom 2. Grades für die Kurvenberechnung","$Faktor_x2","u"],
["Min_Vorlauf","Untere Vorlauf-Temperaturgrenze in [°C]","$Min","u"],
["Max_Vorlauf","Obere Vorlauf-Temperaturgrenze in [°C] ","$Max","u"],
["Inhibit","verhindert die Ausführung der Logik bei true","$VAR<Inhibit?>","u"]
],
"Output":[
["Vorlauftemp","Soll Vorlauftemperatur nach Heizkurve","$T_vorlauf","a"]
]
}
/**
* z.B. https://heizung.de/heizung/wissen/heizkennlinie-definition-und-einflussfaktoren/
*. oder http://www.bosy-online.de/Einstellen_der_Heizkurve.htm
*.
* Sind die Raumtemperaturen immer zu niedrig, sollte das Niveau erhöht werden. Die Heizkennlinie ist dazu senkrecht nach oben zu verschieben.
* Sind die Raumtemperaturen immer zu hoch, sollte das Niveau verringert werden. Die Heizkennlinie ist dazu senkrecht nach unten zu verschieben.
* Sind die Raumtemperaturen nur an kalten Tagen zu niedrig, sollte die Neigung erhöht werden. Dazu ist eine steilere Heizkurve zu wählen.
* Sind die Raumtemperaturen in der Übergangszeit zu niedrig, im Winter aber in Ordnung, sollte das Niveau erhöht und die Neigung gesenkt werden. Es ist also eine flachere Kurve zu wählen, die dann senkrecht nach oben verschoben wird.
* Sind die Raumtemperaturen in der Übergangszeit zu hoch, im Winter aber in Ordnung, sollte das Niveau gesenkt und die Neigung erhöht werden. Es ist also eine steilere Kurve zu wählen, die dann nach unten verschoben wird.
*/
/**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.*/
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="400"
height="400"
viewBox="0 0 105.83333 105.83334"
version="1.1"
id="svg8"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="Heizungskurve4OG_1.svg">
<!--
<script xlink:href="../lib/jquery.js" type="text/javascript"></script>
-->
<script
xlink:href="../dependencies/jquery.js"
id="script4899"
type="text/javascript" />
<script
xlink:href="../lib/cometvisu-client.js"
id="script4901"
type="text/javascript" />
<script
xlink:href="../transforms/transform_default.js"
id="script4903"
type="text/javascript" />
<script
xlink:href="../transforms/transform_knx.js"
id="script4905"
type="text/javascript" />
<script
id="script4907"><![CDATA[
// import namespaces from parent window
var qx = window.parent.qx;
var cv = window.parent.cv;
//
Kurve = -100;
ParVersch = -100;
MaxVorlauf = -100;
MinVorlauf = -100;
Aussentemp = -100;
SollVorlauftemp = -100;
neuerSollpunkt = false;
neueKurve = false;
initialisierung = true;
//
var backendName = cv.Config.configSettings.backend || cv.Config.backend;
var
KurveGA = '4/7/51',
KurveTransform = 'DPT:9.002',
ParVerschGA = '4/7/52',
ParVerschTransform = 'DPT:9.002',
MaxVorlaufGA = '4/7/55',
MaxVorlaufTransform = 'DPT:9.001',
MinVorlaufGA = '4/7/54',
MinVorlaufTransform = 'DPT:9.001',
AussentempGA = '0/6/3',
AussentempTransform = 'DPT:9.001',
SollVorlauftempGA = '4/7/46',
SollVorlauftempTransform = 'DPT:9.001',
client = cv.Application.createClient(backendName, cv.Config.backendUrl);
client.update = function(json ) // overload the handler
{
var x_links = 13.216884;
var x_rechts = 105.74679
var y_oben = 191.24092;
var y_unten = 283.77083;
function x_pos_abs(x_rel) {
var diff = x_rechts - x_links;
return x_rel*diff+x_links;
}
function y_pos_abs(y_rel) {
var diff = y_unten - y_oben;
return y_unten - y_rel*diff;
}
function kurve_zeichnen(pKurve, pParVersch, pMinVorlauf, pMaxVorlauf) {
var t = 'M ';
for (var i = 20; i > -16; i--) {
var x_abs = x_pos_abs( (20-i) / 35 );
var formel1 = (i*(-0.18)+Math.pow(i,2)*(-0.005));
var formel2 = pKurve*formel1;
var formel3 = 20*(-0.18)+Math.pow(20,2)*(-0.005)-pMinVorlauf;
var formel4 = Kurve*formel3;
var formel5 = formel2-formel4+pParVersch;
var formel = Math.max(pMinVorlauf,Math.min(formel5,pMaxVorlauf));
var y_abs = y_pos_abs((formel-20)/12);
t = t + x_abs + ',' + y_abs + ' ';
}
return t;
}
for( address in json ) {
switch(address) {
case KurveGA:
Kurve = cv.Transform.decode(KurveTransform, json[KurveGA] );
if (Kurve === undefined || isNaN(Kurve)) {
return;
}
neueKurve = true;
break;
case ParVerschGA:
ParVersch = cv.Transform.decode(ParVerschTransform, json[ParVerschGA] );
if (ParVersch === undefined || isNaN(ParVersch)) {
return;
}
neueKurve = true;
break;
case MaxVorlaufGA:
MaxVorlauf = cv.Transform.decode(MaxVorlaufTransform, json[MaxVorlaufGA] );
if (MaxVorlauf === undefined || isNaN(MaxVorlauf)) {
return;
}
neueKurve = true;
break;
case MinVorlaufGA:
MinVorlauf = cv.Transform.decode(MinVorlaufTransform, json[MinVorlaufGA] );
if (MinVorlauf === undefined || isNaN(MinVorlauf)) {
return;
}
neueKurve = true;
break;
case AussentempGA:
Aussentemp = cv.Transform.decode(AussentempTransform, json[AussentempGA] );
if (Aussentemp === undefined || isNaN(Aussentemp)) {
return;
}
neuerSollpunkt = true;
break;
case SollVorlauftempGA:
SollVorlauftemp = cv.Transform.decode(SollVorlauftempTransform, json[SollVorlauftempGA] );
if (SollVorlauftemp === undefined || isNaN(SollVorlauftemp)) {
return;
}
neuerSollpunkt = true;
break;
}
if (neuerSollpunkt
&& SollVorlauftemp != -100
&& Aussentemp != -100 ) {
var y_abs = y_pos_abs((SollVorlauftemp-20)/12);
var x_abs = x_pos_abs((20-Aussentemp)/35);
document.getElementById("line_Aussentemp").setAttribute('d', 'M '+x_abs+',283.77082 V '+ y_abs);
document.getElementById("line_Vorlauftemp").setAttribute('d', 'M 13.227492,'+y_abs+' H '+ x_abs);
document.getElementById("Sollpunkt").setAttribute('cx', x_abs);
document.getElementById("Sollpunkt").setAttribute('cy', y_abs);
document.getElementById("Aussentemp").firstChild.innerHTML = Aussentemp.toFixed(1) +' '+unescape("%B0")+'C';
document.getElementById("SollVorlauf").firstChild.innerHTML = SollVorlauftemp.toFixed(1) +' '+unescape("%B0")+'C';
if (((20-Aussentemp)/35) > 0.5) {
document.getElementById("Aussentemp").firstChild.setAttribute('x', x_abs + 0.6);
} else {
document.getElementById("Aussentemp").firstChild.setAttribute('x', x_abs - 10);
}
if (((SollVorlauftemp-20)/12) > 0.5) {
document.getElementById("SollVorlauf").firstChild.setAttribute('y', y_abs + 3);
} else {
document.getElementById("SollVorlauf").firstChild.setAttribute('y', y_abs - 1.5);
}
neuerSollpunkt = false;
}
if (neueKurve
&& Kurve != -100
&& ParVersch != -100
&& MaxVorlauf != -100
&& MinVorlauf != -100 ) {
document.getElementById("Kurve1").setAttribute('d', kurve_zeichnen(Kurve, ParVersch, MinVorlauf, MaxVorlauf));
if (initialisierung) {
initialisierung = false;
//default-Kurve zeichnen
document.getElementById("Kurve2").setAttribute('d', kurve_zeichnen(1, 2, 20, 28));
//Bisherige-Kurve zeichnen
document.getElementById("Kurve3").setAttribute('d', kurve_zeichnen(Kurve, ParVersch, MinVorlauf, MaxVorlauf));
}
neueKurve = false;
}
}
}
client.user = 'demo_user'; // example for setting a user
client.subscribe( [KurveGA, ParVerschGA, MaxVorlaufGA, MinVorlaufGA, AussentempGA, SollVorlauftempGA] );
]]></script>
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.0824912"
inkscape:cx="-172.75618"
inkscape:cy="238.7894"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1147"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid10" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-191.16665)">
<g
transform="matrix(0.99919814,0,0,0.99919814,-1.0130286e-6,0.22752433)"
id="Hintergrund">
<g
id="Hauptgitter"
style="fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-opacity:1"
transform="translate(0.00849468,-0.06369169)">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#978979;fill-opacity:0.99607843;stroke:none;stroke-width:0.26458332;stroke-opacity:1;"
x="33.341637"
y="295.67709"
id="text3717"><tspan
sodipodi:role="line"
id="tspan3715"
x="33.341637"
y="295.67709"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:none;stroke-width:0.26458332;stroke-opacity:1;">Aussentemperatur in °C</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#978979;fill-opacity:0.99607843;stroke:none;stroke-width:0.26453087;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="-274.98029"
y="3.7754819"
id="text3717-0"
transform="rotate(-90)"><tspan
sodipodi:role="line"
id="tspan3715-9"
x="-274.98029"
y="3.7754819"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:none;stroke-width:0.26453087;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">Heizungsvorlauftemperatur in °C</tspan></text>
<path
style="fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.25100577px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 13.229168,286.41667 V 191.16666"
id="path3737"
inkscape:connector-curvature="0" />
<path
style="fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.30316603px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 10.583335,283.77084 H 105.83334"
id="path3739"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
x="10.508921"
y="290.65106"
id="text3796"><tspan
sodipodi:role="line"
id="tspan3794"
x="10.508921"
y="290.65106"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1">20</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
x="23.627502"
y="290.62418"
id="text3796-8"><tspan
sodipodi:role="line"
id="tspan3794-0"
x="23.627502"
y="290.62418"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1">15</tspan><tspan
sodipodi:role="line"
x="23.627502"
y="303.85333"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
id="tspan3816" /></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
x="36.846333"
y="290.65002"
id="text3796-7"><tspan
sodipodi:role="line"
id="tspan3794-3"
x="36.846333"
y="290.65002"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1">10</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
x="51.527607"
y="290.61902"
id="text3796-8-0"><tspan
sodipodi:role="line"
id="tspan3794-0-3"
x="51.527607"
y="290.61902"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1">5</tspan><tspan
sodipodi:role="line"
x="51.527607"
y="303.84818"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
id="tspan3816-0" /></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
x="64.798119"
y="290.65002"
id="text3796-8-4"><tspan
sodipodi:role="line"
id="tspan3794-0-30"
x="64.798119"
y="290.65002"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1">0</tspan><tspan
sodipodi:role="line"
x="64.798119"
y="303.87918"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
id="tspan3816-6" /></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
x="77.057831"
y="290.61902"
id="text3796-7-9"><tspan
sodipodi:role="line"
id="tspan3794-3-0"
x="77.057831"
y="290.61902"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1">-5</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
x="88.92894"
y="290.65002"
id="text3796-8-0-2"><tspan
sodipodi:role="line"
x="88.92894"
y="290.65002"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
id="tspan3944">-10</tspan><tspan
sodipodi:role="line"
x="88.92894"
y="303.87918"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
id="tspan3816-0-1" /></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
x="4.9485364"
y="285.30975"
id="text3796-3"><tspan
sodipodi:role="line"
id="tspan3794-39"
x="4.9485364"
y="285.30975"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1">20</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
x="4.9588718"
y="246.71252"
id="text3796-3-2"><tspan
sodipodi:role="line"
id="tspan3794-39-4"
x="4.9588718"
y="246.71252"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1">25</tspan><tspan
sodipodi:role="line"
x="4.9588718"
y="259.94168"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
id="tspan4002" /></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1"
x="4.9423351"
y="208.11528"
id="text3796-3-9"><tspan
sodipodi:role="line"
id="tspan3794-39-43"
x="4.9423351"
y="208.11528"
style="font-size:4.23333311px;fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332;stroke-opacity:1">30</tspan></text>
<path
style="fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.19540966px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 1.0000002e-6,283.77084 H 4.3296325"
id="path4033"
inkscape:connector-curvature="0" />
<path
style="fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 13.229168,291.70834 V 297"
id="path4035"
inkscape:connector-curvature="0" />
<path
style="fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.30316603px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 10.583333,245.1736 H 105.83334"
id="path3739-4"
inkscape:connector-curvature="0" />
<path
style="fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.30316603px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 10.583333,206.57635 H 105.83334"
id="path3739-9"
inkscape:connector-curvature="0" />
<path
style="fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.25100577px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 26.458335,286.41667 V 191.16666"
id="path3737-9"
inkscape:connector-curvature="0" />
<path
style="fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.25100577px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 39.687502,286.41667 V 191.16666"
id="path3737-0"
inkscape:connector-curvature="0" />
<path
style="fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.25100577px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 52.91667,286.41667 V 191.16666"
id="path3737-4"
inkscape:connector-curvature="0" />
<path
style="fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.25100577px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 66.145837,286.41667 V 191.16666"
id="path3737-8"
inkscape:connector-curvature="0" />
<path
style="fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.25100577px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 79.375005,286.41667 V 191.16666"
id="path3737-5"
inkscape:connector-curvature="0" />
<path
style="fill:#978979;fill-opacity:0.99607843;stroke:#96887a;stroke-width:0.25100577px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 92.604172,286.41667 V 191.16666"
id="path3737-1"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.31956509px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 13.231291,276.06997 H 105.83546"
id="path4089"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.31956509px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 13.231291,268.35052 H 105.83546"
id="path4091"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.31956509px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 13.231292,260.63108 H 105.83546"
id="path4089-5"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.31956509px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 13.231292,252.91162 H 105.83546"
id="path4091-6"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.31956509px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="m 13.23129,237.47273 h 92.60417"
id="path4089-3"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.31956509px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="m 13.23129,229.75328 h 92.60417"
id="path4091-1"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.31956509px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 13.231291,222.03384 H 105.83546"
id="path4089-5-3"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.31956509px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 13.231291,214.31438 H 105.83546"
id="path4091-6-7"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.31956509px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="m 13.23129,198.8755 h 92.60417"
id="path4089-3-8"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.31956509px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="m 13.23129,191.15605 h 92.60417"
id="path4091-1-5"
inkscape:connector-curvature="0" />
<ellipse
style="fill:#b90000;fill-opacity:0.99607843;stroke:none;stroke-width:0.52959132;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="ellipse917"
cx="34.382732"
cy="262.55713"
r="1.0008025" />
</g>
<g
id="Hilfsgitter"
style="stroke:#96887a;stroke-opacity:0.31372549">
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 15.875001,283.77084 V 191.16666"
id="path5056"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 18.520834,283.77084 V 191.16666"
id="path5056-0"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 21.166668,283.77084 V 191.16666"
id="path5056-5"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 23.812502,283.77084 V 191.16666"
id="path5056-1"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 29.104168,283.77084 V 191.16666"
id="path5056-07"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 31.750001,283.77084 V 191.16666"
id="path5056-0-0"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 34.395835,283.77084 V 191.16666"
id="path5056-5-7"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 37.041669,283.77084 V 191.16666"
id="path5056-1-3"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 42.333336,283.77084 V 191.16666"
id="path5056-8"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 44.979169,283.77084 V 191.16666"
id="path5056-0-8"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 47.625002,283.77084 V 191.16666"
id="path5056-5-6"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 50.270837,283.77084 V 191.16666"
id="path5056-1-1"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 55.562504,283.77084 V 191.16666"
id="path5056-4"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 58.208337,283.77084 V 191.16666"
id="path5056-0-9"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 60.85417,283.77084 V 191.16666"
id="path5056-5-8"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 63.500005,283.77084 V 191.16666"
id="path5056-1-39"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 68.791671,283.77084 V 191.16666"
id="path5056-10"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 71.437504,283.77084 V 191.16666"
id="path5056-0-1"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 74.083338,283.77084 V 191.16666"
id="path5056-5-3"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 76.729172,283.77084 V 191.16666"
id="path5056-1-9"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 82.020839,283.77084 V 191.16666"
id="path5056-7"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 84.666672,283.77084 V 191.16666"
id="path5056-0-04"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 87.312506,283.77084 V 191.16666"
id="path5056-5-87"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 89.95834,283.77084 V 191.16666"
id="path5056-1-92"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 95.250006,283.77084 V 191.16666"
id="path5056-3"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 97.895839,283.77084 V 191.16666"
id="path5056-0-2"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 100.54167,283.77084 V 191.16666"
id="path5056-5-89"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#96887a;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.31372549"
d="M 103.18751,283.77084 V 191.16666"
id="path5056-1-8"
inkscape:connector-curvature="0" />
</g>
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#c3b97d;fill-opacity:0.99607843;stroke:none;stroke-width:0.26458332;stroke-opacity:1"
x="26.339582"
y="204.02068"
id="Legende2_Text"><tspan
sodipodi:role="line"
id="tspan3715-94-1"
x="26.339582"
y="204.02068"
style="font-size:3.53060889px;fill:#c3b97d;fill-opacity:0.99607843;stroke:none;stroke-width:0.26458332;stroke-opacity:1">Bisher (beim Laden der Seite)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333302px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#00d000;fill-opacity:0.99607843;stroke:none;stroke-width:0.26458332;stroke-opacity:1"
x="26.339582"
y="197.98679"
id="Legende1_Text"><tspan
sodipodi:role="line"
id="tspan3715-94-1-6"
x="26.339582"
y="197.98679"
style="font-size:3.53060889px;fill:#00d000;fill-opacity:0.99607843;stroke:none;stroke-width:0.26458332;stroke-opacity:1">Sollkurve</tspan></text>
<path
style="fill:none;stroke:#0082ff;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.1166667, 0.52916667;stroke-dashoffset:0;stroke-opacity:1"
d="m 15.875,208.70346 8.903223,-0.0743"
id="Legende3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#c3b97d;stroke-width:0.52916667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.1166667,0.52916667;stroke-dashoffset:0;stroke-opacity:1"
d="m 15.875,202.88262 8.903223,-0.0743"
id="Legende2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#00d000;stroke-width:0.79311347;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 15.875,196.98749 8.903223,-0.0743"
id="Legende1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.57484627px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0082ff;fill-opacity:0.99607843;stroke:none;stroke-width:0.26437116;stroke-opacity:1"
x="26.31846"
y="209.97974"
id="Legende3_Text"><tspan
sodipodi:role="line"
id="tspan3715-94-1-8"
x="26.31846"
y="209.97974"
style="font-size:3.52777767px;fill:#0082ff;fill-opacity:0.99607843;stroke:none;stroke-width:0.26437116;stroke-opacity:1">default</tspan></text>
<path
style="fill:none;stroke:#c3b97d;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.1166667, 0.52916667;stroke-dashoffset:0;stroke-opacity:1"
d="M 12.594398,283.14834 105.1243,190.61843"
id="Kurve3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#0082ff;stroke-width:0.5291667;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.1166667, 0.52916667;stroke-dashoffset:0;stroke-opacity:1"
d="M 13.832597,284.22573 106.3625,191.69582"
id="Kurve2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#00d000;stroke-width:0.79311347;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 13.216884,283.77083 105.74679,191.24092"
id="Kurve1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-opacity:1;stroke:#b90000;stroke-width:0.26437116px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 34.36658,262.62117 v 21.14966"
id="line_Aussentemp"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-opacity:1;stroke:#b90000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 13.229615,262.61696 H 34.396284"
id="line_Vorlauftemp"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.58333397px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#b90000;fill-opacity:1;stroke:none;stroke-width:0.26458332;stroke-opacity:1"
x="14.00212"
y="262.01279"
id="SollVorlauf"><tspan
sodipodi:role="line"
id="tspan5370"
x="14.00212"
y="262.01279"
style="font-size:2.82222247px;fill:#b90000;fill-opacity:1;stroke:none;stroke-width:0.26458332;stroke-opacity:1">24,3°C</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.57484722px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#b90000;fill-opacity:1;stroke:none;stroke-width:0.26437116;stroke-opacity:1"
x="34"
y="283.00064"
id="Aussentemp"><tspan
sodipodi:role="line"
id="tspan5370-2"
x="34"
y="283.00064"
style="font-size:2.8199594px;fill:#b90000;fill-opacity:1;stroke:none;stroke-width:0.26437116;stroke-opacity:1">12,0°C</tspan></text>
<circle
style="fill:#b90000;fill-opacity:1;stroke:none;stroke-width:0.5291667;stroke-miterlimit:4;stroke-dasharray:2.11666672, 0.52916668000000000;stroke-dashoffset:0;stroke-opacity:1"
id="Sollpunkt"
cx="34.395836"
cy="262.60416"
r="1.5" />
</g>
</svg>
Code: Alles auswählen
KurveGA = '4/7/51',
KurveTransform = 'DPT:9.002',
ParVerschGA = '4/7/52',
ParVerschTransform = 'DPT:9.002',
MaxVorlaufGA = '4/7/55',
MaxVorlaufTransform = 'DPT:9.001',
MinVorlaufGA = '4/7/54',
MinVorlaufTransform = 'DPT:9.001',
AussentempGA = '0/6/3',
AussentempTransform = 'DPT:9.001',
SollVorlauftempGA = '4/7/46',
SollVorlauftempTransform = 'DPT:9.001
Viel Spaß, was auch immer Ihr daraus macht
/**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.*/