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 JSON

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    HTTP POST mit JSON

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

      Hallo,
      es gibt schon so einige Beiträge zu dem Thema, aber leider konnte ich keine Lösung finden.
      Ich habe eine alte ioBroker Instanz (v6.5.2). Dort läuft ein Skript, mit dem ich Daten als HTTP POST Request inkl. JSON verschicke.
      Ich verwende eine kleine JavaScript Funktion...
      e47d5593-6ccd-4c46-92e5-ff45b987213e-image.png
      ... die ich dann wie folgt aufrufe:
      175bcc33-5fda-42ba-9308-d5758109f7d3-image.png

      Jetzt habe ich eine neue ioBroker Instanz eingerichtet (v7.1.2) und wollte das Skript verwenden.
      Es kommt die Meldung:
      script.js.common.Post_Value: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
      Ok, nach einiger Recherche habe ich dann versucht, den neuen Blocky Block zu werden. Das Ganze sieht dann so aus:
      fc7dc925-bc7d-4dbc-aa94-1a2734dc499c-image.png
      Es kommt keine Fehlermeldung und im Log sehe ich Folgendes:
      f1cd83c2-1c03-431a-971c-92aa93e7db46-image.png
      Hm soweit so gut, allerdings kommt beim Empfänger nichts an und ich kann es mir nicht erklären.
      Habt Ihr vielleicht eine Idee?

      Wenn ich, testweise, die URL falsch schreibe, erhalte ich die gleiche Log-Ausgabe.

      Gruß Andreas

      Codierknecht OliverIO 2 Replies Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @StarLord42 last edited by Codierknecht

        @starlord42
        Ich würde das JSON nicht von Hand zusammenklöppeln.

        644bf69b-4714-4784-9d88-ac8949cf8fd3-image.png

        S 1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @StarLord42 last edited by OliverIO

          @starlord42 sagte in HTTP POST mit JSON:

          Habt Ihr vielleicht eine Idee?

          wenn ich mir die beiden blocklys anschaue, dann gibt es schon unterschiede

          1. die url unterscheidet sich
          2. die art und weise wie du den json string zusammenbaust ist auch unterschiedlich.

          wenn man a gegen b austauscht und dann noch drum rum auch noch viele dinge anders macht ist es echt schwierig den fehler zu finden

          gibt es eine api beschreibung?
          evtl muss man noch den json header (content-type) bei der neuen funktion setzen, aber das hängt von der genutzten api beschreibung ab.
          auch kann es ein unterschied machen ob man der funktion einen string oder ein objekt übergibt. von alleine weiß die funktion ja erstmal nicht ob es ein json ist.
          aber ich weiß nicht, wieviel automatismus da drin versteckt ist. im hintergrund wird axios verwendet.
          https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#httppost

          1 Reply Last reply Reply Quote 0
          • S
            StarLord42 @Codierknecht last edited by

            @codierknecht
            Danke für den Hinweis, dass man ein Objekt auch so zusammenbauen kann.
            Mit folgendem Blockly hat es jetzt funktioniert, wobei ich die alte Javascript Funktion verwendet habe.
            d8dd57e7-365c-4a63-93ec-84bf03edebc8-image.png
            Ich bekomme zwar eine Warnung, dass die Funktion veraltet ist, funktionieren tut es aber dennoch.
            abf252e5-66eb-431d-ab5a-d83cc6b28b03-image.png
            Mit der neuen Funktion hatte ich leider kein Glück.
            f7059acc-c90f-4362-899b-bdfb2cb0d414-image.png
            @OliverIO
            Ja, die URLs unterscheiden sich, das macht in dem Fall aber keinen Unterschied, da es unterschiedliche Empfänger sind.
            Eine Beschreibung der Schnittstelle ist verfügbar (Streams and Sensor Data, ich kann aber nicht erkennen, ob der Header noch weitere Infos benötigt. Es gibt ein paar Postman Beispiele und dort kann ich Folgendes sehen:
            091bc412-a495-46d0-8c3c-d98e5c0d5ba3-image.png
            Ich wüsste aber nicht, wie ich z.B. den Content-Type in dem Blockly eintragen soll.

            Also, grundsätzlich kann ich erst einmal damit leben - vielen Dank für die Unterstützung - allerdings wäre es schon interessant zu sehen, wie/ob das mit dem neuen Blockly Block geht.

            Gruß Andreas

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

            Support us

            ioBroker
            Community Adapters
            Donate

            809
            Online

            31.9k
            Users

            80.1k
            Topics

            1.3m
            Posts

            3
            4
            189
            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