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.3k

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

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

per script Rest anfrage senden

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
31 Beiträge 6 Kommentatoren 889 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 Offline
    D Offline
    Delphinis
    schrieb am zuletzt editiert von
    #1

    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 1 Antwort Letzte Antwort
    0
    • 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 Online
              FernetMentaF Online
              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 Online
                    FernetMentaF Online
                    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 Online
                        FernetMentaF Online
                        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 Online
                            FernetMentaF Online
                            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 Online
                                FernetMentaF Online
                                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 Online
                                          FernetMentaF Online
                                          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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          556

                                          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