[Twilight] Umstellung auf YahooWeatherAPI

Begonnen von CoolTux, 28 März 2016, 14:14:28

Vorheriges Thema - Nächstes Thema

frank

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.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

netwalk

@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...
live long and prosper
netwalk
_______________________________________________
INTEL NUC7CJYH, Homematic mit 3x HMLGW, JEELINK mit 18x TX29-DTH-IT, DUOFERNSTICK, FB7690 mit FBDECT, NETATMO, Philips HUE, RFXtrx433, 4x Reolink RLC-81MA

CoolTux

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.
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

netwalk

Mea culpa.
Ich habe keine Ahnung von der Modul-Programmierung, bin nur sehr dankbar, dass Du Dich der Sache angenommen hast und uns hilfst! :)
live long and prosper
netwalk
_______________________________________________
INTEL NUC7CJYH, Homematic mit 3x HMLGW, JEELINK mit 18x TX29-DTH-IT, DUOFERNSTICK, FB7690 mit FBDECT, NETATMO, Philips HUE, RFXtrx433, 4x Reolink RLC-81MA

frank

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.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

netwalk

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).
live long and prosper
netwalk
_______________________________________________
INTEL NUC7CJYH, Homematic mit 3x HMLGW, JEELINK mit 18x TX29-DTH-IT, DUOFERNSTICK, FB7690 mit FBDECT, NETATMO, Philips HUE, RFXtrx433, 4x Reolink RLC-81MA

frank

#51
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.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

CoolTux

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.
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

Dietmar63

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
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

CoolTux

Willkommen zurück. Hoffe Du hast Deinen Urlaub genossen.


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

Dietmar63

ja, Urlaub war super.

Wie ist denn eure Erfahrung mit dem Yahoowetterservice nach der Umstellung.
Ich mache die Erfahrung, dass er unbrauchbar geworden ist.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

CoolTux

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")
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

frank

#57
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.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Dietmar63

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.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

CoolTux

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
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