[Twilight] Umstellung auf YahooWeatherAPI

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

Vorheriges Thema - Nächstes Thema

CoolTux

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

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

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

wird hier dann auch die json-lib benötigt werden?
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

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

ZitatNein ich denke nicht.
wäre schön, sonst hat mein modul-friedhof heute gleich 2 neuzugänge.  :)
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

franky08

@frank
Oder du gibst dir nu mal nen Ruck und steigst auf ein anderes Host System um  ;) ;)

VG
Frank
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

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

Dann wirst Du auch irgendwann mit dem Friedhof leben müssen. Alles alte stirbt mal   ;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

CoolTux

So back to topic, kann mir einer bei der Regex helfen. Der bremst einfach nicht beim ersten "text" nach der "temp"
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

Dr. Boris Neubert

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
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

CoolTux

Hallo Boris,

Vielen Dank für den Tip. Schaue ich mir heute Abend an. Jetzt ist Spielplatzzeit. Lach.
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

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

Da versucht wohl jemand seinen Po zu retten. Lach.
Vielen lieben Dank. Wird heute Abend getestet wenn die Lütten schlafen.


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

CoolTux

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