Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. 'request' läuft aus - Umstellen auf `axios` - ein Beispiel

    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

    'request' läuft aus - Umstellen auf `axios` - ein Beispiel

    This topic has been deleted. Only users with topic management privileges can see it.
    • SBorg
      SBorg Forum Testing Most Active @Homoran last edited by SBorg

      @homoran Sodele, noch pünktlich zum alten Jahr. Die Kodierung der Bilder war "etwas" tricky (wenn man halt keine Ahnung davon hat... 🤷‍♂️ ) :

      /*hat SBorg verbrochen... V0.0.1 vom 01.01.2022
      
        Codierung für Bundesländer (lt. Sortierung des DWD; beginnend mit 0):
          0 =
          1 = Bayern
          3 = Hessen
      */
      
      // Usereinstellungen
      const BuLand = 1;                               // für welches Bundesland?
      const DP = "0_userdata.0.Wetter.Regen.";        // wo sollen die Daten angelegt werden?
      
      
      // ab hier gibt es nichts mehr zu ändern-------------------------------------------------------
       // Abkürzung lt. URL
       let url_arr = ["", "bay", "", "hes"];
      
       // Anzeigename des Bundeslandes
       let BuLa_arr = ["", "Bayern", "", "Hessen"];
      
      const axios = require('axios'); 
      const url_jpg = 'https://www.dwd.de/DWD/wetter/radar/rad_' + url_arr[BuLand] + '_akt.jpg';
      const url_gif = 'https://www.dwd.de/DWD/wetter/radar/radfilm_' + url_arr[BuLand] + '_akt.gif';
      const idDp = DP + BuLa_arr[BuLand];
      const idDp_Film = DP + BuLa_arr[BuLand] + '_Film';
      
      
      makeDataPoints(); // check ob DPs existieren
      setTimeout(function() { getData(); }, 10000); // initial 10 Sekunden nach Skriptstart einmalig Daten holen  
      schedule('*/8 * * * *', getData);
      
      function getData() {
          let buffer, buffer_gif;
          axios
              .get(url_jpg, {
                responseType: 'arraybuffer'
              })
          .then(response => {
              buffer = "data:" + response.headers['content-type'] + ";base64, " + Buffer.from(response.data, 'binary').toString('base64');
              setState(idDp, buffer, true);
          })
          .catch(ex => {
              log("Fehler bei JPG: " + ex,"warn");
          });
      
      
          axios
              .get(url_gif, {
                responseType: 'arraybuffer'
              })
          .then(response => {
              buffer_gif = "data:" + response.headers['content-type'] + ";base64, " + Buffer.from(response.data, 'binary').toString('base64');
              setState(idDp_Film, buffer_gif, true);
          })
          .catch(ex => {
              log("Fehler bei Film: " + ex,"warn");
          });
      }
      
      function makeDataPoints() {
          if (!existsState(idDp)) { createState(idDp, "", {name: "Regenradar für " + BuLa_arr[BuLand] , type: "mixed", role: "state"}); }
          if (!existsState(idDp_Film)) { createState(idDp_Film, "", {name: "Regenradar für " + BuLa_arr[BuLand], type: "mixed", role: "state"}); } 
      }
      

      * EDIT * ...und natürlich nur mit dem "richtigen" Bundesland funktionsfähig 😉

      Homoran 2 Replies Last reply Reply Quote 1
      • Homoran
        Homoran Global Moderator Administrators @SBorg last edited by Homoran

        @sborg sagte in Wunsch: Pollenflug-(Adapter/wasauchimmer):

        noch pünktlich zum alten Jahr.

        Ehrlich??
        DANKE

        Aber so war das nicht gemeint.
        ich seh mir das gleich an, in der Hoffnug es zwar nicht unbedingt zu verstehen, aber wenigstens nachvollziehen zu können

        @sborg sagte in Wunsch: Pollenflug-(Adapter/wasauchimmer):

        //hat SBorg verbrochen...

        😂

        und guten Rutsch 🍾

        SBorg 2 Replies Last reply Reply Quote 0
        • SBorg
          SBorg Forum Testing Most Active @Homoran last edited by

          @homoran sagte in Wunsch: Pollenflug-(Adapter/wasauchimmer):

          Aber so war das nicht gemeint.

          Habe ich auch nicht so verstanden. Aber bei mir ist jeder Tag mehr oder minder gleich, außer dass es aktuell mehr scheppert 😉

          1 Reply Last reply Reply Quote 0
          • SBorg
            SBorg Forum Testing Most Active @Homoran last edited by

            @sborg sagte in Wunsch: Pollenflug-(Adapter/wasauchimmer):

            //hat SBorg verbrochen...

            😂

            und guten Rutsch 🍾

            Danke, ebenso 🙂
            Ich schreibe so was weniger wg. Copyright (ja, ne, is klar...) oä. rein, nur habe ich auch paar Scripte von denen ich noch gern wüsste von wem sie sind. So sieht man es wenigstens später.
            ...und (c) ist eh mehr ein Witz, denn alles andere ^^

            Homoran 1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @SBorg last edited by

              @sborg sagte in Wunsch: Pollenflug-(Adapter/wasauchimmer):

              • EDIT * ...und natürlich nur mit dem "richtigen" Bundesland funktionsfähig

              und mit den richtigen DPs, sonst heisst es
              State "0_userdata.0.Wetter.Regen.Hessen" not found

              1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @SBorg last edited by Homoran

                @sborg sagte in Wunsch: Pollenflug-(Adapter/wasauchimmer):

                nur habe ich auch paar Scripte von denen ich noch gern wüsste von wem sie sind

                und nur dadurch, dass es im TS für die Pollen drin stand hab ich es wieder gefunden.
                Ist wirklich hilfreich

                muss axios noch in der js-Instanz eingetragen werden?

                SBorg 2 Replies Last reply Reply Quote 0
                • SBorg
                  SBorg Forum Testing Most Active @Homoran last edited by

                  @homoran Ich hatte noch kurz überlegt ob ich beim Start abfrage ob die DPs existieren. Falls nicht --> anlegen
                  Werde ich (für mich) noch rein hämmern, oder kannst dich ja mal selbst daran versuchen.

                  Ich nämlich faul, soll alles von alleine passieren, ist ja ein SmartHome, dann soll es auch smart sein 👍

                  1 Reply Last reply Reply Quote 0
                  • SBorg
                    SBorg Forum Testing Most Active @Homoran last edited by

                    @homoran sagte in Wunsch: Pollenflug-(Adapter/wasauchimmer):

                    muss axios noch in der js-Instanz eingetragen werden?

                    Normalerweise nicht, da es Bestandteil von NPM ist und mit installiert wird.
                    Sieht man aber einfach: DPs befüllt, dann lüppt es auch ohne Eintrag

                    Homoran 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @SBorg last edited by

                      @sborg sagte in Wunsch: Pollenflug-(Adapter/wasauchimmer):

                      Sieht man aber einfach: DPs befüllt, dann lüppt es auch ohne Eintrag

                      zumindest gibt es jetzt keinen Fehler mehr, aber ich habe kein Bild in der vis
                      Die URLs passen, hab ich getestet, im jpg ist ein Eintrag, im gif nicht

                      Ei gude, läuft es bei dir?

                      SBorg 1 Reply Last reply Reply Quote 0
                      • SBorg
                        SBorg Forum Testing Most Active @Homoran last edited by

                        @homoran Jepp, + dass muss so aussehen ^^
                        Bild 2.png

                        Gif ist auch animiert, normales HTML-Widget bei mir mit Inhalt

                        <img src="{0_userdata.0.Wetter.Regen.Hessen_Film}">
                        
                        Homoran 1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @SBorg last edited by Homoran

                          @sborg sagte in Wunsch: Pollenflug-(Adapter/wasauchimmer):

                          normales HTML-Widget bei mir mit Inhalt

                          <img src={0_userdata.0.Wetter.Regen.NRW_Film} width="260px">

                          und da kommt jetzt nichts mehr
                          auch beim Feststehenden Bild nicht

                          EDIT: mit"" vor und hinter den {} klappt es jetzt

                          Wetter_axios.png

                          ich hab dir dann noch ein true spendiert: setState(idDp_Film, buffer_gif, true);
                          nochmals DANKE

                          SBorg 1 Reply Last reply Reply Quote 0
                          • SBorg
                            SBorg Forum Testing Most Active @Homoran last edited by

                            @homoran Wollte ich gerade schreiben, er mag dann so die "" von width nicht.
                            ...und Danke fürs true habe ich doch glatt übersehen 😉

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @SBorg last edited by

                              @sborg
                              ich habe das Thema mal abgespalten und unter Skripte geschoben

                              1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @Homoran last edited by

                                @homoran sagte: ob es noch (alte) Adapter gibt, die im Inneren mit request arbeiten

                                Solange der Javascript-Adapter noch request() verwendet und es sogar als Variable zu Verfügung stellt, muss man sich keine Gedanken machen.

                                Notice - module request is available via variable request. There is no need to write var request = require('request');.

                                Homoran 1 Reply Last reply Reply Quote 1
                                • Homoran
                                  Homoran Global Moderator Administrators @paul53 last edited by

                                  @paul53 Danke und Guten Rutsch!

                                  SBorg 1 Reply Last reply Reply Quote 0
                                  • SBorg
                                    SBorg Forum Testing Most Active @Homoran last edited by

                                    @homoran Noch mal bisserl gepimpt: https://forum.iobroker.net/post/730745

                                    • Auswahl des Bundeslandes (hab aktuell nur zwei eingepflegt ^^ )
                                    • initial nach Start einmalig Daten holen (unabhängig vom schedule)
                                    • Anlegen der Datenpunkte

                                    Wenn schon, dann auch richtig... 🖖

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    754
                                    Online

                                    31.9k
                                    Users

                                    80.1k
                                    Topics

                                    1.3m
                                    Posts

                                    3
                                    24
                                    1032
                                    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