Dewpoint: Unterschied zwischen den Versionen
JoeAll (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Dewpoint oder Taupunkt Um den Taupunk einfach berechnen zu können kann neben dem Modul dewpoint (http://fhem.de/commandref.html#dewpoint) auch folgendes user…“) |
K (Kategorisiert, Wikifiziert + kleinere Korrekturen) |
||
Zeile 1: | Zeile 1: | ||
{{SEITENTITEL:dewpoint}} | |||
{{Infobox Modul | |||
|ModPurpose=Berechnung des Taupunkts | |||
|ModType=Hilfsmodul | |||
<!-- |ModCategory= (noch?) nicht verwendet --> | |||
|ModCmdRef=dewpoint | |||
|ModTechName=98_dewpoint.pm | |||
|ModOwner=Willi Herzig}} | |||
Dewpoint oder Taupunkt | Dewpoint oder Taupunkt | ||
Um den | Um den Taupunkt einfach berechnen zu können, kann neben dem Modul dewpoint (http://fhem.de/commandref.html#dewpoint) auch folgendes userReading gesetzt werden. Der Code dazu wurde direkt aus dem Modul entnommen. | ||
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. | Das Userreading hat den Vorteil, nicht mit anderen Modulen in Konflikt zu geraten. | ||
:<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 ;}</code> | :<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 ;}</code> | ||
[[Kategorie:HOWTOS]] |
Version vom 22. April 2014, 14:43 Uhr
dewpoint | |
---|---|
Zweck / Funktion | |
Berechnung des Taupunkts | |
Allgemein | |
Typ | undefiniert |
Details | |
Dokumentation | ModUndef |
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 (http://fhem.de/commandref.html#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 ;}