GDS Modul ständige Neustarts von FHEM

Begonnen von no_Legend, 08 Juli 2015, 08:18:14

Vorheriges Thema - Nächstes Thema

no_Legend

Hi,

ich habe gestern versucht das GDS Modul in betrieb zu nehmen.
Leider ist gestern immer wieder FHEM komplett abgestürtzt, wenn ich probiert habe die Daten abzurufen.
Eingerichtet habe ich es nach dem Wiki eintrag.
Die Benötigten Module für meine Ubuntu auf Cubietruck hatte ich auch installiert.

Heute morgen ging es dann.

Es scheint als ob der Account vom DWD gestern noch nicht funktioniert hat.

Ist im GDS Module ein Errorhandling drin, was die Fehler eines nicht funktionierenden Account abdeckt?

Danke und Gruß Robert
Docker FHEM immer aktuell,4x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
Homematic, Shelly, Tasmota, MQTT, Unifi Network usw.

CoolTux

Ich habe genau das selbe Problem. Bei mir schmiert ständig das Modul ab und reißt FHEM in den Tot. Es scheint aber kein Errorhändler drin zu stecken.
Interessant ist auch das ich keine Fehlermeldungen bekomme. Nicht mal bei Verbose 5


2015.07.08 10:46:44 1: PERL WARNING: readline() on closed filehandle WXDATA at ./FHEM/55_GDS.pm line 524.
2015.07.08 10:46:44 1: PERL WARNING: Use of uninitialized value $line in chomp at ./FHEM/55_GDS.pm line 524.
Modification of non-creatable array value attempted, subscript -1 at ./FHEM/55_GDS.pm line 530.


Ich schaue mal nach was ich in den Zeilen die da angegeben werden finden kann.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Das hier ist die Funktion

sub getListStationsText($){
        my ($hash) = @_;
        my $name = $hash->{NAME};

        my ($line, @a);
        open WXDATA, $tempDir.$name."_conditions";
        while (chomp($line = <WXDATA>)) {
                push @a, substr(latin1ToUtf8($line),0,19);
        }
        close WXDATA;

        splice(@a,0,6);
        splice(@a,first_index { /Höhe/ } @a);
        splice(@a,-1);
        @a = sort(@a);
        unshift(@a, "Use one of the following stations:", sepLine(40));

        return join("\n", @a);
}

Die Zeilen in der Fehlermeldung sind

while (chomp($line = <WXDATA>)) {

und

splice(@a,first_index { /Höhe/ } @a);


Ich denke aber mal das er schon alleine Probleme beim aufrufen des ftp Befehls hat und das File

open WXDATA, $tempDir.$name."_conditions";

also

$tempDir.$name.

erst gar nicht vorhanden ist oder angelegt wird.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Bin nun mal ein Schritt weiter.


2015.07.08 12:52:46 4: GDS weatherStahnsdorfDwd: searching for gds/specials/observations/tables/germany/* on DWD server
2015.07.08 12:52:46 4: GDS weatherStahnsdorfDwd: ftp connection established.
2015.07.08 12:52:52 4: GDS weatherStahnsdorfDwd: filelist not found.
2015.07.08 12:52:52 4: GDS weatherStahnsdorfDwd: updating readings.
2015.07.08 12:52:52 4: GDS weatherStahnsdorfDwd: searching for gds/specials/warnings/xml/PVW/Z_CAP* on DWD server
2015.07.08 12:52:52 4: GDS weatherStahnsdorfDwd: ftp connection established.
2015.07.08 12:52:58 4: GDS weatherStahnsdorfDwd: filelist not found.
2015.07.08 12:52:58 4: GDS weatherStahnsdorfDwd: updating readings.
2015.07.08 12:52:58 1: GDS: error analyzing alerts XML:File does not exist: /tmp/weatherStahnsdorfDwd_alerts at ./FHEM/55_GDS.pm line 591.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

jensb

Hallo CoolTux,

die readline/chomp Fehler kommen mir bekannt vor. Sie treten sporadisch auf, wenn der DWD ein Dokument nicht zur Verfügung stellt (z.B. wenn keine Alerts für deine Zelle vorliegen), weil meiner Ansicht nach für diesen Fall die EOF-Prüfung im while vor dem chomp fehlt. Arbeite an einem Patch, der auch das u.a. berücksichtigen soll.

Die Fehlermeldungen führen bei mir nicht zum Absturz von FHEM. Passiert das bei dir immer noch?

LG, jensb
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

CoolTux

Hallo JensB

Muss ich mal schauen. Im Moment verwende ich das Modul nicht. Hatte mir stehts und ständig FHEM abgeschossen. Ich muss aber auch sagen das es sein kann das er FTP mäßig eventuell keine Verbindung aufbauen kann. Das musste ich noch prüfen. Ich habe eine sehr komplexe Netzwerkarchitektur. Mehrere Subnetze VLans und alles mit iptables Firewall getrennt. Dazu Squid und Squidguard. Ist nicht immer leicht da schnell den Fehler zu finden.  ;D
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

jensb

Hallo,

habe das GDS-Modul überarbeitet. Damit sollten zumindest die Perl-Warnings vermieden werden, möglicherweise ist damit aber auch der Grund für den Absturz weg.

Wer es testen will, sollte dazu die 2. Version des GDS-Moduls vom 21.07.2015 aus dem Thread http://forum.fhem.de/index.php/topic,38106 verwenden.

LG, jensb
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb