Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Rest-API - Verständnisproblem

    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

    Rest-API - Verständnisproblem

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

      @codierknecht Alles gut. Ich hatte auch nicht auf eine schnelle Antwort gehofft. 😊

      Codierknecht 1 Reply Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @Rene55 last edited by

        @rene55 sagte in Rest-API - Verständnisproblem:

        Ich hatte auch nicht auf eine schnelle Antwort gehofft

        Warum nicht? 😁 😁 😁

        682667fd-8572-49df-b3e0-f3e125f93704-grafik.png

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

          @rene55

          Schau mal mit den Web Developer Tools,
          Ob da auch die richtige http Methode verwendet wird

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

            @rene55

            Ach schau mal
            Hier gibts ein issue dazu
            https://github.com/ioBroker/ioBroker.rest-api/issues/54

            Wenn du es selbst programmierst kannst du ja den richtigen Header setzen

            Predator83 created this issue in ioBroker/ioBroker.rest-api

            open PATCH request not working #54

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

              @oliverio
              Wobei man für das einfache Setzen eines State ja patch auch gar nicht benötigt

              http://192.168.179.13:8093/v1/command/setState?id=0_userdata.0.Test.differenz&state=42
              
              OliverIO Rene55 2 Replies Last reply Reply Quote 0
              • OliverIO
                OliverIO @Codierknecht last edited by OliverIO

                @codierknecht

                Wenn er bei simple api bleibt.
                Der arbeitet nur mit der get Methode und was gemacht werden soll steht in der Adresse als Parameter drin.

                Rest api und simple api sind unterschiedlich.
                Das eine ist direkt im Admin eingebaut, das andere ist ein zusätzlicher Adapter

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

                  @codierknecht Erster Erfolg: mit http://192.168.69.112:8093/v1/command/setState?id=0_userdata.0.Test.Werte.Value&state=41 funktioniert es.

                  OliverIO 1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @OliverIO last edited by

                    @oliverio sagte in Rest-API - Verständnisproblem:

                    Wenn er bei simple api bleibt.

                    Bleibt er ja nicht. Er hat Rest-API ... so wie ich in meinem letzten Beispiel auch.

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

                      @oliverio Ich schau mir den Issue mal an. Vllt. bin ich dann schlauer.

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

                        @codierknecht

                        Dann sorry, sieht zu ähnlich aus
                        Bei echtem Rest wäre aber so ein Befehl unnötig

                        Aber ist halt alles philosophisch die Unterscheidung

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

                          @oliverio sagte in Rest-API - Verständnisproblem:

                          sieht zu ähnlich aus

                          Darum komme ich da auch ständig durcheinander 😁

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

                            @codierknecht Jetzt muss ich nur noch schauen, wenn es für API einen Benutzer mit Password gibt. Im Simple-Api wurde es einfach hinten angehangen.

                            Codierknecht 1 Reply Last reply Reply Quote 0
                            • Codierknecht
                              Codierknecht Developer Most Active @Rene55 last edited by

                              @rene55 sagte in Rest-API - Verständnisproblem:

                              wenn es für API einen Benutzer mit Password gibt

                              Wer macht denn sowas? 😉

                              Basic-Authentication müsste wohl als zusätzlicher Header mitgegeben werden.

                              85fb8a55-57af-403a-9410-c768dbdcd27f-grafik.png

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

                                @oliverio Schön das der Issue #54 schon aus 2023 ist. Aber nach meinem Denken ist ja schon die http-Befehlszeile im Swagger nicht korrekt, da steht nichts von 'patch' drin.

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

                                  @codierknecht Ja, mit ein Grund, auf was 'modernes' umzusteigen! Wobei ich dann noch erlernen muss, wie ich denn im ESP einen curl abgesetzt bekommen - andere Baustelle (aber gehört ins Gesamtpaket).

                                  OliverIO BananaJoe 2 Replies Last reply Reply Quote 0
                                  • OliverIO
                                    OliverIO @Rene55 last edited by

                                    @rene55

                                    Nix curl
                                    Da verwendest du die http Bibliothek.
                                    Die kann das.

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

                                      @oliverio Wäre mir am liebsten. Nur das, was ich dafür brauche aus dem Swagger rauszukriegen übersteigt (aktuell) meinen Wissensstand.

                                      OliverIO 1 Reply Last reply Reply Quote 0
                                      • BananaJoe
                                        BananaJoe Most Active @Rene55 last edited by

                                        @rene55 sagte in Rest-API - Verständnisproblem:

                                        Wobei ich dann noch erlernen muss, wie ich denn im ESP einen curl abgesetzt bekommen

                                        Wie @OliverIO schreibt. einfach per http.

                                        Swagger nimmt curl weil man aus curl-Beispielen es eigentlich für jede Variante ableiten kann, z.B. PowerShell usw.
                                        Bei curl sind die einzelnen Option schön getrennt und klar ersichtlich, z.B. ob es POST oder GET ist, ob ein Header übergeben wird usw.

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

                                          @rene55

                                          Einfach ChatGPT befragen.
                                          Gerade für Code, insbesondere wenn die lernbasis groß ist, gibt es schon die 90% Idee wie man zum Ziel kommt, auch wenn da manchmal Fehler enthalten sind.
                                          Hier mal eine Abfrage von gerade eben

                                          Auf einem ESP (z. B. ESP32 oder ESP8266) kannst du eine HTTP-PATCH-Anfrage mit der HTTPClient-Bibliothek in der Arduino-IDE ausführen. Hier ist ein Beispielcode, der zeigt, wie du eine PATCH-Anfrage mit JSON-Daten an einen Server sendest:

                                          Beispielcode für ESP32/ESP8266:

                                          #include <WiFi.h>        // Für ESP32 (nutze <ESP8266WiFi.h> für ESP8266)
                                          #include <HTTPClient.h>
                                          
                                          const char* ssid = "Dein_WLAN_Name";
                                          const char* password = "Dein_WLAN_Passwort";
                                          const char* serverUrl = "http://example.com/api/resource";  // Ziel-URL für PATCH
                                          
                                          void setup() {
                                              Serial.begin(115200);
                                              WiFi.begin(ssid, password);
                                          
                                              // Warten, bis WiFi verbunden ist
                                              while (WiFi.status() != WL_CONNECTED) {
                                                  delay(1000);
                                                  Serial.println("Verbinde mit WiFi...");
                                              }
                                              Serial.println("WiFi verbunden!");
                                          
                                              HTTPClient http;
                                              http.begin(serverUrl);  // URL setzen
                                              http.addHeader("Content-Type", "application/json");  // JSON-Header setzen
                                          
                                              // JSON-Daten für das Patch-Request
                                              String jsonPayload = "{\"key1\":\"value1\",\"key2\":\"value2\"}";
                                          
                                              int httpResponseCode = http.PATCH(jsonPayload);  // PATCH-Request senden
                                          
                                              if (httpResponseCode > 0) {
                                                  Serial.print("HTTP Response Code: ");
                                                  Serial.println(httpResponseCode);
                                                  String response = http.getString();
                                                  Serial.println("Antwort: " + response);
                                              } else {
                                                  Serial.print("Fehler bei PATCH: ");
                                                  Serial.println(http.errorToString(httpResponseCode).c_str());
                                              }
                                          
                                              http.end();  // Verbindung schließen
                                          }
                                          
                                          void loop() {
                                              // Kein Code hier nötig
                                          }
                                          

                                          Erklärung:

                                          • WiFi-Verbindung herstellen: Der ESP verbindet sich mit dem WLAN.
                                          • HTTPClient verwenden: Mit http.begin(serverUrl) wird die Verbindung zum Server aufgebaut.
                                          • Header setzen: http.addHeader("Content-Type", "application/json") teilt dem Server mit, dass JSON gesendet wird.
                                          • PATCH-Request senden: http.PATCH(jsonPayload) sendet die JSON-Daten an den Server.
                                          • Antwort auslesen: Der HTTP-Response-Code und die Server-Antwort werden über die serielle Konsole ausgegeben.

                                          Falls dein Server HTTPS verwendet, solltest du stattdessen WiFiClientSecure und HTTPClient verwenden.

                                          Falls du weitere Fragen hast oder es für dein Projekt anpassen möchtest, sag Bescheid!

                                          1 Reply Last reply Reply Quote 0
                                          • Rene55
                                            Rene55 @BananaJoe last edited by

                                            @bananajoe Ja soweit alles ok. Wie schon erwähnt, mit Simple-Api (und den ESPs) läuft das bei mir schon geraume Zeit - sowohl zum ESP als auch zurück. Das blöde ist gerade nur, dass ich nicht zu Hause bin und natürlich keinen ESP hier habe. Ich mache jetzt hier nur aus dem Browser heraus.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            779
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            29
                                            926
                                            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