Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. per script Rest anfrage senden

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.6k

per script Rest anfrage senden

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
31 Beiträge 6 Kommentatoren 914 Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • D Delphinis

    Hallo,
    auf meteoschweiz gibt es eine api zur Abfrage von Wetterdaten.
    Dazu hab ich auch schon eine Abfrage-URL gefunden: https://api.meteoschweiz.admin.ch/v1/observations/abo
    Da sollen die Daten von Adelboden kommen.
    Ich kenne mich mit REST "noch" nicht aus. Deshalb hab ich mal Chatgpt gefragt (bitte nicht meckern, so schlecht ist die nicht, aber immer mit Vorsicht geniessen)
    Die hat mir vorgeschlagen die Daten mit dem fetch befehl zu holen, aber dieser existiert in iobroker offenbar nicht. Kann man das irgendwie mit "require" includen? wenn ja, wie?
    Danach hab ich mit dem REST-Api und dem Restful Adapter herumprobiert. Aber da hab ich nicht herausgefunden wo man denn diese URL eingeben muss.

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #2

    @delphinis
    Versuche es mal mit httpGet().

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    D 1 Antwort Letzte Antwort
    1
    • paul53P paul53

      @delphinis
      Versuche es mal mit httpGet().

      D Offline
      D Offline
      Delphinis
      schrieb am zuletzt editiert von
      #3

      @paul53
      Das scheint offenbar auch zu funktionieren. Leider bekomme ich noch eine negative Antwort:

      error=getaddrinfo ENOTFOUND

      die URL ist wohl noch falsch. Ich komme aber mit der Doku irgendwie nicht klar. Muss mich da noch in die API reinstudieren.

      M 1 Antwort Letzte Antwort
      0
      • D Delphinis

        @paul53
        Das scheint offenbar auch zu funktionieren. Leider bekomme ich noch eine negative Antwort:

        error=getaddrinfo ENOTFOUND

        die URL ist wohl noch falsch. Ich komme aber mit der Doku irgendwie nicht klar. Muss mich da noch in die API reinstudieren.

        M Online
        M Online
        MCU
        schrieb am zuletzt editiert von
        #4

        @delphinis Hab diesen Link gefunden

        https://data.geo.admin.ch/api/stac/v1/collections/ch.meteoschweiz.ogd-smn

        NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
        Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

        D 1 Antwort Letzte Antwort
        0
        • M MCU

          @delphinis Hab diesen Link gefunden

          https://data.geo.admin.ch/api/stac/v1/collections/ch.meteoschweiz.ogd-smn

          D Offline
          D Offline
          Delphinis
          schrieb am zuletzt editiert von
          #5

          @mcu
          Ja, da war ich schon. Da findet sich auch der link
          https://data.geo.admin.ch/api/stac/v1/collections/ch.meteoschweiz.ogd-smn/items
          wo die Stationen aufgeführt sind. Aber ich weiss nicht, wie der Befehl aussehen muss, um die aktuellen Daten einer Station abrufen zu können. Die Doku ist für mich nicht verständlich. Aber das kommt sicher davon, dass ich mich mit diesem REST noch nicht auskenne. Bin noch am rechechieren.

          FernetMentaF 1 Antwort Letzte Antwort
          0
          • D Delphinis

            @mcu
            Ja, da war ich schon. Da findet sich auch der link
            https://data.geo.admin.ch/api/stac/v1/collections/ch.meteoschweiz.ogd-smn/items
            wo die Stationen aufgeführt sind. Aber ich weiss nicht, wie der Befehl aussehen muss, um die aktuellen Daten einer Station abrufen zu können. Die Doku ist für mich nicht verständlich. Aber das kommt sicher davon, dass ich mich mit diesem REST noch nicht auskenne. Bin noch am rechechieren.

            FernetMentaF Offline
            FernetMentaF Offline
            FernetMenta
            Developer
            schrieb am zuletzt editiert von
            #6

            @delphinis https://data.geo.admin.ch/api/stac/static/spec/v0.9/api.html

            M 1 Antwort Letzte Antwort
            0
            • FernetMentaF FernetMenta

              @delphinis https://data.geo.admin.ch/api/stac/static/spec/v0.9/api.html

              M Online
              M Online
              MCU
              schrieb am zuletzt editiert von MCU
              #7

              @fernetmenta

              httpGet('http://jsonplaceholder.typicode.com/posts', (err, response) => {
                  if (!err) {
                      console.log(response.statusCode);
                      console.log(response.data);
                  } else {
                      console.error(err);
                  }
              });
              

              Pass die url an und fertig

              Dann muss man evtl die Daten noch parsen

              let mydata = JSON.parse(response.data)
              console.log(mydata)
              

              Wenn du dein Programm angepasst hast dann kannst du zur Verfeinerung @paul53 fragen. Hab momentan kein System. Am Handy ist schlecht zu arbeiten.

              NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
              Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

              D 1 Antwort Letzte Antwort
              1
              • M MCU

                @fernetmenta

                httpGet('http://jsonplaceholder.typicode.com/posts', (err, response) => {
                    if (!err) {
                        console.log(response.statusCode);
                        console.log(response.data);
                    } else {
                        console.error(err);
                    }
                });
                

                Pass die url an und fertig

                Dann muss man evtl die Daten noch parsen

                let mydata = JSON.parse(response.data)
                console.log(mydata)
                

                Wenn du dein Programm angepasst hast dann kannst du zur Verfeinerung @paul53 fragen. Hab momentan kein System. Am Handy ist schlecht zu arbeiten.

                D Offline
                D Offline
                Delphinis
                schrieb am zuletzt editiert von Delphinis
                #8

                @mcu
                Prima, das funktioniert schon mal. Muss ich nur noch schauen, wie das mit dem header (If-None-Match)
                funktioniert, und wie ich /collections und /items zusammenbasteln kann.
                Edit: Da muss ich mich noch ein bisschen reindenken...

                FernetMentaF 1 Antwort Letzte Antwort
                0
                • D Delphinis

                  @mcu
                  Prima, das funktioniert schon mal. Muss ich nur noch schauen, wie das mit dem header (If-None-Match)
                  funktioniert, und wie ich /collections und /items zusammenbasteln kann.
                  Edit: Da muss ich mich noch ein bisschen reindenken...

                  FernetMentaF Offline
                  FernetMentaF Offline
                  FernetMenta
                  Developer
                  schrieb am zuletzt editiert von
                  #9

                  @delphinis Ich würde dir axois empfehlen. Das git es auch für async und ist damit leichte handelbar. https://axios-http.com/docs/example
                  Dependency ist bereits in iob, kann also einfach mit require im Script verwendet werden.

                  D 1 Antwort Letzte Antwort
                  0
                  • FernetMentaF FernetMenta

                    @delphinis Ich würde dir axois empfehlen. Das git es auch für async und ist damit leichte handelbar. https://axios-http.com/docs/example
                    Dependency ist bereits in iob, kann also einfach mit require im Script verwendet werden.

                    D Offline
                    D Offline
                    Delphinis
                    schrieb am zuletzt editiert von
                    #10

                    @fernetmenta
                    ok, ich hab mal das erste einfache Beispiel genommen:

                    const axios = require('axios');
                    
                    // Make a request for a user with a given ID
                    axios.get('https://data.geo.admin.ch/ch.meteoschweiz.ogd-smn/abo/ogd-smn_abo_t_now.csv')
                      .then(function (response) {
                        // handle success
                        console.log(response);
                      })
                      .catch(function (error) {
                        // handle error
                        console.log(error);
                      })
                      .finally(function () {
                        // always executed
                      });
                    

                    er meldet zwar einen Fehler bei

                    const axios = require('axios');
                    

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

                    Aber das programm läuft und es liefert mir ein json, mit den Daten als csv. parsen kann ich dann selbst.
                    Aber ich weiss jetzt nicht, wo ich z.B. in den Header das "If-None-Match" eingeben kann, und wo ich collections und items definieren kann. Wird das in "paramters" gemacht (wie im zweiten Beispiel)?

                    FernetMentaF 1 Antwort Letzte Antwort
                    0
                    • D Delphinis

                      @fernetmenta
                      ok, ich hab mal das erste einfache Beispiel genommen:

                      const axios = require('axios');
                      
                      // Make a request for a user with a given ID
                      axios.get('https://data.geo.admin.ch/ch.meteoschweiz.ogd-smn/abo/ogd-smn_abo_t_now.csv')
                        .then(function (response) {
                          // handle success
                          console.log(response);
                        })
                        .catch(function (error) {
                          // handle error
                          console.log(error);
                        })
                        .finally(function () {
                          // always executed
                        });
                      

                      er meldet zwar einen Fehler bei

                      const axios = require('axios');
                      

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

                      Aber das programm läuft und es liefert mir ein json, mit den Daten als csv. parsen kann ich dann selbst.
                      Aber ich weiss jetzt nicht, wo ich z.B. in den Header das "If-None-Match" eingeben kann, und wo ich collections und items definieren kann. Wird das in "paramters" gemacht (wie im zweiten Beispiel)?

                      FernetMentaF Offline
                      FernetMentaF Offline
                      FernetMenta
                      Developer
                      schrieb am zuletzt editiert von FernetMenta
                      #11

                      @delphinis

                      Headers kann man zu z.B. so setzen:

                      axios.get(URL, { headers: { Authorization: AuthStr } })
                      

                      Das findet man aber rellativ leicht raus, weil axios quasi der Standard ist für REST API in Node. httpGet hat, glaube ich, auch axois unter der Haube. Also ein zusätzlicher Wrapper. Kann in manchen Fällen gut sein. In diesem Fall aber m.E. nich tausreichen Dokumentiert.

                      1 Antwort Letzte Antwort
                      1
                      • D Offline
                        D Offline
                        Delphinis
                        schrieb am zuletzt editiert von
                        #12

                        @fernetmenta said in per script Rest anfrage senden:

                        headers:

                        Danke erst mal. Ich muss mich da noch ein bisschen schlau machen. Jedenfalls kann ich jetzt schon ausprobieren.
                        Weisst du wieso es einen Fehler bei 'axios' anzeigt?

                        FernetMentaF 1 Antwort Letzte Antwort
                        0
                        • D Delphinis

                          @fernetmenta said in per script Rest anfrage senden:

                          headers:

                          Danke erst mal. Ich muss mich da noch ein bisschen schlau machen. Jedenfalls kann ich jetzt schon ausprobieren.
                          Weisst du wieso es einen Fehler bei 'axios' anzeigt?

                          FernetMentaF Offline
                          FernetMentaF Offline
                          FernetMenta
                          Developer
                          schrieb am zuletzt editiert von FernetMenta
                          #13

                          @delphinis wie sieht der Fehler genau aus? Bei mit sieht das so aus und ich habe keinen Fehler:

                          const axios = require('axios');
                          
                          const apiurl_current = "https://api.openweathermap.org/data/2.5/weather?lat=xxx&lon=xxx&appid=xxx";
                          const apiurl_forecast = "https://api.openweathermap.org/data/2.5/forecast?lat=xxx&lon=xxx&appid=xxx";
                          
                          async function getWeatherData() {
                            let jsonData;
                            try {
                              let response = await axios.get(apiurl_current);
                              jsonData = await response.data;
                              setState("0_userdata.0.weather.current", JSON.stringify(jsonData), true);
                          
                              response = await axios.get(apiurl_forecast);
                              jsonData = await response.data;
                              setState("0_userdata.0.weather.forecast", JSON.stringify(jsonData), true);
                            } catch(error) {
                              console.error(error);
                            }
                          }
                          

                          Wie alt ist deine Installation. Scheint ein älteres "Problem" gewesen zu sein: https://forum.iobroker.net/topic/70578/gelöst-axios-hinzufügen-zu-script

                          D 1 Antwort Letzte Antwort
                          0
                          • FernetMentaF FernetMenta

                            @delphinis wie sieht der Fehler genau aus? Bei mit sieht das so aus und ich habe keinen Fehler:

                            const axios = require('axios');
                            
                            const apiurl_current = "https://api.openweathermap.org/data/2.5/weather?lat=xxx&lon=xxx&appid=xxx";
                            const apiurl_forecast = "https://api.openweathermap.org/data/2.5/forecast?lat=xxx&lon=xxx&appid=xxx";
                            
                            async function getWeatherData() {
                              let jsonData;
                              try {
                                let response = await axios.get(apiurl_current);
                                jsonData = await response.data;
                                setState("0_userdata.0.weather.current", JSON.stringify(jsonData), true);
                            
                                response = await axios.get(apiurl_forecast);
                                jsonData = await response.data;
                                setState("0_userdata.0.weather.forecast", JSON.stringify(jsonData), true);
                              } catch(error) {
                                console.error(error);
                              }
                            }
                            

                            Wie alt ist deine Installation. Scheint ein älteres "Problem" gewesen zu sein: https://forum.iobroker.net/topic/70578/gelöst-axios-hinzufügen-zu-script

                            D Offline
                            D Offline
                            Delphinis
                            schrieb am zuletzt editiert von Delphinis
                            #14

                            @fernetmenta
                            e78a067b-df54-4093-8156-302837f1f178-grafik.png
                            Ich hab das im Script-Adapter eingetragen:
                            0e566518-1c0a-4879-9227-7ea89c6d8996-grafik.png

                            FernetMentaF 1 Antwort Letzte Antwort
                            0
                            • D Delphinis

                              @fernetmenta
                              e78a067b-df54-4093-8156-302837f1f178-grafik.png
                              Ich hab das im Script-Adapter eingetragen:
                              0e566518-1c0a-4879-9227-7ea89c6d8996-grafik.png

                              FernetMentaF Offline
                              FernetMentaF Offline
                              FernetMenta
                              Developer
                              schrieb am zuletzt editiert von
                              #15

                              @delphinis Das sollte eigentich nicht notwendig sein. Steht bei mir auch nicht drin. Im Forum-Thread (siehe obe) wurde es anscheinend über ein Update von iob gelöst. Ist deine Version so alt? Der Thread ist ja schon von 2023.

                              HomoranH 1 Antwort Letzte Antwort
                              1
                              • FernetMentaF FernetMenta

                                @delphinis Das sollte eigentich nicht notwendig sein. Steht bei mir auch nicht drin. Im Forum-Thread (siehe obe) wurde es anscheinend über ein Update von iob gelöst. Ist deine Version so alt? Der Thread ist ja schon von 2023.

                                HomoranH Nicht stören
                                HomoranH Nicht stören
                                Homoran
                                Global Moderator Administrators
                                schrieb am zuletzt editiert von Homoran
                                #16

                                @fernetmenta sagte in per script Rest anfrage senden:

                                Ist deine Version so alt?

                                ich erinnere mich auch dass die Welle damals bei modulen, die bereits im iob js-adapter integriert sind und zusätzlich installiert wurden "grundlos" erschien.

                                Der Eintrag von axios in der Instanz muss nicht sein.

                                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                1 Antwort Letzte Antwort
                                0
                                • D Offline
                                  D Offline
                                  Delphinis
                                  schrieb am zuletzt editiert von
                                  #17

                                  @homoran said in per script Rest anfrage senden:

                                  Der Eintrag von axios in der Instanz muss nicht sein.

                                  ok, dann nehm ich den wieder raus.
                                  Was heisst eigentlich "den iob updaten"? Ist das der Admin-Adapter? Der ist schon ein bisschen älter, aber ob der so alt ist weiss ich nicht:
                                  7.6.17
                                  aktuell 7.7.2

                                  HomoranH FernetMentaF 2 Antworten Letzte Antwort
                                  0
                                  • D Delphinis

                                    @homoran said in per script Rest anfrage senden:

                                    Der Eintrag von axios in der Instanz muss nicht sein.

                                    ok, dann nehm ich den wieder raus.
                                    Was heisst eigentlich "den iob updaten"? Ist das der Admin-Adapter? Der ist schon ein bisschen älter, aber ob der so alt ist weiss ich nicht:
                                    7.6.17
                                    aktuell 7.7.2

                                    HomoranH Nicht stören
                                    HomoranH Nicht stören
                                    Homoran
                                    Global Moderator Administrators
                                    schrieb am zuletzt editiert von
                                    #18

                                    @delphinis zeig mal die Langfassung von iob diag

                                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                    D 1 Antwort Letzte Antwort
                                    0
                                    • HomoranH Homoran

                                      @delphinis zeig mal die Langfassung von iob diag

                                      D Offline
                                      D Offline
                                      Delphinis
                                      schrieb am zuletzt editiert von
                                      #19

                                      @homoran said in per script Rest anfrage senden:

                                      iob diag

                                      Sorry, soviel ich weiss geht iob diag auf windows nicht. Gibt es da was ähnliches?

                                      HomoranH 1 Antwort Letzte Antwort
                                      0
                                      • D Delphinis

                                        @homoran said in per script Rest anfrage senden:

                                        Der Eintrag von axios in der Instanz muss nicht sein.

                                        ok, dann nehm ich den wieder raus.
                                        Was heisst eigentlich "den iob updaten"? Ist das der Admin-Adapter? Der ist schon ein bisschen älter, aber ob der so alt ist weiss ich nicht:
                                        7.6.17
                                        aktuell 7.7.2

                                        FernetMentaF Offline
                                        FernetMentaF Offline
                                        FernetMenta
                                        Developer
                                        schrieb am zuletzt editiert von FernetMenta
                                        #20

                                        @delphinis

                                        aktuell 7.7.2

                                        Oh ja, dann scheint deine Nodejs-Version auch noch aus der Steinzeit zu sein. Ich habe 8.9.2 (Node v22).

                                        Die Leute sagen, dass sich das UI in den Versionen täuschen kann. Aber für einen ersten Anhaltpunkt tut es das. Hier unter Hosts:
                                        596924c9-778b-49c7-a16d-cc728707bd52-image.png

                                        D 1 Antwort Letzte Antwort
                                        0
                                        • FernetMentaF FernetMenta

                                          @delphinis

                                          aktuell 7.7.2

                                          Oh ja, dann scheint deine Nodejs-Version auch noch aus der Steinzeit zu sein. Ich habe 8.9.2 (Node v22).

                                          Die Leute sagen, dass sich das UI in den Versionen täuschen kann. Aber für einen ersten Anhaltpunkt tut es das. Hier unter Hosts:
                                          596924c9-778b-49c7-a16d-cc728707bd52-image.png

                                          D Offline
                                          D Offline
                                          Delphinis
                                          schrieb am zuletzt editiert von
                                          #21

                                          @fernetmenta
                                          0d1e1051-28cf-4761-9285-fbf328f02a8a-grafik.png

                                          D FernetMentaF 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          267

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe