Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. XML oder JSON Requests senden

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    XML oder JSON Requests senden

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Mitch @Mitch last edited by

      Ich habe gerade noch ein CLI Skript gefunden, wenn ich das auf dem ioBroker System packe und vom ioBroker ein CLI Kommando absetzen kann, würde das auch gehen:

      https://github.com/pngmbh/autodns-cli

      Was findet ihr besser/einfacher?

      mickym 1 Reply Last reply Reply Quote 0
      • M
        Mitch @mickym last edited by

        @mickym sagte in XML oder JSON Requests senden:

        @mitch Kannst Du mit allen 3 Logikmaschinen: NodeRed, Blockly und Javascript machen. Wenn Du Hilfe bei NodeRed brauchst, dann melde Dich - für die anderen gibts sicher genügend Hilfe von anderen. Du musst Dich halt entscheiden, welche Logikmaschine Du nutzen möchtest.

        Dann würde ich node Red bevorzugen. Müsste ich einen http requests nutzen, oder gibt es da was besseres?

        Vergiss meinen vorherigen Post. Das mit dem cli ist nicht nötig.icb fand nur interessant, dass das Beispiel in der Beschreibung genau das machen soll, was ich möchte. Bei einer Subdomain die IP Adresse updaten.

        1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @Mitch last edited by mickym

          @mitch na ja Du musst halt wieder was installieren - die JSON API funktioniert out of the box. Auf der Webseite kannst probieren. Ja Du nutzt einfach http Request Nodes. Wenn Du über POST verschicken kannst, kannst Du einfach ein payload Objekt schicken. Auf der Webseite die Du gepostet hast, kannst ja direkt die Befehle absetzen. Wenn Du weißt wie und welcher funktioniert, dann kann man das ja entsprechend in der http Request Node umsetzen.

          M 1 Reply Last reply Reply Quote 0
          • M
            Mitch @mickym last edited by

            @mickym sagte in XML oder JSON Requests senden:

            @mitch na ja Du musst halt wieder was installieren - die JSON API funktioniert out of the box. Auf der Webseite kannst probieren. Ja Du nutzt einfach http Request Nodes. Wenn Du über POST verschicken kannst, kannst Du einfach ein payload Objekt schicken. Auf der Webseite die Du gepostet hast, kannst ja direkt die Befehle absetzen. Wenn Du weißt wie und welcher funktioniert, dann kann man das ja entsprechend in der http Request Node umsetzen.

            Kannst du mir vielleicht bei dem Aufbau des JSON helfen. Das CLI Skript könnte dabei helfen, da hier genau mein Beispiel drin ist:

            $ ./autodns-cli update foo.example.org 127.0.0.1

            Bin irgendwie zu blöd dafür...

            mickym 1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @Mitch last edited by mickym

              @mitch Ich habs zwar versucht - aber auf die schnelle kann ich Dir da auch nicht helfen. Sorry.

              Hier steht ein JSON - wie man eine Domäne updated:

              https://help.internetx.com/display/APIXMLDE/Domain+Update

              und hier der Aufbau eines Domain Objektes:

              https://help.internetx.com/display/APIXMLDE/Objekt+Domain

              Du kannst es ja mal so versuchen:

              {
              
                "name": "domain.de",
                "nameServers": [
                  {
                    "name": "string",
                    "ttl": 0,
                    "ipAddresses": [
                      "string"
                    ]
                  }
                ]}
              

              Das Objekt mal in eine payload - ein PUT Request machen und an

              /domain/{name}
              

              aber wie gesagt ich kenn mich da auch nicht aus, so würde ich mich halt rantasten.

              M 1 Reply Last reply Reply Quote 0
              • M
                Mitch @mickym last edited by

                @mickym

                Ich hatte die letzten Tage viel zu tun und konnte mich nicht darum kümmern. Ich habe nun erfolgreich mittels Postman dieses XML Post zur Anbieter URL (https://gateway.autodns.com) gesendet und es funktioniert:

                <?xml version="1.0" encoding="utf-8"?>
                <request>
                <auth>
                <user>username</user>
                <password>passwort</password>
                <context>4</context>
                </auth>
                <task>
                <code>0202001</code>
                <default>
                <search_and_replace>
                <search>1.2.3.4</search>
                <replace>1.2.3.5</replace>
                </search_and_replace>
                </default>
                <zone>
                <name>meinedomain.de</name>
                <system_ns>a.ns14.net</system_ns>
                </zone>
                </task>
                </request>

                Jetzt muss ich das nur noch aus Node RED hinbekommen. Allerdings finde ich dort kein XML, sondern nur JSON.

                Kannst jemand einen Flow posten, wie es funktionieren müsste?

                Wie macht man das jetzt am günstigsten. Ich habe eine alte IP-Adresse 1.2.3.4 und eine neue IP-Adresse 1.2.3.5. Soll ich damit jetzt das XML in ioBroker Objekt bauen, damit ich es über den Flow absetzen kann, oder kann ich im Flow auch mit Variablen arbeiten, die automatisch die alte IP-Adresse und neue IP-Adresse aus den ioBroker Objekten zusammenbaut. Praktisch wie eine Vorlage.

                Ich bräuchte ja auch noch ein Trigger-Objekt, was auf true steht, damit er losläuft und den XML Request per POST absetzt.

                Was würdest ihr tun? Ich denke so eine Vorlage wäre wesentlich einfacher.

                mickym 1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @Mitch last edited by mickym

                  @mitch Hänge mal eine debug Node an Deine HTTP-Request Node um zu sehen, was aus dem Abruf rauskommt. JSON ist wesentlich leichter zu verarbeiten. Du kannst einfach meinen Flow verwenden, um aus dem JSON die einzelnen Werte in einzelne Datenpunkte zu schreiben: https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen

                  Also wenn Du JSON zurück bekommst, ist das wesentlich besser. 🙂

                  Den Trigger kannst Du selbst wählen - ob Du über einen Button in der Visualisierung triggerst oder in zeitlichen Intervall - alles ist möglich. 😉 - Ich zeige es Dir gerne, wenn Du mal mehr Zeit hast und die Antworten nicht in Tagesintervallen, sondern in Minutenintervallen kommen.

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    Mitch @mickym last edited by Mitch

                    @mickym

                    Das mit JSON ist mir bewusst. Allerdings ist die JSON-Schnittstelle des Anbieters nicht so gut (oder in meinem Fall einfach) dokumentiert, wie xml. Und XML funktioniert bei mir schonmal, wenn ich es mittels Postman absende.

                    Screenshot 2023-03-10 160623.png

                    flows.json

                    Meine Erwartungshaltung war, dass ich zumindestens eine Rückmeldung der API vom Anbieter bekomme. Aber unter Debug wird nichts geloggt.

                    Bei XML sehe ich halt mehr Land. Wenn ich einen statischen XML-Code aus dem ioBroker dahin senden kann, der dann auch umgesetzt wird., muss ich den XML-Code noch mit Platzhaltern versehen und durch die Objekte ersetzen.

                    Ich denke, das bekomme ich hin.

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

                      @mitch
                      evtl hilft das weiter

                      https://stackoverflow.com/questions/37234407/how-to-post-with-xml-payload-in-node-red

                      dem html request ist es egal was es da sendet, beides ist text. damit der empfänger versteht was da ankommt muss man den content type richtig setzen.

                      eine detailliertere Beschreibung der http request node ist hier
                      https://stevesnoderedguide.com/node-red-http-request-node-beginners

                      wie authentifizierst du die anfrage? sonst könnte ich die ja auch senden?

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        Mitch @OliverIO last edited by

                        @oliverio Authentifizierung wird über Elemente in der XML. Da gibt es Username und Passwort, so wie auch unter dem Link von dir.

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

                          @mitch
                          Ja hab das gesehen. Allerdings kenn ich das so das man durch die Anmeldung meist ein Token oder sessionid erhält, die man dann in den folgenden Anfragen mitgibt.
                          Http ist eigentlich ein zustandsloses Protokoll. D.h. Der Server kann aufeinander folgende Anfragen noch von einander unterscheiden, daher dann ein Kennzeichen um das alles zu verbinden.
                          Im Browser wäre die Alternative ein Cookie oder eine sessionid in der url, wobei man das aus Sicherheitsgründen nicht mehr macht.
                          Das seh ich hier aber nicht. D.h. Die Authentifizierung läuft dann auf Basis der Absender ip, was ich persönlich als relativ unsicher einschätze. Aber evtl hab ich da auch noch was überlesen.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          757
                          Online

                          31.7k
                          Users

                          79.8k
                          Topics

                          1.3m
                          Posts

                          communication
                          3
                          13
                          646
                          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