Ankündigung

Einklappen
Keine Ankündigung bisher.

Wetterdaten aus dem Internet

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Hoi Michael

    Ich glaub' es nicht. Es funzt. Ich bin völlig platt.
    Hab' zwar bei der Temperatur 11.00 statt 12 aber das ist Nebensache.*
    Macro würde ich ja gerne machen, aber momentan trau ich mir das nicht zu.
    Speziell das mit dem aktualisieren. Hab' schon wieder alles verlernt, scheinbar.

    *Edit: Ha klar, andere PLZ, mei bin ich bl***
    Grüsse Bodo
    Fragen gehören ins Forum, und nicht in mein Postfach;
    EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

    Kommentar


      #17
      Ich glaub' es nicht. Es funzt. Ich bin völlig platt.
      Hast Du kein Vertrauen in mein Coding? [/QUOTE]
      Speziell das mit dem aktualisieren. Hab' schon wieder alles verlernt, scheinbar.
      Wie meinst Du das?
      Ich dachte da anstelle der GA an einen Aufruf von htime
      *Edit: Ha klar, andere PLZ, mei bin ich bl***
      Naja, das hab ich mir erlaubt ...
      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
      Enertex Produkte kaufen

      Kommentar


        #18
        Hoi

        Klar hab' ich Vertrauen in Dein Coding, nur hab' ich mich schon wieder so angestellt, dass überhaupt nix geklappt hat.
        Als ich mir als Zwischenergebnis die IP von Google mal ausgegeben hab' als $$ da kam dann 3512043363 dabei raus und so Sachen...
        Grüsse Bodo
        Fragen gehören ins Forum, und nicht in mein Postfach;
        EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

        Kommentar


          #19
          Zitat von Bodo Beitrag anzeigen
          Hoi

          Klar hab' ich Vertrauen in Dein Coding, nur hab' ich mich schon wieder so angestellt, dass überhaupt nix geklappt hat.
          Als ich mir als Zwischenergebnis die IP von Google mal ausgegeben hab' als $$ da kam dann 3512043363 dabei raus und so Sachen...
          Naja, resolve() liefert eine 32 Bit Zahl, die den 4 Bytes der IP Adresse liefert...
          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
          Enertex Produkte kaufen

          Kommentar


            #20
            Hoi

            Genau mit Hex und Co und wie was wo warum welches Format ist oder sein muss, da hapert's bei mir und es dämmert nur schwach.
            Na ja, das lern' ich auch noch... irgendwann... vielleicht...
            Grüsse Bodo
            Fragen gehören ins Forum, und nicht in mein Postfach;
            EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

            Kommentar


              #21
              Aufruf:
              GoogleWeather($12345$c1400, Irgendeinortsname, $Germany$c1400)

              Man beachte, dass der erste und der letzte Parameter als String c1400 definiert sind, der Ort aber nicht.

              Die Daten befinden sich anschliessend in den "globalen" Variablen:
              Temperatur=0.0
              Luftfeuchte=0.0
              VorhersageMax=0.0
              VorhersageMin=0.0
              Wolken=$$
              VorhersageWolken=$$


              Das Makro ist NOCH NICHT GETESTET, da bei mir sonst alle Rolläden hochgehen würden -> WAF = minus unendlich

              Code:
              :begin GoogleWeather (PLZ, Ort, Land)
              :info $Google Weather Infos in Strings$\\
                    $Postleitzahl$\\
                    $Ort$\\
                    $Land$\\
              :shortinfo $Google Weather Infos in Strings$ 
              
                    Ort^WetterTrigger=AUS
              
                    // Google Weather: Es kommen 2 TCP Pakete an.
                    Ort^xmlText=$$
                    Ort^xmlText_Data1=$$
                    Ort^xmlText_Data2=$$
                    Ort^xmlCount=0
              
                    Ort^Port=0u16
                    Ort^IP=0u32
                    Ort^GooglePort = 80u16
                    Ort^GoogleIP = resolve($www.google.com$)
              
                    // TCP Verbindung aufmachen
                    if htime(00, 00, 00) or systemstart() then Ort^WetterTrigger=EIN endif
                    if (after(Ort^WetterTrigger,10000u64) == EIN) then {
                        connecttcp(Ort^GooglePort,Ort^GoogleIP)
                    }endif
              
                    // TCP Anfrage schicken
                    if (after(Ort^WetterTrigger,11000u64) == EIN) then {
                        sendtcp(Ort^GooglePort,Ort^GoogleIP,$GET /ig/api?weather=$+PLZ+Land+$&hl=de HTTP/1.1$,0x0D,0x0A,0x0D,0x0A)
                    }endif
              
              
                    // Es kommen 2 Pakete an
                    if event(readtcp(Ort^Port,Ort^IP,Ort^xmlText)) and Ort^IP == Ort^GoogleIP then {
                       if (Ort^xmlCount==0) then Ort^xmlText_Data1=Ort^xmlText endif;
                       if (Ort^xmlCount==1) then Ort^xmlText_Data2=Ort^xmlText endif;
                       Ort^xmlCount=Ort^xmlCount+1
                    }endif
              
                    // TCP Verbindung wieder ordentlich schließen
              
                    if after(Ort^WetterTrigger,20000u64) then {
                       closetcp(Ort^Port,Ort^IP);
                       Ort^WetterTrigger=AUS
                    } endif
              
                    // Parsen der xml Daten
              
                    Temperatur=0.0
                    Luftfeuchte=0.0
                    VorhersageMax=0.0
                    VorhersageMin=0.0
                    Wolken=$$
                    VorhersageWolken=$$
              
                    Ort^PosStart=0u16
                    Ort^PosEnd=0u16
              
                    // Und nun parsen
                    if Ort^xmlCount==2 then {
                        /* Die eigentlichen Daten passen in einen einizigen String, daher Ausschneiden des Headers */;
                        Ort^PosStart=find(Ort^xmlText_Data1,$<forecast_information>$,0u16)+size($<forecast_information>$);
                        Ort^xmlText=split(Ort^xmlText_Data1,Ort^PosStart,END)+Ort^xmlText_Data2;
              
                        /* Parsen nach Temperatur */;
                        Ort^PosStart=find(Ort^xmlText,$<temp_c data="$,0u16)+size($<temp_c data="$);
                        Ort^PosEnd=find(split(Ort^xmlText,Ort^PosStart,END),$"$,0u16)+Ort^PosStart;
                        Temperatur=convert(split(Ort^xmlText,Ort^PosStart,Ort^PosEnd),0.0);
              
                        /* Parsen nach Luftfeuchte */;
                        Ort^PosStart=find(Ort^xmlText,$<humidity data="Feuchtigkeit:$,0u16)+size($<humidity data="Feuchtigkeit:$);
                        Ort^PosEnd=find(split(Ort^xmlText,Ort^PosStart,END),$%$,0u16)+Ort^PosStart;
                        Luftfeuchte=convert(split(Ort^xmlText,Ort^PosStart,Ort^PosEnd),0.0);
              
                        /* Parsen nach Vorhersage Min*/;
                        Ort^PosStart=find(Ort^xmlText,$<low data="$,0u16)+size($<low data="$);
                        Ort^PosEnd=find(split(Ort^xmlText,Ort^PosStart,END),$"$,0u16)+Ort^PosStart;
                        VorhersageMin=convert(split(Ort^xmlText,Ort^PosStart,Ort^PosEnd),0.0);
              
                        /* Parsen nach Vorhersage Max*/;
                        Ort^PosStart=find(Ort^xmlText,$<high data="$,0u16)+size($<high data="$);
                        Ort^PosEnd=find(split(Ort^xmlText,Ort^PosStart,END),$"$,0u16)+Ort^PosStart;
                        VorhersageMax=convert(split(Ort^xmlText,Ort^PosStart,Ort^PosEnd),0.0);
              
                        /* Parsen nach Wolken*/;
                        Ort^PosStart=find(Ort^xmlText,$<condition data="$,0u16)+size($<condition data="$);
                        Ort^PosEnd=find(split(Ort^xmlText,Ort^PosStart,END),$"/>$,0u16)+Ort^PosStart-1u16;
                        Wolken=split(Ort^xmlText,Ort^PosStart,Ort^PosEnd);
              
                        /* Parsen nach Wolkenvorhersage für 1. Tag*/;
                        Ort^PosStart=find(Ort^xmlText,$<condition data="$,1u16)+size($<condition data="$);
                        Ort^PosEnd=find(split(Ort^xmlText,Ort^PosStart,END),$"/>$,0u16)+Ort^PosStart-1u16;
                        VorhersageWolken=split(Ort^xmlText,Ort^PosStart,Ort^PosEnd);
                        Ort^xmlCount=0
                    } endif 
              
              :end
              Gruss Pio

              Kommentar


                #22
                Zitat von pio Beitrag anzeigen
                Aufruf:
                GoogleWeather($12345$c1400, Irgendeinortsname, $Germany$c1400)
                Man beachte, dass der erste und der letzte Parameter als String c1400 definiert sind, der Ort aber nicht.
                Da besteht m.E. noch Verbesserungspotenzial: Die PLZ würde ich als Nummer vorgeben und im Makro wandeln. Da tut sich der Anwender leichter. Gleichermaßen das Land. Den Ort braucht man ja nicht- Wie ich eben sehe, ist das mit dem PLZ auch per Ortsvorgabe möglich, also
                GoogleWeather(Forchheim,Germany)
                fände ich am besten.
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #23
                  Wäre es nicht möglich, mit der gleichen Systematik eine Fritzbox nach der Telefonliste abzufragen?
                  Ich hab JFritz-0.7.4 - JFritzWiki gefunden, allerdings habe ich keine Fritzbox hier. Wenn jemand mal die XML Datei posten kann, dann würde ich gerne helfen...
                  offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                  Enertex Produkte kaufen

                  Kommentar


                    #24
                    Jetzt muss ich mich doch mal zu Wort melden (nachdem ich ja immerhin diesen Thread losgetreten habe):

                    Ich bin ziemlich begeistert was hier abgeht und kann nur Staunen!! RESPEKT euch allen!!

                    Leider hat mir die Zeit dieses Wochenende gerade mal dazu gereicht das Forum einigermaßen zu verfolgen, so dass ich wenigstens sein bisschen auf dem Laufenden bleiben konnte.

                    Aber das was ich an Arbeitsgeschwindigkeit und Ergebnissen hier erlebe übertrifft alle meine Erwartungen!

                    Das Makro ist genau so wie ich es mir vorgestellt hatte! Ich kann einfach nur Staunen! (Bin aber leider auch noch nicht zum testen gekommen).

                    Gruß
                    Andreas
                    Gruß Kex

                    Kommentar


                      #25
                      Zitat von enertegus Beitrag anzeigen
                      Wäre es nicht möglich, mit der gleichen Systematik eine Fritzbox nach der Telefonliste abzufragen?
                      Ich hab JFritz-0.7.4 - JFritzWiki gefunden, allerdings habe ich keine Fritzbox hier. Wenn jemand mal die XML Datei posten kann, dann würde ich gerne helfen...
                      Hoi

                      Ein shell-script vielleicht hilft's http://www.wehavemorefun.de/fritzbox..._der_Box_holen
                      Das legt die Anruferliste als csv - Datei ab.

                      Witz:
                      Kunde: Mein monitor geht nicht.
                      Support: Ist er angeschaltet?
                      Kunde: Ja, ich bin doch nicht blöd!
                      Support: Dann schalten sie ihn bitte aus.
                      Kunde: Komisch, jetzt geht er...
                      Angehängte Dateien
                      Grüsse Bodo
                      Fragen gehören ins Forum, und nicht in mein Postfach;
                      EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                      Kommentar


                        #26
                        Zitat von enertegus Beitrag anzeigen
                        Da besteht m.E. noch Verbesserungspotenzial: Die PLZ würde ich als Nummer vorgeben und im Makro wandeln. Da tut sich der Anwender leichter. Gleichermaßen das Land. Den Ort braucht man ja nicht- Wie ich eben sehe, ist das mit dem PLZ auch per Ortsvorgabe möglich, also
                        GoogleWeather(Forchheim,Germany)
                        fände ich am besten.
                        Ich weiss, war bloss zu Faul.

                        Bezüglich Ort und keine PLZ: Es gibt auch mehrere Orte gleichen Namens im gleichen Land, da hilft dann nur die PLZ.
                        Gruss Pio

                        Kommentar


                          #27
                          Das hat jetzt rein garnichts mit dem EibPC zu tun:
                          die abgerufenen Wetterdaten (abgesehen kostenpflichtiger, professioneller Dienste) haben leider ungefähr max. 50% mit dem echten, lokalen Wetter zu tun;
                          Die Grosswetterlage stimmt sicher, ob es am Ort der geschehens aber 20kLux bei Hochnebel hat und nicht beschattet werden muss oder die Sonne voll reinknallt findet man IMHO nicht im Netz sondern nur auf dem lokalen Sensor.
                          Der DWD würde gerne, darf aber nicht, 5000 eMails von Notleidenden helfen vielleicht irgendwann, bis dahin würde ich den lokalen Sensor allerdings vorziehen..

                          Makki
                          EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                          -> Bitte KEINE PNs!

                          Kommentar


                            #28
                            Zitat von makki Beitrag anzeigen
                            Der DWD würde gerne, darf aber nicht, 5000 eMails von Notleidenden helfen vielleicht irgendwann, bis dahin würde ich den lokalen Sensor allerdings vorziehen..
                            Makki
                            Würd ich auch. Ist leider nur ne Frage des Geldes :-(
                            Gruß Kex

                            Kommentar


                              #29
                              Zitat von makki Beitrag anzeigen
                              Das hat jetzt rein garnichts mit dem EibPC zu tun:
                              die abgerufenen Wetterdaten (abgesehen kostenpflichtiger, professioneller Dienste) haben leider ungefähr max. 50% mit dem echten, lokalen Wetter zu tun
                              Immerhin sind die Wetterdaten und Temperaturvorhersagen ganz nett und es gibt einem das Gefühl der Überlegenheit gegen den Nachbarn, der immer erst die Zeitung aufschlagen muss, um die 50% Trefferquote zu erhalten.
                              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                              Enertex Produkte kaufen

                              Kommentar


                                #30
                                Genau, oder einfach das Wetter eines vergangenen oder zukünftigen Urlaubs darzustellen ist ganz nett (Mach ich gerne auf meinem Apple Dashboard).

                                Natürlich hilft z.B. die Windvorhersage einer Messstation (min.) 20km entfernt nicht die Markise rechtzeitig einzufahren. Nur ein Windmesser am Haus liefert da die passenden Daten.

                                Kommentar

                                Lädt...
                                X