Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Axios implementieren

    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

    [gelöst] Axios implementieren

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

      Hallo, ich möchte bei WLED Geräten die Segmente schreiben.
      Da dies leider nicht über den Adapter geht, würde ic hes gerne über die API machen.
      Hier sind online Beispiele mit curl gegeben.
      Um nicht mit exec arbeiten zu müssen, würde ich mir gernex exios zusätzlich in den Javascriptadapter holen.
      Habe es hier schon angegeben:abf4217a-5aed-4e11-b8b9-d8172c797762-image.png
      Ist das korrekt so?
      Was muss ich weiteres machen?
      Und wie könnte man ein bsp. Curl der Seite in axios umsetzen?
      https://kno.wled.ge/interfaces/json-api/

      haus-automatisierung T 2 Replies Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @Ben1983 last edited by

        @ben1983 sagte in Axios implementieren:

        Um nicht mit exec arbeiten zu müssen, würde ich mir gernex exios zusätzlich in den Javascriptadapter holen.

        Ist im Standard schon enthalten. Generell hab ich in der Doku immer alles gefunden, was ich so gesucht habe: https://github.com/axios/axios/blob/v1.x/README.md

        Ben1983 1 Reply Last reply Reply Quote 0
        • T
          ticaki Developer @Ben1983 last edited by

          @ben1983 mit meinem Fork vom wled Adapter geht das. Mehr Info spaäter

          1 Reply Last reply Reply Quote 0
          • Ben1983
            Ben1983 @haus-automatisierung last edited by

            @haus-automatisierung OK, also muss ich es nicht hinzufügen?

            1 Reply Last reply Reply Quote 0
            • Ben1983
              Ben1983 last edited by Ben1983

              @haus-automatisierung stehe gerade auf dem schlauch:
              Wenn ich das Beispiel sehen:

              curl -X POST "http://[WLED-IP]/json/state" -d '{"on":"t","v":true}' -H "Content-Type: application/json"
              

              wie würde ich es denn mit axios ersetzen?
              Habe das mal so ähnlich vorbereitet, was ich vor habe:

              const host = "http://192.168.2.142/json/state"
              
              const segmentObject = {
                  "seg": [{
                  "start": 0,
                  "stop": 20,
                  "len": 20,
                  }]
              };
              
              import axios from 'axios';
              axios({
                method: 'post',
                url: host,
                data: segmentObject
              });
              

              und bekomme zusätzlich nochden Fehler:

              Cannot find module 'axios' or its corresponding type declarations.
              
              T 1 Reply Last reply Reply Quote 0
              • T
                ticaki Developer @Ben1983 last edited by

                @ben1983
                require nicht import

                Ben1983 1 Reply Last reply Reply Quote 0
                • Ben1983
                  Ben1983 @ticaki last edited by Ben1983

                  @ticaki dann bekomme ich:
                  ok. hatte mich schon gewundert... Aber bin heute echt nicht auf der höhe.

                  Also so?:

                  
                  const host = "http://192.168.2.142/json/state"
                  
                  const segmentObject = {
                      "seg": [{
                      "start": 0,
                      "stop": 30,
                      "len": 30,
                      }]
                  };
                  
                  const axios = require('axios');
                  axios({
                    method: 'post',
                    url: host,
                    data: segmentObject
                  });
                  
                  Codierknecht T 2 Replies Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @Ben1983 last edited by Codierknecht

                    @ben1983
                    Versuch's mal so:

                    const host = "http://192.168.2.142/json/state"
                    const axios = require('axios');
                    
                    const segmentObject = {
                        "seg": [{
                            "start": 0,
                            "stop": 30,
                            "len": 30,
                        }]
                    };
                    
                    async function getData() {
                        const response = await axios.post(host, segmentObject);
                        console.log(JSON.stringify(response));
                    }
                    
                    getData();
                    
                    Ben1983 1 Reply Last reply Reply Quote 0
                    • Ben1983
                      Ben1983 @Codierknecht last edited by

                      @codierknecht Danke, aber meine Version hat zumindest in Sachen Schreiben auf funktioniert.

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

                        @ben1983
                        OK. Hatte mich gewundert, was nach dem

                        dann bekomme ich:

                        fehlt?

                        Ben1983 2 Replies Last reply Reply Quote 0
                        • Ben1983
                          Ben1983 @Codierknecht last edited by

                          @codierknecht Oh, sorry. das war ein Falscher Text.

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

                            @codierknecht Es funktioniert zwar alles.
                            In deiner Version ist natürlich die Sache noch etwas schöner.
                            (Muss allerdings response.data loggen, nicht nur response).

                            Allerding bekomme ich beim require('axios') noch die Meldung:

                            Cannot find module 'axios' or its corresponding type declarations.
                            

                            Was kann das noch sein?

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

                              @ben1983 sagte in [gelöst] Axios implementieren:

                              Allerding bekomme ich beim require('axios') noch die Meldung:

                              Aber nur im Editor. Wird da gekringelt und angemeckert, funzt aber einwandfrei.
                              Mit der Macke muss man entweder leben oder den Editor dazu zwingen ihn zu ignorieren:

                              // @ts-ignore
                              const axios = require('axios');
                              
                              1 Reply Last reply Reply Quote 0
                              • T
                                ticaki Developer @Ben1983 last edited by ticaki

                                @ben1983
                                Ja, aber wie oben geschrieben,wenn du den wled adapter von mir nimmst, gibt es einen State in dem du das Json rein wirst und es wird dann über die websocket verbindung vom wled adapter versendet:

                                https://github.com/ticaki/ioBroker.wled

                                Die PR ist ist beim Dutchman eingereicht, mal sehen wann er es added.

                                mich hats genervt das "an" "helligkeit" "preset" in 3 Stufen ausgeführt wird... Deshalb nen State eingebaut dem ich dann so die Daten übergebe:

                                setState(`${light.id}.action`, JSON.stringify({
                                                        "bri": bri,
                                                        "on": lOn,
                                                        'ps': cArray[2],
                                                        'transition': 1
                                                    }))
                                

                                Das sollte auch für Steuerung von einzelnen LED's gut sein.

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                809
                                Online

                                31.8k
                                Users

                                80.0k
                                Topics

                                1.3m
                                Posts

                                4
                                14
                                322
                                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