WeatherFlow Tempest

Begonnen von f-zappa, 23 November 2020, 00:20:55

Vorheriges Thema - Nächstes Thema

f-zappa

Moin allerseits,

vor ein paar Tagen habe ich endlich meine WeatherFlow-Tempest Station erhalten. Gerade ist der erste Wurf für ein Modul fertig geworden. Es scheint bisher alles gut zu funktionieren, aber das ganze ist natürlich in einem extrem frühen Stadium. Wer schon jetzt ausprobieren mag, kann dieses Controlfile verwenden:
https://raw.githubusercontent.com/f-zappa/fhem-weatherflow/main/controls_weatherflow.txt


Das Device wird ohne Parameter angelegt:
define <name> weatherflow


Nach der Definition werden die Seriennummern alle im lokalen Netzwerk sichtbaren WeatherFlow-Geraete im Reading "known_serials" gesammelt. Darunter sollte mindestens ein Hub ("HB-xxxxxxxx") and entweder ein Tempest-Sensor ("ST-xxxxxxxx") oder die Sky- and Air-Sensoren ("SK-xxxxxxxx" and "AR-xxxxxxxx") sein. Wahrscheinlich sieht man nur die eigenen Devices, ansonsten helfen die Aufkleber auf der Hardware. Die Seriennummern werden dann in das Modul eingetragen:
attr wetterstation serials HB-xxxxxxxx ST-xxxxxxxx


Bisher habe ich alles erst einmal so weit zusammengeklaut, dass es funktioniert - am meisten habe ich vom 37_dash_dhcp abgeschrieben. In den nächsten Tagen räume ich den Code noch etwas auf. Vielleicht habt ihr dazu ja Anregungen. Bitte seid nachsichtig, das ist mein erstes FHEM-Modul :-)

Gruß, Uli

f-zappa

So, eine leicht verbesserte Version ist online (fast nur Dokumentation wurde geändert). Für mich selbst sieht das eigentlich schon recht fertig aus - vielleicht kommen ja noch Anregungen von euch, aber so wahnsinnig verbreitet scheint die Tempest ja (noch) nicht zu sein.

Byllyy

Hallo Uli,
ich konnte das Modul problemlos installieren und es läuft fehlerfrei.
Vielen Dank für deine Arbeit, damit macht die Station für mich erst richtig Sinn.
Eine Frage noch, weißt du ob man das Abfrageintervall (bei Wind) einstellen kann?

Liebe Grüße,
Stefan

f-zappa

Hallo Stefan,

schön, dass das Modul auch bei dir läuft!

Der Begriff "Abfrageintervall" ist nicht ganz richtig, denn die Station sendet die Daten von sich aus per Funk (und der Hub gibt sie dann direkt als Broadcast weiter). Das Modul triggert von sich aus nie Abfragen, sondern lauscht nur. An den Intervallen dürfte man also selbst nichts ändern können (jedenfalls nicht, ohne die Firmware zu hacken).

Die Intervalle, in denen gesendet wird, scheinen so auszusehen:
(jedenfalls mit der aktuellen Firmware 143, das kann WeatherFlow natürllich irgendwann ändern)

  • rapid_wind  - 3s (Windrichung und -geschwindigkeit)
  • hub_status - 10s (Zustand des Hub, hiervon wertet das Modul (bisher) wenig aus. Das meiste ist in der API nicht dokumentiert)
  • device_status - 60s (Zustand der Station, zB auch Sensorausfälle - gibt das Modul (bisher) uninterpretiert weiter)
  • obs_st - 60s (die eigentlichen Wetterdaten, die Windangaben sind hier gemittelt)
  • obs_sky, obs_air - für die Tempest nicht zutreffend
  • evt_precip - nach Bedarf (Niederschlagsbeginn)
  • evt_strike - nach Bedarf (Blitzerkennung)
  • light_debug - alle paar Sekunden (nicht dokumentiert, evtl Debugginginformationen des Blitzsensors)

Warum möchtest du das Wind-Intervall denn anpassen? Falls dich die häufigen Updates nerven, könnte ich konfigurierbar machen, dass das Modul die Windwerte ignoriert.

Gruß, Uli

Uwe Furchheim

#4
Hallo Uli,

bei mir führt Dein Modul leider zu einem sofortigen Absturz von fhem beim "define Wetterstation weatherflow" :-(

Im Log findet dich dann folgende Zeile: "Your vendor has not defined Socket macro SO_REUSEPORT, used at [...]"

Sprich, die Option "ReusePort"  wird auf meinem Linux-System von IO::Socket::INET nicht unterstützt. Wenn Mr. Google Recht hat, trifft das wohl auf viele Systeme zu. Auch im FHEM-Forum gibt es bei anderen Modulen Probleme damit.

Wenn ich Zeile 73 in 59_WeatherFlow.pm von "ReusePort" auf "ReuseAddr" ändere (wie in https://stackoverflow.com/questions/54660920/how-do-you-avoid-ophan-listening-socket-in-perl-after-a-script-crash?rq=1 vorgeschlagen), dann klappt das Modul auch bei mir perfekt.

Leider kann ich nicht wirklich abschätzen, ob diese Änderung unschöne Nebeneffekte bringt... Mein fhem-Server läuft jetzt erst einmal damit. Mal sehen, was die nächsten Tage bringen :-)

Vielen Dank für Deine Arbeit - nun kann der Tempest die alte mechanische Wetterstation ablösen!

Viele Grüße,
Uwe

Nachtrag: unter https://stackoverflow.com/questions/14388706/how-do-so-reuseaddr-and-so-reuseport-differ gibt es eine genaue Aufstellung, welche Option was auf welchem OS bewirkt.
Für mein altes Linux-System ist meine Änderung wohl OK. Aber ob das damit auf anderen Plattformen auch noch laufen würde? Keine Ahnung...

Nochmals vielen Dank,
Uwe

Byllyy

Nachdem ich das Modul einige Tage getestet habe finde ich im Log doch öfter diese Fehlermeldung.

"Undefined subroutine &main::singleReadingsUpdate called at ./FHEM/59_WeatherFlow.pm line 136."

Gibt es dafür eine Lösung?
LG,
Byllyy

Uwe Furchheim

Zitat von: Byllyy am 06 Dezember 2020, 09:19:19
Nachdem ich das Modul einige Tage getestet habe finde ich im Log doch öfter diese Fehlermeldung.

"Undefined subroutine &main::singleReadingsUpdate called at ./FHEM/59_WeatherFlow.pm line 136."

Gibt es dafür eine Lösung?

Die Meldung kommt immer, wenn der Tempest beginnenden Regen verkündet :-) Bei mir stürzte dann leider der fhem komplett ab.

Dürfte ein aber nur ein Tippfehler sein. Seitdem ich in der Datei 59_WeatherFlow.pm die Zeile 136 wie folgt geändert habe, ist Ruhe und fhem stürzt auch nicht mehr ab:

diff 59_WeatherFlow.pm ../59_WeatherFlow.pm
136,137c136
<         # singleReadingsUpdate($hash,"precip_started",$message->{evt},1); typo???
<         readingsSingleUpdate($hash,"precip_started",$message->{evt},1);
---
>         singleReadingsUpdate($hash,"precip_started",$message->{evt},1);


Viele Grüße,
Uwe

Byllyy

Hallo Uwe,
Vielen Dank für deinen Tipp. Ich werde die Änderung ausprobieren und
danach Rückmeldung geben ob es funktioniert.
Danke nochmals,
Byllyy

f-zappa

Moin,

entschuldigt bitte den dämlichen Typo, ich habe das korrigiert. Allerdings hatte ich das hier noch gar nicht gelesen und bin selbst auf die Suche gegangen, warum mein FHEM sich in letzter Zeit ab und zu durchstartet. Als das Modul neu war, hat es bei uns ungefährt eine Woche lang nicht geregnet, darum ist mir das erst einmal nicht aufgefallen :-)

Ebenfalls habe ich "ReusePort" entfernt, das ist (wie bei Uwe) auf manchen Systemen gar nicht implementiert und dürfte auch verzichtbar sein. Falls jetzt andere Leute Probleme bekommen, sagt Bescheid, dann werde ich mir irgendeine Fallunterscheidung überlegen.

Version v0.3 mit diesen beiden Änderungen ist seit einigen Minuten verfügbar.

Gruß, Uli


Uwe Furchheim

Zitat von: f-zappa am 07 Dezember 2020, 12:21:05
Version v0.3 mit diesen beiden Änderungen ist seit einigen Minuten verfügbar.

Hallo Ulli,
Version 0.3 läuft bei mir stabil :-)
Vielen Dank,
Uwe

Byllyy

Hallo zusammen,
ich habe nochmal eine Frage zum Modul.
Heute ist das erste Gewitter durchgezogen, es gab auch eine Meldung im Tempest, jedoch keine Anzeige im Reading bei Fhem.
Habt ihr andere Erfahrungen oder eine Lösung?
Liebe Grüße

f-zappa

Zitat von: Byllyy am 11 März 2021, 21:16:28
Heute ist das erste Gewitter durchgezogen, es gab auch eine Meldung im Tempest, jedoch keine Anzeige im Reading bei Fhem.
Hallo Byllyy, ich hatte auch gestern erst das erste Gewitter, seitdem ich die Tempest habe (möglicherweise wohnst du auch in NRW?). Bei mir hat FHEM die Blitzeinschläge auch ignoriert. Ich hoffe, dass ich am Wochenende mal nachgucken kann, was da noch falsch läuft.
Gruß, Uli

Byllyy

Hallo Uli,
sehr nett von Dir das Du Dich nochmal um das Modul kümmerst.
Wohnort ist Iserlohn.
LG,
Stefan

Byllyy

Hallo Uli,
hier ist gerade mal wieder ein Gewitter vorbei gezogen und da dachte ich an dein Modul.
Hast du schon einen Fehler finden können?
Liebe Grüße,
Byllyy