[TWILIGHT] No Weather location found at yahoo weather for location ID

Begonnen von HarryT, 05 April 2013, 15:16:16

Vorheriges Thema - Nächstes Thema

Dietmar63

schick mir deine Definition - dann prüfe ich, ob ich etwas herausfinde.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Puschel74

Hallo,

um 16:24 wurden wieder Werte übertragen *grübel*

Zitatschick mir deine Definition - dann prüfe ich, ob ich etwas herausfinde.

Danke aber ich vermute das es an Yahoo liegen könnte.
Aber das ist jetzt nur mal so spekuliert von mir.

Grüße

Edith: Kommando zurück. Ich bekomme nach wie vor die fehlermeldung im Logfile
Zitat2013.06.03 16:39:57 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 12836493
Allerdings wurden die Werte in den Readings auch um 16:39:57 aktualisiert.
Hier mal meine Definition für myTwilight:
define myTwilight Twilight 47.644 7.734 4 12836493
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

JustMe

Hallo,

ich glaube in keinem fall das es an Yahoo gelegen hat.
Die Datei kann wunderbar geladen werden. Ich hab mir die Datei angesehen, und die Werte die geparst werden sollen ( Der Identcode für das Wetter ) taucht in der Datei auch auf.

So und hier hört es dann aber auf.

Ich versteh nicht warum er mich nicht die Wetterdaten umschlüsselt und den rest anzeigen kann.


Aber ich bastle nach wie vor an was anderem rum.


Grüsse
Christian

Dietmar63

Ich glaube, dass yahoo manchmal einen xml String sendet, der von TW nicht geparst werden kann.
Es wäre schön ihn zu Gesicht zu bekommen, wenn es mal wieder passiert.

Dann könnte man sich eine Lösung einfallen lassen.

Zeile 320 ist die entscheidende Stelle:

(siehe Anhang / see attachement)
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dragonfly

Selbiges bei mir - FHEM auf FB7390

Hat heute um 11:41 begonnen, um 12:11 hats geklappt, dann 26x nicht und jetzt um 19:37 ging es wieder.

Internet neu verbinden, FHEM Neustart, FB Neustart hat nichts gebracht.
Parallel zu TWILIGHT läuft bei mir WEATHER - dies hat, so wie es aussieht, funktioniert - läuft aber nur alle 60 Minuten.

Wie kann ich helfen, um den xml-String "sichtbar" zu machen?

LG - Tom

JustMe

ich hab die datei geladen, und der string wird korekt erkannt.

aber es erscheinen trotzdem keine werte in fhem.

woher das kommt kann ich nicht sagen.
wenn er die datei nicht bekommt erschein ein fehler im fhem.

die datei ist wohl generell in xml:



<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<rss version="2.0" xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
<channel>

<title>Yahoo! Weather - Munich, DE</title>
<link>http://us.rd.yahoo.com/dailynews/rss/weather/Munich__DE/*http://weather.yahoo.com/forecast/GMXX0087_c.html</link>
<description>Yahoo! Weather for Munich, DE</description>
<language>en-us</language>
<lastBuildDate>Mon, 27 May 2013 8:00 pm CEST</lastBuildDate>
<ttl>60</ttl>
<yweather:location city="Munich" region="BY"   country="Germany"/>
<yweather:units temperature="C" distance="km" pressure="mb" speed="km/h"/>
<yweather:wind chill="10"   direction="30"   speed="3.22" />
<yweather:atmosphere humidity="87"  visibility=""  pressure="1011"  rising="0" />
<yweather:astronomy sunrise="5:18 am"   sunset="8:59 pm"/>
<image>
<title>Yahoo! Weather</title>
<width>142</width>
<height>18</height>
<link>http://weather.yahoo.com</link>
<url>http://l.yimg.com/a/i/brand/purplelogo//uh/us/news-wea.gif</url>
</image>
<item>
<title>Conditions for Munich, DE at 8:00 pm CEST</title>
<geo:lat>48.14</geo:lat>
<geo:long>11.58</geo:long>
<link>http://us.rd.yahoo.com/dailynews/rss/weather/Munich__DE/*http://weather.yahoo.com/forecast/GMXX0087_c.html</link>
<pubDate>Mon, 27 May 2013 8:00 pm CEST</pubDate>
<yweather:condition  text="Drizzle"  code="9"  temp="10"  date="Mon, 27 May 2013 8:00 pm CEST" />
<description><![CDATA[
<img src="http://l.yimg.com/a/i/us/we/52/9.gif"/><br />
<b>Current Conditions:</b><br />
Drizzle, 10 C<BR />
<BR /><b>Forecast:</b><BR />
Mon - Showers Early. High: 14 Low: 4<br />
Tue - PM Showers. High: 19 Low: 9<br />
<br />
<a href="http://us.rd.yahoo.com/dailynews/rss/weather/Munich__DE/*http://weather.yahoo.com/forecast/GMXX0087_c.html">Full Forecast at Yahoo! Weather</a><BR/><BR/>
(provided by <a href="http://www.weather.com" >The Weather Channel</a>)<br/>
]]></description>
<yweather:forecast day="Mon" date="27 May 2013" low="4" high="14" text="Showers Early" code="45" />
<yweather:forecast day="Tue" date="28 May 2013" low="9" high="19" text="PM Showers" code="39" />
<guid isPermaLink="false">GMXX0087_2013_05_28_7_00_CEST</guid>
</item>
</channel>
</rss>

<!-- api29.weather.bf1.yahoo.com Mon May 27 19:13:20 PST 2013 -->



Dietmar63

wenn du kannst, ändere in der Datei 59_Twilight.pm

 Log 1, "[TWILIGHT] No Weather location found at yahoo weather ".
        "for location ID: $location";

in
 Log 1, "[TWILIGHT] No Weather location found at yahoo weather for location ID: $location\nxml:\n$xml";

Wenn dann der Fehler auftritt, bekommmen wir den passenden xml-String ins Log geschrieben, und wir können prüfen was die Ursache sein könnte.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dragonfly

Geändert und folgendes kommt raus:
[TWILIGHT] No Weather location found at yahoo weather for location ID: 551426
xml:

In meinen Augen nicht viel?!

Nachtrag:
Über Nacht hat es 2x geklappt, 17x nicht - ich lass mir das in einem Dummy loggen der hochzählt.
Hatte ich mal gebaut, da die Internetverbindung 1x im Monat "träge" ist und ich ab einem Wert von "4" einen automatischen Reconnect veranlasse - das hat dann geholfen (als PING-Ersatz sozusagen).

Puschel74

Hallo,

hier mal die Fehlermeldung aus dem FHEM-Logfile:
Zitat2013.06.04 09:37:52 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 12836493
aber die Daten wurden in FHEM aktualisiert (siehe Datum / Uhrzeit):

(siehe Anhang / see attachement)

Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Steffen

Hallo!

So ist es bei mir aucu schon seit ca.2Tagen:

2013.06.04 09:56:42 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 686627

Mfg Steffen

Puschel74

Hallo,

werden die Daten in fhem dennoch aktualisiert?
Bei mir ist es so (s.o.).

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

mcfly71

Guten Tag liebe Gemeinde,

also bei mir ist das auch so.
Der Fehler erscheint im log, dass die Werte dennoch gemacht werden, liegt daran,
dass in der Funktion, wo die Fehlermeldung ausgegeben wird, NUR !!!
der WEATHER_HORIZON berechnet wird, alle anderen Daten sind zur Verfuegung.
D.h.: Immer wenn der Fehler auftritt, sind danach die Werte von
[ss] und [ss_weather] gleich (Die ursprüngliche Idee ist ja, dass wenn es verdammt dunkel ist wegen der Wolken, die Werte auch was dunkler zu machen, respektive wenn Gewitterwolken über einem hängen,
soll es sozusagen früher dunkel werden.

Die Logbuch Änderung habe ich gemacht, und ich sehe dasselbe wie ein Vorchreiber von mir:
Die Variable $xml ist leer!!!!, somit schmeisst er dann korrekterweise die Fehlermeldung raus.
Ich weiss allerdings wirklich nicht, warum die leer ist. Die einzige Erklärung die ich habe, ist die Response Zeit von 4.0 (die könnte dann immer zuwenig sein).
Ich stelle die mal hoch und werde wieder berichten.....

MfG
mcfly
- HMLAN / Raspberry auf hmmode
- Homematic

Mark

Hallo zusammen,

ich lese mit, da ich auf meinem Windows System auch Probleme mit twilight habe.
Unter Linux scheint es allerdings nicht solche fatalen Auswirkungen zu
haben wie auf meinem Windows System.

Hier meine Erfahrungen:
Das erste Mal ist FHEM durch twilight am 28.05.2013 01:17:47 "eingefroren".
Dies war der Zeitpunkt als twilight das letzte mal versucht hat Daten zu holen.
Ein Neustart war nicht möglich, da FHEM immer wieder beim "define twilight"
eingefroren ist.

Durch herumprobieren konnte ich herausfinden, dass das define von twilight wieder
funktionierte, wenn der <latitude> Wert kleiner 50 ist.

Beispiel:
define mytwilight twilight 47.644 7.734 4 12836493
- funktioniert einwandfrei.

define mytwilight twilight 50.644 7.734 4 12836493
- sofort Ende ! FHEM friert ein.

Für mich als Laie lief mein System erst einmal wieder.

Allerdings nur bis heute Nacht. Dies ist der letzte Logeintrag:
2013.06.04 01:21:30 1: [TWILIGHT] No Weather location found...

Damit mein FHEM wieder zu starten war, musste ich zuerst den twilight Eintrag in meiner fhem.cfg löschen.

Mann beachte den Zeitabstand. Ziemlich genau eine Woche 28.05.2013 01:17:47 -> 2013.06.04 01:21:30

Vielleicht hilft einem von Euch die Information bei der Fehlereingrenzung.

Der Ansatz, dass Yahoo hin und wieder (Einmal die Woche?) einen anderen Datensatz sendet,
würde erklären warum FHEM/perl sich auf einem Windows System "zerlegt".

Ubuntu zeigt sich übrigens von <latitude> Werten kleiner 50 unbeeindruckt und läuft einfach weiter.

Gruß Mark

mcfly71

Hallo Marc,

dein Einfrieren hatte ich auch, ebenfalls unter Windows-System.
Liegt an einer Zeile  script. ich zeige dir mal mein script.
Da ist auch ein Kommentar, der erklärt warum es passiert, und vor
allen Dingen, warum der Typ im Norddeutschen das früher hatte als wir,
und auch warum es mit anderen Koordinaten bei dir wieder fummt:

2) Modul 59_Twilight.pm

  for(my $i=0; $i<6; $i++) {
    ($sunrise_set[$i]{RISE}, $sunrise_set[$i]{SET})=
       Twilight_calc($latitude, $longitude, $sunrise_set[$i]{DEGREE},
                     $declination, $timezone, $midseconds, $timediff);
      # MCFLY GEAENDERT:
      # twilight ermittelt ³brigens hier in Norddeutschland im Moment keine Werte f³r sr-/ss_astro (-18¦).
      # Die Sonne sinkt nicht mehr so tief unter den Horizont.
      # Der Wert f³r light erreicht somit auch nicht den Wert 0.
      # ABER sobald mit -1 localtime aufgerufen wird, st³rzt perl ab
      # orig.: statt =~ "-1" stand ein eq "nan"
    readingsBulkUpdate($hash, $sunrise_set[$i]{SR_NAME},
        $sunrise_set[$i]{RISE} !!!!!=~ "-1"!!!!! ? "undefined" :
        strftime("%H:%M:%S",localtime($sunrise_set[$i]{RISE})));
    readingsBulkUpdate($hash, $sunrise_set[$i]{SS_NAME},
        $sunrise_set[$i]{SET} !!!!!=~ "-1"!!!!! ? "undefined" :
        strftime("%H:%M:%S",localtime($sunrise_set[$i]{SET})));
  }

Das behebt wenigstens dein erstes Problem, warum das sonst niemandem aufgefallen ist ... man weiss es nicht....
Vielleicht kann rudolf was dazu sagen ????? und es könnte eingecheckt werden, oder wie das heisst..
Bei mir blieb Perl übrigens nicht hängen, sondern startete immer wieder nach einem Absturz neu.

Leider ändert sich das andere Problem dadurch nicht.... ich bleibe aber auch dran....

P.S. Für mich gilt auch: Egal was ich schreibe, dass Rudolf König und andere soviel Zeit da reinstecken, finde ich mehr als spitze. Die Fehler, die auftauchen muessen halt ausgemerzt werden....

- HMLAN / Raspberry auf hmmode
- Homematic

Mark

Hallo mcfly71,

danke für Deinen Hinweis. Bisher läuft mein FHEM mit Deinen Änderungen.

Gruß Mark