Neues Modul: DWD

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

Vorheriges Thema - Nächstes Thema

kumue

#15
Habe bei mir herausgefunden, daß mein GDS Zugang nicht funktioniert...

Passwort schon zurückgesetzt und eine Stunde gewartet wie von DWD verlangt, aber ich bekomme immer bei Zugriff auf den FTP-Server "Login incorrect"


Edit:
FTP-Login geht nun, aber Status sonst unverändert...

kumue

Bekomme jetzt Readings  :), warum auch immer...  ::)

Die drei Attribute

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.

fehlen aber immer noch ...

kumue

Was mir bei der Definition aufgefallen ist...

Laut Online-Hilfe
define <name> DWD <username> <password> [<interval> [<host>]]

Gebe ich nach dem Passwort 7200 für das Interval an, wird es bei den Internals als HOST angezeigt..

Also anderes herum...
define <name> DWD <username> <password> [<host> [<interval>]]

Dann sind die Internals wieder schick...

HeikoE

#18
Ich habe das Modul mal auf meiner FritzBox 7390 ausprobiert.
Es kann angelgt werden, allerdings werden keine Daten gelesen.
Den Stationsnamen Trier habe ich aus meinem Testsystem (Windoof) übernommen. Die Liste ist noch leer.
Im Logfile (Verbose=5) steht:

2016.05.31 21:32:25 5: Cmd: >set Test update<
2016.05.31 21:32:25 1: PERL WARNING: Use of uninitialized value $sList in concatenation (.) or string at ./FHEM/55_DWD.pm line 125.
2016.05.31 21:32:25 3: stacktrace:
2016.05.31 21:32:25 3:     main::__ANON__                      called by ./FHEM/55_DWD.pm (125)
2016.05.31 21:32:25 3:     main::DWD_Set                       called by fhem.pl (3148)
2016.05.31 21:32:25 3:     main::CallFn                        called by fhem.pl (1577)
2016.05.31 21:32:25 3:     main::DoSet                         called by fhem.pl (1608)
2016.05.31 21:32:25 3:     main::CommandSet                    called by fhem.pl (1069)
2016.05.31 21:32:25 3:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2185)
2016.05.31 21:32:25 3:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (750)
2016.05.31 21:32:25 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (446)
2016.05.31 21:32:25 3:     main::FW_Read                       called by fhem.pl (3153)
2016.05.31 21:32:25 3:     main::CallFn                        called by fhem.pl (656)
2016.05.31 21:32:25 5: Triggering Test (1 changes)
2016.05.31 21:32:25 5: Starting notify loop for Test, first event update
2016.05.31 21:32:25 5: BatterieStatus: not on any display, ignoring notify
2016.05.31 21:32:25 4: WEB_192.168.178.56_51302 GET /fhem?detail=Test&fw_id=; BUFLEN:0
2016.05.31 21:32:25 1: PERL WARNING: Use of uninitialized value $sList in concatenation (.) or string at ./FHEM/55_DWD.pm line 125.
2016.05.31 21:32:25 3: stacktrace:
2016.05.31 21:32:25 3:     main::__ANON__                      called by ./FHEM/55_DWD.pm (125)
2016.05.31 21:32:25 3:     main::DWD_Set                       called by fhem.pl (3153)
2016.05.31 21:32:25 3:     main::CallFn                        called by fhem.pl (1569)
2016.05.31 21:32:25 3:     main::DoSet                         called by fhem.pl (1608)
2016.05.31 21:32:25 3:     main::CommandSet                    called by fhem.pl (2343)
2016.05.31 21:32:25 3:     main::getAllSets                    called by ./FHEM/01_FHEMWEB.pm (1190)
2016.05.31 21:32:25 3:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (898)
2016.05.31 21:32:25 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (446)
2016.05.31 21:32:25 3:     main::FW_Read                       called by fhem.pl (3153)
2016.05.31 21:32:25 3:     main::CallFn                        called by fhem.pl (656)
2016.05.31 21:32:26 4: name: /fhem?detail=Test&fw_id= / RL:10018 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2016.05.31 21:32:26 4: WEB_192.168.178.56_51302 GET /fhem?cmd={ReadingsVal(%22Test%22,%22clear%22,%22%22)}&XHR=1; BUFLEN:0
2016.05.31 21:32:26 5: Cmd: >{ReadingsVal("Test","clear","")}<
2016.05.31 21:32:26 4: name: /fhem?cmd={ReadingsVal(%22Test%22,%22clear%22,%22%22)}&XHR=1 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2016.05.31 21:32:26 4: Connection accepted from WEB_192.168.178.56_51303
2016.05.31 21:32:26 4: WEB_192.168.178.56_51303 GET /fhem?cmd={AttrVal(%22Test%22,%22room%22,%22%22)}&XHR=1; BUFLEN:0
2016.05.31 21:32:26 5: Cmd: >{AttrVal("Test","room","")}<
2016.05.31 21:32:26 4: name: /fhem?cmd={AttrVal(%22Test%22,%22room%22,%22%22)}&XHR=1 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2016.05.31 21:32:26 4: WEB_192.168.178.56_51302 GET /fhem?XHR=1&inform=type=status;filter=Test;since=1464723144;fmt=JSON&fw_id=274×tamp=1464723179351; BUFLEN:0
2016.05.31 21:32:26 1: PERL WARNING: Use of uninitialized value $sList in concatenation (.) or string at ./FHEM/55_DWD.pm line 125.
2016.05.31 21:32:26 3: stacktrace:
2016.05.31 21:32:26 3:     main::__ANON__                      called by ./FHEM/55_DWD.pm (125)
2016.05.31 21:32:26 3:     main::DWD_Set                       called by fhem.pl (3153)
2016.05.31 21:32:26 3:     main::CallFn                        called by fhem.pl (1569)
2016.05.31 21:32:26 3:     main::DoSet                         called by fhem.pl (1608)
2016.05.31 21:32:26 3:     main::CommandSet                    called by fhem.pl (2343)
2016.05.31 21:32:26 3:     main::getAllSets                    called by ./FHEM/01_FHEMWEB.pm (2643)
2016.05.31 21:32:26 3:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (2473)
2016.05.31 21:32:26 3:     main::FW_roomStatesForInform        called by ./FHEM/01_FHEMWEB.pm (683)
2016.05.31 21:32:26 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (446)
2016.05.31 21:32:26 3:     main::FW_Read                       called by fhem.pl (3153)
2016.05.31 21:32:26 3:     main::CallFn                        called by fhem.pl (656)

Die nötigen Module sind eingefügt.

Gibt's  eine Idee, woran das liegen könnte? Würde das Modul gerne einsetzen. Früher war GDS mein Favorit, aber ohne aktuelle Werte...
Schöne Grüße,

HeikoE
Update:
Ich habe es nochmal versucht, diesemal ohne Angabe eines Intervalls. Jetzt geht es.
Ich werde weiter beobachten.

premultiply

Die Parameterposition für Intervall und Host war intern vertauscht.
Die korrigierte Version gibt es unter https://github.com/premultiply/fhem-modules/blob/master/FHEM/55_DWD.pm

kumue

Zitat von: premultiply am 31 Mai 2016, 22:30:13
Die Parameterposition für Intervall und Host war intern vertauscht.
Die korrigierte Version gibt es unter https://github.com/premultiply/fhem-modules/blob/master/FHEM/55_DWD.pm

Danke, nun stimmt alles.

HeikoE

Das Modul läuft gut. Danke nochmal dafür.

Einen Punkt möchte ich Anmerken:
Auf meinem Win-Testsystem haben zwei Readings Umlaute, auf der FritzBox 7390 nicht. Die entsprechenden Buchstaben sind weg.
Ich weiss nicht woran das liegt, und ob das auf anderer Hardware auch so ist.
Wäre es nicht sinnvoll - aus Gründen der Vergleichbarkeit - die Umlaute zu ersetzen?

Dann habe ich noch einen Frage:
Oben in der Datei vom DWD steht

<h4>Wetterbeobachtungen von Dienstag, 07.06.2016, 20:00 Uhr </h4>

Wäre es möglich, aus Datum und Uhrzeit ein Reading zu generieren? Fände ich nützlich.

Gruß HeikoE

premultiply

Mmmh. Vermutlich schlägt da entweder die Zeichensatzkonvertierung auf der Fritzbox fehl weil entsprechende Konvertierungstabellen fehlen (dann wäre aber bestimmt irgendwo eine Fehlermeldung im Log) oder aber das FHEM-Webinterface wird dort nicht mit UTF-8 Codierung ausgespielt oder vom Browser nicht als UTF-8 erkannt. Da kann ich nichts dran machen weil ich auch keine Fritzbox habe um mir das anzusehen oder dies an deinem Browser bzw. Browserkonfiguration liegt.
Das Modul geht jedenfalls davon aus, dass FHEM mit UTF-8 arbeitet und auch so angezeit wird und legt Wert auf eine korrekte Konvertierung.
Funktioniert dies denn in anderen Stellen in FHEM korrekt?


Das Datum solltest du in ein Reading überführen können wenn du im Quelltext in Zeile 264/265 die führende Kommentar-Raute (#) entfernst.
$fc =~ /\s(\d{2})\.(\d{2})\.(\d{4}),\s(\d{2}):(\d{2})\s/;
readingsSingleUpdate($hash, 'last_update', "$3-$2-$1 $4:$5:00", 1);

HeikoE

Zitat von: premultiply am 09 Juni 2016, 15:53:09
Das Datum solltest du in ein Reading überführen können wenn du im Quelltext in Zeile 264/265 die führende Kommentar-Raute (#) entfernst.

Hallo premultiply,

Danke für die Info. Ich habe die Zeilen 264/264 eingebaut. Das Datum bleibt aber leer.

last_update      -- ::00      2016-06-10 21:42:16

Im Logfile steht:

2016.06.10 21:42:16 1: PERL WARNING: Use of uninitialized value $3 in concatenation (.) or string at ./FHEM/55_DWD.pm line 265.
2016.06.10 21:42:16 3: stacktrace:
2016.06.10 21:42:16 3:     main::__ANON__                      called by ./FHEM/55_DWD.pm (265)
2016.06.10 21:42:16 3:     (eval)                              called by ./FHEM/55_DWD.pm (163)
2016.06.10 21:42:16 3:     main::DWD_RetrieveData              called by ./FHEM/55_DWD.pm (101)
2016.06.10 21:42:16 3:     main::DWD_Get                       called by fhem.pl (3153)
2016.06.10 21:42:16 3:     main::CallFn                        called by fhem.pl (1640)
2016.06.10 21:42:16 3:     main::CommandGet                    called by fhem.pl (1069)
2016.06.10 21:42:16 3:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2185)
2016.06.10 21:42:16 3:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (713)
2016.06.10 21:42:16 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (446)
2016.06.10 21:42:16 3:     main::FW_Read                       called by fhem.pl (3153)
2016.06.10 21:42:16 3:     main::CallFn                        called by fhem.pl (656)

premultiply

Ich hab nun einen Patch erstellt der dies standardmäßig als observation_date bereitstellt.

HeikoE

Super!
Wird etwas dauern, bevor ich es ausprobieren kann - bin derzeit beruflich in Rumänien.
Danke schön mal.

HeikoE

Zitat von: premultiply am 11 Juni 2016, 11:30:07
Ich hab nun einen Patch erstellt der dies standardmäßig als observation_date bereitstellt.
Funktioniert. Leider nur auf dem Win-Testsystem. Die Fritzbox hat wohl eine Perl-Version, die das Statement nicht versteht.
Werde sicher bald auf einen Pi3 umsteigen.

Nochmal Danke!

kumue

bekomme bei Start von FHEM folgende Meldungen

2016.06.28 09:14:42 3: WARNING: unsupported character in reading _böen (not A-Za-z/\d_\.-), notify the DWD module maintainer.
2016.06.28 09:14:42 3: WARNING: unsupported character in reading _höhe (not A-Za-z/\d_\.-), notify the DWD module maintainer.


Zitatnotify the DWD module maintainer.
was ich hiermit tue  ;)

premultiply

Mmmh. Also das DWD-Modul und auch FHEM selbst geben diese Meldung nicht aus.
Da wird ein anderes Modul irgendein unbegründetes Problem mit Unicode haben
bzw. es prüft per RegEx ob da nur bestimmte ihm genehme Zeichen drin sind.

dev0

Die verwendbaren Zeichen in Readingnamen wurden beschränkt, zZ. ist es aber nur eine Warnung und das Reading wird noch korrekt gesetzt.
Siehe: https://forum.fhem.de/index.php/topic,45788.0.html