Ankündigung

Einklappen
Keine Ankündigung bisher.

Http GET Request - Webabfrage

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

    Http GET Request - Webabfrage

    Hallo, ich habe jetzt lange nach einer Lösung im Forum gesucht, aber nichts passendes gefunden. Gibt es einen LBS der eine einfache HTML Seite abrufen kann, so ähnlich wie beim HS4? Ich weiß das es viele Lösungen mit so einer Abfrage schon im Download bereicht gibt (den Code habe ich mir angeschaut), aber die sind immer nur für spezielle Sachen und parsen schon den Inhalt richtig.
    Wenn es denn keinen allgemeines LBS gibt, würde ich den selber schreiben und zur Verfügung stellen. Das Zerteilen sollte wieder ein anderer LBS machen.

    Die meisten LBS sind nie dynamisch genug bzw. nicht wiederverwendbar :-( Ich finde einen LBS sollte man so programmieren, das man ihn für viele Sachen nutzen kann, also vielseitig einsetzbar.

    Gruß

    #2
    + fänd ich gut....
    Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

    Kommentar


      #3
      Nette Idee eigentlich, koennte aber problematisch werden wenn der Webseiten Source laenger als ~10kB ist. Was wohl haeufiger der Fall sein wird...

      Kommentar


        #4
        Für Version 0.1 wird es erstmal reichen. Man könnte ja mehrere Varianten Datentypen mit 10.000 Zeichen als Array abbilden und den Inhalt schon einschränken der zurück kommt. Meistens braucht man ja nicht mal 10.0000 Zeichen sondern nur Teile von dessen.
        Zuletzt geändert von Teutone; 21.12.2016, 17:00.

        Kommentar


          #5
          Und wo ist da der Sinn?! Der LBS würde also ne HTML-Source runterladen - na toll Ein Einzeiler quasi... Das Parsen ist doch gerade die Herausforderung...
          EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

          Kommentar


            #6
            Hallo gaert, dann hat man für jede Abfrage einen eigenen LBS mit Parser und das dann für 10 Abfragen?

            Kommentar


              #7
              Ein "Array" nehmen ist jetzt aber auch nicht zielfuehrend... im Endeffekt braucht man dann mehrere Aus- und dazu passend mehrere Eingaenge. Wieviel sollen das sein? 3? Und wenn der Source dann laenger als 30kB wird? Grad wenn man irgendwelche Appliances abfragt sind da recht oft recht grosse Sourcen die geschickt werden, weil Javascript und mitunter sogar Grafiken direkt eingebettet sind.
              Und das ganze im Vorfeld zu parsen macht ja nu auch keinen Sinn, dann kann man es gleich auch "richtig" parsen

              Ich seh zwar den Vorteil darin, dass man quasi im Logikeditor einen HTTP-Baustein haette, aber so einfach wird das nicht werden (wenn es gut sein soll). Da kommen dann ja noch so Sachen wie Statusausgaenge, Fehlercodes usw usf hinzu...

              Was funktionieren wuerde waere ein LBS der nix macht, sondern nur eine Funktion zur Verfuegung stellt die dann von anderen Bausteinen genutzt wird. Ich hab das zwar noch nie probiert, nach meinem Verstaendnis muesste das aber funktionieren.
              Dazu brauchts dann aber eben keinen LBS, sondern eher ein Stueck Source-Code was man zB hier posten koennte

              Kommentar


                #8
                Zitat von Teutone Beitrag anzeigen
                Die meisten LBS sind nie dynamisch genug bzw. nicht wiederverwendbar :-( Ich finde einen LBS sollte man so programmieren, das man ihn für viele Sachen nutzen kann, also vielseitig einsetzbar.
                Also ich bin gegen die EierlegendeWollMilchSau-LBS. Denn entweder der LBS wird so generisch, dass sich jeder noch einen eigenen LBS dahinter stricken muss, oder er wird zu komplex. Wenn ich beispielsweise einen LBS zur Steuerung/Abfrage eines Devices per HTTP benötige, dann will ich den nicht aus mehreren LBS zusammenbasteln, was i.d.R. ohnehin nicht funktioniert, sondern ich möchte einen LBS der auch den Zweck erfüllt. Beispiel wäre der SENEC Home Abfrage LBS. Ich denke nicht, dass der zu speziell ist. Wäre es nur eine HTTP Abfrage, dann müsste sich jeder mit langer Logik dahinter die HTTP Response zerlegen, bis man endlich die Daten hat, die der Baustein jetzt direkt auf seinen Ausgängen liefert.

                Welchen konkreten Anwendungsfall hast Du denn für den HTTP-GET Baustein?

                Ich sage nicht, dass ein solcher Baustein keinen Sinn macht, aber er macht genauso viel Sinn wie die anderen spezielleren auch.





                Kommentar


                  #9
                  Beispiel für ein GET-Befehl: Ansteuern des Nuki-Tür-Schloss zum Öffnen per HTTP-Kommando. Müssen nur zwei Parameter (ID und API-Key) mitgegeben werden und die Tür geht auf. Für diesen einfachen Zweck bräuchte ich jetzt zum Beispiel kein Baustein.
                  Sonos

                  Kommentar


                    #10
                    ... das mit dem GET und zwei Parameterns sollte mit HTTP/UDP/Shell funktionieren. Oder mußt Du die Antwort auswerten?
                    Ich nutze HTTP/UDP/Shell z.B. um Visu-Tabletts mittels WOLI ein-/auszuschalten.

                    Kommentar


                      #11
                      Zitat von mars Beitrag anzeigen
                      ... das mit dem GET und zwei Parameterns sollte mit HTTP/UDP/Shell funktionieren. Oder mußt Du die Antwort auswerten?
                      Ich nutze HTTP/UDP/Shell z.B. um Visu-Tabletts mittels WOLI ein-/auszuschalten.
                      Wieder was gelernt. Auswerten muss ich tatsächlich nix. Versuch ich gleich mal.
                      Sonos

                      Kommentar


                        #12
                        Zitat von pfischi Beitrag anzeigen
                        Beispiel für ein GET-Befehl: Ansteuern des Nuki-Tür-Schloss zum Öffnen per HTTP-Kommando. Müssen nur zwei Parameter (ID und API-Key) mitgegeben werden und die Tür geht auf. Für diesen einfachen Zweck bräuchte ich jetzt zum Beispiel kein Baustein.
                        genau, denn das geht ja schon mit EDOMI Boardmitteln (HTTP-GET Befehl).
                        Hier ging es ja um das Ergebis des HTTP-Get.
                        Ich sehe es ähnlich wie Christian, der eigentliche LBS Gehirnschmalz liegt im Parsen, nicht im holen der Webseite. Und wenn man das jetzt in verschieden LBS splitten würde und das vermutlich noch mit EXEC Teilen, dann wird es schon ne Herausforderung wegen der asynchronen Ausführung verschiedener Teile dieser Logikkette.



                        Kommentar


                          #13
                          Asynchron wird da vermutlich nix werden, der eine Baustein holt ab, legt es auf ein iKO, der naechste Baustein wertet das iKO aus...
                          Aber wie gesagt: man muesste noch verschiedene Fehler mit ausgeben, der Folge-LBS muss das entsprechend auswerten, darauf reagieren, evtl den ersten LBS daraufhin nochmals triggern... das wird im Endeffekt alles viel komplizierter statt einfacher werden

                          Aber nochmal: ein Baustein dafuer ist aus vielerlei Gruenden suboptimal, lieber eine entsprechende Funktion bauen und veroeffentlichen die dann jeder einfach per Copy&Paste in seine Bausteine setzen kann. Ich meine aber, sowas aehnliches gab es schonmal, oder?

                          Kommentar


                            #14
                            ja das fände ich auch gut. Entweder als Codeschnipsel oder auch als include Dateien.

                            Kommentar


                              #15
                              ... wenn parsen notwendig ist, sehe ich es genau so. Abfragen "zusammenbasteln" gab es schon.
                              ... und ob es immer gleich ein LBS sein muss, obwohl es mittels "diskreter" Logik auch geht: siehe thread zur Umrechnung Uhrzeit in Dezimal/Grad
                              ... aber irgendwie wird es mit der Vielzahl der der LBSe auch unübersichtlich: siehe Diskussion zum Logging mittels 19000746 und 19000453 im Updates-Thread.

                              Ich habe zwar keine Lösung, würde mir aber in EDOMI eine Möglichkeit der Organisierung / Gruppierung (z.B. Verzeichnisse inerhalb der Community-Bausteine und /oder alphabetische Sortierung) wünschen.

                              Kommentar

                              Lädt...
                              X