Ankündigung

Einklappen
Keine Ankündigung bisher.

Http GET Request - Webabfrage

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

    #16
    Ich glaube auch, dass man bei der LBS Verwaltung noch vieles verbessern könnte. Ob sich da allerdings kurzfristig in der LBS Verwaltung etwas ändert, das bezweifle ich.

    Oft ist es aber auch der Fall, dass ein neuer LBS geschrieben wird und sich erst danach herausstellt, dass es schon einen LBS gibt, der das schon kann. Deshalb macht es auf jeden Fall Sinn, wenn man sich unsicher ist, ob es einen entsprechenden LBS schon gibt, hier vorher zu fragen. Erspart dann möglichweise Zeit und vermeidet Redundanz.

    Kommentar


      #17
      Hallo, danke für die Rückmeldungen.

      wintermute hat mich verstanden, so wollte ich es umsetzen. Mein konkreter Fall sind mehrere Arduinos die mir einen String aus verschiedenen Daten zurcük geben. Einige senden UDP, aber bei einigen wollte ich mit HTTP arbeiten, weil die nicht permanent senden sollen, bzw. kann ich dann nicht mehr den Intervall so leicht verändern. Ich wollte grundsätzlich Fragen, ob es sinn macht und ob es sowas schon gibt. Eierlegende Wollmichsau brauch ich auch nicht, aber Objektorientiert mit möglichst keiner doppelten Funktion finde ich wichtig, um wie schon gesagt den Überblick im Download-Bereich nicht zu verlieren. Wenn dann mal 10.000 LBS da sind, wird es meiner Meinung nach unmöglich, da noch was zu nutzen, dann schreibt sich jeder lieber seine eigenen LBS und fertig. Geht schneller als danach zu suchen!

      Die Idee mit den Codeschnipsel'n sammeln finde ich auch super, aber ein eigener Thread würde dann wieder Sinn machen. Und was spricht gegen einen flexiblen Parser LBS??? Meiner Meinung nach nichts und würde wahrscheinlich 50% der Abfragen bewältigen können. Da müsste man nicht 100 LBS erstellen, wenn man diesen im Logikeditor einfach mit entsprechen Listen an mehreren Eingängen füttert.

      Ich finde Diskussionen immer sinnvoll mit euch ;-) Danke nochmal, ihr seit spitze!

      Grüße

      Kommentar


        #18
        In summe gibts da schon was: https://knx-user-forum.de/forum/proj...mperatursensor

        Wenn Du das änderst kommst Du zu sowas:

        Code:
        ###[DEF]###
        [name        = HTTP Get   ]
        
        [e#1        = Trigger    ]
        [e#2        = URL]
        
        
        [a#1        =Website]
        
        
        
        [v#1       =   ]
        ###[/DEF]###
        
        
        ###[HELP]###
        
        ###[/HELP]###
        
        
        ###[LBS]###
        <?
        function LB_LBSID($id) {
            if ($E=logic_getInputs($id)) {    
                if ($E[1]['refresh']==1 || $E[2]['refresh']==1) {
                    callLogicFunctionExec(LBSID,$id);
                }
        
            }
        }
        ?>
        ###[/LBS]###
        
        
        ###[EXEC]###
        <?
        require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
        
        sql_connect();
        
        
            $_buffer = "";
        
        if ($E=getLogicEingangDataAll($id)) {
        
            function HomepageLaden($url, $postdata)
                {
                $agent = "Chrome v1.0 :)";
                $header[] = "Accept: text/vnd.wap.wml,*.*";
                $ch = curl_init($url);
        
                if ($ch)
                    {
                    curl_setopt($ch,    CURLOPT_RETURNTRANSFER, 1);
                    curl_setopt($ch,    CURLOPT_USERAGENT, $agent);
                    curl_setopt($ch,    CURLOPT_HTTPHEADER, $header);
                    curl_setopt($ch,    CURLOPT_FOLLOWLOCATION, 1);
        
                    if (isset($postdata))
                        {
                        curl_setopt($ch,    CURLOPT_POST, 1);
                        curl_setopt($ch,    CURLOPT_POSTFIELDS, $postdata);
                        }
        
                    $tmp = curl_exec ($ch);
                    curl_close ($ch);
                    }
                return $tmp;
                }
        
        
        $_url = $E[2]['value'];  
        $_buffer = HomepageLaden($_url, "");
          if ($_buffer <>''){
             setLogicLinkAusgang($id,1,$_buffer);
                            }
        
        
        sql_disconnect();
        ?>
        ###[/EXEC]###

        Kommentar


          #19
          Danke vento66 genau diesen Beitrag hätte ich finden müssen ;-) Danke dir!

          Kommentar


            #20
            @Vento.. funktioniert.. wenn man noch eine geschweifte Klammer hinzufügt.. (vor $_url = $E[2]... bla bla bla)...

            aber hier schlägt natürlich ganz fies die 10.000 Zeichen Begrenzung zu... schade irgendwie..

            Gruß Martin


            Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

            Kommentar


              #21
              könnte man den Quellcode eigentlich lokal in eine Datei (auf dem System) speichern und diese dann Pharsen ?? würde das was bringen ?

              Gruß Martin
              Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

              Kommentar


                #22
                ja klar, das würde gehn. Man könnte dem HTTP-Get einen Eingang für den Dateinamen geben und einem Parserbaustein ebenfalls. Dann findet die Kommunikation via File und nicht via iKO statt. Dann gibt es natürlich kein Limit für die Größe, außer den verfügbaren Platz auf der Festplatte. Und der HTTP LBS hätte einen Trigger Ausgang und der Parser einen Trigger Eingang.
                Zuletzt geändert von jonofe; 22.12.2016, 12:36.

                Kommentar


                  #23
                  programmiertechnisch bin ich da aber raus ...

                  Gruß Martin
                  Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                  Kommentar


                    #24
                    Naja... Dateien zu lesen/schreiben ist einfacher als URLs zu holen, da finden sich sicher auch genug Beispiele auf php.net
                    Der Vollstaendigkeit halber: ich wuerde eine named Pipe nehmen, das vereinfacht das Handling.
                    Generell finde ich aber immer noch das es durch einen solchen Baustein eher komplizierter, aufwendiger und undurchsichtiger werden wuerde...

                    Kommentar


                      #25
                      Hi
                      ich würde mir auch gerne eine Webabfrage zusammenbauen.
                      Vielleicht hat jemand Lust mir dabei zu helfen?
                      Eigentlich geht es mir um eine Wetterabfrage - von denen es ja schon so viele gibt. Auf dem HS war ich es leid das Yahoo & co immerwieder pflege gebraucht haben - daher habe ich mir irgendwann mal eine eigene DWD abfrage gebastelt.
                      Der DWD Dienst ist kostenlos - aber "Hochstandarditsiert" - und lief auf dem HS auch wirklich über Jahre stabil. (Kostenlose Registrierung vorausgesetzt)

                      Man kann sich dort 1000 Wetterinfos holen - wobei ich mich dabei auf folgende Konzentriere:

                      Code:
                      wget ftp://user:pass@ftp-outgoing2.dwd.de/gds/specials/forecasts/tables/germany/Daten_Deutschland_heute_frueh_HTML 
                      wget ftp://user:pass@ftp-outgoing2.dwd.de/gds/specials/forecasts/tables/germany/Daten_Deutschland_heute_spaet_HTML
                      wget ftp://user:pass@ftp-outgoing2.dwd.de/gds/specials/forecasts/tables/germany/Daten_Deutschland_morgen_frueh_HTML 
                      wget ftp://user:pass@ftp-outgoing2.dwd.de/gds/specials/forecasts/tables/germany/Daten_Deutschland_morgen_spaet_HTML 
                      wget ftp://user:pass@ftp-outgoing2.dwd.de/gds/specials/forecasts/tables/germany/Daten_Deutschland_uebermorgen_frueh_HTML 
                      wget ftp://user:pass@ftp-outgoing2.dwd.de/gds/specials/forecasts/tables/germany/Daten_Deutschland_uebermorgen_spaet_HTML
                      Ich hab mal Beispielsdateien hier abgelegt: http://gehrig.info/edomi-wetter - das sind 3 Tage offzielle und präzise Wetterdaten von Deutschland :-)

                      Die Pharsing-regeln sind eigentlich sehr einfach: mal "Verbal" runtergeschrieben:
                      Suche nach <td>$stadt</td> (z.B. Potsdam), und die nächsten vier zellen (<td> </td>) beinhalten
                      * höhe des Orts über n/n (in Metern)
                      * höchsttemperatur (in Grad)
                      * Wetter/Wolken (als Text)
                      * böen (als Text)

                      Bisher hole ich mir die Files per FTP auf meinen Lokalen Webserver - ein direktes Abholen per FTP währe natürlich noch schöner...
                      Leider reichen mir meine Kentnisse nicht um das in einen LBS zu bauen...

                      Gruß
                      Thorsten


                      Kommentar


                        #26
                        Zitat von ThorstenGehrig Beitrag anzeigen
                        Hi
                        ich würde mir auch gerne eine Webabfrage zusammenbauen.
                        Vielleicht hat jemand Lust mir dabei zu helfen?
                        Eigentlich geht es mir um eine Wetterabfrage - von denen es ja schon so viele gibt. Auf dem HS war ich es leid das Yahoo & co immerwieder pflege gebraucht haben - daher habe ich mir irgendwann mal eine eigene DWD abfrage gebastelt.
                        Der DWD Dienst ist kostenlos - aber "Hochstandarditsiert" - und lief auf dem HS auch wirklich über Jahre stabil. (Kostenlose Registrierung vorausgesetzt)

                        Bisher hole ich mir die Files per FTP auf meinen Lokalen Webserver - ein direktes Abholen per FTP währe natürlich noch schöner...
                        Leider reichen mir meine Kentnisse nicht um das in einen LBS zu bauen...

                        Gruß
                        Thorsten

                        Thorsten, ich habe das auf der DWD Seite nicht gefunden. Wo ist die Registrierung und Beschreibung. Dann könnte ich ggfs. einen LBS bauen.

                        Grüße
                        Frank

                        Kommentar


                          #27
                          http://www.dwd.de/DE/leistungen/gds/gds.html

                          Sieht ganz so aus, als muss man sich nicht mal mehr registrieren. Ich habe bisher auch nur über die Subdomain ftp-outgoing2 abgefragt. Ich nutze das für meine kleine regionale Wetterseite, aber für EDOMI wäre das sicher auch eine sehr gute Datenquelle.

                          Bleibt die Frage, wie generisch man den LBS gestaltet. Man könnte ja den Pfad zu den gewünschten Daten angeben. Nur das parsen wird dann schwierig, da je nach Datentyp (Vorhersagetext, Temperatur, Pollenflug etc.) die Daten unterschiedlich formatiert/strukturiert sind.
                          Gruß
                          Stefan

                          Kommentar


                            #28
                            Hi
                            ja - eine google suche nach "dwd registrieren" führt mich zu https://kunden.dwd.de/gdsRegistratio...rationStart.do - dort steht:
                            Eine Registrierung für den Zugang auf den GDS FTP-Server wird nicht mehr angeboten, da der Service voraussichtlich zu Ende 2017 eingestellt wird.
                            Der Zugang auf unsere freien Geodaten ist zukünftig über http://www.dwd.de/opendata ohne Registrierung möglich.
                            Also einmal zu opendata - und schon kriegt man die daten sogar per HTTP und kann sich das FTP sparen - super.
                            Die von mir verwendeten vorcast daten konnte ich da aber noch nicht finden (aber da liegen auch ziemlich viele...)

                            Denke mal das könnt passen:
                            Point Forecasts and Statistically optimised weather forecasts (MOSMIX):
                            https://opendata.dwd.de/weather/local_forecasts/poi/

                            Bin aber noch nicht durchgestiegen wie man die richtige Station ermittelt.
                            Liefert den vorcast für 7 Tage und zwar mit werten alle 3 Stunden für:
                            • dry bulb temperature at 2 meter above ground
                            • dew point temperature at 2 meter above ground
                            • maximum of temperature for previous day
                            • minimum of temperature for previous day
                            • daily mean of temperature previous day
                            • minimum temperature at 5 cm above ground last 12h
                            • mean wind direction during last 10 min. at 10 meters above ground
                            • mean wind speed during last 10 min. at 10 meters above ground
                            • maximum wind speed last hour
                            • chance of maximum wind speed last 12 hours more than 45km/h
                            • chance of maximum wind speed last 12 hours more than 75km/h
                            • chance of maximum wind speed last 12 hours more than 100km/h
                            • precipitation amount last hour (niederschlag)
                            • precipitation amount last 3 hours (niederschlag)
                            • precipitation amount last 6 hours (niederschlag)
                            • precipitation amount last 12 hours (niederschlag)
                            • precipitation amount last 24 hours (niederschlag)
                            • chance of rain past last 6 hours
                            • chance of rain past last 12 hours
                            • chance of rain past last 24 hours
                            • potential evapotranspiration last day (verdunstung)
                            • present weather (da währe die definition interessant)
                            • past weather 1
                            • horizontal visibility
                            • cloud cover total
                            • effective cloud cover
                            • cloud cover of low level clouds
                            • cloud cover of medium level clouds
                            • cloud cover of high level clouds
                            • pressure reduced to mean sea level
                            • total time of sunshine during last hour
                            • total time of sunshine past day
                            • global radiation last hour
                            Wow - das ist mal "deutsche gründlichkeit" :-)
                            Ich markiere mal diejenigen die ich primär nutze :-) :-)

                            "previous day" scheint nicht der "vorrtag" zu sein (macht bei einer vorhersage auch wenig sinn) - sondern der "vorgenannte tag"?

                            Gruß
                            Thorsten
                            Zuletzt geändert von ThorstenGehrig; 27.07.2017, 16:02.

                            Kommentar


                              #29
                              Zitat von ThorstenGehrig Beitrag anzeigen
                              Hi

                              Bin aber noch nicht durchgestiegen wie man die richtige Station ermittelt.
                              Liefert den vorcast für 7 Tage und zw

                              Gruß
                              Thorsten
                              Die Liste der Stationen findet sich hier http://www.dwd.de/DE/leistungen/opendata/help/stationen/ha_messnetz.xls?__blob=publicationFile&v=1. Man muss sich dann die passende Station suchen. Es gibt aber auch Straßenmessstellen für Glätte, Radarbilder etc.

                              Im Verzeichnis http://www.dwd.de/DE/leistungen/open....html?nn=16102 finden sich viele weitere Erläuterungen und Dateien. Ich arbeite mich mal etwas durch.

                              Ich denke, dass ich einen LBS für aktuellste Wettersituation und Vorhersage für eine ausgewählte Station und ausgewählte Tage bauen werde. In der CSV Datei pro Station sind die entsprechenden Tage ja enthalten.

                              Grüße
                              Frank

                              Kommentar


                                #30
                                Ich habe mal einen ersten Entwurf für den DWD LBS online gestellt 19000773. Siehe auch den separaten Thread DWD Wettervorhersage.

                                Grüße
                                Frank
                                Zuletzt geändert von mywap; 29.07.2017, 01:45.

                                Kommentar

                                Lädt...
                                X