Neues Modul für WLAN Wetterstation HP1000 / WH2600

Begonnen von Loredo, 13 November 2015, 23:16:02

Vorheriges Thema - Nächstes Thema

Loredo

Ich finde den Vorschlag vernünftig und habe einen entsprechenden Patch eingecheckt.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

hotbso

Ich finde es hilfreich, wenn man direkt nach dem Empfang der Daten und vor dem Push optionale User-Hooks in 99_MyUtils.pm aufrufen kann. z.B. eigene Mittelwerte, zusätzliche Sensoren, Innenwerte nicht an Wunderground senden ....

Ich habe mir erlaubt, gleich einen Implementierungsvorschlag beizulegen.

- Holger

hotbso

Ich habe noch einen kleinen Bug gefunden. Bei "php" fehlten alle metrischen Readings von windspeed. Bei php heisst der Parameter "windspeedmph" und nicht "windspdmph" (steht auch so im Wunderground Wiki). php reported auch direkt die solarradiation.
Bei mir geht's jetzt mit php und jsp, aber

handle with care.

- Holger

uprinz

Hallo und vielen Dank an loredo für Anbindung der Wetterstationen.
Wenn ich die Arbeitsweise des Moduls richtig verstanden habe, müsste es möglich sein, jede Wetterstation anzubinden, die Daten weather underground senden kann?
Ich möchte mir nämlich gerne eine Froggit WH3000 anschaffen und in FHEM zur Markisen- und Rolladensteuerung nutzen.

Loredo

Zitat von: hotbso am 14 April 2017, 11:11:42
Ich habe noch einen kleinen Bug gefunden. Bei "php" fehlten alle metrischen Readings von windspeed. Bei php heisst der Parameter "windspeedmph" und nicht "windspdmph" (steht auch so im Wunderground Wiki). php reported auch direkt die solarradiation.
Bei mir geht's jetzt mit php und jsp, aber


Ich glaube was man zurück erhält hängt vor allem auch davon ab, was man als Upload-Typ angibt, weniger vom Server-Typ (zumindest bei der HP1000).
Ich habe deinen Patch zum Anlass genommen das nochmals durchzuarbeiten und habe ihn noch durch das korrekte Handling von luminosity (und damit auch allen condition und damit zusammenhängenden Readings) ergänzt.


Zitat von: hotbso am 13 April 2017, 10:46:41
Ich finde es hilfreich, wenn man direkt nach dem Empfang der Daten und vor dem Push optionale User-Hooks in 99_MyUtils.pm aufrufen kann. z.B. eigene Mittelwerte, zusätzliche Sensoren, Innenwerte nicht an Wunderground senden ....


Kannst du das konkreter ausführen? Warum sollten eigene Mittelwerte notwendig sein, welche zusätzlichen Sensoren sind gemeint? Ich möchte das lieber im Modul für alle bereitstellen anstatt dass einzelne ihre Verbesserungen bei Berechnungen etc. für sich behalten.


Um Innenraumwerte wegzulassen, habe ich gerade wu_indoorValues als Attribut mit eingebaut.


Um zusätzliche Werte hinzuzufügen oder vorhandene zu überschreiben habe ich das neue Attribut wu_dataValues eingebaut.
Das Datenformat darin entspricht parseParams() und die Values werden mittels ReplaceSetMagic() aus vorhandenen FHEM Device Readings geholt.
Zum Beispiel:



attr WeatherStation wu_dataValues humidity=[Cellar:humidity:d]

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

Zitat von: uprinz am 14 April 2017, 15:05:11
Wenn ich die Arbeitsweise des Moduls richtig verstanden habe, müsste es möglich sein, jede Wetterstation anzubinden, die Daten weather underground senden kann?
Ich möchte mir nämlich gerne eine Froggit WH3000 anschaffen und in FHEM zur Markisen- und Rolladensteuerung nutzen.


Ich vermute mal, dass man inzwischen als Antwort "ja" geben kann.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

hotbso

Zitat von: Loredo am 14 April 2017, 15:42:32

Ich glaube was man zurück erhält hängt vor allem auch davon ab, was man als Upload-Typ angibt, weniger vom Server-Typ (zumindest bei der HP1000).

Das ist eine Erklärung. Bei der WH2601 gibt es keinen Upload-Typ.

Zitat
Kannst du das konkreter ausführen? Warum sollten eigene Mittelwerte notwendig sein, welche zusätzlichen Sensoren sind gemeint? Ich möchte das lieber im Modul für alle bereitstellen anstatt dass einzelne ihre Verbesserungen bei Berechnungen etc. für sich behalten.

Beispiel:
1) im Pre Hook
Ich habe noch ein LaCrosse Thermo- / Hygrometer, das im Schatten steht.
Ich übermittle an Wunderground das arithmetische Mittel der beiden Sensoren.

2) Pre + Post Hook
Mein Innensensor hängte sich alle 15 Minuten ab und sendete daher für 2 Minuten keinen Druck. (War letztendlich das closeConn Problem und ist jetzt behoben).
Da sich der Druck nur langsam ändert, habe ich in dem Fall in PostRecv baromin gelöscht und in der PrePush routine den vorherigen Druck eingetragen.

Zitat
Um zusätzliche Werte hinzuzufügen oder vorhandene zu überschreiben habe ich das neue Attribut wu_dataValues eingebaut.

Wenn man als replacement ein {} Perl Expression angeben kann, funktioniert das damit auch. Sonst wird das bei Berechnungen, die auf den gerade geholten Werten basieren eher nicht gehen, oder ?
Notifies laufen ja erst, wenn die Daten schon an Wu abgeschickt sind.



Loredo

Neuerdings gibt es diverse Firmware Upgrades zum Download, z.B. hier, hier oder hier (je nach Model). Darin sollen z.B. die Schwierigkeiten mit der IP Adresseingabe behoben sein. Vorsicht, denn man verliert alle Daten und Einstellungen.


Die Seiten von Ambient Weather haben teils leicht neuere Versionen, haben aber in den ini-Dateien nicht 868 MHz hinterlegt, sondern die amerikanische Frequenz, die man zuvor händisch anpassen muss. Die Datei Server.ini beinhaltet dort außerdem keine Möglichkeit mehr selbst Server einzugeben, weshalb man diese auch mit der Variante von FineOffset austauschen möchte.


In der Firmware Datei sind auch diverse Anpassungen möglich, wenn man vorsichtig ist (z.B. Grafiken). Man kann in Server.ini auch direkt seine Serverdaten hinterlegen, wenn man sie nicht mehr manuell eingeben möchte.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

hotbso

Ich kann meine benötigte Funktionalität mit den wu_dataValues abbilden. Die Hooks brauche ich also nicht unbedingt.

zZ werden an Wu viele Parameter übergeben, die eigentlich keine API Parameter sind. Sollte man die nicht lieber weglassen?

Laut Wiki sind es nur diese:


my %wu_api_params = (
    action => 1,
    ID => 1,
    PASSWORD => 1,
    dateutc => 1,
    lowbatt => 1,           # ??
    realtime => 1,
    rtfreq => 1,
    softwaretype => 1,

    winddir => 1,
    windspeedmph => 1,
    windgustmph => 1,
    windgustdir => 1,
    windspdmph_avg2m => 1,
    winddir_avg2m => 1,
    windgustmph_10m => 1,
    windgustdir_10m => 1,

    humidity => 1,
    dewptf => 1,
    tempf => 1,
    windchillf => 1,

    baromin => 1,
    weather => 1,
    clouds => 1,

    solarradiation => 1,
    UV => 1,

    indoorhumidity => 1,
    indoortempf => 1,

    rainin => 1,
    dailyrainin => 1,
    weeklyrainin => 1,
    monthlyrainin => 1,
    yearlyrainin => 1,
);


Der Wert humidityAbs_f ist nach meiner Einschätzung so undefiniert. Der Wert hat ja die Einheit g/m³ und die benutzte Funktion aus dewpoint geht nur für Celsius.

Loredo

Zitat von: hotbso am 14 April 2017, 19:58:00
zZ werden an Wu viele Parameter übergeben, die eigentlich keine API Parameter sind. Sollte man die nicht lieber weglassen?


Nö, denn sie stören auch nicht.


Zitat von: hotbso am 14 April 2017, 19:58:00
Der Wert humidityAbs_f ist nach meiner Einschätzung so undefiniert. Der Wert hat ja die Einheit g/m³ und die benutzte Funktion aus dewpoint geht nur für Celsius.


Die richtige Berechnung von humidityAbs_f war mir bisher nicht wichtig. Du kannst gerne eine entsprechende Funktion beisteuern.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

Ich habe gerade eine neue Version eingecheckt:


- Attribut wu_pushData lässt auswählen, welche Daten genau an WU gepusht werden sollen
- wind_gust.*_sum10m Readings ersetzt durch _max10m
- basierend auf wind_gust_max10m, neue Readings für windCondition, windCondition_rgb und windWarning (Beaufort Textwerte)
- neue Readings für temperatureCondition, temperatureCondition_rgb, indoorTemperatureCondition und indoorTemperatureCondition_rgb
- max und avg Readings werden erst neu geschrieben, wenn genügend Werte gesammelt worden sind (z.B. nach einem Neustart)
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

uprinz

Hallo, nochmal zur WH3000.
Meine ist heute angekommen. Die Konfiguration geht wohl nur über eine App, die nur drei voreingestellte "Weather Server" kennt.
Man kann also keinen eigenen Server einstellen, der die Daten dann abfängt.
Es sei denn, es gibt einen Trick, doch über einen browser auf die Einstellungen zu kommen.
Ich vermute aber, die WH3000 unterstützt keinen http-Zugriff.

Eine Idee wäre es, die DNS-Anfrage der Wetterstation (nach einem Wetterdienst-Server) über den router auf den FHEM-Server umzuleiten.
Werde ich vielleicht mal probieren.
Hat jemand noch eine andere Idee?
Wie greift die App auf die Konfiguration zu?
Die einzigen Daten die von der Wetterstation bekannt sind: Mac-Adresse, IP-Adresse, Name im Netzwerk.

uprinz

Update zur WH300:
Da ich bisher keine Möglichkeit gefunden habe, etwas anderes als die drei Standard-Wetterserver auf der WH3000 zu konfigurieren, komme ich zu dem Schluss, dass es mit diesem Modul nicht arbeitet.
Ansonsten macht die Station für diesen Preis (ca. 140,- Euro) einen soliden und keineswegs billigen Eindruck. Keine stinkenden Plastikteile, vernünftiges Display, einfache Konfiguration und funktioniert bisher wie es soll.
Ich hole mir die Daten meiner Wetterstation jetzt über das wunderground Modul. Eigentlich brauche ich ja nur die Windstärke für die Markisensteuerung.
Die Übersicht über meine Werte und die Prognose habe ich mir über weblink auf meine FHEM-Seite eingebunden. Da habe ich alles was ich sehen und wissen will in einer schönen Darstellung. Das spart viel Aufwand gegenüber einer eigenen Darstellung der Werte in fhem und ich sehe auch die Werte anderer Stationen in meiner Umgebung.  Man muss das Rad ja nicht immer neu erfinden.
Da die WH3000 die Werte in Intervallen unter einer Minute auf wunderground aktualisiert sind die Daten, die ich sehe auch immer ausreichend aktuell für meine Zwecke.
Und das Wetterradar ist auf diese Weise auch gleich mit dabei, das hatte ich bisher separat einbinden müssen.

Also bitte die WH3000 nicht mehr in der commandref zu diesem Modul aufführen.

holle75

#73
Hallo, toll, die Einrichtung mit einer alten Version (fhem 5.7, HP1000.pm vom 22.08.16) hat mich inkl. Settings WH2600 gerade mal 5 Minuten gekostet. Ein Träumchen! Danke dafür.

Da ich gerade nicht die Zeit habe auf fhem 5.8 umzusteigen (resp. dann alles zu Überprüfen) wollte ich nur

update 50_HP1000.pm

ausführen. Jetzt bekomme ich ein

Cannot load module HP1000

keine "Abwärtskompatibilität"?

Danke und Grüße

H.

Edit: ok, kann mir jemand zu diesem Fehler im Log ein wenig Einblick vermitteln?

2017.04.21 22:59:03 1: reload: Error:Modul 50_HP1000 deactivated:
Can't locate Unit.pm in @INC (@INC contains: /opt/fhem /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/50_HP1000.pm line 12, <$fh> line 1121.
BEGIN failed--compilation aborted at ./FHEM/50_HP1000.pm line 12, <$fh> line 1121.

2017.04.21 22:59:03 0: Can't locate Unit.pm in @INC (@INC contains: /opt/fhem /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/50_HP1000.pm line 12, <$fh> line 1121.
BEGIN failed--compilation aborted at ./FHEM/50_HP1000.pm line 12, <$fh> line 1121.

Loredo

Zitat von: holle75 am 21 April 2017, 12:50:16
Edit: ok, kann mir jemand zu diesem Fehler im Log ein wenig Einblick vermitteln?


Das sieht nach Cherry Picking aus. Hast du vielleicht FHEM nicht vollständig neu installiert sondern nur einzelne Dateien?
Unit.pm ist Teil von FHEM und wird von dort geladen.


Bitte generell NIEMALS einzelne Dateien ohne genaue Kenntnis herauspicken.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER