[98_feels_like.pm] Gefühlte Temperatur, Berechnung der Bewölkung

Begonnen von hotbso, 09 Mai 2018, 10:35:15

Vorheriges Thema - Nächstes Thema

hotbso

Ab sofort steht das Modul nach UPDATE zur Verfügung.

Die gefühlte Temperatur wird nach UTCI oder Steadman aus Temperatur, Luftfeuchte, Wind und Sonnenstrahlung berechnet.
Das Modul ist speziell zum Einsatz mit Wetterstationen WH2600, HP1000, AmbientWeather WS-1400 (oder wie sie auch alle heißen) geeignet, die hier alle Werte geliefert werden.

Aus der Zeitreihe der Sonneneinstrahlung wird die Bewölkung berechnet und auch als code SKC -> OVC passend für Wunderground abgelegt. Dieser kann dann als Feld clouds zu WU hochgeladen werden.

Das Modul hängt sich in den event stream der Wetterstation ein (ähnlich wie das dewpoint Modul) und erzeugt dann Readings im Gerät der Wetterstation.

Die Definition ist einfach:
zB sei wh2601 das Device für meine Wetterstation:
define wh2601_fl feels_like wh2601 temperature humidity wind_speed solar_radiation pressure

Minimalistisch mit verschiedenen Sensoren geht auch:
define Thermo_1_fl feels_like Thermo_1 temperature Thermo_2:humidity WS_Sensor:wind_speed
Bewölkung gibt es da natürlich nicht und die Sonneneinstrahlung wird nicht für die gefühlte Temperatur herangezogen.  ;)

Für die korrekte Bestimmung der Bewölkung muss für die Strahlung (solar_radiation) alle 16 Sekunden ein Event generiert werden.
Weiterhin sollte das Attribut sunVisibility einigermaßen richtig definiert sein, siehe Dokumentation.
Hier helfen die Readings für die momentane Position der Sonne azimuth und altitude im feels_like Device.

Für die persönlichen Präferenzen zur gefühlten Temperatur gibt es dann noch verschiedenste Attribute, siehe Dokumentation.

rabehd

ZitatAb sofort steht das Modul nach UPDATE zur Verfügung.
wohl nicht sofort

ZitatUnknown module feels_like
trotz Update

Edit: als Hinweis auf #3 gedacht, dann ist ja für den Feiertag Beschäftigung da  8)
Auch funktionierende Lösungen kann man hinterfragen.

MadMax-FHEM

Zitat von: rabehd am 09 Mai 2018, 10:47:30
wohl nicht sofort
trotz Update

Eingepflegte Updates stehen immer erst ab 08:00 (des nächsten Tages) zur Verfügung.

Wenn das Modul kurz vor dem Post erst eingepflegt wurde, dann ab morgen ;)

Oder heute direkt aus dem SubVersion...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

hotbso

+ ich war zu blöd, das in die Subdirectory FHEM einzustellen. :-[
Ab morgen dann per Update.

JoeALLb

Hi, kurze Info: bei
attr <device> disabled 1
bleibt der Status "active".

sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

mahowi

Kannst Du bitte die deutsche Doku ganz weglassen? Dann wird nämlich statt dem Satz "Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es hier:" direkt die englische Doku angezeigt.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

hotbso


tomster

Hab nur ich ein anderes Reading im HP1000-Modul, oder hast Du einen Typo in der Definition?
Bei mir heißt es solarradiation und nicht solar_radiation.

hotbso

Das ist dann ein Typo

Gesendet von meinem Nexus 5X mit Tapatalk


tomster

OK, hab ich fast vermutet...

Zudem bekomme ich es aber nicht hin, dass mir die Werte für die Cloud-Coverage angezeigt werden. Die Readings werden zwar brav im Intervall der Wetterstation upgedatet, bleiben aber leer. Das Reading sr_invalid ist aber auf 1. Soll mir das sagen, dass irgendwas an den Berechnungsgrundlagen nicht stimmt?

tomster

Disregard last posting

Nach einiger Zeit "laufen lassen", ist nun sr_invalid auf "0" und ich bekomme Werte angezeigt (bis auf nr_stddev, das bleibt leer).  Was auch immer das bedeutet? Standardevice?

alru

Moin,

hat schon mal jemand das Modul mit der HM-WDS100-C2-O-2 Wetterstation benutzt?
Bis auf den Wert für die Sonneneinstrahlung sind die Messwerte direkt verfügbar. Die Sonneneinstrahlung [W/m²] ließe sich aus dem Helligkeitswert ermitteln (Helligkeitswert -> Lux -> Sonneneinstrahlung]. Den Lux - Wert errechne ich bereits.
Macht das Sinn?
Gruß,

Stefan
(Raspi 3B - Stretch / HM-LGW / HomeMatic / MySensors)

tomster

Wenn ich das Modul richtig verstanden habe, dann benötigt es solarradiation in der Einheit W/m². In wie weit man aber den Messwert Deines "Wetterspargels" in diese Richtung hinbiegen kann, weiß ich nicht.

JoWiemann

#13
Hallo,

Update 17:07

folgenden Fehler habe ich gefunden und möchte ihn nicht behalten:

in Zeile 144:

            next if $hash->{$dk} ne $dev_name;


kommt es zu folgenden Fehler im Log:


2018.06.27 16:56:19 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/98_feels_like.pm line 144.


Ich habe nun den Code um folgendes erweitert, um nähere Infos zu bekommen:


            if (!defined($hash->{$dk})) {
               Log3($hash_name, 3, "feels_like_Notify: hash $dk not defined for $dev_name");
               next;
            }


Im Log erhalte ich nun folgende Info:

2018.06.27 16:56:19 3: feels_like_Notify: hash S_DEV not defined for Wetterstation
2018.06.27 16:56:19 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/98_feels_like.pm line 147.
2018.06.27 16:56:19 1: stacktrace:
2018.06.27 16:56:19 1:     main::__ANON__                      called by ./FHEM/98_feels_like.pm (147)
2018.06.27 16:56:19 1:     main::feels_like_Notify             called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (3504)
2018.06.27 16:56:19 1:     main::DoTrigger                     called by fhem.pl (3862)
2018.06.27 16:56:19 1:     main::Dispatch                      called by ./FHEM/93_FHEM2FHEM.pm (190)
2018.06.27 16:56:19 1:     main::FHEM2FHEM_Read                called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (723)
2018.06.27 16:56:19 3: feels_like_Notify: hash P_DEV not defined for Wetterstation
2018.06.27 16:56:19 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/98_feels_like.pm line 147.
2018.06.27 16:56:19 1: stacktrace:
2018.06.27 16:56:19 1:     main::__ANON__                      called by ./FHEM/98_feels_like.pm (147)
2018.06.27 16:56:19 1:     main::feels_like_Notify             called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (3504)
2018.06.27 16:56:19 1:     main::DoTrigger                     called by fhem.pl (3862)
2018.06.27 16:56:19 1:     main::Dispatch                      called by ./FHEM/93_FHEM2FHEM.pm (190)
2018.06.27 16:56:19 1:     main::FHEM2FHEM_Read                called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (723)
2018.06.27 16:56:19 3: feels_like_Notify: hash S_DEV not defined for Wetterstation
2018.06.27 16:56:19 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/98_feels_like.pm line 147.
2018.06.27 16:56:19 1: stacktrace:
2018.06.27 16:56:19 1:     main::__ANON__                      called by ./FHEM/98_feels_like.pm (147)
2018.06.27 16:56:19 1:     main::feels_like_Notify             called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (3504)
2018.06.27 16:56:19 1:     main::DoTrigger                     called by fhem.pl (3862)
2018.06.27 16:56:19 1:     main::Dispatch                      called by ./FHEM/93_FHEM2FHEM.pm (190)
2018.06.27 16:56:19 1:     main::FHEM2FHEM_Read                called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (723)
2018.06.27 16:56:19 3: feels_like_Notify: hash P_DEV not defined for Wetterstation
2018.06.27 16:56:19 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/98_feels_like.pm line 147.
2018.06.27 16:56:19 1: stacktrace:
2018.06.27 16:56:19 1:     main::__ANON__                      called by ./FHEM/98_feels_like.pm (147)
2018.06.27 16:56:19 1:     main::feels_like_Notify             called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (3504)
2018.06.27 16:56:19 1:     main::DoTrigger                     called by fhem.pl (3862)
2018.06.27 16:56:19 1:     main::Dispatch                      called by ./FHEM/93_FHEM2FHEM.pm (190)
2018.06.27 16:56:19 1:     main::FHEM2FHEM_Read                called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (723)
2018.06.27 16:56:19 3: feels_like_Notify: hash S_DEV not defined for Wetterstation
2018.06.27 16:56:19 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/98_feels_like.pm line 147.
2018.06.27 16:56:19 1: stacktrace:
2018.06.27 16:56:19 1:     main::__ANON__                      called by ./FHEM/98_feels_like.pm (147)
2018.06.27 16:56:19 1:     main::feels_like_Notify             called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (3504)
2018.06.27 16:56:19 1:     main::DoTrigger                     called by fhem.pl (3862)
2018.06.27 16:56:19 1:     main::Dispatch                      called by ./FHEM/93_FHEM2FHEM.pm (190)
2018.06.27 16:56:19 1:     main::FHEM2FHEM_Read                called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (723)
2018.06.27 16:56:19 3: feels_like_Notify: hash P_DEV not defined for Wetterstation
2018.06.27 16:56:19 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/98_feels_like.pm line 147.
2018.06.27 16:56:19 1: stacktrace:
2018.06.27 16:56:19 1:     main::__ANON__                      called by ./FHEM/98_feels_like.pm (147)
2018.06.27 16:56:19 1:     main::feels_like_Notify             called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (3504)
2018.06.27 16:56:19 1:     main::DoTrigger                     called by fhem.pl (3862)
2018.06.27 16:56:19 1:     main::Dispatch                      called by ./FHEM/93_FHEM2FHEM.pm (190)
2018.06.27 16:56:19 1:     main::FHEM2FHEM_Read                called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (723)
2018.06.27 16:56:19 3: feels_like_Notify: hash S_DEV not defined for Wetterstation
2018.06.27 16:56:19 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/98_feels_like.pm line 147.
2018.06.27 16:56:19 1: stacktrace:
2018.06.27 16:56:19 1:     main::__ANON__                      called by ./FHEM/98_feels_like.pm (147)
2018.06.27 16:56:19 1:     main::feels_like_Notify             called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (3504)
2018.06.27 16:56:19 1:     main::DoTrigger                     called by fhem.pl (3862)
2018.06.27 16:56:19 1:     main::Dispatch                      called by ./FHEM/93_FHEM2FHEM.pm (190)
2018.06.27 16:56:19 1:     main::FHEM2FHEM_Read                called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (723)
2018.06.27 16:56:19 3: feels_like_Notify: hash P_DEV not defined for Wetterstation
2018.06.27 16:56:19 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/98_feels_like.pm line 147.
2018.06.27 16:56:19 1: stacktrace:
2018.06.27 16:56:19 1:     main::__ANON__                      called by ./FHEM/98_feels_like.pm (147)
2018.06.27 16:56:19 1:     main::feels_like_Notify             called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (3504)
2018.06.27 16:56:19 1:     main::DoTrigger                     called by fhem.pl (3862)
2018.06.27 16:56:19 1:     main::Dispatch                      called by ./FHEM/93_FHEM2FHEM.pm (190)
2018.06.27 16:56:19 1:     main::FHEM2FHEM_Read                called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (723)
2018.06.27 16:56:19 3: feels_like_Notify: hash S_DEV not defined for Wetterstation
2018.06.27 16:56:19 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/98_feels_like.pm line 147.
2018.06.27 16:56:19 1: stacktrace:
2018.06.27 16:56:19 1:     main::__ANON__                      called by ./FHEM/98_feels_like.pm (147)
2018.06.27 16:56:19 1:     main::feels_like_Notify             called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (3504)
2018.06.27 16:56:19 1:     main::DoTrigger                     called by fhem.pl (3862)
2018.06.27 16:56:19 1:     main::Dispatch                      called by ./FHEM/93_FHEM2FHEM.pm (190)
2018.06.27 16:56:19 1:     main::FHEM2FHEM_Read                called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (723)
2018.06.27 16:56:19 3: feels_like_Notify: hash P_DEV not defined for Wetterstation
2018.06.27 16:56:19 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/98_feels_like.pm line 147.
2018.06.27 16:56:19 1: stacktrace:
2018.06.27 16:56:19 1:     main::__ANON__                      called by ./FHEM/98_feels_like.pm (147)
2018.06.27 16:56:19 1:     main::feels_like_Notify             called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (3504)
2018.06.27 16:56:19 1:     main::DoTrigger                     called by fhem.pl (3862)
2018.06.27 16:56:19 1:     main::Dispatch                      called by ./FHEM/93_FHEM2FHEM.pm (190)
2018.06.27 16:56:19 1:     main::FHEM2FHEM_Read                called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (723)
2018.06.27 16:56:19 3: feels_like_Notify: hash S_DEV not defined for Wetterstation
2018.06.27 16:56:19 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/98_feels_like.pm line 147.
2018.06.27 16:56:19 1: stacktrace:
2018.06.27 16:56:19 1:     main::__ANON__                      called by ./FHEM/98_feels_like.pm (147)
2018.06.27 16:56:19 1:     main::feels_like_Notify             called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (3504)
2018.06.27 16:56:19 1:     main::DoTrigger                     called by fhem.pl (3862)
2018.06.27 16:56:19 1:     main::Dispatch                      called by ./FHEM/93_FHEM2FHEM.pm (190)
2018.06.27 16:56:19 1:     main::FHEM2FHEM_Read                called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (723)
2018.06.27 16:56:19 3: feels_like_Notify: hash P_DEV not defined for Wetterstation
2018.06.27 16:56:19 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/98_feels_like.pm line 147.
2018.06.27 16:56:19 1: stacktrace:
2018.06.27 16:56:19 1:     main::__ANON__                      called by ./FHEM/98_feels_like.pm (147)
2018.06.27 16:56:19 1:     main::feels_like_Notify             called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (3504)
2018.06.27 16:56:19 1:     main::DoTrigger                     called by fhem.pl (3862)
2018.06.27 16:56:19 1:     main::Dispatch                      called by ./FHEM/93_FHEM2FHEM.pm (190)
2018.06.27 16:56:19 1:     main::FHEM2FHEM_Read                called by fhem.pl (3584)
2018.06.27 16:56:19 1:     main::CallFn                        called by fhem.pl (723)


Die Fehlerzeile 147 ist eigentlich die 144. (sind die drei Zeilen Code mehr fürs debuggen)

Grüße Jörg

Hier noch das List vom Device:


Internals:
   COC_MSGCNT 48
   COC_TIME   2018-06-27 17:01:24
   CODE       1234
   DEF        1234
   IODev      RemoteRPiCOC
   LASTInputDev COC
   MSGCNT     48
   NAME       Wetterstation
   NR         304
   RAINUNIT   255
   STATE      T: 26.5  H: 43  W: 0.0  R: 80.3  IR: no  Wi: 0
   TYPE       KS300
   WINDUNIT   1
   READINGS:
     2018-06-27 17:01:24   avg_day         T: 26.6  H: 45  W: 0.0  R: 0.0
     2018-06-27 13:25:21   avg_month       T: 18.7  H: 36  W: 37.5  R: 29.0
     2018-06-27 17:01:24   checksum        d
     2018-06-27 17:01:24   cum_day         2018-06-27 13:25:21 T: 344602.9  H: 583943  W: 0  R: 80.3
     2018-06-27 13:25:21   cum_month       26 T: 487.1  H: 951  W: 975.0  R: 29.0
     2018-06-27 17:01:24   humidity        43
     2018-06-27 17:01:24   israining       no
     2018-06-27 17:01:24   rain            80.3
     2018-06-27 17:01:24   rain_raw        315
     2018-06-27 17:01:24   rain_raw_adj    315
     2018-06-27 17:01:24   state           T: 26.5  H: 43  W: 0.0  R: 80.3  IR: no  Wi: 0
     2018-06-27 17:01:24   temperature     26.5
     2018-06-27 17:01:24   temperature_at  27.4
     2018-06-27 17:01:24   temperature_mrt 26.5
     2018-06-27 17:01:24   temperature_utci 25.8
     2018-06-27 17:01:24   tsecs           1530111684
     2018-06-27 17:01:24   type_raw        7
     2018-06-27 17:01:24   unknown3        1
     2018-06-27 17:01:24   wind            0.0
     2018-06-27 17:01:24   windIndex       0
Attributes:
   IODev      RemoteRPiCOC
   icon       icoWetter
   room       Wetter


Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

hotbso

Zitat von: tomster am 27 Juni 2018, 12:03:48
Disregard last posting

Nach einiger Zeit "laufen lassen", ist nun sr_invalid auf "0" und ich bekomme Werte angezeigt (bis auf nr_stddev, das bleibt leer).  Was auch immer das bedeutet? Standardevice?

nr_stddev ist "normalized radiation standard deviation", damit wird sehr geringe (coverage ~ 0) Bewölkung abgeschätzt. Update mit Verbesserung dazu am Wochenende.

Das Modul verarbeitet Zeitreihen, d.h. die Bewölkung entsprach in der letzten Stunde dem Wert von coverage.
Daher müssen die Puffer gefüllt werden, sr_invalid=1 heißt (bei richtigen Parametern von Lat, Lon usw) dass die Puffer noch nicht gefüllt sind.