Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Http post mit Blockly

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Http post mit Blockly

    This topic has been deleted. Only users with topic management privileges can see it.
    • David G.
      David G. last edited by David G.

      Hallo,

      ich würde gerne einen http post über blockly erstellen.
      Das scheinr so leicht ja nicht zu gehen.

      Kann man das so in der Art machen?
      Würde gerne alles mit Blockly erstellen und das dann mit einer Funktion erledigen.

      Screenshot_20220318-183639_Chrome~2.jpg

      Über get geht es mit folgender url:

      http://api.pdflayer.com/api/convert?access_key=xxxxx&document_url=https://Google.de
      

      Ich möchte allerdings anstatt "document_url" "document_html" verwenden. Dort muss mit post gearbeitet werden.

      Als Ergebnis kommt vermutlich ein Link zu einer PDF.
      Diesen würde ich gerne in einen Datenpunkt schreiben, zusätzlich runterladen und in einer Mail als Anhang senden.

      Das Problem ist, daß ist alles theoretisch und weiß bei keinem Schritt wie es geht und ob es geht...

      EDIT:
      Hier ist die API beschrieben:
      https://pdflayer.com/documentation#quickstart

      EDIT 2:
      Habe auch schon was mit curl rumprobiert. Aber auch das schaffe ich nicht...

      C 1 Reply Last reply Reply Quote 0
      • C
        chris299 @David G. last edited by

        @david-g hast du es hin bekommen? ich versuche was ähnliches....
        mit dem Javascript Adapter in der Version 7.11.1 (aktuell im beta repo) kommt ein http-post blockly baustein, der aber scheinbar noch bugs hat...

        David G. Asgothian 2 Replies Last reply Reply Quote 0
        • David G.
          David G. @chris299 last edited by

          @chris299

          Habe den Ansatz damals nicht weiter verfolgt.
          Hatte eine lokale Alternative gefunden.

          1 Reply Last reply Reply Quote 0
          • Asgothian
            Asgothian Developer @chris299 last edited by Asgothian

            @chris299 sagte in Http post mit Blockly:

            @david-g hast du es hin bekommen? ich versuche was ähnliches....
            mit dem Javascript Adapter in der Version 7.11.1 (aktuell im beta repo) kommt ein http-post blockly baustein, der aber scheinbar noch bugs hat...

            Der Ansatz funktioniert so eher nicht, da das absenden des http Post Befehls und das annehmen der Antwort des Servers asynchron laufen - das führt zu laufzeitproblemen, es sei denn du arbeitest im ‘Fire and forget’ Modus, sprich du ignorierst die Antwort des Servers auf den HTTP-Post.

            Ich würde auf die 7.11.1 des JS Adapters warten.

            A.
            P.s. mit hinreichen JS wissen kann man das natürlich hin bekommen - aber das wird dann weder handlich noch übersichtlich.

            C 1 Reply Last reply Reply Quote 0
            • C
              chris299 @Asgothian last edited by

              @asgothian die Anmerkung verstehe ich nicht. Bezog sich das auf diese konkrete API? Man bekommt doch üblicherweise schon eine Antwort auf ein HTTP-POST, die man weiter verarbeiten kann...

              Ich habe die 7.11.1. installiert, aber ich hänge da an einem Bug, dass ich das script mit dem POST nicht speichern kann.
              Zudem scheint der von mir benötigte Auth-typ (String im Header) nicht möglich zu sein.....

              Ich habe auch noch nicht verstanden, wie, bzw. ob überhaupt möglich ist, per blockly-JSON2object aus einem DP mit einem komplexen JSON Array einen bzw. mehrere Pfade für ein HTTP-GET zu extrahieren, dessen Response-Binary-Daten ich dann per POST weiterleiten wollte....
              siehe auch https://forum.iobroker.net/topic/14288/tr-064-fritzbox-anrufbeantworter/39
              das Format ist:

              {"Root":{"Message":[{"Index":["1"],"Tam":["0"],"Called":["0123456789"],"Date":["09.09.20 21:30"],"Duration":["0:01"],"Inbook":["0"],"Name":["Feuersturm"],"New":["1"],"Number":["0987654321"],"Path":["/download.lua?path=/data/tam/rec/rec.0.001"]},{"Index":["0"],"Tam":["0"],"Called":["0123456789"],"Date":["09.09.20 21:17"],"Duration":["0:01"],"Inbook":["0"],"Name":["Feuersturm"],"New":["0"],"Number":["0987654321"],"Path":["/download.lua?path=/data/tam/rec/rec.0.000"]}]}}
               
              
              Asgothian 1 Reply Last reply Reply Quote 0
              • Asgothian
                Asgothian Developer @chris299 last edited by

                @chris299 sagte in Http post mit Blockly:

                @asgothian die Anmerkung verstehe ich nicht. Bezog sich das auf diese konkrete API? Man bekommt doch üblicherweise schon eine Antwort auf ein HTTP-POST, die man weiter verarbeiten kann...

                Ich habe die 7.11.1. installiert, aber ich hänge da an einem Bug, dass ich das script mit dem POST nicht speichern kann.
                Zudem scheint der von mir benötigte Auth-typ (String im Header) nicht möglich zu sein.....

                Ich habe auch noch nicht verstanden, wie, bzw. ob überhaupt möglich ist, per blockly-JSON2object aus einem DP mit einem komplexen JSON Array einen bzw. mehrere Pfade für ein HTTP-GET zu extrahieren, dessen Response-Binary-Daten ich dann per POST weiterleiten wollte....
                siehe auch https://forum.iobroker.net/topic/14288/tr-064-fritzbox-anrufbeantworter/39
                das Format ist:

                {"Root":{"Message":[{"Index":["1"],"Tam":["0"],"Called":["0123456789"],"Date":["09.09.20 21:30"],"Duration":["0:01"],"Inbook":["0"],"Name":["Feuersturm"],"New":["1"],"Number":["0987654321"],"Path":["/download.lua?path=/data/tam/rec/rec.0.001"]},{"Index":["0"],"Tam":["0"],"Called":["0123456789"],"Date":["09.09.20 21:17"],"Duration":["0:01"],"Inbook":["0"],"Name":["Feuersturm"],"New":["0"],"Number":["0987654321"],"Path":["/download.lua?path=/data/tam/rec/rec.0.000"]}]}}
                 
                

                Das extrahieren wird in Blockly wahrscheinlich gehen - das ist nicht das Problem. Das Problem ist das der http Post Aufruf asynchron abgearbeitet wird. Das bedeutet das deine js Funktion irgendwie darauf warten muss das das Ergebnis abgeholt werden kann, dann das Ergebnis laden muss. Dazu werden üblicherweise externe Bibliotheken genutzt. Diese Integration innerhalb einer Blockly Funktion dürfte eher schwierig werden.

                Wenn die 7.10.1 für dich nicht funktioniert empfehle ich den folgenden Umweg:
                Schreib (mit Hilfe aus dem Forum) ein JS Skript welches die Http Abfrage macht, getriggert durch einen DP in den du den Post String rein schreibst.
                In dem Skript kannst du dann über eine entsprechende Bibliothek (Axios ist da aktuell glaub ich die Bibliothek der Wahl) den Post Befehl absetzen und das Ergebnis lesen. Dann schaust du noch ob ein Fehler geworfen wird,und wenn das nicht der Fall ist dann schreibst du die Antwort als String in einen weiteren DP. Auf dessen Änderung kannst du dann in Blockly triggern und die weitere Verarbeitung in blockly machen.

                Zu dem JS Skript sollte es im Forum hinreichend Beispiele geben.

                A.

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                851
                Online

                32.0k
                Users

                80.4k
                Topics

                1.3m
                Posts

                3
                6
                1182
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo