Ankündigung KNX Data Secure Unterstützung im
KNX Logger und im KNX Busmonitor


Wir haben den KNX Buslogger und den KNX Busmonitor um KNX Data Secure erweitert

Zudem gibt es einen KNX Diagnose Monitor und das Hochladen des ETS Projektes ist nun 100-fach schneller

Alle Informationen hier: viewtopic.php?f=21&t=5886

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

Informationen und Diskussionen über Logik-Engine und Logik-Editor
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

Ersteller
hans4711
Reactions:
Beiträge: 124
Registriert: Mi Nov 08, 2023 4:24 pm
Hat sich bedankt: 40 Mal
Danksagung erhalten: 65 Mal

#31

Beitrag 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
3500 XL ID:1339

StefanW
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 10631
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 5286 Mal
Danksagung erhalten: 8654 Mal
Kontaktdaten:

#32

Beitrag 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
Zuletzt geändert von StefanW am Do Dez 28, 2023 6:52 pm, insgesamt 1-mal geändert.
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

blaubaerli
Reactions:
Beiträge: 2664
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 995 Mal
Danksagung erhalten: 785 Mal

#33

Beitrag von blaubaerli »

Hallo zusammen,

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

Beste Grüße
Jens
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung
Bitte WIKI lesen.

Ersteller
hans4711
Reactions:
Beiträge: 124
Registriert: Mi Nov 08, 2023 4:24 pm
Hat sich bedankt: 40 Mal
Danksagung erhalten: 65 Mal

#34

Beitrag 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
3500 XL ID:1339

Ersteller
hans4711
Reactions:
Beiträge: 124
Registriert: Mi Nov 08, 2023 4:24 pm
Hat sich bedankt: 40 Mal
Danksagung erhalten: 65 Mal

#35

Beitrag 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
3500 XL ID:1339

Robert_Mini
Reactions:
Beiträge: 3900
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1263 Mal
Danksagung erhalten: 2208 Mal

#36

Beitrag 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
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Ersteller
hans4711
Reactions:
Beiträge: 124
Registriert: Mi Nov 08, 2023 4:24 pm
Hat sich bedankt: 40 Mal
Danksagung erhalten: 65 Mal

#37

Beitrag 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"]
      
  ]
}
3500 XL ID:1339
Benutzeravatar

Parsley
Reactions:
Beiträge: 668
Registriert: Di Okt 09, 2018 7:27 am
Wohnort: 490..
Hat sich bedankt: 781 Mal
Danksagung erhalten: 420 Mal

#38

Beitrag 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? ;)
Gruß Parsley



Timberwolf Server 3500L #657 (VPN offen, reboot nach Absprache)
Bitte WIKI lesen.

Robert_Mini
Reactions:
Beiträge: 3900
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1263 Mal
Danksagung erhalten: 2208 Mal

#39

Beitrag 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
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Sunshinemaker
Reactions:
Beiträge: 241
Registriert: So Mai 22, 2022 11:45 am
Hat sich bedankt: 118 Mal
Danksagung erhalten: 142 Mal

#40

Beitrag 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.
LG Sören

TWS 3500 XL / ID 846 / VPN:offen / Reboot nach Rücksprache
Antworten

Zurück zu „Logikengine & Logik-Editor“