[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

OiledAmoeba

Nicht wirklich. Weather läuft von Haus aus mit noshutdown=1, Twilight jetzt ja auch.
Das Webinterface der FHZ spreche ich mit einem watchdog an und den Drucker über at/notify.
Notifymyandroid wird über meine Eigenkonstruktion angesprochen.
Gruß
Florian

Jail auf XigmaNAS (freeBSD); CCU2 mit CULv3, nanoCUL868 und JeeLink-Clone; div. FS20-Komponenten; andFHEM; div. hm- und hmip-Komponenten; div. IT+

Steffen

Hallo!

Kurze Info von mir, auf meinem "Pi" mit HMLAN habe ich seit der Änderung der von Dietmar63 bereitgestellten Twilight.pm keine Fehler mehr im Log und scheint erstmal alles Korrekt zu sein.


Mfg Steffen

OiledAmoeba

Zitat von: Dietmar63 schrieb am Sa, 08 Juni 2013 14:19Manchmal kommt -1(Windof) heraus, und manchmal -nan(Tuxradio) , so wie bei dir. Könnte an unterschiedlichen Perl-Installationen liegen.

Könnte man den Fehler über unterschiedliche Berechnungen mit Hilfe vonif($^O =~ m/Win/) {
} else {
}

abfangen?
Nur als möglicher Denkanstoß. Muss gleich weg, mir kam diese if/else gerade nur so in den Sinn...
Gruß
Florian

Jail auf XigmaNAS (freeBSD); CCU2 mit CULv3, nanoCUL868 und JeeLink-Clone; div. FS20-Komponenten; andFHEM; div. hm- und hmip-Komponenten; div. IT+

Dietmar63

Es ist einfach nur notwendig nach der Berechnung, die  verschiedenen Fehlersituationen abzufragen und immer -1 oder immer 'nan' zurück zu geben. Die Formel bleibt auf allen Plattformen gleich.

Dann ist der Code Plattform unabhängig.
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,

Nachtrag von mir.

Auf meinem RasPi ist mit der geänderten 59_Twilight.pm auch Ruhe und keine Fehlermeldungen mehr im Log.
Die Daten werden brav aktualisiert.

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.

egi01

Hallo Dietmar,

auf dem Tux läuft ein Debian Linux und der Perlinterpreter ist da einfach dabei. Die Dateien kann ich einfach mit dem vi editieren, oder auf meinem Rechner und werden nach Veränderung wieder zurückkopiert.

Ich möcht aber nochmals darauf hinweisen, in meinem Log steht nach wie vor das, in genau dieser Reihenfolge:
2013.06.08 16:57:36 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 12838518
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
2013.06.08 16:58:40 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 12838518
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
2013.06.08 16:59:21 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 12838518
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
2013.06.08 17:12:36 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 12838518
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
2013.06.08 17:13:40 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 12838518
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
2013.06.08 17:14:21 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 12838518
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
2013.06.08 17:27:36 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 12838518
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
2013.06.08 17:28:40 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 12838518
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.

Hier der Logauszug wo die Meldungen das erste mal aufgtrten sind.

2013.06.03 10:45:47 3: Watchdog wd_FHT_Bad_3 triggered
2013.06.03 10:45:47 2: FHT set FHT_232d hour 10 minute 45
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
2013.06.03 11:27:59 1: [TWILIGHT] No Weather location found at yahoo weather for location ID:
localtime(-nan) too large at ./FHEM/59_Twilight.pm line 225.
2013.06.03 11:31:25 1: [TWILIGHT] No Weather location found at yahoo weather for location ID:

Dietmar63

probier mal diese Version:

ich habe die Berechnungsmethode geändert!
Im Modul wurde eine arcuscosinisFunktion verwendet.
Diese Funktion ist für Agumente < -1 bzw. > +1 nicht definiert.

Das fange ich jetzt anders ab, so dass auf allen Rechnertypen und Perlversionen "nan" zurückgeliefert wird - hoffentlich.

Je nach Installation können sogar Complexe Zahlen herauskommen! Windowsversionen liefern so etwas scheinbar.
Deine Verision hat offensichtich ein  -nan erzeugt (nan steht für not a number).


Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

egi01

Hallo Dietmar,

sieht momentan gut aus, keine Meldung mehr.
Muß jetzt nochmal weg. Mal sehen was das  Log später sagt, wenn ich iweder da bin.

Erst mal ein Danke an Dich

JustMe

Vielen Dank Dietmar63 !!

Bei mir geht es jetzt auch, hab es gerade probiert.


Grüsse
Christian

mcfly71

Hallo Diemtmar,

es funktioniert leider nicht

Das liegt daran, dass in Twilight_calc($$$$$$$) die $sunset und $sunrise Vars nicht
-1 sind, sondern: -1.#IND
also garkeine Zahl.... deshalb hatte ich =~ m/-1/ in meiner Version getestet....
ich habe =~ m/-1/ nun in Twilight_calc($$$$$$$) eingebaut, und es klappt wieder....

Vielleicht änderst du es auch so ??

VG
mcfly
- HMLAN / Raspberry auf hmmode
- Homematic

Dietmar63

Hast du die Version von gestern 17:57 probiert?
Poste bitte deine Twilight_calc.

Sie sollte so aussehen:

sub Twilight_calc($$$$$$$)
{
  my ($latitude, $longitude, $horizon, $declination, $timezone, $midseconds, $timediff) = @_;

  my $s1 = sin($horizon /57.29578);
  my $s2 = sin($latitude/57.29578) * sin($declination);
  my $s3 = cos($latitude/57.29578) * cos($declination);

  my ($suntime, $sunrise, $sunset);
  my $acosArg = ($s1 - $s2) / $s3;
  if (abs($acosArg) < 1.0) {   # ok
     $suntime = 12*acos($acosArg)/pi;
     $sunrise = $midseconds + (12-$timediff -$suntime -$longitude/15+$timezone) * 3600;
     $sunset  = $midseconds + (12-$timediff +$suntime -$longitude/15+$timezone) * 3600;
  } else {
     $sunrise = $sunset = "nan";
  }

  return $sunrise, $sunset;
}

Die Ursache liegt in der Berechnung von suntime. Gib diesen Inhalt aus.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

mcfly71

Hallo Dietmar,

mein Fehler, habe die neueste Version eingesetzt... diese funktioniert jetzt...

übrigens bislang auch das gethttpfile.....

spitze

vg
mcfly
- HMLAN / Raspberry auf hmmode
- Homematic

Dietmar63

Dann werde ich es heute Abend einchecken.
Nach meinem Urlaub wird es dann eine neuer Version geben, die intern komplett anders läuft - natürlich nicht ohne vorher einen Betatest durchführen zu lassen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Markus Bloch

Hi Dietmar,

find ich super, dass du dich um das Modul kümmerst. Ich wollte fragen, ob du eine Möglichkeit siehst, die Kalkulation so laufen zu lassen, dass auch Lichtwertänderungen die zwischen den verschiedenen Sunset/Sunrises stattfinden erfassen.

Mein Problem ist, dass ich vor allem beim Sonnenuntergang aktuell mehrere Werte übersprungen werden. Also z.B.

6
3
2
1
0

oder

6
5
3
2
1
0

Aktuell wird ja der Lichtwert immer beim nächsten Sunset/Sunrise-Step neu berechnet. Es währe aber toll, wenn gerade während eines Sonnenuntergangs und -aufgangs der Lichtwert kontinuierlich berechnet wird, da es gerade hier spannend wird, wann die Rollos runterfahren sollen.

Aktuell fahre ich die Rollos bei erreichen des Wertes 4 herunter/herauf, sofern man sich im Sonnenaufgang/-untergang befindet.

Es währe daher sehr cool, wenn du das in deiner neuen Version mit einbeziehen könntest.

Vielen Dank

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Dietmar63

Fehlerbereinigte Version eingecheckt.

@Markus:
Ich habe mit mit den Innereien des Moduls schon länger beschäftigt.

Es ordnet jedem ss/sr (-18, -12, -6, 0, indoor_horizon, indoor_horizon+weather_horizon) einen Lichtwert von (0-6) zu.
Tagsüber ist 6(hellichter Tag) der Lichtwert, wenn die Sonne unter dem Horizont von -18° gesunken ist, liefert es 0(stockdunkel).

Es ermittelt alle 900 Sekunden alle ss/sr des Tages neu und holt sich das Wetter von yahoo um die aktuelle Wetterbedingung in die Berechnung einzubeziehen. Wenn das Wetter schlecht ist, wird einfach ein anderer Weather_horion angenommen: +15° könnte das zum Beispiel sein, wenn es stark bewölkt ist. Das führt dann dazu, das der indoor_horizon+weather_horizon ca. 15*7 Minuten früher "stattfindet". Die restlichen ss/sr sind davon nicht beeinflußt.

Ich habe eine Version im Einsatz, die die Berechnung der horizon, die sich am Tag nicht ändern, nur einmal, so gegen Mitternacht berechnet. Die ermittelten Werte für den indoor_horizon+weather_horizon werden dann nochmals jeweils eine Stunde vor dem jeweiligen Ereignis nachberechnet.

Bei mir wird dann zum Zeitpunkt indoor_horizon+weather_horizon das Licht angeschaltet - passt ganz gut.

Das Überspringen der Lichtwerte kommt daher, dass du vermutlich keinen indoor_horizon angegeben hast. In der Übersicht fallen dann wahrscheinlich viele ss oder sr vom Zeitpunkt her zusammen:


ss               0°
ss_indoor        ss+indoor_horizon                   (Parameter bei der Definition)
ss_weather       ss+indoor_horizon+weather_horizon   (yahoo-Wettercode->Horizont)  


Zwischen 6 und 4 ist dann keine detailierte Steuerung möglich. Es gibt einfach nur diese wenigen Werte.
Mal sehen was uns noch so einfällt - Ich komme sowiso erst nach meinem Urlaub Anfang Juli dazu, etwas zu ändern.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm