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

[Erfahrungsbericht] Heizkurve V3: Gekrümmte Heizkurve als Customlogik mit Visu-Baustein

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
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

Heizkurve V3: Gekrümmte Heizkurve als Customlogik mit Visu-Baustein

#1

Beitrag von Robosoc »

[Edit 07.02.2023: Die hier vorgestellte Lösung für die Visualisierung funktioniert in CometVisu V12 nicht mehr! Ich habe es zwar inzwischen auch in V12 umgesetzt bekommen, muss es aber noch ein wenig optimieren. Dafür, und auch um es dann anschließend hier sauber zu dokumentieren, fehlt mir leider aktuell die Zeit. Aber ich hoffe hiermit zumindest dafür zu sorgen, dass andere nicht aufgrund meines Posts wertvolle Zeit verlieren.]

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:
Bild


Um sich der Sache ersteinmal spielerisch zu nähern, habe ich eine einfache Exceltabelle zur Planung erstellt, die Ihr gerne nutzen könnt:
heizkurve.xlsx
Bild


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:
Bild

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.*/
Jetzt würde ich gerne noch die SVG für die Comet-Visu teilen, aber SVG's können im Forum nicht hochgeladen werden. Ich dachte erst ich würde dann daraus eine ZIP erstellen, aber ich lade persönlich immer höchst ungerne ZIP-Dateien aus dem Netz herunter und daher mache ich es wie folgt. Folgender Code, muss in eine Datei mit dem Namen "Heizkurve4OG.svg" kopiert werden, die man sich einfach selber neu erstellt:

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>
In dem Code muss man lediglich den Abschnitt mit den KNX Adressen und DPST's ab Zeile 57 an seine eigenen Bedürfnisse anpassen.

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
An dieser Stelle noch einmal ein RIESEN DANKESCHÖN an @Chris M. für die Hilfe beim Code um mehrere KNX-Adressen einzulesen...ich finde das Ergebnis kann sich sehen lassen :lol:

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.*/
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Robosoc am Di Feb 07, 2023 7:54 am, insgesamt 6-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

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

#2

Beitrag von Robosoc »

Da in einem gestrigen Post an anderer Stelle auf diesen Beitrag verwiesen wurde und Du, @richy , Dich für den Bitrag bedankt hast hier kurz ein Hinweis, den ich ganz oben im Beitrag soeben auch vorweg gestellt habe:

Die hier vorgestellte Lösung für die Visualisierung der Heizkurve funktioniert in CometVisu V12 nicht mehr! Ich habe es zwar inzwischen auch in V12 umgesetzt bekommen, muss es aber noch ein wenig optimieren. Dafür, und auch um es dann anschließend hier sauber zu dokumentieren, fehlt mir leider aktuell die Zeit.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

richy
Reactions:
Beiträge: 60
Registriert: Di Jun 16, 2020 9:38 pm
Hat sich bedankt: 139 Mal
Danksagung erhalten: 32 Mal

#3

Beitrag von richy »

Hallo Sven,

vielen Dank für Deinen Hinweis.
Da mein Bedarf an einer solchen Lösung aber sowieso erst in einigen Monaten aktuell wird hege ich dennoch die Hoffnung daß Du bis dahin eine Phase der Langeweile :roll: mit der Aktualisierung überbrücken kannst.

Mein verspäteter Dank galt aber im Besonderen dem gezeigten Engagement und der Bereitschaft diese mit anderen zu teilen. :clap: :clap: :clap:

lg richy
TWS 350Q ID:480, VPN offen, Reboot nach Rücksprache
Antworten

Zurück zu „Zusätzliche Logikbausteine“