Seite 4 von 6

Re: [V4.0 IP5] Taupunkt berechnen

Verfasst: Do Dez 28, 2023 6:36 pm
von hans4711
blaubaerli hat geschrieben: Do Dez 28, 2023 6:03 pm wenn du mir genau erklärst, was du dir da vorstellst, kann ich das gerne für dich übernehmen.
Das ein Link zum Post 28 die funktionierende Lösung beinhaltet, dann muss man nicht alles durchlesen, das habe ich bei anderen Beiträgen auch schon gesehen.
Robert_Mini hat geschrieben: Do Dez 28, 2023 6:18 pm 2) Wo in der Doku würdest du solch Information erwarten? Ich ergänze das gerne, bin aber etwas betriebsblind.
hier unter Besonderheiten: https://elabnet.atlassian.net/wiki/spac ... ulbaustein Gerne auch mit einem Beispiel, erst mit dem Beispiel ..."xxxx" habe ich es dann verstanden. Nur "Reserviert" sagt dem Laien nicht so viel

Wo kann man den so einen Taupunktbaustein ein Feature Request einmelden? Ich finde diese Berechnung für eine Hausautomatisierung essentiell und vermutlich schnell umzusetzen

Re: [V4.0 IP5] Taupunkt berechnen

Verfasst: Do Dez 28, 2023 6:51 pm
von StefanW
Hallo Hans,

ich lese alles mit und habe den Baustein schon mit auf unsere Liste genommen, natürlich sollte es sowas fertig geben.

Ich glaube der Robert führt eine Liste mit "ins Produkt einzubauenden Bausteinen", da sollte das auch drauf, damit es nicht in Vergessenheit gerät.

lg

Stefan

Re: [V4.0 IP5] Wie kann man den Taupunkt in einer Custom-Logik berechnen?

Verfasst: Do Dez 28, 2023 6:54 pm
von blaubaerli
Hallo zusammen,

der Eingangspost ist erweitert, der Titel ein wenig modifiziert und als "gelöst" markiert!

Beste Grüße
Jens

Re: [V4.0 IP5] Wie kann man den Taupunkt in einer Custom-Logik berechnen?

Verfasst: Do Dez 28, 2023 7:34 pm
von hans4711
@StefanW @Robert_Mini super, finde ich klasse! Dann bitte als zweiten Ausgang noch die absolute Luftfeuchte berücksichtigen. Dann kann man damit alles machen was man so in Bezug auf Lüftungssteuerung und Schimmelschutz braucht

Re: [V4.0 IP5] Wie kann man den Taupunkt in einer Custom-Logik berechnen?

Verfasst: Fr Dez 29, 2023 12:01 am
von hans4711
Jetzt hat mich der Ehrgeiz gepackt und ich wollte noch die abs. Luftfeuchtigkeit aus Temperatur und rel. Luftfeuchte berechnen.

Dazu braucht es folgende Formel:
Bild
(6.112 × e^[(17.67 × Temp)/(Temp+243.5)] × feuchte × 18.02)/((273.15+Temp) × 100 × 0.08314)

In the formula below, temperature (T) is expressed in degrees Celsius, relative humidity (rh) is expressed in %, and e is the base of natural logarithms 2.71828 [raised to the power of the contents of the square brackets]:
Die habe ich für den MuParser so umgestellt:

Code: Alles auswählen

X1 = Temp, X2 = Feuchte
(6.112 * ln^((17.67 * X1)/(X1+243.5)) * X2 * 18.02)/((273.15+X1) * 100 * 0.08314)

Als Fehlermeldung erhalte ich:

Code: Alles auswählen

28.12.2023 23:54:17	Logic_55 abs. Luftfeuchte Test	calc_formula1	Error while analyzing formula "(6.112 * ln^((17.67 * X1)/(X1+243.5)) * X2 * 18.02)/((273.15+X1) * 100 * 0.08314)"
 28.12.2023 23:54:17			src/le_math_expr.cpp#23:muparser: Unexpected token "ln" found at position 9.
Ich sehe keinen Fehler, lt. Doku soll man für den nat. Log "ln" verwenden, da kommt jedoch die Fehlermeldung. Ich habe es mit eine Standardlogik "Freie Formel" getestet

Re: [V4.0 IP5] Wie kann man den Taupunkt in einer Custom-Logik berechnen?

Verfasst: Fr Dez 29, 2023 8:49 am
von Robert_Mini
Hallo Hans!

Du musst statt „ln^(“ ein „exp(“ verwenden.
Du willst hier die Exponentialfunktion verwenden und mich den natürlichen Logarithmus (die Umkehrung des exp.).

Lg
Robert

Re: [V4.0 IP5] Wie kann man den Taupunkt in einer Custom-Logik berechnen?

Verfasst: Fr Dez 29, 2023 10:40 am
von hans4711
Danke @Robert_Mini , jetzt funktionierts.
Hier nochmal der komplette Code für die Berechnung des Taupunkts und der absoluten Luftfeuchtigkeit

Code: Alles auswählen

/**
 * Logik zum Berechnen des Taupunkts. Der Taupunkt ist ein guter Wert um Aussenluft und Innenluft miteinander zu vergleichen um zu prüfen ob Lüften zur Feuchtigkeitsreduktion sinnvoll ist.
 * Die Entstehtung der Logik wurde hier besprochen:https://forum.timberwolf.io/viewtopic.php?f=24&t=4725
 * Die Formeln wurden von folgendem Post abgeleitet: http://dl8aap.koch-carsten.de/2020/07/taupunkt-berechnen/
 * Erklärung der Variablen aus der ursprünglichen Formel
 * var t = temperature;
* var r = humidity;
* var tp = 0.000;
* // Konstante
* var mw = 18.016; //Molekulargewicht des Wasserdampfes (kg/kmol)
* var gk = 8314.3; // universelle Gaskonstante (J/(kmol*K))
* var t0 = 273.15; // Absolute Temperatur von 0 °C (Kelvin)
* var tk = t + t0; // Temperatur in Kelvin
 
* Temp größer gleich 0 Grad:
*     a = 7.5;
*     b = 237.3;
* Temp kleiner 0 Grad:
*     a = 7.6;
*     b = 240.7;
*
* V2: Integration Berechnung absoute Luftfeuchtigkeit in g/m3
* Formel wurde hier entnommen: https://carnotcycle.wordpress.com/2012/08/04/how-to-convert-relative-humidity-to-absolute-humidity/
 */

{
  "_Meta": { // Optional
    "Description": "",
    "Version": "2.0",
    "Icon": "" // format: "data:image/svg+xml;base64,ENCODED_FILE"
  },
  "Input": [
    ["Temperatur","Temperatur des zu berechnenden Raumes","$temp","c" ],
    ["Luftfeuchtigkeit","Luftfeuchtigkeit des zu berechnenden Raumes","$feuchte","c" ]
  ],
  "Output": [
    ["Taupunkt","Berechneter Taupunkt","$taupunkt","a"],
    ["Absolute Luftfeuchtigkeit","Berechnete Absolute Luftfeuchtigkeit in g/m3","$absfeuchte","a"]
  ],
  "Level": [
      //Ein-Ausgänge
    ["$temp","float",0.0],
    ["$feuchte","float",0.0],
    ["$taupunkt","float",0.0],
    ["$absfeuchte","float",0.0],
    
    //Formeln
    ["$formelinbenutzung","string","xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"], //Reservierung des Speicherplatzes, sonst werden nur 14 Zeichen reserviert
    
    //Formel jeweils einmal mit den Konstanten für Temperaturen >0 Grad, und einmal für Temperaturen <0 Grad    
    //var sdd = 6.1078 * Math.pow(10, (a*t)/(b+t));
    ["$formel1plus","string","6.1078 * 10^((7.5*X1)/(237.3+X1))"],
    ["$formel1minus","string","6.1078 * 10^((7.6*X1)/(240.7+X1))"],
    
    //var dd = sdd * (r/100);
    ["$formel2plus","string","X1 * (X2/100)"],
    ["$formel2minus","string","X1 * (X2/100)"],
    
    //var af = Math.pow(10,5) * mw/gk * dd/tk;
    ["$formel3plus","string","10^5 * 18.016/8314.3 * X1/(X2 + 273.15)"],
    ["$formel3minus","string","10^5 * 18.016/8314.3 * X1/(X2 + 273.15)"],

    //var v = Math.log10(dd/6.1078);
    ["$formel4plus","string","log10(X1/6.1078)"],
    ["$formel4minus","string","log10(X1/6.1078)"],
    
    //tp = Math.round( ((b*v) / (a-v))*100)/100;
    ["$formel5plus","string","((237.3*X1) / (7.5-X1))*100/100"],
    ["$formel5minus","string","((240.7*X1) / (7.6-X1))*100/100"],
    
    //Formel zur Berechnung der abs. Feuchte
    ["$formelabsfeuchte","string","(6.112 * exp((17.67 * X1)/(X1+243.5)) * X2 * 18.02)/((273.15+X1) * 100 * 0.08314)"],
    
    //Variablen für die Berechnungen
    ["$schwellwert","float",0.0],
    ["$schwellwertueberschreitung","bool",false],
    ["$schwellwertueberschreitungint","integer",0],
    ["$sdd","float",0.0],
    ["$dd","float",0.0],
    ["$af","float",0.0],
    ["$v","float",0.0]
  ],
  "Module": [
      //Comparator, prüft ob die Temp postiv oder negativ ist, True bei Plusgraden, False bei Minusgraden
      ["Comparator" , "$temp" , "$schwellwertueberschreitung" , "$schwellwert"],

      //Formel 1
      ["Multiplexer", ["$formel1minus", "$formel1plus"],"$formelinbenutzung","$schwellwertueberschreitung"],
      ["CalcFormula",["$temp"], "$sdd", "$formelinbenutzung"],

      //Formel 2
      ["Multiplexer", ["$formel2minus", "$formel2plus"],"$formelinbenutzung","$schwellwertueberschreitung"],
      ["CalcFormula",["$sdd","$feuchte"], "$dd", "$formelinbenutzung"],

      //Formel 3
      ["Multiplexer", ["$formel3minus", "$formel3plus"],"$formelinbenutzung","$schwellwertueberschreitung"],
      ["CalcFormula",["$dd","$temp"], "$af", "$formelinbenutzung"],

      //Formel 4
      ["Multiplexer", ["$formel4minus", "$formel4plus"],"$formelinbenutzung","$schwellwertueberschreitung"],
      ["CalcFormula",["$dd"], "$v", "$formelinbenutzung"],
      
      //Formel 5      
      ["Multiplexer", ["$formel5minus", "$formel5plus"],"$formelinbenutzung","$schwellwertueberschreitung"],
      ["CalcFormula",["$v"], "$taupunkt", "$formelinbenutzung"],
      
      //Abs. Feuchte
      ["CalcFormula",["$temp","$feuchte"], "$absfeuchte", "$formelabsfeuchte"]
      
  ]
}

Re: [V4.0 IP5] Wie kann man den Taupunkt in einer Custom-Logik berechnen?

Verfasst: Fr Dez 29, 2023 1:52 pm
von Parsley
Moin

Ich finde es klasse, wie Hans gefallen an den Logiken findet und welche Hilfe und Zusammenarbeit hier stattfindet! Großes Kino! Danke an alle Beteiligten!

Hat diese neue Version der Logik schon die Reife, dass sie auch im ersten Post verlinkt werden kann? ;)

Re: [V4.0 IP5] Wie kann man den Taupunkt in einer Custom-Logik berechnen?

Verfasst: Fr Dez 29, 2023 6:52 pm
von Robert_Mini
Denke die Logik ist reif.
Und Danke für das Lob, freut mich wenn ich helfen kann - man lernt ja nie aus…

Robert

Re: [V4.0 IP5] Taupunkt berechnen

Verfasst: Fr Dez 29, 2023 11:15 pm
von Sunshinemaker
hans4711 hat geschrieben: Do Dez 28, 2023 5:57 pm

Code: Alles auswählen

/**
 * Logik zum Berechnen des Taupunkts. Der Taupunkt ist ein guter Wert um Aussenluft und Innenluft miteinander zu vergleichen um zu prüfen ob Lüften 
Moin, ich würde da gerne mal Einspruch erheben. Der Taupunkt sagt nichts anderes aus als den Punkt an dem das Wasser in der Luft Kondensiert.

Wenn du wirklich Innen und Außenluft miteinander vergleichen willst wäre die Absolute Luftfeuchtigkeit in g/m3 oder kg/kg wesentlich besser geeignet.
Ja bei Trockeneren Luft sinkt auch der Taupunkt aber ein wirklicher vergleich ist das ganze nicht.