Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. REST API Post

    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 Post

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      JörnW last edited by JörnW

      Hallo zusammen,

      ich bräuchte bitte einmal eure Hilfe für mein Projekt.

      Ich habe ein Script, mit dem ich die Entladung meines Energiespeichersystems steuern möchte. Nicht komplett steuern, sondern in einigen Fällen am Tag eher übersteuern. Beispielsweise die Entladung des Akkus auf 0 setzen, wenn das eAuto beladen wird.

      Dafür muss ich an eine lokale API des Energiespeichersystems (läuft hier im lokalem Netz) einen Wert per POST Request senden. Die Sache an der ich jetzt scheitere ist die verflixte Authentifizierung. Man muss Username und Passwort übergeben.

      Ich habe das versucht, bekomme aber keine Erfolgs- oder Fehlermeldung. Wenn das Script läuft tut sich schlicht "nichts" Im Postman funktioniert es. Also die API des Speichersystem selbst funktioniert.

      Hier das Script

      let server = 'http://192.168.25.99:8084/rest/channel/ess0/SetActivePowerEquals';    
      let body_sent = {
         "value": 2500          
       };                                                  
      console.log("Server : " + server);
      request.post({
              url: server,
              headers: {'Content-Type': 'application/json'},        
              json:    body_sent,
              form: {username: 'x', password: 'y'}
              
          }, function(error, response, body) {
              
              if (error)  { console.log(error); }
              if (!error && response.statusCode == 200) {
                  log(JSON.parse(body));
              }
              
          }
          
      );
      

      Könnt Ihr mir helfen? Wie bzw. wo genau muss ich die Credentials unterbringen? In der Anleitung des Herstellers steht, das username und Passwort genutzt werden müssen. Kein API Key.

      Vielen Dank!
      Jörn

      arteck OliverIO 2 Replies Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active @JörnW last edited by

        @jörnw sagte in REST API Pos:

        In der Anleitung des Herstellers steht,

        ahhh und du erwartest jetzt was.. meine Glaskugel ist gerade zur Politur..

        also kein Plan :

        was du das hast
        welche API genutzt wird
        welche Doku es zur der Api gibt

        und zur guter letzt.. LOG ??

        J 1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @JörnW last edited by

          @jörnw sagte in REST API Pos:

          request

          fehlt da

          const request = require("request");
          
          1 Reply Last reply Reply Quote 0
          • J
            JörnW @arteck last edited by

            @arteck : Sorry, ich wolle nicht, das du noch zur Politur greifen musst oder gar den ganzen Kristallkugel-Cluster hochfahren musst.

            Ich habe mich da wohl nicht präzise genug ausgedrückt. Sehe es mir als Anfänger bitte nach. Das was mir fehlte war schlicht der richtige Weg, wie ich Username und Password übergeben muss. Ich habe mich da die Tage "zu Tode Gegoogelt". Habe gestern einen Tip bekommen es mit Axios zu versuchen. Dort bei Axios-http in der Doku habe ich einen Hinweis gefunden, der auch mit meinem Code hier funktioniert...

            Ich habe versucht die Benutzerdaten so zu übergeben: (s. oben im Code):

            form: {username: 'x', password: 'y'}
            

            Korrekt wäre aber wohl gewesen:

                    auth: { username: 'x', password: 'y', }     
            

            Mit "auth{}" bekomme ich nun status code 200 zurück. Und das ESS reagiert wie gewünscht.
            Mit "form{}" war es status code 401. Da dann wohl die Credentials an der falschen Stelle (oder garnicht übertragen wurden?) standen.

            Ich habe dann noch die Info von @OliverIO mit eingebaut. Danke dafür @OliverIO

            Nun läuft es wie verrückt und mir fällt, nach dem ganzen hin und her probieren, ein Stein vom Herzen das es endlich klappt 🙂

            Viele Grüße & Danke
            Jörn

            OliverIO 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO @JörnW last edited by

              @jörnw
              Programmieren ist eine exakte Disziplin.
              Nix mit ungefähr wird schon funktionieren.

              Viele müssen das erst lernen Texte genau zu lesen und zu verstehen.
              Aber um so öfters man das macht um so einfacher fällt einem das

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

              Support us

              ioBroker
              Community Adapters
              Donate

              841
              Online

              31.8k
              Users

              80.0k
              Topics

              1.3m
              Posts

              3
              5
              331
              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