Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter rest-api

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

Test Adapter rest-api

Scheduled Pinned Locked Moved Tester
49 Posts 14 Posters 8.5k Views 15 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • haus-automatisierungH haus-automatisierung

    @lugge86 sagte in Test Adapter rest-api:

    Scheinbar erwartet der Adapter hier eine URL.

    Ja, Du musst dem Adapter ja mit dem Subscribe sagen, wohin die Änderungen des States publiziert werden sollen. Oder wie stellst Du Dir ein Subscribe vor?!

    L Offline
    L Offline
    lugge86
    wrote on last edited by lugge86
    #41

    @haus-automatisierung sagte in Test Adapter rest-api:

    @lugge86 sagte in Test Adapter rest-api:

    Scheinbar erwartet der Adapter hier eine URL.

    Ja, Du musst dem Adapter ja mit dem Subscribe sagen, wohin die Änderungen des States publiziert werden sollen. Oder wie stellst Du Dir ein Subscribe vor?!

    Klar, ist mir das klar. Habe ja auch extra einen entsprechenden Endpoint in meinem flask-script angelegt.

    Und wenn ich den Subscribe per POST durchführe kann ich die URL dieses Endpoints dem iobroker auch im POST-body mitgeben. In Python sieht das dann z.B. so aus:
    4d3c1b95-b1ed-43fa-8f7d-040558c741c8-image.png

    Aber bei der GET-Variante gibt es, zumindest laut SwaggerUI, keine Möglichkeit eine URL mitzugeben. Das sieht in Swagger so aus:
    4ee6de79-7bcb-4ceb-921a-f608c2b890f7-image.png
    Ich kann zwar ein onchange und ein delta einstellen, aber keine URL hinterlegen.
    Nun ist Swagger aber mehr oder weniger die einzige Doku die ich habe.
    Die Frage lautet also: wie gebe ich die URL mit?

    Hab mal zur Gaudi probiert einfach ein &url= im GET-Request anzuhängen, ohne Erfolg. Der Adapter schmiert ab weil die URL fehlt:

    curl -X 'GET'   'http://192.168.0.252:8093/v1/state/0_userdata.0.test.test2/subscribe?method=GET&onchange=true&url="http://192.168.0.85:5800/callback"'   -H 'accept: application/json'
    
    haus-automatisierungH 1 Reply Last reply
    0
    • L lugge86

      @haus-automatisierung sagte in Test Adapter rest-api:

      @lugge86 sagte in Test Adapter rest-api:

      Scheinbar erwartet der Adapter hier eine URL.

      Ja, Du musst dem Adapter ja mit dem Subscribe sagen, wohin die Änderungen des States publiziert werden sollen. Oder wie stellst Du Dir ein Subscribe vor?!

      Klar, ist mir das klar. Habe ja auch extra einen entsprechenden Endpoint in meinem flask-script angelegt.

      Und wenn ich den Subscribe per POST durchführe kann ich die URL dieses Endpoints dem iobroker auch im POST-body mitgeben. In Python sieht das dann z.B. so aus:
      4d3c1b95-b1ed-43fa-8f7d-040558c741c8-image.png

      Aber bei der GET-Variante gibt es, zumindest laut SwaggerUI, keine Möglichkeit eine URL mitzugeben. Das sieht in Swagger so aus:
      4ee6de79-7bcb-4ceb-921a-f608c2b890f7-image.png
      Ich kann zwar ein onchange und ein delta einstellen, aber keine URL hinterlegen.
      Nun ist Swagger aber mehr oder weniger die einzige Doku die ich habe.
      Die Frage lautet also: wie gebe ich die URL mit?

      Hab mal zur Gaudi probiert einfach ein &url= im GET-Request anzuhängen, ohne Erfolg. Der Adapter schmiert ab weil die URL fehlt:

      curl -X 'GET'   'http://192.168.0.252:8093/v1/state/0_userdata.0.test.test2/subscribe?method=GET&onchange=true&url="http://192.168.0.85:5800/callback"'   -H 'accept: application/json'
      
      haus-automatisierungH Offline
      haus-automatisierungH Offline
      haus-automatisierung
      Developer Most Active
      wrote on last edited by haus-automatisierung
      #42

      @lugge86 sagte in Test Adapter rest-api:

      Hab mal zur Gaudi probiert einfach ein &url= im GET-Request anzuhängen, ohne Erfolg.

      Eventuell ist das auch ein Fehler im Adapter. Aber wie Du die URL übergibst ist in jedem Fall falsch. Da gehören keine Anführungszeichen drumherum und Du solltest URL Encoding verwenden. Also

      &url=http%3A%2F%2F192.168.0.85%3A5800%2Fcallback
      

      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
      📚 Meine inoffizielle ioBroker Dokumentation

      L 1 Reply Last reply
      0
      • haus-automatisierungH Offline
        haus-automatisierungH Offline
        haus-automatisierung
        Developer Most Active
        wrote on last edited by
        #43

        Wie es aussieht, wird die URL immer nur aus dem Body geholt:

        https://github.com/ioBroker/ioBroker.rest-api/blob/f3b56614b5961aef28731a31604f36a57ec7fc03/src/lib/api/controllers/state.ts#L90-L91

        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
        📚 Meine inoffizielle ioBroker Dokumentation

        L 1 Reply Last reply
        0
        • haus-automatisierungH haus-automatisierung

          @lugge86 sagte in Test Adapter rest-api:

          Hab mal zur Gaudi probiert einfach ein &url= im GET-Request anzuhängen, ohne Erfolg.

          Eventuell ist das auch ein Fehler im Adapter. Aber wie Du die URL übergibst ist in jedem Fall falsch. Da gehören keine Anführungszeichen drumherum und Du solltest URL Encoding verwenden. Also

          &url=http%3A%2F%2F192.168.0.85%3A5800%2Fcallback
          
          L Offline
          L Offline
          lugge86
          wrote on last edited by
          #44

          Danke nochmal für die Rückmeldung. Ja, so hab ichs auch schon mal probiert:

          curl -X 'GET'   'http://192.168.0.252:8093/v1/state/0_userdata.0.test.test2/subscribe?method=GET&onchange=true&url=http%3A%2F%2F192.168.0.85%3A5800%2Fcallback'   -H 'accept: application/json'
          curl: (52) Empty reply from server
          

          8265b1ee-55fe-4a98-ba12-37879c4502d6-image.png

          Um ehrlich zu sein, ich habe schon recht viel probiert- Aber ich kann halt nur raten, denn die Doku ist entweder falsch oder unvollständig.

          Mein Problem ist dass leider andere APIs auch davon betroffen sind. Die API zum Abfragen der bestehenden Subscriptions zeigt das selbe verhalten.
          (die hier:)ebe236af-2383-4152-89b2-d3da470bdcbb-image.png

          Mich würds aber wundern wenn bisher noch niemand diese APIs getestet hat. Hier scheint wohl nur der Entwickler weiterhelfen zu können...

          1 Reply Last reply
          0
          • haus-automatisierungH haus-automatisierung

            Wie es aussieht, wird die URL immer nur aus dem Body geholt:

            https://github.com/ioBroker/ioBroker.rest-api/blob/f3b56614b5961aef28731a31604f36a57ec7fc03/src/lib/api/controllers/state.ts#L90-L91

            L Offline
            L Offline
            lugge86
            wrote on last edited by lugge86
            #45

            @haus-automatisierung sagte in Test Adapter rest-api:

            Wie es aussieht, wird die URL immer nur aus dem Body geholt:

            https://github.com/ioBroker/ioBroker.rest-api/blob/f3b56614b5961aef28731a31604f36a57ec7fc03/src/lib/api/controllers/state.ts#L90-L91

            Da scheint aber noch mehr nicht zu passen, denn eigentlich sollte im Falle einer fehlenden URL ein JSOn mit einer Fehlerbeschreibung zurückgegeben werden.
            ae6d660d-97c9-4990-bea8-a89de7ad1266-image.png

            Wie man auf meinen Screenshots sieht crasht aber bei mir der Adapter.

            Kannst du bei dir mal mittels curl schauen ob das Problem auch bei dir auftritt?

            Update: dein Tipp mit dem Body war gold wert.
            Folgender Aufruf klappt:

            curl -X 'GET' \
              'http://192.168.0.252:8093/v1/state/0_userdata.0.test.test2/subscribe?method=GET&onchange=true&delta=5' \
              -H 'accept: application/json' \
              -H 'Content-Type: application/json' \
              -d '{ "url": "http://192.168.0.85:5800/callback"}'
            

            Mal schaun ob das auch für die anderen APIs klappt.

            1 Reply Last reply
            0
            • L Offline
              L Offline
              lugge86
              wrote on last edited by
              #46

              Nachtrag: ja, klappt auch mit anderen APIs.
              Solange die URL im Body kommt gibts keine Abstürze mehr.
              Bin nur etwas verwundert dass noch niemand scheinbar dieses Problem hatte...

              Hab jetzt noch weiter rumgespielt und herausgefunden dass, entgegen der "Doku", die onchange- und delta-Parameter auch bei POST funktionieren, und zwar bei Übergabe sowohl im Body als auch direkt im Request. Gemäß SwaggerUI dürfte keines von beiden funktionieren.
              Dann kann ichs auch direkt per POST und alles im Body machen, dann ists wenigstens einheitlich.

              Schade nur dass die "Doku" so massiv neben der Realität ist.

              mcm1957M haus-automatisierungH 2 Replies Last reply
              0
              • L lugge86

                Nachtrag: ja, klappt auch mit anderen APIs.
                Solange die URL im Body kommt gibts keine Abstürze mehr.
                Bin nur etwas verwundert dass noch niemand scheinbar dieses Problem hatte...

                Hab jetzt noch weiter rumgespielt und herausgefunden dass, entgegen der "Doku", die onchange- und delta-Parameter auch bei POST funktionieren, und zwar bei Übergabe sowohl im Body als auch direkt im Request. Gemäß SwaggerUI dürfte keines von beiden funktionieren.
                Dann kann ichs auch direkt per POST und alles im Body machen, dann ists wenigstens einheitlich.

                Schade nur dass die "Doku" so massiv neben der Realität ist.

                mcm1957M Offline
                mcm1957M Offline
                mcm1957
                wrote on last edited by
                #47

                @lugge86

                Wär sinnvoll wenn du mindestens ein Issue dazu - optimaler Weise gleich einen PR mit der korrigierten Docu erstellen könntest wenn du schon rausgefunden hats was nicht passt.

                DANKE

                Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                Support Repositoryverwaltung.

                Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                LESEN - gute Forenbeitrage

                1 Reply Last reply
                0
                • L lugge86

                  Nachtrag: ja, klappt auch mit anderen APIs.
                  Solange die URL im Body kommt gibts keine Abstürze mehr.
                  Bin nur etwas verwundert dass noch niemand scheinbar dieses Problem hatte...

                  Hab jetzt noch weiter rumgespielt und herausgefunden dass, entgegen der "Doku", die onchange- und delta-Parameter auch bei POST funktionieren, und zwar bei Übergabe sowohl im Body als auch direkt im Request. Gemäß SwaggerUI dürfte keines von beiden funktionieren.
                  Dann kann ichs auch direkt per POST und alles im Body machen, dann ists wenigstens einheitlich.

                  Schade nur dass die "Doku" so massiv neben der Realität ist.

                  haus-automatisierungH Offline
                  haus-automatisierungH Offline
                  haus-automatisierung
                  Developer Most Active
                  wrote on last edited by
                  #48

                  @lugge86 sagte in Test Adapter rest-api:

                  Bin nur etwas verwundert dass noch niemand scheinbar dieses Problem hatte...

                  Die meisten werden wahrscheinlich POST nutzen. Aber schön finde ich das auch nicht. Man nutzt ja meistens GET mit URL Parametern, weil man keine Möglichkeit hat einen Body zu übergeben. Sonst könnte man ja direkt POST nutzen...

                  Sehe das also schon als Bug, wenn die Url nicht als GET-Parameter übergeben werden kann.

                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                  🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                  📚 Meine inoffizielle ioBroker Dokumentation

                  L 1 Reply Last reply
                  1
                  • haus-automatisierungH haus-automatisierung

                    @lugge86 sagte in Test Adapter rest-api:

                    Bin nur etwas verwundert dass noch niemand scheinbar dieses Problem hatte...

                    Die meisten werden wahrscheinlich POST nutzen. Aber schön finde ich das auch nicht. Man nutzt ja meistens GET mit URL Parametern, weil man keine Möglichkeit hat einen Body zu übergeben. Sonst könnte man ja direkt POST nutzen...

                    Sehe das also schon als Bug, wenn die Url nicht als GET-Parameter übergeben werden kann.

                    L Offline
                    L Offline
                    lugge86
                    wrote on last edited by lugge86
                    #49

                    @haus-automatisierung sagte in Test Adapter rest-api:

                    @lugge86 sagte in Test Adapter rest-api:

                    Bin nur etwas verwundert dass noch niemand scheinbar dieses Problem hatte...

                    Die meisten werden wahrscheinlich POST nutzen. Aber schön finde ich das auch nicht. Man nutzt ja meistens GET mit URL Parametern, weil man keine Möglichkeit hat einen Body zu übergeben. Sonst könnte man ja direkt POST nutzen...

                    Ich hab mich ehrlich gesagt auch nur mit GET beschäftigt weil es laut SwaggerUI dort die Möglichkeit gibt, sich mittels den Parametern "onchange" und "delta" nur über gewisse Änderungen benachrichtigen zu lassen.
                    Aber nachdem diese Parameter ja auch mit POST funktionieren hat sich die GET-Variante ohnehin für mich erledigt.

                    Sehe das also schon als Bug, wenn die Url nicht als GET-Parameter übergeben werden kann.

                    Das doofe ist halt auch dass SwaggerUI suggeriert, die URL soll als Parameter übergeben werden (und auch keine andere Möglichkeit in der GUI bietet).
                    Von dem her ist die Implementierung in sich nicht stimmig.

                    Aber wie auch immer, Problem ist für mich gelöst, es klappt nun alles. Ich versuche dran zu denken, am WE ein issue zu erstellen :-)

                    1 Reply Last reply
                    2
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    374

                    Online

                    32.5k

                    Users

                    81.7k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Home
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe