Hallo und allen einen schönen Ostermontag,
Kurze Info zu Twilight und Yahoo Weather.
Nach dem der Boris nun das Yahoo Weather wieder hinbekommen hat und uns da auch gleich eine kleine API bereit gestellt hat, arbeite ich in Abwesenheit von Dietmar (genießt hoffentlich seinen Urlaub) daran die API in das Twilight Modul zu bekommen.
Ich habe das Twilight Modul nun weitestgehend an die neuen Bedingungen an gepasst
- zum Bezug der Yahoo Wetterdaten wird das Modul YahooWeatherAPI von Boris verwendet
- es werden Response Daten im JSON Format angefordert und auch verarbeitet
Anbei das angepasste Modul
Version vom 31.03.2016
Grüße
Leon
Du musst eigentlich nur eine Methode ändern. In ihr wird der URL zu Yahoo aufgebaut. Wenn du Pech hast, hat Yahoo auch die Werte für die Rückmeldung geändert.
Ich habe Pech, hihi
Ich bin jetzt soweit das ich dioe API verwenden kann und Daten bekommen. Nun hänge ich etwas beim Einzeiler Regex
if($xml=~/code="(.*)"(\ *)date="(.*)"(\ *)temp="(.*)"(\ *)text/)
code klappt ist 26
date klappt ist Mon, 28 Mar 2016 02:00 PM CEST
temp klappt nicht, da bremst er nicht rechtzeitig
15" text="Cloudy"/><yweather:forecast xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" code="28" date="28 Mar 2016" day="Mon" high="14" low="5" text="Mostly Cloudy"/><yweather:forecast xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" code="28" date="29 Mar 2016" day="Tue" high="10" low="6" text="Mostly Cloudy"/><yweather:forecast xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" code="28" date="30 Mar 2016" day="Wed" high="11" low="5" text="Mostly Cloudy"/><yweather:forecast xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" code="12" date="31 Mar 2016" day="Thu" high="11" low="5" text="Rain"/><yweather:forecast xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" code="39" date="01 Apr 2016" day="Fri" high="10" low="4" text="Scattered Showers"/><yweather:forecast xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" code="28" date="02 Apr 2016" day="Sat" high="12" low="2" text="Mostly Cloudy"/><yweather:forecast xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" code="30" date="03 Apr 2016" day="Sun" high="15" low="5" text="Partly Cloudy"/><yweather:forecast xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" code="30" date="04 Apr 2016" day="Mon" high="16" low="7" text="Partly Cloudy"/><yweather:forecast xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" code="39" date="05 Apr 2016" day="Tue" high="14" low="8" text="Scattered Showers"/><yweather:forecast xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" code="39" date="06 Apr 2016" day="Wed" high="13" low="7
Mein Stopper "text" passt nicht.
Grüße
wird hier dann auch die json-lib benötigt werden?
Nein ich denke nicht. Jedenfalls nicht von meiner Seite aus. Kommt drauf an was Dietmar sagt. Aber ich denke mal für die 3 Werte reicht das xml aus
ZitatNein ich denke nicht.
wäre schön, sonst hat mein modul-friedhof heute gleich 2 neuzugänge. :)
@frank
Oder du gibst dir nu mal nen Ruck und steigst auf ein anderes Host System um ;) ;)
VG
Frank
ZitatOder du gibst dir nu mal nen Ruck und steigst auf ein anderes Host System um ;) ;)
irgendwie stehe ich auf oldschool. 8) 8) 8)
Dann wirst Du auch irgendwann mit dem Friedhof leben müssen. Alles alte stirbt mal ;D
So back to topic, kann mir einer bei der Regex helfen. Der bremst einfach nicht beim ersten "text" nach der "temp"
Zitat von: CoolTux am 28 März 2016, 15:08:38
Ich habe Pech, hihi
Das xml-Geparse ist ein Gewürge im Vergleich zur schlichten Eleganz eines Zugriffs auf ein verschachteltes Hash.
Schau Dir mal Weather_RetrieveDataFinished() in 59_Weather.pm an. Die Strophen am Anfang sind Fehlerbehandlung.
An sich brauchst Du nur etwas wie:
my ($err, $data)= YahooWeatherAPI_JSONReturnChannelData($response);
my $item= $data->{item};
my $code= $item->{condition}{code};
Viele Grüße
Boris
Hallo Boris,
Vielen Dank für den Tip. Schaue ich mir heute Abend an. Jetzt ist Spielplatzzeit. Lach.
bevor du auch noch auf den json zug aufspringst:
if($xml=~/code="([^"]*)"\sdate="([^"]*)"\stemp="([^"]*)/){
if(defined($1)){
$cond =$1;
$current=$2;
$temp =$3;
}else{
$current=-1;
}
}
Da versucht wohl jemand seinen Po zu retten. Lach.
Vielen lieben Dank. Wird heute Abend getestet wenn die Lütten schlafen.
Grüße
Anbei eine Version welche die YahooWeatherAPI.pm von Boris verwendet. Ich habe nur kurz getestet. Sieht gut aus.
Heute Abend mache ich dann in Ruhe einen Patch für Dietmar fertig.
PS: Patch ist fertig und ich hänge ihn hier mit an
Grüße
PS: angehängte Dateien wurden entfernt. Die aktuellsten gibt es im ersten Thread
Super! Sieht auch hier gut aus - nachdem ich "use YahooWeatherAPI;" ergänzt habe
Danke für die Mühen
VG Achim
Na ganz toll. Sehe gerade das er die falschen Daten parst. Wenn ich das richtig sehe nimmt er fc_10 statt fc_1. Schaue mir das gleich noch mal in Ruhe an. So ein Mist.
Ich sag nur: JSON :-X
ZitatPlötzlich und völlig unerwartet wurde heute unser guter Freund und treuer Weggefährte "Twilight" aus unserer Mitte gerissen.
In tiefer Trauer gedenken wir seiner grossen Hilfsbereitschaft und wünschen Ihm alles gute auf Seinem letzten Weg.
fhem@fritzbox
Entwarnung. Klappt doch alles korrekt. Das parsen geht also. Ich überlege allerdings in der Tat auf JSON um zu stellen, aber wie gesagt das ist nicht meine Entscheidung.
Moin,
nachdem ich die letzten Tage die beiden Threads zu den Modulen weather und twilight verfolgt hatte, habe ich heute morgen mal ein update gemacht und nun funktioniert zwar die Abfrage gegen Yahoo wieder, aber die conditions, welche ja die Helligkeit abhängig vom Wetter berechnen, gibt es nicht mehr, bzw. es gibt keine readings mehr für CONDITION und CONDITION_TXT, was dazu führt, dass im zweiten Lauf twilight_weather auf 0 gesetzt wird.
fhem> define testTwilight twilight 53.5653 10.0014 3 12832606
fhem> get testTwilight condition
no such reading: condition
Dazu passt, dass FHEM bein starten immer folgendes anmeckert:
2016.03.29 08:00:50 1: PERL WARNING: Use of uninitialized value $current in numeric ge (>=) at /home/fhem/fhem//FHEM/59_Twilight.pm line 463.
2016.03.29 08:00:50 1: PERL WARNING: Use of uninitialized value $current in numeric le (<=) at /home/fhem/fhem//FHEM/59_Twilight.pm line 463.
2016.03.29 08:00:50 1: PERL WARNING: Use of uninitialized value $current in array element at /home/fhem/fhem//FHEM/59_Twilight.pm line 464.
Hat das noch jemand?
Gruß,
Stephan
Dann hast Du nicht richtig gelesen.
Das geänderte Twilight Modul ist noch nicht offiziell. Du kannst die Version hier aus dem Thread runterladen und installieren.
Der Maintainer des Modules ist im verdienten Urlaub und nur er wird es ins SVN von FHEM stellen.
Grüße
hier die aktuelle version ohne json.
edit: angehängte version entfernt, da nicht mehr nötig. 8)
Ahh... danke schön! Das hatte ich tatsächlich falsch verstanden. Jetzt läufts wieder wie geschmiert.
Gruß,
Stephan
Vielen Dank für die schnelle Abhilfe!
Ich hatte mich auch schon über die sehr frühen Event-Zeiten von ss_weather gewundert und (da ich keine Erklärung fand) zunächst auf ss_indoor umgestellt.
Folgendes beobachte ich jedoch mit beiden neuen Modulen (mit und ohne JSON):
die Readings "light" und "state" werden nicht mehr im Logfile gespeichert und entsprechend nicht geplottet. Die Readings an sich werden korrekt gelistet (s. Screens).
Die Definition wurde nicht geändert:
event-on-update-reading .*
Was kann das Problem sein?
Screens:
Das Problem mit den Readings hat sich ohne weiteres Zutun (noch nicht einmal ein Neustart!) selbst gelöst. Seit gestern Abend werden die Readings wieder ordnungsgemäß erfasst und im Logfile gespeichert. Der Plot passt nun wieder.
Seltsam.
Ok danke. Hatte gestern mal kurz geschaut aber Dein Fehler weder nachstellen noch im Code was finden können.
Grüße
Moin!
Nochmal kurz zusammengefasst:
- muss ich jetzt für meine Stadt eine neue WeatherID herausfinden und wenn ja wo?
- muss ich 59_Twilight.pm manuell kopieren oder geht das schon mit update?
- ist sonst noch was zu beachten?
Ich hab mich gestern schon gewundert, dass das Licht hier an ist obwohl die Sonne noch 2 Stunden schien...
Erstes nein
Zweites ja
Danke!
Ich hab jetzt das hier gemacht:
Zitat
erst einmal FHEM mit update updaten. Dann mit Putty
sudo /etc/init.d/fhem stop
den FHEM-Dienst stoppen.
Die Datei 59_Twilight.pm von Frank in /opt/fhem/FHEM kopieren (vorher alte 59_Twilight.pm umbenennen)
Dann
sudo /etc/init.d/fhem start
Sieht wieder gut aus.
Aber das "richtige" Update kommt dann über den Befehl update, oder?
Später ja. Der Maintainer des Modules ist im verdienten Urlaub. Ich habe nur ein Hotfix gemacht.
Ja Urlaub geht vor. 8)
Notfalls hätte ich sonst die Helligkeit vom Homematic Bewegungsmelder genommen :)
Hi,
seit der Umstellung -zumindest fällt es mir jetzt erst auf- habe ich noch einen merkwürdigen Effekt:
Zu nicht reproduzierbaren Zeiten werden für das Reading "light" hochzählende Werte in mein Log-File geschrieben. Das passiert so ein- zweimal am Tag, richtig ist jeweils der höchste Wert. Als ob da wirklich hochgezählt würde ...
2016-03-30_08:23:23 TwilightHome twilight_weather: 100
2016-03-30_18:18:36 TwilightHome light: 2
2016-03-30_18:18:36 TwilightHome light: 3
2016-03-30_18:18:36 TwilightHome light: 4
2016-03-30_18:18:36 TwilightHome light: 5
2016-03-30_18:18:36 TwilightHome light: 6
2016-03-30_18:18:36 TwilightHome light: 2
2016-03-30_18:18:36 TwilightHome light: 3
2016-03-30_18:18:36 TwilightHome light: 4
2016-03-30_18:18:36 TwilightHome light: 5
2016-03-30_18:18:36 TwilightHome light: 6
2016-03-30_18:45:35 TwilightHome twilight_weather: 99.6
oder
2016-03-31_07:30:52 TwilightHome twilight: 89.8
2016-03-31_07:30:52 TwilightHome twilight_weather: 17.6
2016-03-31_07:34:48 TwilightHome light: 2
2016-03-31_07:34:48 TwilightHome light: 3
2016-03-31_07:34:48 TwilightHome light: 4
2016-03-31_07:34:48 TwilightHome light: 5
2016-03-31_07:35:52 TwilightHome twilight: 94.1
2016-03-31_07:35:52 TwilightHome twilight_weather: 21.9
TwilightHome hat das Attribut "event-on-change-reading twilight.*,light".
Was ist da los?
Danke, vG Achim
Seltsam. Hast Du ein verbose Attribut oder einen höheren globalen verbose als 3?
Nein, nichts: kein verbose gesetzt, keine Einträge zu den Zeiten im normalen fhem-Log, nix... Das Ding lebt
Ich schaue heute Abend mal im Code nach. Die Maschine lebt. Lach
Jetzt hat sich ein neues Problem mit Twilight ergeben.
Ich schalte einige Leuchten mittels DOIF und sr_weather/ss_weather.
Z.B.:
define di.li.eg.Wohnzimmer.01 DOIF (([06:00|8] and [MyTwilight] < 5 and (Value("sc.Urlaub.zuhause") eq "off")) or [[MyTwilight:ss_weather]]) (set sw.li.eg.Wohnzimmer.01 on) DOELSEIF([[MyTwilight:sr_weather]] or ([01:00|8] and (Value("sc.Urlaub.zuhause") eq "off")) or [02:30]) (set sw.li.eg.Wohnzimmer.01 off)
So wie ich das verstehe, aktualisiert das Modul eine Stunde vor dem kalkulierten Zeitpunkt die entsprechenden sr_weather und ss_weather Werte neu.
Heute ergab sich, dass die neuen Werte allerdings über eine Stunde vordatiert wurden, dementsprechend wurden die Leuchten weder bei sr_weather ausgeschaltet, noch bei ss_weather eingeschaltet:
2016-03-31_07:18:37 MyTwilight 5
2016-03-31_07:18:37 MyTwilight light: 5
2016-03-31_07:18:37 MyTwilight aktEvent: sr_indoor
2016-03-31_07:18:37 MyTwilight nextEvent: sr_weather
2016-03-31_07:18:37 MyTwilight nextEventTime: 08:36:05
2016-03-31_07:36:10 MyTwilight sr_weather: 07:09:52
2016-03-31_07:36:10 MyTwilight ss_weather: 19:58:45
2016-03-31_07:36:10 MyTwilight 6
2016-03-31_07:36:10 MyTwilight light: 6
2016-03-31_07:36:10 MyTwilight aktEvent: sr_weather
2016-03-31_07:36:10 MyTwilight nextEvent: ss_weather
2016-03-31_07:36:10 MyTwilight nextEventTime: 19:58:45
2016-03-31_17:34:41 MyTwilight sr_weather: 07:09:52
2016-03-31_17:34:41 MyTwilight ss_weather: 19:58:45
2016-03-31_18:58:47 MyTwilight sr_weather: 09:26:57
2016-03-31_18:58:47 MyTwilight ss_weather: 17:43:02
2016-03-31_18:58:47 MyTwilight 7
2016-03-31_18:58:47 MyTwilight light: 5
2016-03-31_18:58:47 MyTwilight aktEvent: ss_weather
2016-03-31_18:58:47 MyTwilight nextEvent: ss_indoor
2016-03-31_18:58:47 MyTwilight nextEventTime: 19:52:15
Das ist mir bisher noch nicht untergekommen. Ist das ein neues Problem, oder ist das normal und ich wurde bis jetzt nur verschont?
Die neue Yahoo API ist im Moment nur sporadisch zu erreichen. Das sorgt dafür das bei 4 von 5 versuchen ein timed out kommt. Also keine Daten kommen. Das sieht man dran das im Internal CONDITION eine -1 steht.
Grüße
CONDITION: -1 taucht heute in der Tat zweimal im Log auf.
Mit der alten API wurden die Werte allerdings doch auch nur um 00:00 Uhr, einmal morgens und eine Stunde vor dem kalkulierten Zeitpunkt neu ermittelt (lt. Log aus Februar), also eigentlich genauso wie heute.
Ist es dann evtl. ein alt bekanntes Problem mit der Vorverlegung um über eine Stunde bei plötzlichem Wetterumschwung?
Ich kann mich erinnern das letztes Jahr auch ein zweimal beobachtet zu haben. Ob und in wie fern das ein Problem ist weiß ich nicht. Allerdings wenn das Wetter von Sonne am Tag auf Graupel am Abend um schlägt kann sich das ganze ss_weather sicherlich schon um eine Stunde ändern. Stecke da jetzt nicht so tief drin muß ich gestehen.
Ich habe soeben im Eröffnungsthread eine saubere aktuelle Version des Modules eingetragen.
Ich hatte in der vorherigen Version noch einen Fehler, habe vergessen eine Variable mit zu übergeben. Ausserdem habe ich nun auf JSON umgestellt.
Grüße
Irgendetwas stimmt noch nicht mit Twilight.
Ich habe heute Mittag die neue Version eingespielt und stelle gerade fest, dass nun ss_weather nach ss_indoor fällt:
2016-04-01_13:12:16 MyTwilight ss_indoor: 19:53:55
2016-04-01_13:12:16 MyTwilight ss: 20:00:26
...
2016-04-01_19:00:29 MyTwilight sr_weather: 07:07:37
2016-04-01_19:00:29 MyTwilight ss_weather: 20:00:26
2016-04-01_19:00:29 MyTwilight 6
2016-04-01_19:00:29 MyTwilight light: 6
2016-04-01_19:00:29 MyTwilight aktEvent: sr_weather
2016-04-01_19:00:29 MyTwilight nextEvent: ss_weather
2016-04-01_19:00:29 MyTwilight nextEventTime: 20:00:26
...
2016-04-01_19:53:55 MyTwilight aktEvent: ss_indoor
2016-04-01_19:53:55 MyTwilight nextEvent: ss
2016-04-01_19:53:55 MyTwilight nextEventTime: 20:00:26
...
2016-04-01_20:00:26 MyTwilight 7
2016-04-01_20:00:26 MyTwilight light: 5
2016-04-01_20:00:26 MyTwilight aktEvent: ss_weather
2016-04-01_20:00:26 MyTwilight nextEvent: ss_indoor
2016-04-01_20:00:26 MyTwilight nextEventTime: 19:53:55
2016-04-01_20:00:27 MyTwilight 9
2016-04-01_20:00:27 MyTwilight light: 3
2016-04-01_20:00:27 MyTwilight aktEvent: ss
2016-04-01_20:00:27 MyTwilight nextEvent: ss_civil
2016-04-01_20:00:27 MyTwilight nextEventTime: 20:40:04
Für mein Verständnis kann das nicht vorkommen, oder? Das Wetter kann die "gefühlte Dämmerung" morgens lediglich verzögern und abends vorverlegen (deckt sich mit der Anleitung im Wiki und Sichtung meiner Logs und Plots).
Im besten Fall kann nur gelten: sr_indoor = sr_weather und ss_weather = ss_indoor, bei wolkenlosem Himmel.
Kann es sein, dass ss_weather und ss_indoor vertauscht sind?
Gib mal ein list von Deinem Device. Es gibt noch Probleme beim beziehen der JSON Daten. Schau mal im Reading Condition. Steht da bei Dir ne -1?
Ja, Condition ist -1.
Internals:
CONDITION -1
DEF 51... 7... 1 ...
INDOOR_HORIZON 1
LATITUDE 51...
LONGITUDE 7...
NAME MyTwilight
NR 1043
STATE 12
SUNPOS_OFFSET 300
SWIP 0
TYPE Twilight
WEATHER ...
WEATHER_HORIZON 0
Readings:
2016-04-01 22:05:51 aktEvent ss_astro
2016-04-01 22:38:01 azimuth 312.33
2016-04-01 22:38:01 compasspoint west-northwest
2016-04-01 21:53:14 condition -1
2016-04-01 06:09:57 condition_txt Scattered Showers
2016-04-01 22:38:01 elevation -21.12
2016-04-01 22:05:51 horizon -18
2016-04-01 22:05:51 light 0
2016-04-01 22:05:51 nextEvent sr_astro
2016-04-01 22:05:51 nextEventTime 05:02:23
2016-04-01 21:53:14 sr 07:07:37
2016-04-01 21:53:14 sr_astro 05:02:23
2016-04-01 21:53:14 sr_civil 06:28:03
2016-04-01 21:53:14 sr_indoor 07:14:07
2016-04-01 21:53:14 sr_naut 05:46:48
2016-04-01 21:53:14 sr_weather 07:07:37
2016-04-01 21:53:14 ss 20:02:06
2016-04-01 21:53:14 ss_astro 22:05:51
2016-04-01 21:53:14 ss_civil 20:41:50
2016-04-01 21:53:14 ss_indoor 19:55:35
2016-04-01 21:53:14 ss_naut 21:23:20
2016-04-01 21:53:14 ss_weather 20:02:06
2016-04-01 22:05:51 state 12
2016-04-01 22:38:01 twilight 0
2016-04-01 22:38:01 twilight_weather 0
Timer:
Mytwilight_midnight:
HASH MyTwilight
MODIFIER Midnight
NAME MyTwilight_Midnight
Mytwilight_sr:
DEG 0
HASH MyTwilight
LIGHT 4
MODIFIER sr
NAME MyTwilight_sr
NAMENEXT sr_indoor
STATE 4
SWIP 0
TIME 1459487257.03
Mytwilight_sr_astro:
DEG -18
HASH MyTwilight
LIGHT 1
MODIFIER sr_astro
NAME MyTwilight_sr_astro
NAMENEXT sr_naut
STATE 1
SWIP 0
TIME 1459479743
Mytwilight_sr_civil:
DEG -6
HASH MyTwilight
LIGHT 3
MODIFIER sr_civil
NAME MyTwilight_sr_civil
NAMENEXT sr
STATE 3
SWIP 0
TIME 1459484883.02
Mytwilight_sr_indoor:
DEG 1
HASH MyTwilight
LIGHT 5
MODIFIER sr_indoor
NAME MyTwilight_sr_indoor
NAMENEXT sr_weather
STATE 5
SWIP 0
TIME 1459487647.04
Mytwilight_sr_naut:
DEG -12
HASH MyTwilight
LIGHT 2
MODIFIER sr_naut
NAME MyTwilight_sr_naut
NAMENEXT sr_civil
STATE 2
SWIP 0
TIME 1459482408.01
Mytwilight_sr_weather:
DEG 0
HASH MyTwilight
LIGHT 6
MODIFIER sr_weather
NAME MyTwilight_sr_weather
NAMENEXT ss_weather
STATE 6
SWIP 0
TIME 1459487257.05
Mytwilight_ss:
DEG 0
HASH MyTwilight
LIGHT 3
MODIFIER ss
NAME MyTwilight_ss
NAMENEXT ss_civil
STATE 9
SWIP 0
TIME 1459533726.97
Mytwilight_ss_astro:
DEG -18
HASH MyTwilight
LIGHT 0
MODIFIER ss_astro
NAME MyTwilight_ss_astro
NAMENEXT sr_astro
STATE 12
SWIP 0
TIME 1459541151
Mytwilight_ss_civil:
DEG -6
HASH MyTwilight
LIGHT 2
MODIFIER ss_civil
NAME MyTwilight_ss_civil
NAMENEXT ss_naut
STATE 10
SWIP 0
TIME 1459536110.98
Mytwilight_ss_indoor:
DEG 1
HASH MyTwilight
LIGHT 4
MODIFIER ss_indoor
NAME MyTwilight_ss_indoor
NAMENEXT ss
STATE 8
SWIP 0
TIME 1459533335.96
Mytwilight_ss_naut:
DEG -12
HASH MyTwilight
LIGHT 1
MODIFIER ss_naut
NAME MyTwilight_ss_naut
NAMENEXT ss_astro
STATE 11
SWIP 0
TIME 1459538600.99
Mytwilight_ss_weather:
DEG 0
HASH MyTwilight
LIGHT 5
MODIFIER ss_weather
NAME MyTwilight_ss_weather
NAMENEXT ss_indoor
STATE 7
SWIP 0
TIME 1459533726.95
Mytwilight_sunpos:
HASH MyTwilight
MODIFIER sunpos
NAME MyTwilight_sunpos
Tw:
Sr:
DEG 0
LIGHT 4
NAME sr
NAMENEXT sr_indoor
STATE 4
SWIP 0
TIME 1459487257.03
Sr_astro:
DEG -18
LIGHT 1
NAME sr_astro
NAMENEXT sr_naut
STATE 1
SWIP 0
TIME 1459479743
Sr_civil:
DEG -6
LIGHT 3
NAME sr_civil
NAMENEXT sr
STATE 3
SWIP 0
TIME 1459484883.02
Sr_indoor:
DEG 1
LIGHT 5
NAME sr_indoor
NAMENEXT sr_weather
STATE 5
SWIP 0
TIME 1459487647.04
Sr_naut:
DEG -12
LIGHT 2
NAME sr_naut
NAMENEXT sr_civil
STATE 2
SWIP 0
TIME 1459482408.01
Sr_weather:
DEG 0
LIGHT 6
NAME sr_weather
NAMENEXT ss_weather
STATE 6
SWIP 0
TIME 1459487257.05
Ss:
DEG 0
LIGHT 3
NAME ss
NAMENEXT ss_civil
STATE 9
SWIP 0
TIME 1459533726.97
Ss_astro:
DEG -18
LIGHT 0
NAME ss_astro
NAMENEXT sr_astro
STATE 12
SWIP 0
TIME 1459541151
Ss_civil:
DEG -6
LIGHT 2
NAME ss_civil
NAMENEXT ss_naut
STATE 10
SWIP 0
TIME 1459536110.98
Ss_indoor:
DEG 1
LIGHT 4
NAME ss_indoor
NAMENEXT ss
STATE 8
SWIP 0
TIME 1459533335.96
Ss_naut:
DEG -12
LIGHT 1
NAME ss_naut
NAMENEXT ss_astro
STATE 11
SWIP 0
TIME 1459538600.99
Ss_weather:
DEG 0
LIGHT 5
NAME ss_weather
NAMENEXT ss_indoor
STATE 7
SWIP 0
TIME 1459533726.95
Attributes:
event-on-update-reading .*
group Umwelt
room Umwelt
Deswegen fehlen die korrekten Daten um Weather aus zu werten. Daher die großen Unterschiede
Zitatss_weather = ss_indoor, bei wolkenlosem Himmel.
das sehe ich aber anders.
innen ist es
immer dunkler als draussen. selbst wenn draussen wolken sind, ist es innen noch dunkler. also ist ss_indoor immer vor ss_weather. so wie in deinem list.
es sei denn, du machst innen das licht an. 8)
bei wolkenlosem himmel ist ss_weather = ss.
@CoolTux
Ok. Dann warten wir mal ab, bis es mit JSON wieder funktioniert.
Danke.
@frank
Rein logisch betrachtet, hast Du zunächst Recht, natürlich ist es innen ohne zusätzliche Beleuchtung i.d.R. dunkler als draußen, obwohl ich in unserem Wintergarten nicht wirklich einen Unterschied sehe... ;)
In der Twilight-Berechnung kam es allerdings bei gutem Wetter ständig zu dem Fall sr_indoor = sr_weather oder ss_weather = ss_indoor:
2016-02-28_07:24:22 MyTwilight aktEvent: sr
2016-02-28_07:24:22 MyTwilight nextEvent: sr_indoor
2016-02-28_07:24:22 MyTwilight nextEventTime: 07:30:59
2016-02-28_07:25:35 MyTwilight azimuth: 102.87
2016-02-28_07:25:35 MyTwilight elevation: 0.82
2016-02-28_07:25:35 MyTwilight twilight: 71.2
2016-02-28_07:25:35 MyTwilight twilight_weather: 65.6
2016-02-28_07:25:35 MyTwilight compasspoint: east
2016-02-28_07:30:35 MyTwilight azimuth: 103.85
2016-02-28_07:30:35 MyTwilight elevation: 1.57
2016-02-28_07:30:35 MyTwilight twilight: 75.4
2016-02-28_07:30:35 MyTwilight twilight_weather: 69.8
2016-02-28_07:30:35 MyTwilight compasspoint: east
2016-02-28_07:30:59 MyTwilight 5
2016-02-28_07:30:59 MyTwilight light: 5
2016-02-28_07:30:59 MyTwilight horizon: 1
2016-02-28_07:30:59 MyTwilight aktEvent: sr_indoor
2016-02-28_07:30:59 MyTwilight nextEvent: sr_weather
2016-02-28_07:30:59 MyTwilight nextEventTime: 07:30:59
...
2016-02-29_07:22:12 MyTwilight nextEvent: sr_indoor
2016-02-29_07:22:12 MyTwilight nextEventTime: 07:28:48
2016-02-29_07:24:01 MyTwilight azimuth: 102.37
2016-02-29_07:24:01 MyTwilight elevation: 0.91
2016-02-29_07:24:01 MyTwilight twilight: 71.7
2016-02-29_07:24:01 MyTwilight twilight_weather: 66.1
2016-02-29_07:24:01 MyTwilight compasspoint: east
2016-02-29_07:28:48 MyTwilight 5
2016-02-29_07:28:48 MyTwilight light: 5
2016-02-29_07:28:48 MyTwilight horizon: 1
2016-02-29_07:28:48 MyTwilight aktEvent: sr_indoor
2016-02-29_07:28:48 MyTwilight nextEvent: sr_weather
2016-02-29_07:28:48 MyTwilight nextEventTime: 07:28:48
...
2016-02-29_16:58:47 MyTwilight ss_weather: 17:58:46
...
2016-02-29_17:58:47 MyTwilight 7
2016-02-29_17:58:47 MyTwilight light: 5
2016-02-29_17:58:47 MyTwilight horizon: 1
2016-02-29_17:58:47 MyTwilight aktEvent: ss_weather
2016-02-29_17:58:47 MyTwilight nextEvent: ss_indoor
2016-02-29_17:58:47 MyTwilight nextEventTime: 17:58:46
2016-02-29_17:58:47 MyTwilight 8
2016-02-29_17:58:47 MyTwilight light: 4
2016-02-29_17:58:47 MyTwilight horizon: 1
2016-02-29_17:58:47 MyTwilight aktEvent: ss_indoor
2016-02-29_17:58:47 MyTwilight nextEvent: ss
2016-02-29_17:58:47 MyTwilight nextEventTime: 18:05:23
usw.
Wohlgemerkt, ausschließlich bei wolkenlosem Himmel und mit dem "alten" Twilight-Modul...
Um mal kurz was klar zu stellen. Es gibt kein neues oder altes.
Alles was ich gemacht habe ist den Bezug der Weather Daten an zu passen. Das war es auch schon. Ansonsten wurde nicht geändert.
Aber ich denke mir dadurch das oft -1 in den Condition steht kommt es zu den erwähnten Effekten. Minus eins steht immer da wenn keine Wetterdaten erhalten wurden.
Mea culpa.
Ich habe keine Ahnung von der Modul-Programmierung, bin nur sehr dankbar, dass Du Dich der Sache angenommen hast und uns hilfst! :)
Zitatnatürlich ist es innen ohne zusätzliche Beleuchtung i.d.R. dunkler als draußen,
immer, sogar nachts, wenn es regnet.
es gibt draussen immer ein restlicht und das wird innen logischerweise weniger. sogar in deinem wintergarten, weil mindestens auf einer seite bestimmt ein wand steht. :)
deine beobachtung kommt sicherlich, weil ss/sr_weather eine wetterbedingte verschiebung von ss/sr ist. genauso verhält es sich mit ss/sr_indoor. beide haben eigentlich nur einen echten bezug zu ss/sr. wahrscheinlich wurde in der berechnung nur sichergestellt, dass weather nicht vor indoor auftaucht, also mindestens immer gleich ist.
Zitat von: frank am 02 April 2016, 00:33:30
wahrscheinlich wurde in der berechnung nur sichergestellt, dass weather nicht vor indoor auftaucht, also mindestens immer gleich ist.
Anscheinend ist eben das
nicht sichergestellt, was man an meinen Logs ablesen kann...
Das war ja das eigentliche Anliegen meines Posts, und nicht, ob durch integrierte Restlichtverstärker, rundherum angebrachte, lichtbündelnde Parabolspiegel und meine persönliche Zimmerplantage von "Starlight Avatar" es in meinem Wintergarten nicht doch heller sein könnte als draußen... ;)
Zitat von: frank am 02 April 2016, 00:33:30
beide haben eigentlich nur einen echten bezug zu ss/sr.
Wird ss_weather nicht durch den zusätzlichen "Wetter-Horizont" errechnet? Dieser "Wetter-Horizont" wird im Modul wie folgt ermittelt (wenn ich mich nicht irre):
$hash->{WEATHER_HORIZON} = $hash->{WEATHER_CORRECTION} + $hash->{INDOOR_HORIZON};
Somit wäre ss_weather eine wetterbedingte Verschiebung von ss_indoor und nur mittelbar zu ss (solange Indoor-Horizont > 0).
ZitatSomit wäre ss_weather eine wetterbedingte Verschiebung von ss_indoor und nur mittelbar zu ss (solange Indoor-Horizont > 0).
ja, ja..., wenn man nicht gleich selber in den code schaut. :)
mit wetterdaten (0<=condition<=47)
$hash->{WEATHER_HORIZON} = $hash->{WEATHER_CORRECTION} + $hash->{INDOOR_HORIZON};
ohne wetterdaten (condition=-1)
$hash->{WEATHER_HORIZON} = "0";
da müsste dann wohl eigentlich indoor_horizon gesetzt werden. also:
$hash->{WEATHER_HORIZON} = $hash->{INDOOR_HORIZON};
oder irgend eine andere korrektur von indoor_horizon, vielleicht der letzte gültige wert.
wenn man indoor_horizon im def nicht angibt, fällt es ja nicht so auf. aber nicht mehr, wenn yahoo streikt und indoor != 0.
Ich hoffe ja das Yahoo bald wieder stabil läuft. Leider ist es wenig hilfreich im Moment wenn Twilight nur zweimal am Tag die Daten sich holen will. Da ist die Chance groß das es klemmt im Moment.
Ich will mit Boris zusammen schauen das wir ein Caching einbauen in die YahooWeatherAPI. So hat man größere Chancen das Twilight wenigstens halbwegs aktuelle Daten bekommt auch wenn Yahoo mal streikt.
Hallo Leute,
bin wieder zurück aus dem Osterurlaub und kümmere mich wieder um das Modul TW.
Werde versuchen eine Version zu erstellen, die auch auf Fritzboxen weiterhin läuft, weil ich mich sonst selbst abhängen würde.
Der Dienst scheint wirklich etwas unzuverlässig geworden zu sein.
Mal sehen was man machen kann
Willkommen zurück. Hoffe Du hast Deinen Urlaub genossen.
Grüße
Leon
ja, Urlaub war super.
Wie ist denn eure Erfahrung mit dem Yahoowetterservice nach der Umstellung.
Ich mache die Erfahrung, dass er unbrauchbar geworden ist.
Die Anfragen laufen einfach zu oft in ein Timeout. Selbst bei einem angeforderten XML Response kommt es zu Timeouts. Interessanter Weise weniger wie bei JSON. Lach
So wie es Twilight im Moment macht. Zweimal die aktuellen Daten holen ist die Chance groß in ein Timeout zu laufen. Im Moment lasse ich mit Weather alle 30 min abfragen. Spätestens nach dem 3 mal habe ich dann Erfolg.
Entweder wir schauen wie weit Boris mit der Caching Idee ist, oder man sagt sollten keine Daten da sein schaue ob das Weather Modul definiert ist und hole von da die letzten Daten. Prüfe das sie nicht älter wie 2 Stunden sind.
Es gibt neu die Funktion ReadingsAge, so an zu wenden wie ReadingsVal. Nur der letzte Wert sollte ein Zeitformat haben
ReadingsAge("Device","Reading","1970-01-01 12:00:00")
im code hatte ich etwas von externem wetter gesehen, kannte ich noch garnicht. ist vielleicht zur zeit am besten, wenn man extern auf zb das weather-modul zugreift. da sind die daten ja dann eh schon gespeichert. ;)
ich hatte ja auch schon ein paar stunden mit httpmod bei yahoo daten geholt. da waren komischerweise keinerlei fehler zu erkennen, sogar mit 30 sekunden interval. kann aber auch nur zufall gewesen sein.
Zitat von: CoolTux am 02 April 2016, 21:38:06
Die Anfragen laufen einfach zu oft in ein Timeout. Selbst bei einem angeforderten XML Response kommt es zu Timeouts. Interessanter Weise weniger wie bei JSON. Lach
So wie es Twilight im Moment macht. Zweimal die aktuellen Daten holen ist die Chance groß in ein Timeout zu laufen. Im Moment lasse ich mit Weather alle 30 min abfragen. Spätestens nach dem 3 mal habe ich dann Erfolg.
Entweder wir schauen wie weit Boris mit der Caching Idee ist, oder man sagt sollten keine Daten da sein schaue ob das Weather Modul definiert ist und hole von da die letzten Daten. Prüfe das sie nicht älter wie 2 Stunden sind.
Es gibt neu die Funktion ReadingsAge, so an zu wenden wie ReadingsVal. Nur der letzte Wert sollte ein Zeitformat haben
ReadingsAge("Device","Reading","1970-01-01 12:00:00")
ich habe das Modul auf den neuen Aufrufstring von yahoo umgestellt, lasse mir die Daten im json-Format geben und gebe 10 Sekunden als timeout Zeit mit.
In der Regel wird das timeout nicht ausgeschöpft, sondern es kommt schnell als Ergebnis
"results":
null
Entweder haben sie im Programm noch einen Fehler oder sie wollen nicht regelmäßig liefern.
Wenn es dann mal klappt sieht das Ergebnis so aus:
"results":
{"channel":{"units":{"distance":"km","pressure":"mb","speed":"km/h","temperature":"C"},"title":"Yahoo! Weather - Burgdorf, NI, DE","link":"http://us.rd.yahoo.com/dailynews/rss/weather/Country__Country/*https://weather.yahoo.com/country/state/city-12833457/","description":"Yahoo! Weather for Burgdorf, NI, DE","language":"en-us","lastBuildDate":"Sun, 03 Apr 2016 11:02 AM CEST","ttl":"60","location":{"city":"Burgdorf","country":"Germany","region":" NI"},"wind":{"chill":"48","direction":"120","speed":"17.70"},"atmosphere":{"humidity":"71","pressure":"34067.08","rising":"0","visibility":"25.91"},"astronomy":{"sunrise":"6:46 am","sunset":"8:0 pm"},"image":{"title":"Yahoo! Weather","width":"142","height":"18","link":"http://weather.yahoo.com","url":"http://l.yimg.com/a/i/brand/purplelogo//uh/us/news-wea.gif"},"item":{"title":"Conditions for Burgdorf, NI, DE at 09:00 AM CEST","lat":"52.4739","long":"10.01198","link":"http://us.rd.yahoo.com/dailynews/rss/weather/Country__Country/*https://weather.yahoo.com/country/state/city-12833457/","pubDate":"Sun, 03 Apr 2016 09:00 AM CEST","condition":{"code":"39","date":"Sun, 03 Apr 2016 09:00 AM CEST","temp":"10","text":"Scattered Showers"},
davon interessiert nur:
"condition":{"code":"39","date":"Sun, 03 Apr 2016 09:00 AM CEST","temp":"10","text":"Scattered Showers"
Timeouts sehe ich so gut wie nie, selbst wenn ich die Daten jede Minute anfordere.
auf zwei Stunden alte Daten des Wettermoduls würde ich nicht so gern zurückgreifen, weil sich dann doch schnell hier im Forum die Beschwerden häufen, dass trotz des Gewitterschauers die light level nicht korrekt dazu angepasst worden seien.
Mal sehen ob sich noch Besserung einstellt.
Es ist durchaus möglich daß die Timeout Fehlermeldung von Boris sein API Modul als err zurück gegeben wird,, weil mit dem Response nichts angefangen werden kann.
Mal ab von den momentanen Problemen empfehle ich das Abrufen über die API zu machen. So muss in Zukunft nur an einem Punkt geschraubt werden wenn mal wieder was ist, ausserdem kann das Twilight Modul wenn es denn mal soweit ist leicht auf andere APIs umgestellt werden. Auch durch ein Attribut.
Mir ist bewusst das die Wetterdaten nur nebenbei sind und nicht der Kern des Modules. Aber es würden sich für die Zukunft positive Möglichkeiten ergeben.
Kannst Du nicht so machen das einfach alle zwei Stunden abgerufen wird und zusätzlich eine Stunde vor sX_Weather?
Grüße
Hallo Dietmar,
Vielleicht von Interesse. Boris hat das Caching fertig.
https://forum.fhem.de/index.php/topic,51380.msg434611.html#msg434611
Das wird mir nichts nutzen.
Es läuft auf Fritzboxen nicht. Ich werde etwas anderes bauen.
Alles klar. Wenn Dich jemand unterstützen kann sag bescheid.
Abendliche Grüße
http://cpansearch.perl.org/src/MAKAMAKA/JSON-2.90/lib/JSON.pm (http://cpansearch.perl.org/src/MAKAMAKA/JSON-2.90/lib/JSON.pm) läuft auf der Fritte nicht, wenn man es hinkopiert?
nein nein - ich werde das schon machen - bin kurz vor der Fertigstellung.
Ich hole mir die Daten im JSON Format und wandele sie selbst mit 4 Perl-Befehlen in ein Perlhash um, eigentlich ganz einfach. Wenn Yahoo die Daten nicht liefert, wiederhole ich die Anfrage nach 60 Sekunden. So nach dem 3-4 Mal kommt dann eine valide Antwort.
Das bleibt dann solange bis yahoo besser wird.
Ich fahre gleich noch einen Massentest.
Zitat von: Dr. Boris Neubert am 03 April 2016, 20:07:01
http://cpansearch.perl.org/src/MAKAMAKA/JSON-2.90/lib/JSON.pm (http://cpansearch.perl.org/src/MAKAMAKA/JSON-2.90/lib/JSON.pm) läuft auf der Fritte nicht, wenn man es hinkopiert?
Habe ich auch schon herausgefunden.
Das YahooWeatherApi auch nicht weil es https nutzt.
Wie gesagt, mache aus JSON selbst ein Perlhash, geht ganz einfach.
Können gerne an dem API schnitzen, damit es sowohl http als auch https nutzen kann.
Wenn sich das JSON so leicht in ein Perlhash verwandeln lässt, können wir JSON aus dem YahooWeatherAPI rausschmeißen und durch Deine Befehle ersetzen. Das ist ja alles gut gekapselt dort.
Viele Grüße
Boris
Also anstelle von https habe ich http genutzt - kommt auch eine Antwort, wenn auch manchmal sporadisch.
ich verwandele JSON folgendermaßen in ein Perlhash:
my $perlAusdruck = $result; #enthält JSON.
$perlAusdruck =~ s/\":/\"=>/g;
$perlAusdruck =~ s/null/undef/g;
$perlAusdruck =~ s/true/1/g;
$perlAusdruck =~ s/false/0/g;
$perlAusdruck = '$resHash = ' .$perlAusdruck;
my $resHash;
eval $perlAusdruck;
Ich habe mit JSON bisher nicht so viel zu tun gehabt. Deshalb weiß ich nicht, ob damit schon alles erschlagen ist. Ich glaube aber, dass damit schon eine Menge an JSON verarbeitet werden kann.
Die Daten aus dem Perlhash bekomme ich dann so:
$cond_code = $resHash->{query}{results}{channel}{item}{condition}{code};
$cond_txt = $resHash->{query}{results}{channel}{item}{condition}{text};
$temperatur = $resHash->{query}{results}{channel}{item}{condition}{temp};
Wäre das ein gangbarer Weg?
@Boris :
Und ist das machbar? Oder bist du geschockt?
Schockiert allenfalls ob der Einfachheit des Codes. Der Trick ist aus JSON gültiges Perl zu machen und dann eval drauf los zu lassen.
Werde das einbauen und die Abhängigkeit zu JSON loswerden, sofern der Test positiv verläuft.
Außerdem baue ich noch einen Parameter ein, mit dem man entweder http oder https anfordern kann. Wenn ich das richtig sehe, muss das dann einstellbar sein, und zwar am Weather-Device und am Twilight-Device. OK?
Grüße
Boris
Werde das einbauen und die Abhängigkeit zu JSON loswerden, sofern der Test positiv verläuft.
Bei mir läuft das schon - ich werde das TW Modul wahrscheinlich heute noch freigeben und anschließend auf dein Modul umbauen.
Eventuell könnte man noch die Ersetzung von ": durch "=> irgendwie verbessern, aber für yahoo scheint es auszureichen und zu klappen.
Habe Massentests gemacht und kann sagen, dass yahoo im Vergleich zu Sonntag inzwischen viel zuverlässiger geworden ist.
Heute Abend ab 18:00 Uhr alle 5 Minuten einen Test durchgeführt - nur am Anfang 4 Versuche gebraucht, danach kam regelmäßig eine Antwort.
so sieht jetzt 1 Stunde Test aus:
2016.04.04 21:31:35 3: [Twilight] 0 attempt(s) needed to get valid weather data from yahoo
2016.04.04 21:27:44 3: [Twilight] 1 attempt(s) needed to get valid weather data from yahoo
2016.04.04 21:21:39 3: [Twilight] 0 attempt(s) needed to get valid weather data from yahoo
2016.04.04 21:16:37 3: [Twilight] 0 attempt(s) needed to get valid weather data from yahoo
2016.04.04 21:12:43 3: [Twilight] 1 attempt(s) needed to get valid weather data from yahoo
2016.04.04 21:06:37 3: [Twilight] 0 attempt(s) needed to get valid weather data from yahoo
2016.04.04 21:01:35 3: [Twilight] 0 attempt(s) needed to get valid weather data from yahoo
2016.04.04 20:56:35 3: [Twilight] 0 attempt(s) needed to get valid weather data from yahoo
2016.04.04 20:52:41 3: [Twilight] 1 attempt(s) needed to get valid weather data from yahoo
2016.04.04 20:46:34 3: [Twilight] 0 attempt(s) needed to get valid weather data from yahoo
2016.04.04 20:42:40 3: [Twilight] 1 attempt(s) needed to get valid weather data from yahoo
2016.04.04 20:38:10 3: [Twilight] 0 attempt(s) needed to get valid weather data from yahoo
eingecheckt
Zitat von: Dietmar63 am 04 April 2016, 21:41:34
eingecheckt
merci für diesen "oldschool" code. 8)
Funktioniert bei mir leider nicht. Ich bin noch auf der suche
Wenn ich diese URL aufrufe, welche in meinem Log erscheint
http://weather.yahooapis.com/forecastrss?w=696269&u=c
2016.04.05 12:38:31 3: [twilightStahnsdorf] got no weather info from yahoo. Error code: http://weather.yahooapis.com/forecastrss?w=696269&u=c: Select timeout/error:
Dann bekomme ich über den gesamten Vormittag diese Ausgabe
<yahoo:error xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" xml:lang="en-US" yahoo:uri="http://yahoo.com">
<yahoo:description>
Please provide valid credentials. OAuth oauth_problem="OST_OAUTH_PARAMETER_ABSENT_ERROR", realm="yahooapis.com"
</yahoo:description>
<yahoo:detail>
Please provide valid credentials. OAuth oauth_problem="OST_OAUTH_PARAMETER_ABSENT_ERROR", realm="yahooapis.com"
</yahoo:detail>
</yahoo:error>
http://weather.yahooapis.com/forecastrss?w=696269&u=c
ist doch die alter Variante des Aufrufs
Ok ich muß noch mal ein Update machen. Ich Dummerschen habe vor 8 Uhr das Update gemacht. Sorry
Hat sich erledigt. Bitte entschuldige Dietmar. Ich geh mich dann mal in die Ecke verziehen mit meinem Hut auf :-[
Bei mir steht ab und an als CONDITION 50 drin, was dann zu einem CONDITION_TXT undefinded führt und die Berechnung von twilight_weather verändert. In diesem Fall ist es so, dass twilight_weather von 20 auf 55 gesprungen ist.
Das habe ich gestern auch schon mal bemerkt.
Gruß,
Stephan
das passiert wenn yahoo nicht liefern kann oder will.
Könnte man dann nicht besser den alten Wert behalten, dann bliebe wenigstens das Reading twilight_weather erstmal erhalten?
Gruß,
Stephan
Zitat von: frank am 05 April 2016, 10:25:11
merci für diesen "oldschool" code. 8)
Viele Wege führen ans Ziel :)
Auf die Idee bin ich auch schon gekommen - frühestens morgen
...das wundert mich nicht. Und da das Wetter ja eh' im Moment bescheiden ist, macht's auch nichts, wenn das noch ein paar Tage dauert.
Ich benutzte das für die Steuerung meines Wake-Up Lichts, aber bis es so früh hell wird, dass sich das mit meinem Aufstehen ausgeht, vergehen wohl noch ein paar Wochen. ;)
Gruß,
Stephan
Hallo zusammen,
ich verstehe die Umstellung/Diskussionen hier nicht so recht. Aber auch ich habe seit einigen Tagen Probleme mit Twilight (letztes FHEM-Update 17.10.2015), und zwar, dass twilight_weather abends offenbar immer zu schnell fällt, weshalb bei mir die Rolläden viel zu früh schliessen. Trotz noch strahlendem Sonnenschein ist twilight_weather hier um ca. 18:00 Uhr schon bei ca. 50% (siehe unten), bzw. ss_weather 17:41:48??? Was genau muss ich tun, damit das wieder wie früher funktioniert?
Internals CONDITION
CONDITION_TXT
DEF 49.601141 11.059894 1 695681
49.601141 11.059894 1 695681
INDOOR_HORIZON 1
LATITUDE 49.601141
LONGITUDE 11.059894
NAME MyTwilight
NR 22
STATE 7
SUNPOS_OFFSET 300
SWIP 1
TEMPERATUR
TYPE Twilight
WEATHER 695681
WEATHER_CORRECTION 20
WEATHER_HORIZON 21
Readings aktEvent ss_weather 2016-04-07 17:41:48
azimuth 261.48 2016-04-07 18:04:17
compasspoint west-southwest 2016-04-07 18:04:17
elevation 18.07 2016-04-07 18:04:17
horizon 21 2016-04-07 17:41:48
light 5 2016-04-07 17:41:48
nextEvent ss_indoor 2016-04-07 17:41:48
nextEventTime 19:46:20 2016-04-07 17:41:48
sr 06:41:47 2016-04-07 13:14:18
sr_astro 04:39:41 2016-04-07 13:14:18
sr_civil 06:03:25 2016-04-07 13:14:18
sr_indoor 06:48:04 2016-04-07 13:14:18
sr_naut 05:23:12 2016-04-07 13:14:18
sr_weather 08:52:16 2016-04-07 16:41:49
ss 19:52:37 2016-04-07 13:14:18
ss_astro 21:54:52 2016-04-07 13:14:18
ss_civil 20:31:02 2016-04-07 13:14:18
ss_indoor 19:46:20 2016-04-07 13:14:18
ss_naut 21:11:18 2016-04-07 13:14:18
ss_weather 17:41:48 2016-04-07 16:41:49
state 7 2016-04-07 17:41:48
twilight 100 2016-04-07 18:04:17
twilight_weather 50.3 2016-04-07 18:04:17
Ein Update
Zitat von: CoolTux am 07 April 2016, 18:28:46
Ein Update
Na, das beantwortet ja alle Fragen!? Mir ist jetzt nicht klar, dass (und was genau) ihr jetzt über den normalen Update-Prozess korrigiert habt.
Ich scheue ein grosses Update, da da bei mir im Anschluss eigentlich immer was nicht mehr so richtig funzt. Und wenn jetzt schon geschrieben steht >>Letzteres wird all die treffen, die die set etwa zwei Jahren in der Doku erwaehnten "unerwuenscht/deprecated" Hinweise nicht ernst genommen haben.<<. Keine Ahnung, ob und was da bei mir alles schlummert...
Dann solltest du dich damit auseinandersetzen. Wenn du meinst, du könntest immer auf einem uralten Stand bleiben und alles funktioniert ewig, musst du dich etwas mehr damit auseinandersetzen auf welche von dir genutzte Module das wahrscheinlich nicht zutrifft (und diese dann meiden). Das hier ist eines davon. FHEM ist ein aktives, lebendes und sich schnell entwickelndes System. Wer da nicht mit machen kann oder möchte, muss dementsprechend damit arbeiten oder FHEM konkret meiden.
Die Änderungen für 5.7 sind für jemanden, der sich mit FHEM ein wenig auseinandergesetzt hat (also den Mindeststand, den man benötigt um FHEM überhaupt vernünftig einsetzen zu können), nicht schwer. Also leg los und trau dich. Für den Fall, dass ist nicht klappt, gibt es backup und vor allem auch restore.
Ich weis ja nicht mal, ob eure Änderungen hier etwas mit 'meinem' twilight_weather-Problemchen zu tun haben. Auf der Basis mag ich mir dann halt keine potentiellen n+1 weiteren Probleme einfangen, die mich wieder tagelang beschäftigen. Aber gut, muss ich dann halt durch...
Die Probleme mit dem Wetter sind dadurch entstanden, dass yahoo die Daten anders anfordern lässt, und uns nicht rechtzeitig informiert hat. Darüber hinaus liefern yahoo die Daten im Moment nicht so zuverlässig wie noch vor 4 Wochen. Wobei ich sagen muss, dass es schon besser geworden ist.
Die Jungs hier im Forum versuchen alle diese Problem zu lösen. Wenn du davon profitieren willst musst du in den sauren Apfel beißen und ein update machen.
Wenn CoolTux schreibt, dass dir ein update hilft, dann würde ich das schon ernst nehmen.
Und du handelst dir mit update keine Probleme ein. Es kann lediglich sein, dass Probleme, die du schon hast, ernst werden oder eben ein paar Anpassungen gemacht werden müssen. Kritische Dinge kannst du per exclude_from_update aussschließen. Wie gesagt: falls es zu schlimm wird, gibt es die entsprechenden Tools. Man muss eben wissen, was man macht, dann ist update sicher kein Problem. Wenn man nicht weiß, was man macht: Finger weg von FHEM.
So, habe jetzt ein Update gemacht, und mein FHEM scheint es überlebt zu haben. Die Twilight-Geschichten scheinen nun wieder richtig zu funktionieren, Danke dafür!
Ausgerechnet eine meiner veröffentlichten Funktionen (on_as_long_as_daylight (http://forum.fhem.de/index.php/topic,23571.0.html)) ging allerdings nicht mehr. Aber das war glücklicher Weise nur ein leicht zu findendes Detail.
Also bei mir ist das mit dem Wetter-Status immer noch so eine Sache. Immer morgens kriegt das Twilight offenbar die Sache mit dem Status nicht hin und dann fällt twilight_weather immer auf 0. Ich habe das mal im Screenshot angehängt - und das habe ich wirklich jeden Morgen.
Im Log steht zu den fraglichen Zeiten immer so etwas:
2016.04.14 00:00:02 3: [Daemmerung] 0 attempt(s) needed to get valid weather data from yahoo
2016.04.14 06:20:05 3: [Daemmerung] 0 attempt(s) needed to get valid weather data from yahoo
2016.04.14 07:08:34 3: [Daemmerung] 0 attempt(s) needed to get valid weather data from yahoo
Gruß,
Stephan
wann war dein letztes update?
Ich meine irgendwas so um den 06.04. oder 07.04. - allerdings habe ich gerade eben noch mal ein Update gemacht und da ist auch noch eine neue Version vom Modul mit runtergekommen...
Ich hatte diesen Thread eigentlich im Auge behalten um zu sehen, ob da noch ein Update kommt und hatte da nichts gesehen.
Ich schaue das morgen wieder an...
Gruß,
Stephan
Die Logik von Twilight hat sich nicht geändert, aber die Wettervorhersage hat sich verschlechtert:
Bei mir ist bester Sonnenschein. Yahoo liefert ScatteredShowers -> führt zu einer Vorverlegung des SS_weather um ca. 12*7 Minuten - schon ist das Licht bei mir an.
Wenn es nicht besser wird müssen wir auf ss_weater verzichten.
und twilight_weather ist schon bei 66.8%
Na ja, es ist ja auch eine Vorhersage... ??? Ich weiß gar nicht, wie häufig das aktuelle Wetter bei Yahoo... na ja... eben aktualisiert wird. Und wenn das Wetter sehr wechselhaft ist, kann das ja auch heißen, viel Sonne und Regen und dannist es ja auchabwechselnd heller und dunkler...
Seit dem Update gestern hat mein twilight_weather zumindest mal keine Komplett-Aussetzer heute morgen, das ist schon mal was.
Gruß,
Stephan
Hallo!
Seit ein paar Wochen passt das Wetter, was Yahoo meldet bei mir nicht mehr. Keine Wolke am Himmel, aber laut Twilight "Mostly Cloudy". Auf der Yahoo-Wetter Seite wird es auch als meist Bewölkt angezeigt.
Dadurch schaltet mein Licht oft viel zu früh an.
Auf meinem Tablet nutze ich als Oberfläche Smartvisu, das auch das aktuelle Wetter anzeigt, jedoch yr.no nutzt. Dort stimmt die Anzeige fast immer mit dem tatsächlichen Wetter überein. Auch wenn irrelevant, aber selbst die von yr.no auf dem Tablet angezeigte Temperatur passt relativ oft zu der tatsächlich gemessenen Temperatur.
Gibt es eine Möglichkeit, dass das Twilight-Modul statt Yahoo-Wetter eher das von yr.no zur Berechnung nutzt?
Ja, geht - ist aber aufwendig und ich habe keine Zeit.
Ich hatte mal darüber nachgedacht, dass wir ein API definieren, und dass man alle Wetter-Provider in eigene Module analog zu YahooWeatherAPI.pm auslagert. Dann greifen Weather und Twilight auf das jeweils komfigurierte API zu. Ist aber Arbeit und Zeit habe ich dafür auch nicht.
Zitat von: swsmily am 26 März 2017, 23:39:36
Hallo!
Seit ein paar Wochen passt das Wetter, was Yahoo meldet bei mir nicht mehr. Keine Wolke am Himmel, aber laut Twilight "Mostly Cloudy". Auf der Yahoo-Wetter Seite wird es auch als meist Bewölkt angezeigt.
Dadurch schaltet mein Licht oft viel zu früh an.
Auf meinem Tablet nutze ich als Oberfläche Smartvisu, das auch das aktuelle Wetter anzeigt, jedoch yr.no nutzt. Dort stimmt die Anzeige fast immer mit dem tatsächlichen Wetter überein. Auch wenn irrelevant, aber selbst die von yr.no auf dem Tablet angezeigte Temperatur passt relativ oft zu der tatsächlich gemessenen Temperatur.
Gibt es eine Möglichkeit, dass das Twilight-Modul statt Yahoo-Wetter eher das von yr.no zur Berechnung nutzt?
du könntest mit httpmod ein "bewölkungs"-reading erzeugen und dann mit folgendem attribut verknüpfen:
ZitatuseExtWeather <device>:<reading>
use data from other devices to calculate twilight_weather.
The reading used shoud be in the range of 0 to 100 like the reading c_clouds in an openweathermap device, where 0 is clear sky and 100 are overcast clouds.
With the use of this attribute weather effects like heavy rain or thunderstorms are neglegted for the calculation of the twilight_weather reading.
useExtWeather <device>:<reading>
Ich hatte so etwas noch im Kopf, wusste aber nicht mehr genau wie es zu nutzen war.
Damit lässt sich jeder Wetterdienst nutzen.
Hallo Zusammen,
nach update auf FHEM 5.8
bekommen ich folgende Meldung.
weis jemand Rat ?
gruß Mac
configfile: MeinWetter: cannot load API YahooWeatherAPI: Can't locate JSON.pm in @INC (you may need to install the JSON module) (@INC contains: . /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl ./FHEM) at FHEM/YahooWeatherAPI.pm line 31, <> line 12.
BEGIN failed--compilation aborted at FHEM/YahooWeatherAPI.pm line 31, <> line 12.
Compilation failed in require at ./FHEM/59_Weather.pm line 445, <> line 12.
Wetter: cannot load API YahooWeatherAPI: Attempt to reload YahooWeatherAPI.pm aborted.
Compilation failed in require at ./FHEM/59_Weather.pm line 445, <> line 27.
Probiers mal mit:
sudo apt-get install libjson-perl
Hallo,
ja Danke, ... habe ein update gemacht..
"sudo apt-get install libjson-perl"
jetzt sind die Meldungen wech, aber der Weather geht nicht wie zuvor.
.. muss wohl jetzt die Config noch mal prüfen ..
Gruß Mac
Hallo Zusammen,
bei mir erzeugt das YahooWeather Modul folgende Fehlermeldung:
JSON text must be an object or array (but found number, string, true, false or null, use allow_nonref to allow this) at FHEM/YahooWeatherAPI.pm line 247.
Leider finde ich den Konfigurationsfehler nicht.
list:
Internals:
API YahooWeatherAPI
APIOPTIONS transport:https,cachemaxage:600
DEF 697740 600 de
INTERVAL 600
LANG de
LOCATION 697740
NAME Wetter
NOTIFYDEV global
NR 25
NTFY_ORDER 50-Wetter
STATE T: 6 H: 73 W: 7 P: 976
TYPE Weather
UNITS c
Readings:
2017-05-09 22:41:11 city Straubing
2017-05-09 22:41:11 code 27
2017-05-09 22:41:11 condition überwiegend wolkig
2017-05-09 22:41:11 country Germany
2017-05-10 22:11:21 current_date_time none
2017-05-09 22:41:11 day_of_week Di
2017-05-09 22:41:11 description Yahoo! Weather for Straubing, BY, DE
2017-05-09 22:41:11 fc10_code 28
2017-05-09 22:41:11 fc10_condition überwiegend wolkig
2017-05-09 22:41:11 fc10_date 18 May 2017
2017-05-09 22:41:11 fc10_day_of_week Do
2017-05-09 22:41:11 fc10_high_c 20
2017-05-09 22:41:11 fc10_icon mostlycloudy
2017-05-09 22:41:11 fc10_low_c 10
2017-05-09 22:41:11 fc1_code 28
2017-05-09 22:41:11 fc1_condition überwiegend wolkig
2017-05-09 22:41:11 fc1_date 09 May 2017
2017-05-09 22:41:11 fc1_day_of_week Di
2017-05-09 22:41:11 fc1_high_c 10
2017-05-09 22:41:11 fc1_icon mostlycloudy
2017-05-09 22:41:11 fc1_low_c 6
2017-05-09 22:41:11 fc2_code 30
2017-05-09 22:41:11 fc2_condition teilweise wolkig
2017-05-09 22:41:11 fc2_date 10 May 2017
2017-05-09 22:41:11 fc2_day_of_week Mi
2017-05-09 22:41:11 fc2_high_c 13
2017-05-09 22:41:11 fc2_icon partly_cloudy
2017-05-09 22:41:11 fc2_low_c 3
2017-05-09 22:41:11 fc3_code 30
2017-05-09 22:41:11 fc3_condition teilweise wolkig
2017-05-09 22:41:11 fc3_date 11 May 2017
2017-05-09 22:41:11 fc3_day_of_week Do
2017-05-09 22:41:11 fc3_high_c 20
2017-05-09 22:41:11 fc3_icon partly_cloudy
2017-05-09 22:41:11 fc3_low_c 3
2017-05-09 22:41:11 fc4_code 47
2017-05-09 22:41:11 fc4_condition vereinzelt Gewitter
2017-05-09 22:41:11 fc4_date 12 May 2017
2017-05-09 22:41:11 fc4_day_of_week Fr
2017-05-09 22:41:11 fc4_high_c 19
2017-05-09 22:41:11 fc4_icon scatteredshowers
2017-05-09 22:41:11 fc4_low_c 11
2017-05-09 22:41:11 fc5_code 11
2017-05-09 22:41:11 fc5_condition Schauer
2017-05-09 22:41:11 fc5_date 13 May 2017
2017-05-09 22:41:11 fc5_day_of_week Sa
2017-05-09 22:41:11 fc5_high_c 16
2017-05-09 22:41:11 fc5_icon chance_of_rain
2017-05-09 22:41:11 fc5_low_c 11
2017-05-09 22:41:11 fc6_code 30
2017-05-09 22:41:11 fc6_condition teilweise wolkig
2017-05-09 22:41:11 fc6_date 14 May 2017
2017-05-09 22:41:11 fc6_day_of_week So
2017-05-09 22:41:11 fc6_high_c 18
2017-05-09 22:41:11 fc6_icon partly_cloudy
2017-05-09 22:41:11 fc6_low_c 11
2017-05-09 22:41:11 fc7_code 28
2017-05-09 22:41:11 fc7_condition überwiegend wolkig
2017-05-09 22:41:11 fc7_date 15 May 2017
2017-05-09 22:41:11 fc7_day_of_week Mo
2017-05-09 22:41:11 fc7_high_c 19
2017-05-09 22:41:11 fc7_icon mostlycloudy
2017-05-09 22:41:11 fc7_low_c 11
2017-05-09 22:41:11 fc8_code 28
2017-05-09 22:41:11 fc8_condition überwiegend wolkig
2017-05-09 22:41:11 fc8_date 16 May 2017
2017-05-09 22:41:11 fc8_day_of_week Di
2017-05-09 22:41:11 fc8_high_c 20
2017-05-09 22:41:11 fc8_icon mostlycloudy
2017-05-09 22:41:11 fc8_low_c 11
2017-05-09 22:41:11 fc9_code 30
2017-05-09 22:41:11 fc9_condition teilweise wolkig
2017-05-09 22:41:11 fc9_date 17 May 2017
2017-05-09 22:41:11 fc9_day_of_week Mi
2017-05-09 22:41:11 fc9_high_c 21
2017-05-09 22:41:11 fc9_icon partly_cloudy
2017-05-09 22:41:11 fc9_low_c 12
2017-05-09 22:41:11 humidity 73
2017-05-09 22:41:11 icon mostlycloudy_night
2017-05-09 22:41:11 isConverted 0
2017-05-10 22:16:39 lastError JSON text must be an object or array (but found number, string, true, false or null, use allow_nonref to allow this) at FHEM/YahooWeatherAPI.pm line 247.
2017-05-09 22:41:11 lat 48.881432
2017-05-09 22:41:11 long 12.57372
2017-05-09 22:41:11 pressure 976
2017-05-09 22:41:11 pressure_trend 0
2017-05-09 22:41:11 pressure_trend_sym =
2017-05-09 22:41:11 pressure_trend_txt gleichbleibend
2017-05-09 22:41:11 pubDate Tue, 09 May 2017 09:00 PM CEST
2017-05-09 22:41:11 pubDateComment okay
2017-05-09 22:41:11 pubDateRemote Tue, 09 May 2017 09:00 PM CEST
2017-05-09 22:41:11 pubDateTs 1494356400
2017-05-09 22:41:11 region BY
2017-05-09 22:41:11 state T: 6 H: 73 W: 7 P: 976
2017-05-09 22:41:11 temp_c 6
2017-05-09 22:41:11 temperature 6
2017-05-10 22:16:39 validity stale
2017-05-09 22:41:11 visibility 16
2017-05-09 22:41:11 wind 7
2017-05-09 22:41:11 wind_chill 5
2017-05-09 22:41:11 wind_condition Wind: N 7 km/h
2017-05-09 22:41:11 wind_direction 0
2017-05-09 22:41:11 wind_speed 7
Fhem:
allowCache 0
interfaces temperature;humidity;wind
Attributes:
room z_FHEM
Danke im Voraus!
Bitte bei neuem Problem mit anderem Modul neues Thema beginnen. Danke
Boris