Neues Modul: DWD

Begonnen von premultiply, 08 Mai 2016, 16:57:10

Vorheriges Thema - Nächstes Thema

premultiply

So. Ich habe mal ein neues Modul erstellt welches die aktuellen Ortswetterdaten und -vorhersagen des DWD bereitstellt.
Es konzentriert sich dabei vor allem auf die aktuellen Messwerte im 30 Minutentakt sowie die Tagesstatistik.

Es benötigt die Perl-Module Net::FTP, HTML::Entities und HTML::TableExtract.

Ansonsten bietet es einen ähnlichen Funktionsumfang wie wie das alte GDS-Modul.

Die jeweils aktuelle Version befindet sich unter https://github.com/premultiply/fhem-modules/blob/master/FHEM/55_DWD.pm

Ich bitte um Feedback.

betateilchen

Wenn Du das so umbaust, dass ich die Funktionalität direkt in das bestehende GDS Modul einbauen kann, werde ich das gerne übernehmen. Die Vorhersagefunktion im GDS Modul wurde auch "extern" entwickelt und dann eingebunden.

Von der Idee, künftig zwei Module zu haben, die den gleichen Dienst anzapfen, halte ich grundsätzlich nicht viel.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

premultiply

Das alte GDS-Modul ist mir persönlich zu unübersichtlich bzw. zu schwergewichtig und auch leider zu fehleranfällig. Mir sind da zu viele Funktionen und Daten drin die ausser den FTP-Zugangsdaten und dem Produktnamen der Quelle nichts miteinander zu tun haben. Das macht es mindestens für Perl-Anfänger wie mich sehr schwierig den Code zu verstehen, zu pflegen oder zu optimieren und bei Fehlfunktionen überhaupt erst mal die Ursache zu finden.

P.S.: Der Anhang des anderen Beitrags war ein Fehler. Die Dateien sind aber gleich.

betateilchen

ok, dann werde ich wohl den umgekehrten Weg gehen. Ich werde mir Dein Modul anschauen und prüfen, ob ich davon Teile in das GDS Modul übernehmen werde.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

moonsorrox

#4
Zitat von: premultiply am 08 Mai 2016, 16:57:10
Es benötigt die Perl-Module Net::FTP, HTML::Entities und HTML::TableExtract.

kannst du mal bitte schreiben wie die Pakete installiert werden, da ich nicht weiß wie sie heißen..

doch gefunden:
apt-get install libhtml-tableextract-perl

Net::FTP ist ja schon unter Ubuntu drin, die anderen beiden glaube ich noch nicht, denn wenn ich ein define myWetter DWD mache sagt er mir er kann das Modul nicht laden, also fehlt da wohl noch das Perl Paket HTML::TableExtract

siehe Logeintrag:
BEGIN failed--compilation aborted at ./FHEM/55_DWD.pm line 39.
2016.05.23 12:29:34 0: Can't locate HTML/TableExtract.pm in @INC (you may need to install the HTML::TableExtract module) (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/55_DWD.pm line 39.


Macht dein Modul auch die Warnmeldungen für eine bestimmte Region und eine Headline so wie es das GDS Modul mal gemacht hat..?
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

premultiply

Perl-Module installiert man recht einfach mittels mittels cpan.

In diesem Fall
cpan Net::FTP HTML::Entities HTML::TableExtract


Das Modul liest (nur) die aktuellen sowie die 6/12/24-Stunden-Wetterdaten einer definierten Station aus und stell deren Werte als Readings bereit.
Dies aber hoffentlich zuverlässiger als das GDS-Modul, welches diese Funktion inzwischen nicht mehr bietet.

moonsorrox

#6
ja mein GDS Modul wie in meinem anderen Beitrag geschrieben, macht mir seit einigen Tagen Fehlermeldungen im Log heute auch wieder 19x Logeinträge

OK es läuft...!
Diese Anzeigen habe ich:
Internals:
   CFGFN
   DEF        xxxxxxxxxxxxxxxxxxxx
   HOST       ftp-outgoing2.dwd.de
   INTERVAL   1800
   NAME       resse1
   NR         4231
   PASSWORD    xxxxxx
   STATE      T: 20.3 H: 63 P: 1009.4 W: 15
   TYPE       DWD
   USERNAME   xxxxxx
   Readings:
     2016-05-23 19:06:53   _böen          ---
     2016-05-23 19:06:53   _dd             W
     2016-05-23 19:06:53   _ff             15
     2016-05-23 19:06:53   _fx             ---
     2016-05-23 19:06:53   _höhe          59
     2016-05-23 19:06:53   _luftd          1009.4
     2016-05-23 19:06:53   _rr30           0.0
     2016-05-23 19:06:53   _station        Hannover-Flh.
     2016-05-23 19:06:53   _temp           20.3
     2016-05-23 19:06:53   _u              63
     2016-05-23 19:06:53   _wetterwolken   ---
     2016-05-23 19:06:53   humidity        63 %
     2016-05-23 19:06:53   pressure        1009.4 hPa
     2016-05-23 19:06:53   state           T: 20.3 H: 63 P: 1009.4 W: 15
     2016-05-23 19:06:53   temperature     20.3 °C
     2016-05-23 19:06:53   wind            15 km/h
     2016-05-23 19:06:53   wind_direction  270 Grad
     2016-05-23 19:06:53   wind_peak       --- km/h
Attributes:
   room       Wettervorhersage
   station    Hannover-Flh.


Evtl. kannst du ja Wetterwarnungen und diese Headline Warnung noch mit einbauen..?
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

betateilchen

Zitat von: moonsorrox am 23 Mai 2016, 18:50:58
Macht dein Modul auch die Warnmeldungen für eine bestimmte Region und eine Headline so wie es das GDS Modul mal gemacht hat..?

Das macht das GDS Modul immer noch.

Zitat von: premultiply am 23 Mai 2016, 18:57:54
Perl-Module installiert man recht einfach mittels mittels cpan.

Noch einfacher mit der Paketverwaltung der jeweiligen Linux-Distribution.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

moonsorrox

Zitat von: betateilchen am 23 Mai 2016, 19:10:03
Das macht das GDS Modul immer noch.

ich bekomme schon seit Ewigkeiten keine mehr...! und bei der Wetterstation Hannover
zeigt er mir c_stationName unknown: Hannover-Flh.
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

kumue

Bei mir bleibt die Stationsliste leer.

Im Log
2016.05.23 19:30:00 1: PERL WARNING: Use of uninitialized value $sList in concatenation (.) or string at ./FHEM/55_DWD.pm line 125.

set DWD update
hatte ich vorher gemacht

Modul steht auf Initialized

betateilchen

Zitat von: moonsorrox am 23 Mai 2016, 19:12:57
ich bekomme schon seit Ewigkeiten keine mehr...! und bei der Wetterstation Hannover
zeigt er mir c_stationName unknown: Hannover-Flh.

Die c_stationName hat mit den Headlines nix zu tun.

Lösche einfach mal alle c_ und g_ readings aus Deinem device.

Und was die headlines angeht, hier aktuell:

(http://up.picr.de/25648873np.jpg)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

kumue

Zitat von: kumue am 23 Mai 2016, 19:44:53
Bei mir bleibt die Stationsliste leer.

Im Log
2016.05.23 19:30:00 1: PERL WARNING: Use of uninitialized value $sList in concatenation (.) or string at ./FHEM/55_DWD.pm line 125.

set DWD update
hatte ich vorher gemacht

Modul steht auf Initialized

Update:

Auch fehlen mir die Attribute
    passiveFTP
    proxyHost
    proxyType

moonsorrox

laut commandref gibt es diese Attribute:
    disable - if set, gds will not try to connect to internet
    gdsAll - defines filter for "all data" from alert message
    gdsDebug - defines filter for debug informations
    gdsSetForecast - defines forecasts region/station to be used after system restart
    gdsLong - show long text fields "description" and "instruction" from alert message in readings
    gdsPolygon - show polygon data from alert message in a reading
    gdsHideFiles - if set to 1, the "GDS Files" menu in the left navigation bar will not be shown

    gdsPassiveFtp - set to 1 to use passive FTP transfer
    gdsFwName - define firewall hostname in format <hostname>:<port>
    gdsFwType - define firewall type in a value 0..7 please refer to cpan documentation for further informations regarding firewall settings.

Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

kumue

Zitat von: moonsorrox am 24 Mai 2016, 08:11:20
laut commandref gibt es diese Attribute:
    disable - if set, gds will not try to connect to internet
    gdsAll - defines filter for "all data" from alert message
    gdsDebug - defines filter for debug informations
    gdsSetForecast - defines forecasts region/station to be used after system restart
    gdsLong - show long text fields "description" and "instruction" from alert message in readings
    gdsPolygon - show polygon data from alert message in a reading
    gdsHideFiles - if set to 1, the "GDS Files" menu in the left navigation bar will not be shown

    gdsPassiveFtp - set to 1 to use passive FTP transfer
    gdsFwName - define firewall hostname in format <hostname>:<port>
    gdsFwType - define firewall type in a value 0..7 please refer to cpan documentation for further informations regarding firewall settings.



ja, aber bei GDS-Modul.

laut Online-Hilfe des DWD-Modules diese hier:
Attributes

    disable - if set, gds will not try to connect to internet.
    station - defines station for which the data is retrieved.
    passiveFTP - set to 1 to use passive FTP transfer.
    proxyHost - define ftp proxy hostname in format <hostname>:<port>.
    proxyType - define ftp proxy type in a value 0..7 please refer to the FTP library documentation for further informations regarding firewall settings.

moonsorrox

Aso, das war gemeint, da war ich orientierungslos  ;) :D
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM