Fehlermeldung aus twilight Modul

Begonnen von pte, 13 Januar 2016, 17:09:07

Vorheriges Thema - Nächstes Thema

pte

Hatte heute eine Fehlermeldung aus dem twilight Modul im Log
2016.01.13 14:35:37.287 1: PERL WARNING: Use of uninitialized value $current in numeric ge (>=) at ./FHEM/59_Twilight.pm line 463.
2016.01.13 14:35:37.288 1: PERL WARNING: Use of uninitialized value $current in numeric le (<=) at ./FHEM/59_Twilight.pm line 463.
2016.01.13 14:35:37.289 1: PERL WARNING: Use of uninitialized value $current in array element at ./FHEM/59_Twilight.pm line 464.

Fehler liegt meines Erachtens in folgendem Codeabschnitt "if($xml=~/text="(.*)"(\ *)code=........."
################################################################################
sub Twilight_getWeatherHorizon(@)
{
  my ($hash, $xml) = @_;
 
  my $location=$hash->{WEATHER};
  if ($location == 0)  {
     $hash->{WEATHER_HORIZON}="0";
     $hash->{CONDITION}="0"; 
     return 1;
  }

  my $mod = "[".$hash->{NAME} ."] ";
  my @a_current = (25,25,25,25,20,10,10,10,10,10,
                   10, 7, 7, 7, 5,10,10, 6, 6, 6,
                   10, 6 ,6, 6, 6, 6, 6, 5, 5, 3,
                    3, 0, 0, 0, 0, 7, 0,15,15,15,
                    9,15, 8, 5,12, 6, 8, 8);

  # condition codes are described in FHEM wiki and in the documentation of the yahoo weather API

  my $current, my $cond, my $temp, my $aktTemp;
  if (defined($xml)) {
     if($xml=~/text="(.*)"(\ *)code="(.*)"(\ *)temp="(.*)"(\ *)date/){                                                          #<-- bei falsch erfolgt keine Initialisierung von $current, aber Auswertung weiter unten
        if(defined($1)){
          $cond   =$1;
          $current=$3;
          $temp   =$5;
        }else{
          $current=-1;
        }
     } 
  }else{
     $current=-1;
  }   

  if(($current>=0) && ($current <=47)) {                                                                                                   #hier wird $current geprüft, obwohl oben gegebenenfalls nicht initialisiert
    $hash->{WEATHER_CORRECTION} = $a_current[$current] / 25 * 20;
    $hash->{WEATHER_HORIZON}    = $hash->{WEATHER_CORRECTION} + $hash->{INDOOR_HORIZON};
    $hash->{CONDITION_TXT}      = $cond;
    $hash->{CONDITION}          = $current;
    $hash->{TEMPERATUR}         = $temp;
Lichtenstein/Sa. grüßt den Rest der Welt

CoolTux


my $current, my $cond, my $temp, my $aktTemp;


Wird nicht $current genau hier mit undef Initialisiert?



Grüße
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

pte

andere Idee als Grund für die Fehlermeldung?
Lichtenstein/Sa. grüßt den Rest der Welt

CoolTux

Kann nicht genausagen ob das so geht, ich kenne das nicht so

my $current, my $cond, my $temp, my $aktTemp;


Ich hätte das so gemacht

my $current;
my $cond;
my $temp;
my $aktTemp;


Aber wie gesagt, nur weil ich es so nicht kenne heißt es ja nicht das es nicht geht    ;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

spikeh1

Zitat von: pte am 14 Januar 2016, 10:42:43
andere Idee als Grund für die Fehlermeldung?

Ich habe die Meldung auch seit gestern im Log.
Habe mal geschaut und die api von Yahoo-Weather sagt zu meiner Wetter-ID, City not found.
Somit bekommt das twilight Modul keine Daten von Yahoo.
Ist aber eben nur über die api der Fall. Über die Wetter-Seite finde ich noch alle Infos zu meiner Stadt.
Ich bin erstmal auf eine andere Stadt (Wetter-ID) in meiner Nähe umgestiegen. Somit läuft alles erstmal wieder.

Kannst ja mal selber schauen, was bei dir kommt. Statt WOEID gibst du deine ID ein.
http://weather.yahooapis.com/forecastrss?w=WOEID

MfG

pte

zumindest jetzt bekomme ich aktuelle Wetterdaten für meine Location. Ob das gestern mal kurzzeitig nicht der Fall war bekomme ich jetzt nicht mehr raus.
Werde das mal weiter beobachten.
Danke erst einmal für die Hinweise.
Lichtenstein/Sa. grüßt den Rest der Welt

AndyMu

#6
Das Problem habe ich momentan auch mit Lohr a. Main - 672536, ebenso mit 652077 (Gemünden) oder 664945 (Karlstadt)
Erst 708287 (Würzburg) tut wieder... echt ein Mist :( das ist 40km weg...
Ich habe auf dem ss_weather eine Lichtschaltung aufgebaut, wenn das nicht gescheit läuft muss ich mir was anderes überlegen.
Schade, dass da Yahoo anscheinend nicht stabil Daten liefern kann.

CoolTux

Das selbe Problem habe ich auch.
Habe auf twilight_weather was aufgebaut.
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

spikeh1

Zitat von: CoolTux am 17 Januar 2016, 12:01:52
Das selbe Problem habe ich auch.
Habe auf twilight_weather was aufgebaut.
Da bin auch gerade dran. Welche Wetterdaten (Quelle) verwendest du zur Berechnung?
Ich hole mir die Daten im Moment von openweathermap aber da ist die nächste Station auch recht weit weg und deswegen vielleicht etwas zu ungenau.

MfG

CoolTux

Das liegt an Yahoo. Ich habe eben mal eine andere ID eingegeben. Jetzt klappt es wieder.
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

MichaelO

Hab das selbe Problem und leider erst heute gemerkt, dass es der twillight_weather-Wert ist, der spinnt. Steht bei mir fast immer auf 0 - und das ganze Haus macht Sachen, die es nicht soll :-(

Die Fehlermeldungen von pearl im Modul Twilight hast ich auch im Log.

Leider bekomme ich unter dem Link

http://weather.yahooapis.com/forecastrss?w=WOEID

nur eine Meldung von Safari, dass er irgendwas unter "gesendete Links" einfügen will. Komischerweise stimmt das Wetter unter meiner ID noch, nur eben kein dazu passendes twilight.

Ich hoffe, das geht bald wieder, sonst muss ich mir einen richtigen Helligkeitssensor besorgen. So macht das keinen Spaß.

Gruß
Michael

CoolTux

Sicher das das Weathermodul noch korrekt geht? Die meisten meiner Readings waren vom 13.
Musste ne Nachbarstadt auswählen damit sowohl weather Modul als auch Twilight wieder gehen.
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

AndyMu

@CoolTux
nun, solange man eine ID eingetragen hat, die auch über den API Link (oben gepostet) aufrufen kann, funktioniert alles problemlos.

CoolTux

Es gibt derzeit einige Thread zum Problem mit weather. Mitunter habe ich auch gelesen das trotz API link und Daten diese Korrupt waren.
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

AndyMu


MichaelO

Ich gehe jetzt auf Nummer sicher und erzeuge die benötigten Messwerte selbst. Hab mir einen 1-wire Helligkeit-/Einstrahlungssensor gekauft und an der Südseite angebracht. Nun kann Yahoo und die API machen, was sie will :-)

Gruß
Michael

booster

Ich hatte hier nun auch Probleme. Anscheinend hat Yahoo hier die IDs geändert, wonach die Daten so gar nicht mehr gepasst hatten.

Mal schuen ob es mit den neuen IDs besser klappt.

n0bbi

Meine ID ist unverändert, die Warnung im LOG habe ich trotzdem. Von der Funktion her habe ich bis jetzt auch keine Einschränkung feststellen können, ich nutze allerdings auch nur das Reading "Light"...

Wie krieg ich trotzdem diese Meldung weg?

Danke :)

CoolTux

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

n0bbi

Mist, nicht richtig gesucht, danke...