[OBSOLETE]Modul für Berechnung der "gefühlten Temperatur" und der Bewölkung

Begonnen von hotbso, 26 Juni 2017, 16:51:48

Vorheriges Thema - Nächstes Thema

hotbso

Siehe jetzt: 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);

herrmannj

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

hotbso

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

hotbso

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.

hotbso

Ä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.