Siehe jetzt: https://forum.fhem.de/index.php/topic,87642.0.html (https://forum.fhem.de/index.php/topic,87642.0.html)
------------------------------------------------------------------------------------
Eigentlich wollte ich nur mit dem Sonnensensor meiner Wetterstation WH2601 Kriterien zur Auswahl geeigneter Sportkleidung entwickeln.
Enstanden ist daraus dann ein umfangreicheres Forschungsprojekt.
Das entstandene Modul "98_feels_like.pm" ist kein Device sondern eine Sammlung von drei Funktionen zur Berechnung von Bewölkung, mittlerer Strahlungstemperatur und gefühlter Temperatur.
Die Einbindung der 2 Funktionen erfolgt über Notify, User Reading oder direkt im Modul der Wetterstation (siehe Beispiel unten).
Das ganze läuft jetzt schon einige Monate und die Werte sind plausibel. Die Bewölkung stimmt so gut, dass ich sie mit auf Wunderground hochlade.
Vielleicht kann es noch jemand gebrauchen .
- Holger
sub MyUtils_Initialize($$) {
...
LoadModule('feels_like');
}
...
...
my ($T_mrt, $extra_radiation, $coverage, $oktas, $clouds, $alt, $azimuth, $solar_radiation_smoothed)
= mean_radiant_temperature("wh2601", $temperature, $humidity, $wind_speed, $pressure, $solar_radiation);
# after sunset we do not have a consistent cloud reading, so go the safe side
$T_mrt = $temperature if ($T_mrt < $temperature);
my $T_utci = T_UTCI($temperature, $humidity, $wind_speed, $pressure, $T_mrt);
$extra_radiation = 0 if ($extra_radiation < 0);
my $AT = T_apparent_temperature($temperature, $humidity, $wind_speed, $extra_radiation);
readingsBeginUpdate($hash);
readingsBulkUpdate($hash, "temperature_utci", round($T_utci, 1));
readingsBulkUpdate($hash, "coverage", $coverage);
readingsBulkUpdate($hash, "oktas", $oktas);
readingsBulkUpdate($hash, "clouds", $clouds);
readingsBulkUpdate($hash, "temperature_tmrt", round($T_tmrt, 1));
readingsBulkUpdate($hash, "temperature_at", round($AT, 1));
readingsBulkUpdate($hash, "extra_radiation", round($extra_radiation, 1));
readingsEndUpdate($hash, 1);
# if we can safely detect clouds report them to WU
# depends on your installation, your mileage will vary
$wu_args{"clouds"} = $clouds if (defined($clouds) && $alt >= 24 && $azimuth >= 90 && $azimuth <= 270);
sehr geil!
Ich versuche das gerade zu verstehen. Kannst Du einem nicht Meteorologen (mir :) sagen was man mit der mittlerer Strahlungstemperatur anfangen kann ?
Bei der Bewölkung: Du berechnest die durch den Vergleich von erwarteter und reeller Solarstrahlung ?
vielen Dank, da ist coole math (und sicher viel Arbeit) drin!
vg
joerg
Mittlere Strahlungstemperatur:
Stell Dir vor, die auf dich von oben, unten direkt und diffus einprasselnde Strahlung wird umgerechnet auf eine Hohlkugel mit der "mittleren Strahlungstemperatur" in deren Mitte Du sitzt.
Google mal nach Bildern von "Mean Radiant Temperature", da sind schöne Beispiele dabei.
Zitat
Bei der Bewölkung: Du berechnest die durch den Vergleich von erwarteter und reeller Solarstrahlung ?
Genau so ist es. Da der Sensor morgens im Schatten des Regensensors liegt, wird der Messwert noch korrigiert.
- holger
In der neuen Version ist die Erkennung der Bewölkung deutlich verbessert. Problematisch ist nach wie vor der Morgen, bei dem der Sonnensensor im Schatten des Regenmessers liegt. Da arbeite ich noch dran.
Das Interface des Moduls nach aussen ist unverändert.
Änderungen:
Wir hatten im Oktober ein paar Tage mit klarem Himmel, damit konnte ich die Korrekturen für den Strahlungssensor weiter verbessern.
Für klaren Himmel it der code bei Wunderground SKC und nicht CLR.