Homepage

  • Projekte
  • Shop
  • Forum
Erweiterte Suche
  • Schnellzugriff
    • Unbeantwortete Themen
    • Aktive Themen
    • Suche
  • FAQ
  • Anmelden
  • Registrieren
  • Foren-Übersicht
  • Suche

Google Wetter API

Ethernet Mega32 Experimentierboard
Antworten
  • Druckansicht
Erweiterte Suche
12 Beiträge • Seite 1 von 1
Seppel
Beiträge: 21
Registriert: 29.10.2008, 19:35:09

Google Wetter API

  • Zitieren

Beitrag von Seppel » 06.03.2012, 08:29:47

Hallo allerseits!

Ich habe einen Webserver mit nem abgespeckten ETH_M32_EX Code auf einem Atmega328 laufen.
Nun würde ich gerne zum Empfang der Wetterdaten die Google Wetter API verwenden, da diese kostenlos und desweiteren super einfach aufgebaut ist.
Die XML Struktur mit Wetterdaten, die mir bei der Anfrage zurückgeliefert wird, umfasst jedoch ca. 1400 Zeichen. Kann der Prozesor mit einer solchen Größe umgehen? Die MTU_SIZE beträgt 600.
Ich bin kein Spezialist, aber die MTU_SIZE steht doch im Zusammenhang mit der Puffergröße für eingehende Daten, oder???

An alle, die sich mit der httpd und http_get befasst haben die Frage:
Kann ich solch große Datenpakete empfangen und verarbeiten, wie sie die Google Wetter API zurückliefert?


Bsp. Wetterdaten für Frankfurt a.M.:
http://www.google.com/ig/api?weather=60 ... many&hl=de


Viele Grüße
Seppel
Nach oben

Grobi
Beiträge: 3
Registriert: 02.03.2012, 03:14:06

Re: Google Wetter API

  • Zitieren

Beitrag von Grobi » 06.03.2012, 14:29:37

Hallo,
also ich bin auch kein Netzwerkstack-Spezialist aber im TCP header wird doch die "WindowSize" bzw. "MaximumSegmentSize" angegeben die sagt doch aus wie viele bytes der Sender des Segments empfangen kann oder will. Die ist glaub ich im stack : Max_Window_Size = MTU_SIZE - 100 festgelegt. Das müsste doch dem googleserver sagen das er dir nur tcp Packete mit einer maximalen Nutzlast von Max_Window_Size bytes zurückschickt. Ich würde schätzen das dir warscheinlich 2 oder 3 Packete (Segmente) geschickt werden die dann das gesamt Packet bilden.
Aber nagelt mich auf diese Aussage nicht fest und korrigiert mich bitte wenns falsch ist.

MfG
Grobi
Nach oben

Benutzeravatar
Ulrich
Site Admin
Beiträge: 3054
Registriert: 29.02.2004, 18:12:19
Wohnort: Siegen
Kontaktdaten:
Kontaktdaten von Ulrich
Website

Re: Google Wetter API

  • Zitieren

Beitrag von Ulrich » 06.03.2012, 14:42:41

Hallo,

das stimmt so.

Gruß
Uli
Nach oben

Seppel
Beiträge: 21
Registriert: 29.10.2008, 19:35:09

Re: Google Wetter API

  • Zitieren

Beitrag von Seppel » 09.03.2012, 17:41:07

Ok. Danke. Das funktioniert mehr oder weniger. Manchmal kommt ein Paket an, dann mal zwei und wenn man Glück hat, steht sogar mal alles auf der Konsole ;-)

Aber ich bekomme die Wetterdaten nur einmal. Wie kann ich es anstellen, dass die Daten zyklisch (z.B. jede Stunde) abgerufen werden.

Habs versucht, indem ich in der Http_Get die Variable "http_get_state" jede Minute auf den Wert 2 setze, damit in der http_request folgendes erneut ausgeführt wird:

if (http_get_state > 1 && http_get_state < 20)
http_get_state++;

...

if (http_get_state > 10 && http_get_state < 20) {
HTTPC_DEBUG("\r\n\r\n\r\nDaten Anfordern\r\n");
index = tcp_entry_search(WEATHER_SERVER_IP, HTONS(80));
memcpy_P(&eth_buffer[TCP_DATA_START], WEATHER_GET_STRING,
(sizeof(WEATHER_GET_STRING) - 1));
tcp_entry[index].status = ACK_FLAG | PSH_FLAG;
create_new_tcp_packet((sizeof(WEATHER_GET_STRING) - 1), index);
}

Jedoch erhalte ich jedes mal nur "Daten Anfordern". Aber es kommt nix mehr von Google zurück.
Nach oben

Benutzeravatar
Ulrich
Site Admin
Beiträge: 3054
Registriert: 29.02.2004, 18:12:19
Wohnort: Siegen
Kontaktdaten:
Kontaktdaten von Ulrich
Website

Re: Google Wetter API

  • Zitieren

Beitrag von Ulrich » 09.03.2012, 19:38:31

Hallo,

bei mehrfachen benutzen des Service muss glaube ich der Port geändert werden.

unsigned int my_http_cp = 2354;

Zufallsgenerator!

Gruß
Uli
Nach oben

myjack
Beiträge: 35
Registriert: 03.05.2011, 12:51:54

Re: Google Wetter API

  • Zitieren

Beitrag von myjack » 12.03.2012, 17:01:40

Das Problem bei dem Code ist, dass bei jedem Aufruf die TCP-app registriert wird. ich würde wie beim httpd eine init-funktion basteln, wo du die app initialisierst. dann kannst du später immernoch den port ändern und läufst nciht gefahr, dass auf einmal zu viele apps offen sind.
Nach oben

Seppel
Beiträge: 21
Registriert: 29.10.2008, 19:35:09

Re: Google Wetter API

  • Zitieren

Beitrag von Seppel » 20.03.2012, 13:09:35

Danke! Ich verstehe das alles nicht so richtig. Kann man nicht einfach ein HTTP GET machen, ohne eine TCP-app zu instanziieren?

Weswegen muss man den Port ändern?

Sorry. Irgendwie will das nicht so in meinen Schädel...


Viele Grüße
Seppel
Nach oben

myjack
Beiträge: 35
Registriert: 03.05.2011, 12:51:54

Re: Google Wetter API

  • Zitieren

Beitrag von myjack » 28.03.2012, 00:21:41

du musst schon eine tcp-app eintragen, um überhaupt erstmal ne verbindung aufbauen zu können. wenn die verbindung hergestellt ist, kannst du dein get-paket senden und evtl. die antwort darauf auswerten.

das mit dem port ändern... naja... ist theoretisch nicht nötig, wenn die verbindung sauber beendet wird (FIN+ACK). da das aber erfahrungsgemäß bei dem tcp-stack nicht immer der fall ist, kann es schon sinnvoll sein, den port beim nächsten abruf zu verändern um nicht mit ankommenden paketen in konflikt zu geraten, die eigentlich noch zur alten anfrage gehören.
Nach oben

Bastelradio
Beiträge: 2
Registriert: 07.12.2012, 08:39:25

Re: Google Wetter API

  • Zitieren

Beitrag von Bastelradio » 07.12.2012, 09:14:19

Hallo,

erst mal Dank an Uli, Wil und alle Anderen hier im Forum, die mir überhaupt erst auf die Sprünge geholfen haben, mich auf meine alten Tage noch mit AVR&Co zu befassen und einen Narren dran zu fressen.

Nachdem ich mit Ulis Software als Basis die Google-Wetterdaten fast 2 Jahre lang problemlos
zyklisch abgerufen hatte, war ich ziemlich sauer, als Google die Wetter-API dieses Jahr im August ohne Vorwarnung eingestellt hat.

Nunmehr bin ich endlich durch, und hab das Ganze auf den Yahoo!-RSS-Feed umgebaut.
Funzt seit ca. 1 Monat prima.

Vorteile:
- Nutzung ist (im Gegensatz zur toten Google-Api) offiziell gestattet und sogar dokumentiert
(einfach googlen nach "yahoo wetter api")
- Wettervorhersage ist deutlich treffsicherer
- das XML kommt am Ende des RSS-Feeds, ist kurz und ist leicht zu parsen

Nachteil:
- Leider nur Vorhersage für den aktuellen und 1 nachfolgenden Tag

Wie das Ergebnis aussieht, siehe Anhang.

Ich selber lasse den AVR-Webserver mit der Wettervorhersage meine Heizung und meine Wintergartensteuerung "vorausschauend" beeinflussen, z.B. um heute Nacht nicht zu doll zu heizen, wenn sich kostenlos morgen die Sonne einfangen lässt.

Mein ganzes Projekt will ich hier nicht posten, da zu sehr "verbastelt" gegenüber dem Ursprung, zudem nicht auf der aktuellen Version von Ulrich basierend.

Teile aber bei Interesse gern Anregungen und Codeschnipsel mit Euch.

Beste Grüße

Bastelradio
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Nach oben

Benutzeravatar
Ulrich
Site Admin
Beiträge: 3054
Registriert: 29.02.2004, 18:12:19
Wohnort: Siegen
Kontaktdaten:
Kontaktdaten von Ulrich
Website

Re: Google Wetter API

  • Zitieren

Beitrag von Ulrich » 07.12.2012, 16:40:07

Hallo,

mich würde dein Code interressieren auch wenn es "gebastelt wurde" ;-) auch Kleinigkeiten animieren andere.

Gruß
Uli
Nach oben

Bastelradio
Beiträge: 2
Registriert: 07.12.2012, 08:39:25

Re: Google Wetter API --> Yahoo Wetter Api

  • Zitieren

Beitrag von Bastelradio » 21.12.2012, 08:15:57

Hallo Uli,
hallo miteinander,

so, jetzt, pünktlich zum Fest:

Habe mich nun doch durchgerungen, das Projekt hier in Gänze reinzustellen,
nur hat etwas gedauert, wollte erst noch ein wenig das gröbste "Gerümpel" :wink: aus dem Quelltext räumen, und hab noch ein paar Zeilen Erkärung zu Papier gebracht.

Viel Spaß beim Studieren und Ausprobieren, und verzeiht mir die
vielen Anfängerfehler - ich bin wirklich Amateur.

... und natürlich:
Schöne erholsame Feiertage und möglichst viel neuen Bastelkram unterm Tannenbaum

Mit besten Grüßen
Roland
(Bastelradio)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Nach oben

Benutzeravatar
Ulrich
Site Admin
Beiträge: 3054
Registriert: 29.02.2004, 18:12:19
Wohnort: Siegen
Kontaktdaten:
Kontaktdaten von Ulrich
Website

Re: Google Wetter API

  • Zitieren

Beitrag von Ulrich » 21.12.2012, 20:11:16

Hallo,

Danke für deine Anstrengung!! Ich werde es mir auch mal anschauen und testen.

Ich wünsche euch allen ein Frohes Fest.
Uli
Nach oben

Antworten
  • Druckansicht

12 Beiträge • Seite 1 von 1

Zurück zu „ETH_M32_EX“



  • Foren-Übersicht
  • Alle Zeiten sind UTC+02:00
  • Alle Cookies löschen

Powered by phpBB® Forum Software © phpBB Limited

Deutsche Übersetzung durch phpBB.de

Datenschutz | Nutzungsbedingungen

 

 

sitemap  |    |  datenschutz   |  impressum