Ankündigung

Einklappen
Keine Ankündigung bisher.

Skalierung eines Messwerts

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Skalierung eines Messwerts

    Ich muss mal die Mathematiker unter euch bemühen…

    Folgendes Szenario:
    Im Rahmen der Badsanierung wollte ich gerne die Duschszene durch die Temperaturmessung am Warmwasseranschluss der Duscharmatur machen. Dazu hatte ich mir im Vorfeld 2 PT100-Sensoren als Anlegefühler mit passender Länge der Anschlussleitung bestellt.

    Leider dauerte die Lieferung vier Wochen, sodass ich irgendwann vor dem Problem stand, entweder die Baustelle zu stoppen und auf die Fühler zu warten, oder aber was anderes zu machen.
    Fühler hatte ich noch - war aber der Meinung, dass das PT1000 waren. Hab die am Wasseranschluss angelegt und heute in Betrieb genommen.

    Leider ist die Kennlinie ein KTY11. Also ein PTC, der nun auf einen Zennio Quad Plus geht (der aber nur NTC-Kennlinien kann). Ich habe den jetzt mit der Kennlinie als NTC 1Kiloohm konfiguriert; das gibt zumindest Messwerte, mit denen ich die Duschszene schalten kann.

    Jetzt kam mir die Idee, dass man das ja vom Grundsatz her hochskalieren könnte.
    Nur ist die große Frage - WIE???

    Zwei Dinge sind gegeben:
    1. die Berechnung ist gegenläufig, ein steigender Temperaturmesswert am Sensor sorgt für eine fallende Temperatur am Ausgang (wie gesagt, da hängt ein PTC an einem NTC-Eingang, was sich auch nicht umkonfigurieren lässt).
    2. Das Verhältnis ist nicht proportional in der Steigung.
    Hier die Messpunkte:
    • Sensor: 10 Grad - Temperaturmesswert auf dem Bus: 7,6 Grad
    • Sensor: 55 Grad - Temperaturmesswert auf dem Bus: 2,1 Grad
    Nun meine Frage:
    gibt es eine Möglichkeit, das zu skalieren? Wenn ja: wie?

    Was ich mir hier nicht wünsche:
    eine Grundsatzdiskussion, dass das nun der falsche Fühler ist und das das nie nur durch Rechnen zu einem genauen Messergebnis kommen wird. Das weiß ich selbst und hat mich auch geärgert; ist aber nicht mehr veränderbar.

    Mir geht es hier um die technische Möglichkeit, mittels Homeassistant diese Daten so zu manipulieren, dass es annähernd einen Wert ergibt, der für Normalsterbliche halbwegs plausibel ist.

    Alternativ: wer natürlich einen Hersteller eines Analogeingangs kennt, der eine KTY11 verarbeiten kann; das würde ich auch gerne annehmen.

    Konverter mit Hilfsspannung schließe ich aber aus, da mir das dieses System nicht wert ist. Basteln ja, aber nicht hunderte Euros in die Hand zu nehmen, um eine Hilfsspannungsversorgung und einen Konverter zu kaufen.

    #2
    ABB Analogeingänge haben üblicherweise Applikationen die KTY Kennlinien hinterlegt haben.

    Kommentar


      #3
      Zwei Möglichkeiten:
      1) openknx (inkl kleiner Schaltung und Programmierung)
      2) Kennlinie pt1000 (t=m*r+b), daraus R berechnen. Damit in die Kennlinie vom kty (kannst du linearisieren, dann geht das als Einzeiler/Lineare Gleichung
      ​​​​​
      ​​​​​​

      Kommentar


        #4
        meti: Danke, genau daran habe ich gesucht!
        Hatte schon bei Arcus, Zennio, Elsner, Weinzierl, usw. gesucht, aber nichts zu finden. Der ABB ist genau der richtige.

        henfri: der 2. Punkt wäre passend, aber da wüsste ich nicht, wie ich dies im Homeassistant umgesetzt bekommen könnte. Wäre im übrigen auch der KTY11, den ich rechnen müsste. Die Widerstandswerte hätte ich ja (gibt ja Kennlinien dazu), aber wenn 10 Grad zu 7,6 Grad mit einem (fast) Verhältnis von 1 ist, bei 55 Grad jedoch 2,1 Grad mit einem Verhältnis von 27 ist, dann übersteigt das mein mathematisches Verständnis, dass in eine Gleichung zu pressen…

        Kommentar


          #5
          Zitat von henfri Beitrag anzeigen
          Damit in die Kennlinie vom kty (kannst du linearisieren, dann geht das als Einzeiler/Lineare Gleichung
          Hab ich jetzt gemacht: war gar nicht so schwer. Und das beste ist - es passt. Messwertvergleiche mit Temperatursensor am Multimeter und tatsächlicher Temperatur driften kaum auseinander.
          Bleibt so!
          Wie habe ich es gemacht:
          • den Rohwert mit *-1 Multipliziert, damit bekam ich die Messwerte auf negatives Vorzeichen
            • 55 Grad: 2,1 wurden zu -2,1
            • 15 Grad; 7,6 wurde zu -7,6
          • Dann 9 Grad aufaddiert, somit wurde die Kennlinie umgedreht und ich konnte wieder mit positiven Zahlen rechnen
            • 55 Grad: 2,1 Schritt 1: -2,1 Schritt 2: 6,9
            • 15 Grad: 7,6 Schritt 1: -7,6 Schritt 2: 1,4
            • Somit war die Kennlinie bei beiden Werten positiv steigend
          • Dann den Wert mit 9 multipliziert:
            • 55 Grad: 6,9 * 9 = 62,1 Grad
            • 15 Grad: 1,4 * 9 = 12,6 Grad
          Rechnerisch zwar unscharf, aber da der Sensor an einem Verbundrohr anliegt, ist die Wärmeübertragung da eh nicht die beste.
          Somit habe ich tatsächlich bei der Warmwassertemperatur am Waschbecken (ungemischt) 55 Grad, während der Temperaturfühler nach Durchfluss an der Dusche ebenfalls schnell die 55 Grad anzeigt. Im kalten Zustand habe wir tatsächlich so 10 Grad an der Leitung, auch das passt.

          Gelöst habe ich es so (vielleicht braucht es ja mal jemand):
          Code:
            # Temperatur Duschwasser skaliert
            # KTY11 liefert umgekehrte Werte von 7.6 bis 2.3 Grad, wird daher skaliert
            - name: "KG Bad Temperatursensor Dusche"
              unit_of_measurement: "C"
              device_class: temperature
              state_class: measurement
              state: >-
                {{ (((states('sensor.keller_bad_dusche_temperaturfuhler') | float * (-1))+9)*9) }}​
          Ergebnis ist jetzt folgendes:
          image.png
          Rohdaten:
          image.png
          Zuletzt geändert von tsb2001; 13.10.2024, 15:00.

          Kommentar


            #6
            Top, das freut mich!

            Kommentar

            Lädt...
            X