Ankündigung

Einklappen
Keine Ankündigung bisher.

EIBPORT HTTP Request WETTER

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

    KNX/EIB EIBPORT HTTP Request WETTER

    Hallo,


    ich bin gerade dabei mit dem EIBPORT 3 einen Http Request Job für eine Wetter-abfrage von der Wetterseite openweathermap.org zu basteln.

    Hat von euch schon jemand so eine Abfrage gemacht?

    Wenn ja was könnt ihr alles auslesen bzw. was Visualisiert und Steuert ihr damit?


    Danke schon mal für eure mithilfe!

    LG

    #2
    Hi. Ja schon gemacht. Meine erste Erfahrung mit dem HTTP-Request war ziemlich dürftig, da sich meine Lieblingswetterseite (wetter24.de) garnicht damit nutzen ließ weil der Response über 10KB groß war. War auch ganz schön blöd zum Debuggen weil es ja kein Log gibt.

    Im Prinzip kannst mit dem Job alles Mögliche von einer Website auslesen, hängt nur von Deinen Fähigkeiten ab Regluäre Ausdrücke zu schreiben (und eben ob die Seite in den eibPort Buffer passt).

    Momentan nutze ich das nur, um mir einfach die Außentemperatur zu holen. Aber das ist auch nur für mein Testbrett-Aufbau..
    Zuletzt geändert von trollvottel; 21.05.2015, 08:54.

    Kommentar


      #3
      hi,

      ja ich habe jetzt eigentlich in einer Stunde so ziemlich alles geschafft was ich brauche also Temperatur, Luftfeuchte, Windgeschwindigkeit, Bewölkungsgrad und niederschlag der letzten 3h. das alles von openweathermap.org.

      Da gibt es ja schließlich auch eine kleine Doku im eibport wiki, wo der Reguläre ausdruck beschrieben ist.


      Jetzt würde ich gerne meinen Daten vom SMA Sunnyportal auslesen probieren.
      Hab aber keinen Plan wie das mit den Regulären Ausdrücken funktioniert.....


      lg

      Kommentar


        #4
        Hier ein Link zur Perl Regular Expressions Bibel

        Deutsche Seite und für Anfänger vielleicht besser geeignet: Regex auf SelfHTML

        Kommentar


          #5
          Sieht etwas knifflig aus wenn man sich mit diesen dingen eigentlich nicht auskennt. Aber ich werde mein glück mal versuchen.

          Falls jemand das für sma schon mal gemacht kann er mir ja bescheid geben.

          Kommentar


            #6
            falls es jemanden interessiert oder hilft,
            hier die daten die ich gerne Anzeigen möchte.

            {"__type":"LiveDataUI","Timestamp":{"__type":"Date Time","DateTime":"2015-05-21T08:47:00","Kind":"Unspecified"},"PV":2145,"Feed In":0,"GridConsumption":70,"DirectConsumption":214 5,"SelfConsumption":2145,"SelfSupply":2145,"TotalC onsumption":2215,"DirectConsumptionQuote":100,"Sel fConsumptionQuote":100,"AutarkyQuote":97,"BatteryI n":0,"BatteryOut":0,"BatteryChargeStatus":56,"Oper ationHealth":null,"BatteryStateOfHealth":null,"Inf oMessages":[],"WarningMessages":[],"ErrorMessages":[],"Info":{}} lg

            Kommentar


              #7
              Das ist in diesem Fall eigentlich relativ einfach da alle Werte ja direkt einen eindeutigen Feldnamen haben (JSON-Format), z.B. für den Fall "GridConsumption" wäre der Regex:

              /"GridConsumption":\s*(\d+)/

              Schwieriger wirds für die Werte, die in einem Hash oder Array abgelegt werden. Da waren in Deinem Ausschnitt jetzt allerdings keinerlei Werte drin... (z.B. "InfoMessages" oder "Info")

              Kommentar


                #8
                ...keine Wetterdaten, das ist das wenige Tage alte, neue JSON-Format vom SMA SunnyPortal...

                Für das Auslesen und Anbinden an den HS hatte ich mich auch schon gefragt, wie denn wohl die Messages geliefert werden würden. Hat da schon mal jemand Ausprägungen drin gesehen? Mehrfachtexte im Array? Plain?

                saegefisch

                Kommentar


                  #9
                  Hallo,
                  ​spannendes Thema an dem ich auch grade sitze. Ich bastel aktuell daran, die Bewässerung im Garten intelligenter zu machen.
                  Dazu ist meine Idee, den Forecast von openweathermap anzufragen und auszuwerten. Wenn in den nächsten Stunden Niederschlag erwartet wird brauche ich nicht wässern, ansonsten schon.
                  Die Abfrage klappt schon. Mein Problem ist nur, dass ich nicht einen Wert sondern alle drei Stunden eine Vorhersage bekommen. Mich interessieren aber eigentlich nur die kommenden 24 Stunden. Also müsste ich diese Filtern und den Niederschlagswert summieren.
                  Ist sowas in Kombination mit dem Eibport der ja reguläre Ausdrücke erlaubt möglich?

                  Für Dortmund sähe das z.B. so aus:

                  Code:
                  [COLOR=#000000]{"cod":"200","message":0.0535,"city":{"id":2935517,"name":"Dortmund","coord":{"lon":7.45,"lat":51.51667},"country":"DE","population":588462},"cnt":27,"list":[{"dt":1432220400,"main":{"temp":16.63,"temp_min":16.63,"temp_max":16.63,"pressure":1029.05,"sea_level":1039.86,"grnd_level":1029.05,"humidity":70,"temp_kf":0},"weather":[{"id":800,"main":"Clear","description":"klarer Himmel","icon":"02d"}],"clouds":{"all":8},"wind":{"speed":2.67,"deg":269.003},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-21 15:00:00"},{"dt":1432231200,"main":{"temp":15.07,"temp_min":15.07,"temp_max":15.07,"pressure":1029.51,"sea_level":1040.31,"grnd_level":1029.51,"humidity":62,"temp_kf":0},"weather":[{"id":803,"main":"Clouds","description":"überwiegend bewölkt","icon":"04d"}],"clouds":{"all":76},"wind":{"speed":2.93,"deg":273.002},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-21 18:00:00"},{"dt":1432242000,"main":{"temp":11.85,"temp_min":11.85,"temp_max":11.85,"pressure":1030.63,"sea_level":1041.54,"grnd_level":1030.63,"humidity":63,"temp_kf":0},"weather":[{"id":802,"main":"Clouds","description":"überwiegend bewölkt","icon":"03n"}],"clouds":{"all":32},"wind":{"speed":1.93,"deg":277.506},"rain":{"3h":0},"sys":{"pod":"n"},"dt_txt":"2015-05-21 21:00:00"},{"dt":1432252800,"main":{"temp":9.36,"temp_min":9.36,"temp_max":9.36,"pressure":1030.71,"sea_level":1041.88,"grnd_level":1030.71,"humidity":71,"temp_kf":0},"weather":[{"id":802,"main":"Clouds","description":"überwiegend bewölkt","icon":"03n"}],"clouds":{"all":36},"wind":{"speed":1.31,"deg":285.501},"rain":{"3h":0},"sys":{"pod":"n"},"dt_txt":"2015-05-22 00:00:00"},{"dt":1432263600,"main":{"temp":8.74,"temp_min":8.74,"temp_max":8.74,"pressure":1030.45,"sea_level":1041.49,"grnd_level":1030.45,"humidity":74,"temp_kf":0},"weather":[{"id":803,"main":"Clouds","description":"überwiegend bewölkt","icon":"04n"}],"clouds":{"all":64},"wind":{"speed":1.29,"deg":210.501},"rain":{"3h":0},"sys":{"pod":"n"},"dt_txt":"2015-05-22 03:00:00"},{"dt":1432274400,"main":{"temp":11.53,"temp_min":11.53,"temp_max":11.53,"pressure":1030.33,"sea_level":1041.31,"grnd_level":1030.33,"humidity":76},"weather":[{"id":802,"main":"Clouds","description":"überwiegend bewölkt","icon":"03d"}],"clouds":{"all":48},"wind":{"speed":1.96,"deg":206},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-22 06:00:00"},{"dt":1432285200,"main":{"temp":15.49,"temp_min":15.49,"temp_max":15.49,"pressure":1030.55,"sea_level":1041.29,"grnd_level":1030.55,"humidity":74},"weather":[{"id":802,"main":"Clouds","description":"überwiegend bewölkt","icon":"03d"}],"clouds":{"all":44},"wind":{"speed":2.82,"deg":228.501},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-22 09:00:00"},{"dt":1432296000,"main":{"temp":17.85,"temp_min":17.85,"temp_max":17.85,"pressure":1029.39,"sea_level":1040.19,"grnd_level":1029.39,"humidity":76},"weather":[{"id":802,"main":"Clouds","description":"überwiegend bewölkt","icon":"03d"}],"clouds":{"all":32},"wind":{"speed":3.11,"deg":252.502},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-22 12:00:00"},{"dt":1432306800,"main":{"temp":19.09,"temp_min":19.09,"temp_max":19.09,"pressure":1028.01,"sea_level":1038.74,"grnd_level":1028.01,"humidity":73},"weather":[{"id":800,"main":"Clear","description":"klarer Himmel","icon":"01d"}],"clouds":{"all":0},"wind":{"speed":2.66,"deg":267.001},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-22 15:00:00"},{"dt":1432317600,"main":{"temp":18.54,"temp_min":18.54,"temp_max":18.54,"pressure":1027.04,"sea_level":1037.82,"grnd_level":1027.04,"humidity":63},"weather":[{"id":800,"main":"Clear","description":"klarer Himmel","icon":"01d"}],"clouds":{"all":0},"wind":{"speed":1.67,"deg":277.501},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-22 18:00:00"},{"dt":1432328400,"main":{"temp":14.82,"temp_min":14.82,"temp_max":14.82,"pressure":1027.01,"sea_level":1037.94,"grnd_level":1027.01,"humidity":65},"weather":[{"id":803,"main":"Clouds","description":"überwiegend bewölkt","icon":"04n"}],"clouds":{"all":76},"wind":{"speed":1.57,"deg":274.003},"rain":{"3h":0},"sys":{"pod":"n"},"dt_txt":"2015-05-22 21:00:00"},{"dt":1432339200,"main":{"temp":13.22,"temp_min":13.22,"temp_max":13.22,"pressure":1026.92,"sea_level":1037.74,"grnd_level":1026.92,"humidity":68},"weather":[{"id":801,"main":"Clouds","description":"ein paar Wolken","icon":"02n"}],"clouds":{"all":20},"wind":{"speed":2.52,"deg":316.003},"rain":{"3h":0},"sys":{"pod":"n"},"dt_txt":"2015-05-23 00:00:00"},{"dt":1432350000,"main":{"temp":10.39,"temp_min":10.39,"temp_max":10.39,"pressure":1026.58,"sea_level":1037.57,"grnd_level":1026.58,"humidity":75},"weather":[{"id":801,"main":"Clouds","description":"ein paar Wolken","icon":"02n"}],"clouds":{"all":12},"wind":{"speed":1.31,"deg":304.005},"rain":{"3h":0},"sys":{"pod":"n"},"dt_txt":"2015-05-23 03:00:00"},{"dt":1432360800,"main":{"temp":13.36,"temp_min":13.36,"temp_max":13.36,"pressure":1026.72,"sea_level":1037.47,"grnd_level":1026.72,"humidity":79},"weather":[{"id":800,"main":"Clear","description":"klarer Himmel","icon":"01d"}],"clouds":{"all":0},"wind":{"speed":2.01,"deg":316.503},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-23 06:00:00"},{"dt":1432371600,"main":{"temp":16.74,"temp_min":16.74,"temp_max":16.74,"pressure":1026.73,"sea_level":1037.54,"grnd_level":1026.73,"humidity":79},"weather":[{"id":800,"main":"Clear","description":"klarer Himmel","icon":"02d"}],"clouds":{"all":8},"wind":{"speed":2.21,"deg":354.002},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-23 09:00:00"},{"dt":1432382400,"main":{"temp":18.83,"temp_min":18.83,"temp_max":18.83,"pressure":1026.02,"sea_level":1036.77,"grnd_level":1026.02,"humidity":78},"weather":[{"id":801,"main":"Clouds","description":"ein paar Wolken","icon":"02d"}],"clouds":{"all":24},"wind":{"speed":2.96,"deg":8.00006},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-23 12:00:00"},{"dt":1432393200,"main":{"temp":19.19,"temp_min":19.19,"temp_max":19.19,"pressure":1025.07,"sea_level":1035.87,"grnd_level":1025.07,"humidity":68},"weather":[{"id":803,"main":"Clouds","description":"überwiegend bewölkt","icon":"04d"}],"clouds":{"all":76},"wind":{"speed":4.01,"deg":13.0015},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-23 15:00:00"},{"dt":1432404000,"main":{"temp":17.92,"temp_min":17.92,"temp_max":17.92,"pressure":1025.03,"sea_level":1035.75,"grnd_level":1025.03,"humidity":66},"weather":[{"id":803,"main":"Clouds","description":"überwiegend bewölkt","icon":"04d"}],"clouds":{"all":80},"wind":{"speed":4.36,"deg":38.0032},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-23 18:00:00"},{"dt":1432414800,"main":{"temp":16.39,"temp_min":16.39,"temp_max":16.39,"pressure":1025.6,"sea_level":1036.37,"grnd_level":1025.6,"humidity":66},"weather":[{"id":804,"main":"Clouds","description":"wolkenbedeckt","icon":"04n"}],"clouds":{"all":88},"wind":{"speed":3.55,"deg":49.0028},"rain":{"3h":0},"sys":{"pod":"n"},"dt_txt":"2015-05-23 21:00:00"},{"dt":1432425600,"main":{"temp":14.21,"temp_min":14.21,"temp_max":14.21,"pressure":1025.03,"sea_level":1035.93,"grnd_level":1025.03,"humidity":71},"weather":[{"id":800,"main":"Clear","description":"klarer Himmel","icon":"01n"}],"clouds":{"all":0},"wind":{"speed":3.41,"deg":46.0016},"rain":{"3h":0},"sys":{"pod":"n"},"dt_txt":"2015-05-24 00:00:00"},{"dt":1432436400,"main":{"temp":11.54,"temp_min":11.54,"temp_max":11.54,"pressure":1024.12,"sea_level":1035.05,"grnd_level":1024.12,"humidity":78},"weather":[{"id":800,"main":"Clear","description":"klarer Himmel","icon":"01n"}],"clouds":{"all":0},"wind":{"speed":2.92,"deg":48.0008},"rain":{"3h":0},"sys":{"pod":"n"},"dt_txt":"2015-05-24 03:00:00"},{"dt":1432447200,"main":{"temp":13.46,"temp_min":13.46,"temp_max":13.46,"pressure":1023.84,"sea_level":1034.67,"grnd_level":1023.84,"humidity":81},"weather":[{"id":800,"main":"Clear","description":"klarer Himmel","icon":"01d"}],"clouds":{"all":0},"wind":{"speed":2.21,"deg":60.5042},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-24 06:00:00"},{"dt":1432458000,"main":{"temp":18.46,"temp_min":18.46,"temp_max":18.46,"pressure":1023.16,"sea_level":1033.93,"grnd_level":1023.16,"humidity":84},"weather":[{"id":800,"main":"Clear","description":"klarer Himmel","icon":"02d"}],"clouds":{"all":8},"wind":{"speed":2.11,"deg":30.5016},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-24 09:00:00"},{"dt":1432468800,"main":{"temp":19.89,"temp_min":19.89,"temp_max":19.89,"pressure":1021.62,"sea_level":1032.37,"grnd_level":1021.62,"humidity":81},"weather":[{"id":801,"main":"Clouds","description":"ein paar Wolken","icon":"02d"}],"clouds":{"all":20},"wind":{"speed":2.04,"deg":48.0066},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-24 12:00:00"},{"dt":1432479600,"main":{"temp":20.86,"temp_min":20.86,"temp_max":20.86,"pressure":1020.14,"sea_level":1030.78,"grnd_level":1020.14,"humidity":73},"weather":[{"id":802,"main":"Clouds","description":"überwiegend bewölkt","icon":"03d"}],"clouds":{"all":32},"wind":{"speed":1.96,"deg":66.0003},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-24 15:00:00"},{"dt":1432490400,"main":{"temp":20.17,"temp_min":20.17,"temp_max":20.17,"pressure":1019.07,"sea_level":1029.74,"grnd_level":1019.07,"humidity":64},"weather":[{"id":802,"main":"Clouds","description":"überwiegend bewölkt","icon":"03d"}],"clouds":{"all":44},"wind":{"speed":1.72,"deg":338.501},"rain":{"3h":0},"sys":{"pod":"d"},"dt_txt":"2015-05-24 18:00:00"},{"dt":1432501200,"main":{"temp":16.96,"temp_min":16.96,"temp_max":16.96,"pressure":1018.79,"sea_level":1029.58,"grnd_level":1018.79,"humidity":66},"weather":[{"id":802,"main":"Clouds","description":"überwiegend bewölkt","icon":"03n"}],"clouds":{"all":48},"wind":{"speed":1.22,"deg":344.503},"rain":{"3h":0},"sys":{"pod":"n"},"dt_txt":"2015-05-24 21:00:00"}]}[/COLOR]

                  Kommentar


                    #10
                    Hallo,

                    @ Kreuzundquer,
                    bei openwathermap.org bekomme ich auch die 3h Wettervorhersage, 24 Stunden sind nicht möglich oder?
                    Bekommst du die Abfrage für den wert vom "icon" hin?
                    [{"id":800,"main":"Clear","description":"klarer Himmel","icon":"02d"}]
                    über den könnte man ja auch ein eigenes ICON für die Wetterlage anzeigen lassen.

                    @ trollvottel, saegefisch,

                    ja das ist vom Sunnyportal.

                    ich bekomme leider von der Fehlertextausgabe vom EIBPORT nur die meldung "SSL certificat" und leider keine werte....
                    hat jemand eine Idee was da helfen könnte?

                    Kommentar


                      #11
                      @Geraldp,

                      "SSL certificat" könnte darauf hindeuten, dass er das SSL-Serverzertifikat nicht validieren kann. Da bräuchte der eibPort womöglich eine Funktion, um die SSL checks zu ignorieren... Gibt's keine Möglichkeit, das auch ohne SSL zu machen?

                      Kommentar


                        #12
                        Hallo Leute, ich vermute dass Gerald mir zwar nicht mehr antworten wird, aber vielleicht kennt sich jemand anderes damit aus. Gerald hat es ja scheinbar relativ zügig geschafft die Werte von Open Weather Map mit dem EibPort per HTTP Requests auszulesen. Leider stelle ich mich da sehr doof an (oder bin es auch) und kapiere nicht wirklich wie ich vorgehen muss. Würdest mir bitte jemand auf die Sprünge helfen und mir beispielhaft so ein Requests zur Verfügung stellen und erklären? Mit dem EibPort Wiki wird es für mich leider nicht verständlicher.

                        LG, Diddi

                        Kommentar


                          #13
                          Servus Diddi,

                          hier der Schnelldurchgang mit dem neuen Logikeditor.
                          • HTTP-Request mit Text-Prozessor und mindestens einem Werteausgang verknüpfen.
                          Struktur.png
                          • HTTP Request bearbeiten, auf "Konfiguration" klicken
                          HR1.png
                          HR2.png
                          • Nach Klick auf "OK" zerlegt der EIBPort dann den Abfragelink.

                            HR3.png
                          • Nochmal "OK", dann ist der HTTP-Request fertig.
                          • Jetzt kann man auf Test klicken, dann sollte ein Fenster aufgehen mit den entsprechenden Daten.

                            TestHTTP.png
                          • Die JSON Antwort einmal komplett rauskopieren.
                          • Jetzt ist der Textprozessor dran:

                            TextProc.png
                          • Als Text-Typ "JSON" auswählen, den "Muster-Text" aus der Zwischenablage einkopieren.
                          • Datentypen entsprechend definieren, als Selektor "JSON" wählen, das erspart einem die RegEx Wissenschaft.
                          • Dann den JSON-Pfad abfragen (siehe Beispiel) und an die Werteausgänge ausgeben.
                          --> 13.95°C in Gera

                          Grüße Alex
                          ​​​​​​​

                          Kommentar


                            #14
                            Hey Alex,
                            danke für die ausführliche Anleitung:
                            Ich komme genau bis hier:
                            Zitat von MUCKNXer Beitrag anzeigen
                            Jetzt kann man auf Test klicken, dann sollte ein Fenster aufgehen mit den entsprechenden Daten.
                            Leider geht bei mir das Fenster mit den Daten nicht auf. Ich hab alles genauso gemacht wie beschrieben. Muss ich beim EibPort noch etwas freigeben, damit er Daten von draußen abfragen kann?

                            Kommentar


                              #15
                              Zitat von bremair Beitrag anzeigen
                              Muss ich beim EibPort noch etwas freigeben, damit er Daten von draußen abfragen kann?
                              Wenn Du ihm nicht aktiv in Deinem Netz den Internetzugang abgesägt hast, nicht...

                              Habe es gerade probiert, bei mir klappt's - Nebel mit 9.5°C bei Dir...

                              Abfrage.png


                              test.png

                              prozessor.png

                              Sonstige Ideen woran es scheitern könnte:
                              * Popup-Blocker im Browser (ich benutze Chrome für macOS)
                              * Ein Fehler in der URL (dann sollte aber mindestens ein 404 error kommen)

                              Poste doch mal einen Screenshot von Deiner Abfrage (idealerweise ohne die API-ID...)


                              Grüße Alex




                              Kommentar

                              Lädt...
                              X