YAHOO_WEATHER - neue Location codes erforderlich

Begonnen von peewit, 01. Dezember 2009, 18:49:29

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

peewit

Yahoo hat pünktlich zu unserer release auch bei den location-codes für die Wettervorhersage etwas geändert

die alten codes funktionieren nach wie vor parallel, jedoch kann man nur mehr nach dem neuen prinzip die location-codes auf der Homepage feststellen

http://weather.yahooapis.com/forecastrss?p=AUXX0025 (altes prinzip)
http://weather.yahooapis.com/forecastrss?w=551801 (neues prinzip mit WOEID-Codes)

änderung ist hier nachzulesen: http://developer.yahoo.com/weather/


Vorgangsweise nach dem neuen Prinzip

So wie in Doku beschrieben , die location-id feststellen

Beispiel für Aachen

http://weather.yahoo.com/germany/north-rhine-westphalia/aachen-633175/

dann ist die neue location-id (jetzt WOEID)  = 633175


damit das nun auch nach dem neuen Prinzip funktioniert muss man leider am YAHOO_WEATHER Baustein eine kleinigkeit anpassen

-------------------------------------
20: (* URL for DNS UND HTTP-GET *)
   (* Example: http://weather.yahooapis.com/forecastrss?p=94089&u=c *)
   URL_DATA:=STRING_TO_URL(STR:='http://weather.yahooapis.com/forecastrss',
                     DEFAULT_PROTOCOL:='',
                     DEFAULT_PATH:=''
                     );
  URL_DATA.QUERY := CONCAT('w=',LOCATION);
--------------------------------------
man muss nur bei der roten markierung den buchstaben 'p' auf eine 'w' ändern


wir werden bei der nächsten release dem Baustein auf die neuen WOEID-Codes umstellen.

alle die solange nicht warten wollen, können sich den baustein wie oben beschrieben selber anpassen !

mfg peewit


McNugget2000

Geniale Lib.

Nach Modifikation läuft der Baustein korrekt mit den neuen Location-Codes.


Supercool, wenn man Klimaanwendungen hat.

Es scheint sich aber ein Fehler in der Doku der network.lib eingeschlichen zu haben.

Der Eingang Units muss "False" b leiben um °C anzuzeigen.

Ich hoffe, ich sehe das richtig.

Gruss

McNugget

peewit

Hallo McNugget

es freut uns wenn es bei dir nun auch läuft

ZitatDer Eingang Units muss "False" b leiben um °C anzuzeigen.
Ich hoffe, ich sehe das richtig.

du hast recht , hier ist ein fehler in der doku !


McNugget2000

Yes!

Zweite Kerbe für gefunde Fehler..  ;D

Ich nenne mich bald errorbuster..  ;)



Habe mir gerade mal die lib direkt geöffnet.

Die DEMOS sind genial.

So was sollte es auch in der OSCAT.LIB geben, oder in der Doku dazu.
(Ich fürchte, das würde den Rahmen sprengen, oder??)

Oft genug weiss man als einsteiger nicht, wie die Bausteine genau gemeint sind.
Speziell dann, wenn man Strukturen an Eingänge legen muss.

Ohne die Demo-Sektion hätte ich wesentlich länger gebraucht, es einzusetzen.

Gruss

McNugget

martin.k

Hi,

> die DEMOS sind genial.
> So was sollte es auch in der OSCAT.LIB geben, oder in der Doku dazu.
> (Ich fürchte, das würde den Rahmen sprengen, oder??)

Mir geht es genauso. Ohne die Dems hätte ich lange gebastelt.

Fang doch einfach mal mit einer oscat_demo.lib an.
Für jeden Baustein wir man keine Demos brauchen, aber da wo DU z.B. getüftelt hast ;-)

Im Forum hat es einen Abschnitt Anwendungsbeispiele / Application Examples.
Da kannst Du Deine Demo-Lib posten...

Grüße
Martin

gravieren

Zitat von: martin.k in 04. Dezember 2009, 16:47:30

> die DEMOS sind genial.
> So was sollte es auch in der OSCAT.LIB geben, oder in der Doku dazu.
> (Ich fürchte, das würde den Rahmen sprengen, oder??)

Mir geht es genauso. Ohne die Dems hätte ich lange gebastelt.

Fang doch einfach mal mit einer oscat_demo.lib an.
Für jeden Baustein wir man keine Demos brauchen, aber da wo DU z.B. getüftelt hast ;-)

Im Forum hat es einen Abschnitt Anwendungsbeispiele / Application Examples.
Da kannst Du Deine Demo-Lib posten...

Ist doch mal ein guter Vorschlag  .

P.S: Dafür ist diese Rubrik "gut"

martin.k

Hi,

ich habe noch ein Problem mit den Wetterdaten:
Für die Sichtweite lese ich auf http://weather.yahoo.com... für meine Location derzeit "Unlimited".
Als Daten werden per RSS übertragen "1607,69 km".
Na ja. Unbegrenz bzw. 1600 km das ist ja wohl Quatsch.
Entweder "unbekannt" oder vielleicht "sehr weit". Wobei bei der aktuellen Wetterlage (Regen, grauer Himmel) es wohl besser "unwichtig" heissen müsste...

Wie sind Eure Erfahrungen zur Sichtweite?
Vielleicht sollte man hier noch was programmieren...
Grüße Martin

peewit

leider müssen wir uns mit den daten begnügen, die wir über yahoo (indirekt von weather.com) beziehen
sollte jemand konkrete ideen haben, wie wir die daten besser aufbereiten können.....bitte her damit


noch ein kleiner tip !

wetter-datenstruktur

forcast_today_code
cur_conditions_code

hier wird die wetterlage als zahl 0-47 dargestellt

so mancher fragt sich was soll ich damit machen
ich habe zu diesen codes die passenden Wetter-Grafiken (sonne, nebel usw...)

wer interesse hat an den grafiken für eine visualisierung, soll mir bitte eine private nachricht schicken

Wetter-icon übersicht im Anhang


[gelöscht durch Administrator]

martin.k

Hi,

man müsste mal wissen was mit wirklich mit Unlimited gemeint ist. Dann könnte man vielleicht sagen IF Visibility > 500km THEN STRING unbekannt oder "nicht verfügbar"....

Das mit den Grafiken ist so eine Sache... meine waren für die Steuerung zu viel Volumen. Da habe ich einfach ein paar rausgenommen. Nun sieht es wie folgt aus:


FUNCTION_BLOCK wcc_de
(* Weather Condition Code als Text und Icons*)
VAR_INPUT
   CCode : INT;
END_VAR
VAR_OUTPUT
   text_out : STRING(20);
   icon:STRING(6);
END_VAR



IF CCode = 0 THEN text_out := 'Tornado';
ELSIF CCode = 1 THEN text_out := 'Tropensturm'; icon:='5.JPG';
ELSIF CCode = 2 THEN text_out := 'Hurrican'; icon:='5.JPG';
ELSIF CCode = 3 THEN text_out := 'schwere Gewitter'; icon:='5.JPG';
ELSIF CCode = 4 THEN text_out := 'Gewitter'; icon:='5.JPG';
ELSIF CCode = 5 THEN text_out := 'Schneeregen'; icon:='5.JPG';
ELSIF CCode = 6 THEN text_out := 'Graupelschauer'; icon:='6.JPG';
ELSIF CCode = 7 THEN text_out := 'Schnee-Graupel'; icon:='7.JPG';
ELSIF CCode = 8 THEN text_out := 'gefrierender Nebel'; icon:='8.JPG';
ELSIF CCode = 9 THEN text_out := 'Niesel'; icon:='9.JPG';
ELSIF CCode = 10 THEN text_out := 'gefrierender Nebel'; icon:='10.JPG';
ELSIF CCode = 11 THEN text_out := 'Schauer'; icon:='12.JPG';
ELSIF CCode = 12 THEN text_out := 'Schauer'; icon:='12.JPG';
ELSIF CCode = 13 THEN text_out := 'Schneegestöber'; icon:='13.JPG';
ELSIF CCode = 14 THEN text_out := 'leichter Schneefall'; icon:='14.JPG';
ELSIF CCode = 15 THEN text_out := 'Schneesturm'; icon:='16.JPG';
ELSIF CCode = 16 THEN text_out := 'Schneefall'; icon:='16.JPG';
ELSIF CCode = 17 THEN text_out := 'Hagel'; icon:='18.JPG';
ELSIF CCode = 18 THEN text_out := 'Graupel'; icon:='18.JPG';
ELSIF CCode = 19 THEN text_out := 'Dunst'; icon:='19.JPG';
ELSIF CCode = 20 THEN text_out := 'Nebel'; icon:='20.JPG';
ELSIF CCode = 21 THEN text_out := 'trübe'; icon:='21.JPG';
ELSIF CCode = 22 THEN text_out := 'rauchig'; icon:='21.JPG';
ELSIF CCode = 23 THEN text_out := 'stürmisch'; icon:='23.JPG';
ELSIF CCode = 24 THEN text_out := 'windig'; icon:='23.JPG';
ELSIF CCode = 25 THEN text_out := 'kalt'; icon:='26.JPG';
ELSIF CCode = 26 THEN text_out := 'wolkig'; icon:='26.JPG';
ELSIF CCode = 27 THEN text_out := 'bewölkt (Nacht)'; icon:='27.JPG';
ELSIF CCode = 28 THEN text_out := 'bewölkt (Tag)'; icon:='28.JPG';
ELSIF CCode = 29 THEN text_out := 'teilweise bewölkt (Nacht)'; icon:='29.JPG';
ELSIF CCode = 30 THEN text_out := 'teilweise bewölkt (Tag)'; icon:='30.JPG';
ELSIF CCode = 31 THEN text_out := 'klar (Nacht)'; icon:='31.JPG';
ELSIF CCode = 32 THEN text_out := 'sonnig'; icon:='32.JPG';
ELSIF CCode = 33 THEN text_out := 'heiter (Nacht)'; icon:='33.JPG';
ELSIF CCode = 34 THEN text_out := 'heiter (Tag)'; icon:='34.JPG';
ELSIF CCode = 35 THEN text_out := 'Regen und Hagel'; icon:='35.JPG';
ELSIF CCode = 36 THEN text_out := 'heiß'; icon:='36.JPG';
ELSIF CCode = 37 THEN text_out := 'gelegentliche Gewitter'; icon:='37.JPG';
ELSIF CCode = 38 THEN text_out := 'einzelne Gewitter'; icon:='39.JPG';
ELSIF CCode = 39 THEN text_out := 'einzelne Gewitter'; icon:='39.JPG';
ELSIF CCode = 40 THEN text_out := 'teilweise Regen'; icon:='40.JPG';
ELSIF CCode = 41 THEN text_out := 'starker Schneefall'; icon:='41.JPG';
ELSIF CCode = 42 THEN text_out := 'einzelne Schneeschauer'; icon:='42.JPG';
ELSIF CCode = 43 THEN text_out := 'starker Schneefall'; icon:='43.JPG';
ELSIF CCode = 44 THEN text_out := 'teilweise wolkig'; icon:='26.JPG';
ELSIF CCode = 45 THEN text_out := 'Gewitter'; icon:='45.JPG';
ELSIF CCode = 46 THEN text_out := 'Schneeschauer'; icon:='46.JPG';
ELSIF CCode = 47 THEN text_out := 'gelegentliche Gewitter'; icon:='47.JPG';
ELSIF CCode = 3200 THEN text_out := 'FEHLER';
END_IF


Ich habe mir die Icons von Yahoo runtergeladen.
In der Visu wird in Abhängigkeit der Variable ICON dann das entsprechende File aus der definierten Bitmapliste angezeigt.

Viele Grüße und viel Spass...
Martin

peewit

unlimited sichtweite mit > 1600km geht leider nur wenn man im weltraum  sich befindet
eine augenhöhe von 100m ergibt eine sichtweite vom ca 35km

GA_Home

Hallo zusammen

Bin vor kurzem auf die Oscat Bib gestoßen

Echt genial das ganze.

Ich versuche jetzt einige Bausteine zu nutzen. Leider schaffe ich es nicht den YAHOO_WEATHER Baustein zum laufen zu bringen. Habe mir das DEMO Beispiel angesehen und die Änderungen für die URL durchgeführt.

Leider habe ich anscheinend Problem mit der Namensauflösung.

Ich habe eine Beckhoff Steuerung CX1020 mit Windows CE.
Kann das ganze mit der Hardware und Windows CE Problem bereiten?

Oder gibt es eventuell ander Probleme, vielleicht verwende ich den DEMO Baustein auch falsch.

Ich habe ein internes Netzwerk und über eine Router gelange ich ins Internet.

Mein Router ist der, der bei der Netzwerkkarte die DNS beim CX eingetragen ist.
Ich habe beim CX den IE geöffnet und den Request http:...... eingetragen. Dort funktioniert es.

Kann mir jemand helfen?

peewit

#11
hallo GA_Home

Die Network.lib ist für Beckhoff-Systeme nicht getestet und freigegeben !

Die Bibliothek benutzt die SysLibSockets.lib von CoDeSys , und diese wirst du wahrscheinlich auch nicht für dein System haben , oder ?

mfg peewit

DanielW

Hallo!

Ich probiere mich auch gerade an dem Wetterbaustein, habe allerdings noch Probleme.
Bei Einsatz des Demoaufbaus und anschließendem ändern der DNS Server Adresse erhalte ich zwei Fehlermeldungen, die ich auch nach studieren der Anleitungen nicht ganz zuordnen kann.
error_c: 4278190080
error_t: 2

Ich bin etwas ratlos und es wäre schön, wenn mir eventuell jemand einen Hinweis geben könnte.

Viele Grüße und vielen Dank!

peewit

hallo
error_c: 4278190080
error_t: 2

du musst error_c als hex-zahl betrachten dann ergibt dies 0xFF000000 und das bedeutet das der connect über timeout fehlgeschlagen ist
(kein verbindungsaufbau möglich)
diese fehlercode stammt vom IP_CONTROL (siehe baustein doku vom ip_control)
und error_t = 2 bedeutet das die HTTP_GET Funktion dieses problem hatte.
siehe dokumenation des baustein "yahoo_weather"


so wie es aussieht kann deine applikation sich nicht mit dem yahoo_weather server verbinden.

das kann eine falsche oder fehlerhafte gateway-adresse an deiner sps sein !
oder irgendwelche firewall/router probleme...

welche plattform verwendest du den ?

solltest du nicht weiterkommen , dann stelle dein projekt online und ich schau es mir an !
schreibe bitte aber auch dazu
welche ip hat deine sps
welche ip hat dein internetrouter
was hast du bei der gateway-adresse eingestellt !

DanielW

Hallo peewit,

vielen Dank für deine Rückmeldung!
Ich habe alles nochmal ausgiebig getestet, doch leider bleibt die Meldung. Vielleicht findest du ja meinen Fehler. Das Programm habe ich angehängt und hier sind meine Daten:

WAGO I/O IPC G2  758-870/000-111
IP der SPS: 172.31.37.47
IP DNS Server: 193.174.90.66
IP Gateway: 172.31.37.1

Danke schonmal im voraus!

Viele Grüße,

Daniel

[gelöscht durch Administrator]