Dewpoint: Unterschied zwischen den Versionen
JoeAll (Diskussion | Beiträge) (Code aktualisiert; Vorgängercode funktionierte nicht mehr) |
JoeAll (Diskussion | Beiträge) (Code korrigiert) |
||
Zeile 13: | Zeile 13: | ||
Das Userreading hat den Vorteil, nicht mit anderen Modulen in Konflikt zu geraten. | Das Userreading hat den Vorteil, nicht mit anderen Modulen in Konflikt zu geraten. | ||
:<code>attr <Device> userReadings dew:temperature { my $dp;; my $temperature = ReadingsVal( | :<code>attr <Device> userReadings dew:temperature { my $dp;; my $temperature = ReadingsVal($name,"temperature",0);; my $humidity = ReadingsVal($name,"humidity",0);; my $A = 17.2694;; my $B = ($temperature > 0) ? 237.3 : 265.5;; my $es = 610.78 * exp( $A * $temperature / ($temperature + $B) );; my $e = $humidity/ 100 * $es;; if ($e == 0) { Log 1, "Error: dewpoint() e==0: temp=$temperature, hum=$humidity";; return 0;; } my $e1 = $e / 610.78;; my $f = log( $e1 ) / $A;; my $f1 = 1 - $f;; if ($f1 == 0) { Log 1, "Error: dewpoint() (1-f)==0: temp=$temperature, hum=$humidity";; return 0;; } $dp = $B * $f / $f1 ;; sprintf "%.2f", $dp;;}</code> | ||
== Links == | == Links == |
Version vom 11. Januar 2016, 10:37 Uhr
dewpoint | |
---|---|
Zweck / Funktion | |
Berechnung des Taupunkts | |
Allgemein | |
Typ | Hilfsmodul |
Details | |
Dokumentation | EN / DE |
Modulname | 98_dewpoint.pm |
Ersteller | Willi Herzig |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Dewpoint oder Taupunkt
Um den Taupunkt einfach berechnen zu können, kann neben dem Modul dewpoint auch folgendes userReading gesetzt werden. Der Code dazu wurde direkt aus dem Modul entnommen.
Das Userreading hat den Vorteil, nicht mit anderen Modulen in Konflikt zu geraten.
attr <Device> userReadings dew:temperature { my $dp;; my $temperature = ReadingsVal($name,"temperature",0);; my $humidity = ReadingsVal($name,"humidity",0);; my $A = 17.2694;; my $B = ($temperature > 0) ? 237.3 : 265.5;; my $es = 610.78 * exp( $A * $temperature / ($temperature + $B) );; my $e = $humidity/ 100 * $es;; if ($e == 0) { Log 1, "Error: dewpoint() e==0: temp=$temperature, hum=$humidity";; return 0;; } my $e1 = $e / 610.78;; my $f = log( $e1 ) / $A;; my $f1 = 1 - $f;; if ($f1 == 0) { Log 1, "Error: dewpoint() (1-f)==0: temp=$temperature, hum=$humidity";; return 0;; } $dp = $B * $f / $f1 ;; sprintf "%.2f", $dp;;}
Links
- Forendiskussion um Lüften oder nicht
- Forendiskussion um Temperaturdifferenz