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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Helium API per GET abrufen (incl. User-Agent)

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Helium API per GET abrufen (incl. User-Agent)

Geplant Angeheftet Gesperrt Verschoben JavaScript
33 Beiträge 8 Kommentatoren 5.0k Aufrufe 8 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.
  • Stephan SporbertS Offline
    Stephan SporbertS Offline
    Stephan Sporbert
    schrieb am zuletzt editiert von
    #16

    Hier lässt sich die API Dokumentation übrigens finden

    Klick

    1 Antwort Letzte Antwort
    0
    • U Offline
      U Offline
      Unbekannt
      schrieb am zuletzt editiert von
      #17

      Erstmal vielen Dank für eure Vorarbeit. Das hat mir schon mal weitergeholfen.
      Ich möchte gerne die Rewards der letzten 24h, 7 Tage & 30 Tage auslesen und das in das o.g. Skript einbauen.

      Laut API kann ich das wie folgt abfragen

      https://api.helium.io/v1/hotspots/HOTSPOT_ID/rewards/sum/?min_time=-1%20day
      https://api.helium.io/v1/hotspots/HOTSPOT_ID/rewards/sum/?min_time=-7%20day
      https://api.helium.io/v1/hotspots/HOTSPOT_ID/rewards/sum/?min_time=-30%20day
      

      Ich könnte das o.g. Skript auch drei mal kopieren und den Link tauschen, aber ich schätze, das geht auch so, dass alle vier Links in einem Skript abgefragt werden, leider habe ich davon keine Ahnung. Kann mir hierbei jemand helfen?

      Gruß Markus

      1 Antwort Letzte Antwort
      0
      • OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von OliverIO
        #18

        @unbekannt

        ich habe dir den code ein wenig umgestellt.
        jetzt kannst du einfach die funktion writeValueOverview kopieren
        neu einfügen, einen neuen Namen geben und die Parameter
        konfigurieren.
        Befasse dich mal mit jeder einzelnen Zeile, dann wirst du auch das extrahieren der Daten aus einem JSON-Objekt gut hinbekommen.
        Im vorliegenden Beispiel erhälst du ein javascriptobjekt zurück.
        dieses objekt hat sogenannte properties oder eigenschaften.
        das sind eigentlich nix anderes wie variable, die zusammengefasst sind.
        daher kannst du total mit
        data.total
        und die standardabweichung mit
        data.stddev
        adressieren.
        die struktur ist aber je api aufruf anders und du musst in der doku nachschauen oder, das was da auf der console ausgegeben wird.

        Problem bei rewards ist, das da eine Liste zurückkommt und nicht ein einzelner Wert

        Return the last 7 days of rewards bucketed by day

        Was willst du mit der Liste machen?

         
        var axios = require("axios");
         
        async function writeValueOverview() {
            var dp1 = "javascript.0.test1";
            var dp2 = "javascript.0.test2";
            var v_url = 'https://api.helium.io/v1/hotspots/112gJzabaVykY8hvNgZcgSU2pJ5YkjHi7QUST9i9ugtofoXQfkEc/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2021-01-01T00:00:01Z'
        
            var data = await getData(url); //abruf der daten
            log(data);  // ausgabe des ergebnisses auf der debug-console
            setState(dp1,data.total); // schreiben der summe in datenpunkt
            setState(dp2,data.stddev);  // schreiben der standardabweichung in datenpunkt
        }
        
        async function writeValueReward1() {
            var dp1 = "javascript.0.reward1";
            var url = 'https://api.helium.io/v1/hotspots/HOTSPOT_ID/rewards/sum/?min_time=-1%20day'
        
            var data = await getData(url); //abruf der daten
            log(data);  // ausgabe des ergebnisses auf der debug-console
            setState(dp1,data.??); // schreiben des rewards in datenpunkt
        }
        async function writeValueReward2() {
            var dp1 = "javascript.0.reward2";
            var url = 'https://api.helium.io/v1/hotspots/HOTSPOT_ID/rewards/sum/?min_time=-7%20day'
        
            var data = await getData(url); //abruf der daten
            log(data);  // ausgabe des ergebnisses auf der debug-console
            setState(dp1,data.??); // schreiben des rewards in datenpunk
        datenpunkt
        }
        
        async function getData(url) {
            try {
                let res = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                return res.data.data;
            } catch (e) {
                log(e)
            }
        }
         
        schedule('*/30 * * * *',function() {
            writeValueOverview();
            writeValueReward1();
            writeValueReward2();
        });
         
        
        

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        U 1 Antwort Letzte Antwort
        0
        • OliverIOO OliverIO

          @unbekannt

          ich habe dir den code ein wenig umgestellt.
          jetzt kannst du einfach die funktion writeValueOverview kopieren
          neu einfügen, einen neuen Namen geben und die Parameter
          konfigurieren.
          Befasse dich mal mit jeder einzelnen Zeile, dann wirst du auch das extrahieren der Daten aus einem JSON-Objekt gut hinbekommen.
          Im vorliegenden Beispiel erhälst du ein javascriptobjekt zurück.
          dieses objekt hat sogenannte properties oder eigenschaften.
          das sind eigentlich nix anderes wie variable, die zusammengefasst sind.
          daher kannst du total mit
          data.total
          und die standardabweichung mit
          data.stddev
          adressieren.
          die struktur ist aber je api aufruf anders und du musst in der doku nachschauen oder, das was da auf der console ausgegeben wird.

          Problem bei rewards ist, das da eine Liste zurückkommt und nicht ein einzelner Wert

          Return the last 7 days of rewards bucketed by day

          Was willst du mit der Liste machen?

           
          var axios = require("axios");
           
          async function writeValueOverview() {
              var dp1 = "javascript.0.test1";
              var dp2 = "javascript.0.test2";
              var v_url = 'https://api.helium.io/v1/hotspots/112gJzabaVykY8hvNgZcgSU2pJ5YkjHi7QUST9i9ugtofoXQfkEc/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2021-01-01T00:00:01Z'
          
              var data = await getData(url); //abruf der daten
              log(data);  // ausgabe des ergebnisses auf der debug-console
              setState(dp1,data.total); // schreiben der summe in datenpunkt
              setState(dp2,data.stddev);  // schreiben der standardabweichung in datenpunkt
          }
          
          async function writeValueReward1() {
              var dp1 = "javascript.0.reward1";
              var url = 'https://api.helium.io/v1/hotspots/HOTSPOT_ID/rewards/sum/?min_time=-1%20day'
          
              var data = await getData(url); //abruf der daten
              log(data);  // ausgabe des ergebnisses auf der debug-console
              setState(dp1,data.??); // schreiben des rewards in datenpunkt
          }
          async function writeValueReward2() {
              var dp1 = "javascript.0.reward2";
              var url = 'https://api.helium.io/v1/hotspots/HOTSPOT_ID/rewards/sum/?min_time=-7%20day'
          
              var data = await getData(url); //abruf der daten
              log(data);  // ausgabe des ergebnisses auf der debug-console
              setState(dp1,data.??); // schreiben des rewards in datenpunk
          datenpunkt
          }
          
          async function getData(url) {
              try {
                  let res = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                  return res.data.data;
              } catch (e) {
                  log(e)
              }
          }
           
          schedule('*/30 * * * *',function() {
              writeValueOverview();
              writeValueReward1();
              writeValueReward2();
          });
           
          
          
          U Offline
          U Offline
          Unbekannt
          schrieb am zuletzt editiert von
          #19

          @oliverio
          Vielen Dank.
          Im Grunde möchte ich nur vier Datenobjekte mit Daten füttern:

          • Walletguthaben

          • HNT letzte 24h

          • HNT letzte 7 Tage

          • HNT letzte 30 Tage

          Bei meinen urls nutze ich die Bucketfunktion nicht, sondern bekomme nur eine Zeile wo ich dann den data.total Wert abgreifen kann.

          Ich habe gestern ein wenig rum getestet und festgestellt, dass sich das Skript (oder API oder was auch immer ) bei zu vielen gleichzeitigen Abrufen verschluckt und der Wert data.total dann bei einem der Datenpunkte (variiert meist) nicht ausgelesen werden kann. Manchmal geht es gut, und man bekommt alle vier Daten ausgelesen, häufig waren es aber nur 3. Daher habe ich einen Timeout eingebaut. Damit funktioniert es zuverlässig.
          Zum Testen habe ich als Basis dein erstes Skript genutzt, aber auch dein zuletzt gepostetes Skript für meine Bedürfnisse angepasst.

          Skript1

          var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.Total";
          var dp2 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte24Stunden";
          var dp3 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte7Tage";
          var dp4 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte30Tage";
          var axios = require("axios");
          var v_url1 = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2021-01-01T00:00:01Z'
          var v_url2 = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-1%20day' 
          var v_url3 = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-7%20day'
          var v_url4 = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-30%20day'
          setTimeout(async function writeValue1() {
                 var data = await getData1();
                 log(data);
                 setState(dp1,data.total);
             },1000);
          async function getData1() {
             try {
                 let res = await axios.get(v_url1, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                 return res.data.data;
             } catch (e) {
                 log(e)
             }
          }
          setTimeout(async function writeValue2() {
                 var data = await getData2();
                 log(data);
                 setState(dp2,data.total);
             },2000);
          async function getData2() {
             try {
                 let res = await axios.get(v_url2, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                 return res.data.data;
             } catch (e) {
                 log(e)
             }
          }
          setTimeout(async function writeValue3() {
                 var data = await getData3();
                 log(data);
                 setState(dp3,data.total);
             },3000);
          async function getData3() {
             try {
                 let res = await axios.get(v_url3, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                 return res.data.data;
             } catch (e) {
                 log(e)
             }
          }
          setTimeout(async function writeValue4() {
                 var data = await getData4();
                 log(data);
                 setState(dp4,data.total);
             },4000);
          async function getData4() {
             try {
                 let res = await axios.get(v_url4, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                 return res.data.data;
             } catch (e) {
                 log(e)
             }
          }
          schedule('*/30 * * * *',function() {
             writeValue1();
             writeValue2();
             writeValue3();
             writeValue4();
          }); 
          //test();
          writeValue1();
          writeValue2();
          writeValue3();
          writeValue4();
          

          Skript2

          var axios = require("axios");
          
          setTimeout(async function writeValueOverview() {
             var dp1 = "0_userdata.0.Helium.NoisyMauveOsprey.Total";
             var url1 = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2022-08-01T00:00:01Z'
          
             var data = await getData(url1); //abruf der daten
             log(data);  // ausgabe des ergebnisses auf der debug-console
             setState(dp1,data.total); // schreiben der summe in datenpunkt
          }, 1000);
          setTimeout(async function writeValueReward1() {
             var dp2 = "0_userdata.0.Helium.NoisyMauveOsprey.letzte24Stunden";
             var url2 = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?min_time=-1%20day'
          
             var data = await getData(url2); //abruf der daten
             log(data);  // ausgabe des ergebnisses auf der debug-console
             setState(dp2,data.total); // schreiben des rewards in datenpunkt
          }, 2000);
          setTimeout(async function writeValueReward2() {
             var dp3 = "0_userdata.0.Helium.NoisyMauveOsprey.letzte7Tage";
             var url3 = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?min_time=-7%20day'
          
             var data = await getData(url3); //abruf der daten
             log(data);  // ausgabe des ergebnisses auf der debug-console
             setState(dp3,data.total); // schreiben des rewards in datenpunk
          }, 3000);
          setTimeout(async function writeValueReward3() {
             var dp4 = "0_userdata.0.Helium.NoisyMauveOsprey.letzte30Tage";
             var url4 = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?min_time=-30%20day'
          
             var data = await getData(url4); //abruf der daten
             log(data);  // ausgabe des ergebnisses auf der debug-console
             setState(dp4,data.total); // schreiben des rewards in datenpunk
          }, 4000);
          async function getData(url1) {
             try {
                 let res = await axios.get(url1, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                 return res.data.data;
             } catch (e) {
                 log(e)
             }
          }
          async function getData(url2) {
             try {
                 let res = await axios.get(url2, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                 return res.data.data;
             } catch (e) {
                 log(e)
             }
          }
          async function getData(url3) {
             try {
                 let res = await axios.get(url3, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                 return res.data.data;
             } catch (e) {
                 log(e)
             }
          }
          async function getData(url4) {
             try {
                 let res = await axios.get(url4, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                 return res.data.data;
             } catch (e) {
                 log(e)
             }
          } 
          schedule('*/30 * * * *',function() {
             writeValueOverview();
             writeValueReward1();
             writeValueReward2();
             writeValueReward3();
          });
          //test(); 
          writeValueOverview();
          writeValueReward1();
          writeValueReward2();
          writeValueReward3(); 
          

          Bei beiden funktioniert das Auslesen gut, allerdings bekomme ich jeweils drei Fehlerzeilen angezeigt, die ich (wahrscheinlich aus fehlendem Basiswissen) nicht behoben bekomme:

          17.8.2022, 09:48:06.431 [info ]: javascript.0 (1151) Start javascript script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare
          17.8.2022, 09:48:06.479 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare: registered 0 subscriptions and 1 schedule
          17.8.2022, 09:48:06.481 [error]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare: ReferenceError: writeValue1 is not defined
          17.8.2022, 09:48:06.481 [error]: javascript.0 (1151) at script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare:69:1
          17.8.2022, 09:48:06.481 [error]: javascript.0 (1151) at script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare:73:3
          17.8.2022, 09:48:07.658 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare: {'total':1.39006203,'sum':139006203,'stddev':0.0096834757243116,'min':0,'median':0.00827458,'max':0,'avg':0.013113792735849056}
          17.8.2022, 09:48:08.582 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare: {'total':0.02237045,'sum':2237045,'stddev':0.0026280645619987,'min':0,'median':0.00729542,'max':0,'avg':0.007456816666666667}
          17.8.2022, 09:48:09.582 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare: {'total':0.26189041,'sum':26189041,'stddev':0.0094876854151907,'min':0,'median':0.00765452,'max':0,'avg':0.011386539565217391}
          17.8.2022, 09:48:10.577 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare: {'total':0.8288541,'sum':82885410,'stddev':0.0096992973232438,'min':0,'median':0.00748039,'max':0,'avg':0.012558395454545455}
          
          

          Könntest du mir hierbei nochmal unter die Arme greifen?
          Besten Dank :-)

          OliverIOO 1 Antwort Letzte Antwort
          0
          • U Unbekannt

            @oliverio
            Vielen Dank.
            Im Grunde möchte ich nur vier Datenobjekte mit Daten füttern:

            • Walletguthaben

            • HNT letzte 24h

            • HNT letzte 7 Tage

            • HNT letzte 30 Tage

            Bei meinen urls nutze ich die Bucketfunktion nicht, sondern bekomme nur eine Zeile wo ich dann den data.total Wert abgreifen kann.

            Ich habe gestern ein wenig rum getestet und festgestellt, dass sich das Skript (oder API oder was auch immer ) bei zu vielen gleichzeitigen Abrufen verschluckt und der Wert data.total dann bei einem der Datenpunkte (variiert meist) nicht ausgelesen werden kann. Manchmal geht es gut, und man bekommt alle vier Daten ausgelesen, häufig waren es aber nur 3. Daher habe ich einen Timeout eingebaut. Damit funktioniert es zuverlässig.
            Zum Testen habe ich als Basis dein erstes Skript genutzt, aber auch dein zuletzt gepostetes Skript für meine Bedürfnisse angepasst.

            Skript1

            var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.Total";
            var dp2 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte24Stunden";
            var dp3 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte7Tage";
            var dp4 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte30Tage";
            var axios = require("axios");
            var v_url1 = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2021-01-01T00:00:01Z'
            var v_url2 = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-1%20day' 
            var v_url3 = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-7%20day'
            var v_url4 = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-30%20day'
            setTimeout(async function writeValue1() {
                   var data = await getData1();
                   log(data);
                   setState(dp1,data.total);
               },1000);
            async function getData1() {
               try {
                   let res = await axios.get(v_url1, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                   return res.data.data;
               } catch (e) {
                   log(e)
               }
            }
            setTimeout(async function writeValue2() {
                   var data = await getData2();
                   log(data);
                   setState(dp2,data.total);
               },2000);
            async function getData2() {
               try {
                   let res = await axios.get(v_url2, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                   return res.data.data;
               } catch (e) {
                   log(e)
               }
            }
            setTimeout(async function writeValue3() {
                   var data = await getData3();
                   log(data);
                   setState(dp3,data.total);
               },3000);
            async function getData3() {
               try {
                   let res = await axios.get(v_url3, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                   return res.data.data;
               } catch (e) {
                   log(e)
               }
            }
            setTimeout(async function writeValue4() {
                   var data = await getData4();
                   log(data);
                   setState(dp4,data.total);
               },4000);
            async function getData4() {
               try {
                   let res = await axios.get(v_url4, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                   return res.data.data;
               } catch (e) {
                   log(e)
               }
            }
            schedule('*/30 * * * *',function() {
               writeValue1();
               writeValue2();
               writeValue3();
               writeValue4();
            }); 
            //test();
            writeValue1();
            writeValue2();
            writeValue3();
            writeValue4();
            

            Skript2

            var axios = require("axios");
            
            setTimeout(async function writeValueOverview() {
               var dp1 = "0_userdata.0.Helium.NoisyMauveOsprey.Total";
               var url1 = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2022-08-01T00:00:01Z'
            
               var data = await getData(url1); //abruf der daten
               log(data);  // ausgabe des ergebnisses auf der debug-console
               setState(dp1,data.total); // schreiben der summe in datenpunkt
            }, 1000);
            setTimeout(async function writeValueReward1() {
               var dp2 = "0_userdata.0.Helium.NoisyMauveOsprey.letzte24Stunden";
               var url2 = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?min_time=-1%20day'
            
               var data = await getData(url2); //abruf der daten
               log(data);  // ausgabe des ergebnisses auf der debug-console
               setState(dp2,data.total); // schreiben des rewards in datenpunkt
            }, 2000);
            setTimeout(async function writeValueReward2() {
               var dp3 = "0_userdata.0.Helium.NoisyMauveOsprey.letzte7Tage";
               var url3 = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?min_time=-7%20day'
            
               var data = await getData(url3); //abruf der daten
               log(data);  // ausgabe des ergebnisses auf der debug-console
               setState(dp3,data.total); // schreiben des rewards in datenpunk
            }, 3000);
            setTimeout(async function writeValueReward3() {
               var dp4 = "0_userdata.0.Helium.NoisyMauveOsprey.letzte30Tage";
               var url4 = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?min_time=-30%20day'
            
               var data = await getData(url4); //abruf der daten
               log(data);  // ausgabe des ergebnisses auf der debug-console
               setState(dp4,data.total); // schreiben des rewards in datenpunk
            }, 4000);
            async function getData(url1) {
               try {
                   let res = await axios.get(url1, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                   return res.data.data;
               } catch (e) {
                   log(e)
               }
            }
            async function getData(url2) {
               try {
                   let res = await axios.get(url2, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                   return res.data.data;
               } catch (e) {
                   log(e)
               }
            }
            async function getData(url3) {
               try {
                   let res = await axios.get(url3, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                   return res.data.data;
               } catch (e) {
                   log(e)
               }
            }
            async function getData(url4) {
               try {
                   let res = await axios.get(url4, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                   return res.data.data;
               } catch (e) {
                   log(e)
               }
            } 
            schedule('*/30 * * * *',function() {
               writeValueOverview();
               writeValueReward1();
               writeValueReward2();
               writeValueReward3();
            });
            //test(); 
            writeValueOverview();
            writeValueReward1();
            writeValueReward2();
            writeValueReward3(); 
            

            Bei beiden funktioniert das Auslesen gut, allerdings bekomme ich jeweils drei Fehlerzeilen angezeigt, die ich (wahrscheinlich aus fehlendem Basiswissen) nicht behoben bekomme:

            17.8.2022, 09:48:06.431 [info ]: javascript.0 (1151) Start javascript script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare
            17.8.2022, 09:48:06.479 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare: registered 0 subscriptions and 1 schedule
            17.8.2022, 09:48:06.481 [error]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare: ReferenceError: writeValue1 is not defined
            17.8.2022, 09:48:06.481 [error]: javascript.0 (1151) at script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare:69:1
            17.8.2022, 09:48:06.481 [error]: javascript.0 (1151) at script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare:73:3
            17.8.2022, 09:48:07.658 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare: {'total':1.39006203,'sum':139006203,'stddev':0.0096834757243116,'min':0,'median':0.00827458,'max':0,'avg':0.013113792735849056}
            17.8.2022, 09:48:08.582 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare: {'total':0.02237045,'sum':2237045,'stddev':0.0026280645619987,'min':0,'median':0.00729542,'max':0,'avg':0.007456816666666667}
            17.8.2022, 09:48:09.582 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare: {'total':0.26189041,'sum':26189041,'stddev':0.0094876854151907,'min':0,'median':0.00765452,'max':0,'avg':0.011386539565217391}
            17.8.2022, 09:48:10.577 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.TrendyGunmetalHare: {'total':0.8288541,'sum':82885410,'stddev':0.0096992973232438,'min':0,'median':0.00748039,'max':0,'avg':0.012558395454545455}
            
            

            Könntest du mir hierbei nochmal unter die Arme greifen?
            Besten Dank :-)

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von
            #20

            @unbekannt
            Probiere es erst Mal.mit meiner Lösung

            Die fehlerm Ladung ist eigentlich selbst erklärend.
            Die Funktion mit diesem Namen wurde nie definiert
            Die Folgezeilen sind der stacktrace für diesen Fehler

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            1 Antwort Letzte Antwort
            0
            • U Offline
              U Offline
              Unbekannt
              schrieb am zuletzt editiert von
              #21

              @oliverio

              Wenn ich dein zuletzt gepostetes Skript nutze (plus ergänzend der Timeout), sprich Sktipt2 in meinem letzten Post, dann bekomme ich eine analoge Fehlermeldung:

              17.8.2022, 15:17:02.151 [info ]: javascript.0 (1151) Stop script script.js.Allgemein.Crypto.Helium.test
              17.8.2022, 15:17:02.255 [info ]: javascript.0 (1151) Start javascript script.js.Allgemein.Crypto.Helium.test
              17.8.2022, 15:17:02.291 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.test: registered 0 subscriptions and 1 schedule
              17.8.2022, 15:17:02.293 [error]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.test: ReferenceError: writeValueOverview is not defined
              17.8.2022, 15:17:02.293 [error]: javascript.0 (1151) at script.js.Allgemein.Crypto.Helium.test:75:1
              17.8.2022, 15:17:02.293 [error]: javascript.0 (1151) at script.js.Allgemein.Crypto.Helium.test:79:3
              17.8.2022, 15:17:03.451 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.test: {'total':0.3685975,'sum':36859750,'stddev':0.0094209479866946,'min':0,'median':0.01122825,'max':0,'avg':0.012710258620689655}
              17.8.2022, 15:17:04.390 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.test: {'total':0.06173936,'sum':6173936,'stddev':0.018747958871,'min':0,'median':0.01570541,'max':0,'avg':0.020579786666666666}
              17.8.2022, 15:17:05.389 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.test: {'total':0.3685975,'sum':36859750,'stddev':0.0094209479866946,'min':0,'median':0.01122825,'max':0,'avg':0.012710258620689655}
              17.8.2022, 15:17:06.625 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.test: {'total':0.3685975,'sum':36859750,'stddev':0.0094209479866946,'min':0,'median':0.01122825,'max':0,'avg':0.012710258620689655}
              
              

              Mir ist bewusst, dass writeValueOverview nicht definiert ist, ich weiß nur nicht wie ich das mache. Thema fehlendes Basiswissen zum Thema Javascript. Bisher habe ich meine Skripte immer irgendwie zusammenkopiert nach dem try&error Prinzip.

              Da in dem Skript vom Prinzip 4 mal der gleiche Code genutzt wird, verstehe ich nicht, warum der Fehler nur bei einer Funktion vorhanden ist und nicht bei allen vieren. Vor allem, weil das Skript ja erfolgreich die Daten holt. Muss ich am Anfang im Skript einfach eine Definition festlegen? Wenn ja, wie mache ich das?

              OliverIOO 1 Antwort Letzte Antwort
              0
              • U Unbekannt

                @oliverio

                Wenn ich dein zuletzt gepostetes Skript nutze (plus ergänzend der Timeout), sprich Sktipt2 in meinem letzten Post, dann bekomme ich eine analoge Fehlermeldung:

                17.8.2022, 15:17:02.151 [info ]: javascript.0 (1151) Stop script script.js.Allgemein.Crypto.Helium.test
                17.8.2022, 15:17:02.255 [info ]: javascript.0 (1151) Start javascript script.js.Allgemein.Crypto.Helium.test
                17.8.2022, 15:17:02.291 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.test: registered 0 subscriptions and 1 schedule
                17.8.2022, 15:17:02.293 [error]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.test: ReferenceError: writeValueOverview is not defined
                17.8.2022, 15:17:02.293 [error]: javascript.0 (1151) at script.js.Allgemein.Crypto.Helium.test:75:1
                17.8.2022, 15:17:02.293 [error]: javascript.0 (1151) at script.js.Allgemein.Crypto.Helium.test:79:3
                17.8.2022, 15:17:03.451 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.test: {'total':0.3685975,'sum':36859750,'stddev':0.0094209479866946,'min':0,'median':0.01122825,'max':0,'avg':0.012710258620689655}
                17.8.2022, 15:17:04.390 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.test: {'total':0.06173936,'sum':6173936,'stddev':0.018747958871,'min':0,'median':0.01570541,'max':0,'avg':0.020579786666666666}
                17.8.2022, 15:17:05.389 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.test: {'total':0.3685975,'sum':36859750,'stddev':0.0094209479866946,'min':0,'median':0.01122825,'max':0,'avg':0.012710258620689655}
                17.8.2022, 15:17:06.625 [info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.test: {'total':0.3685975,'sum':36859750,'stddev':0.0094209479866946,'min':0,'median':0.01122825,'max':0,'avg':0.012710258620689655}
                
                

                Mir ist bewusst, dass writeValueOverview nicht definiert ist, ich weiß nur nicht wie ich das mache. Thema fehlendes Basiswissen zum Thema Javascript. Bisher habe ich meine Skripte immer irgendwie zusammenkopiert nach dem try&error Prinzip.

                Da in dem Skript vom Prinzip 4 mal der gleiche Code genutzt wird, verstehe ich nicht, warum der Fehler nur bei einer Funktion vorhanden ist und nicht bei allen vieren. Vor allem, weil das Skript ja erfolgreich die Daten holt. Muss ich am Anfang im Skript einfach eine Definition festlegen? Wenn ja, wie mache ich das?

                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #22

                @unbekannt
                Jetzt wird es durcheinander. Poste bitte die aktuelle Skriptversion zu der das debig Log passt dazu.
                Zu diesem Log kann ich jetzt kein Skriptbeispiel mehr finden

                Da wo du die Funktionen in settimeout callbacks gepackt hast, sind eigentlich immer anonyme Funktionen. Den Namen den du da vergibst gilt nur innerhalb des settimeout Aufrufs
                Daher ist der Name unnötig
                Und der Aufruf weiter unten schlägt fehl

                Das mit settimeout zu machen ist nicht richtig auch wenn es wohl das Problem löst. Irgendwann passt das Zeitverhalten nicht mehr und dann klappt es wieder nicht.

                https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Functions

                Was funktionierte bei meinem Beispiel konkret nicht?

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                U 1 Antwort Letzte Antwort
                0
                • OliverIOO OliverIO

                  @unbekannt
                  Jetzt wird es durcheinander. Poste bitte die aktuelle Skriptversion zu der das debig Log passt dazu.
                  Zu diesem Log kann ich jetzt kein Skriptbeispiel mehr finden

                  Da wo du die Funktionen in settimeout callbacks gepackt hast, sind eigentlich immer anonyme Funktionen. Den Namen den du da vergibst gilt nur innerhalb des settimeout Aufrufs
                  Daher ist der Name unnötig
                  Und der Aufruf weiter unten schlägt fehl

                  Das mit settimeout zu machen ist nicht richtig auch wenn es wohl das Problem löst. Irgendwann passt das Zeitverhalten nicht mehr und dann klappt es wieder nicht.

                  https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Functions

                  Was funktionierte bei meinem Beispiel konkret nicht?

                  U Offline
                  U Offline
                  Unbekannt
                  schrieb am zuletzt editiert von
                  #23

                  @oliverio
                  Ich versuche es mal. Also hier dein Skript mit diesen Anpassungen:

                  • Miner ID ergänzt/ausgetauscht
                  • Zeile 6 &12 dp2 entfernt (benötige ich nicht)
                  • Zeile 9 (url) zu (v_url) geändert (sonst bekomme ich den Fehler, das url nicht definiert ist)
                  • Zeile 21 & 29 data.total ergänzt statt Fragezeichen
                  • Zeile 30 gelöscht
                  • Zeile 42 zum Testen auf jede Minute geändert

                  Hier das Skript:

                  
                  var axios = require("axios");
                  
                  async function writeValueOverview() {
                     var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.Total";
                     var v_url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2021-01-01T00:00:01Z'
                  
                     var data = await getData(v_url); //abruf der daten
                     log(data);  // ausgabe des ergebnisses auf der debug-console
                     setState(dp1,data.total); // schreiben der summe in datenpunkt
                  }
                  
                  async function writeValueReward1() {
                     var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte24Stunden";
                     var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-1%20day'
                  
                     var data = await getData(url); //abruf der daten
                     log(data);  // ausgabe des ergebnisses auf der debug-console
                     setState(dp1,data.total); // schreiben des rewards in datenpunkt
                  }
                  async function writeValueReward2() {
                     var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte7Tage";
                     var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-7%20day'
                  
                     var data = await getData(url); //abruf der daten
                     log(data);  // ausgabe des ergebnisses auf der debug-console
                     setState(dp1,data.total); // schreiben des rewards in datenpunk
                  }
                  
                  async function getData(url) {
                     try {
                         let res = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                         return res.data.data;
                     } catch (e) {
                         log(e)
                     }
                  }
                  
                  schedule('*/1 * * * *',function() {
                     writeValueOverview();
                     writeValueReward1();
                     writeValueReward2();
                  });
                  

                  Ich habe das Skript mal laufen gelassen und festgestellt, das Resultat nach jedem Abruf unterschiedlich ist. Mal bekomme ich einen Fehler, mal mehrere und manchmal keine.
                  Hier die Ausgabe:

                  Fehler Nr.1

                  18.8.2022, 14:12:47.301	[info ]: javascript.0 (1151) Stop script script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver
                  18.8.2022, 14:12:47.310	[info ]: javascript.0 (1151) Start javascript script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver
                  18.8.2022, 14:12:47.318	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: registered 0 subscriptions and 1 schedule
                  18.8.2022, 14:13:00.128	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':0.10191292,'sum':10191292,'stddev':0.010497921837,'min':0,'median':0.01697798,'max':0,'avg':0.016985486666666667}
                  18.8.2022, 14:13:00.132	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'message':'Request failed with status code 429','name':'AxiosError','config':{'transitional':{'silentJSONParsing':true,'forcedJSONParsing':true,'clarifyTimeoutError':false},'transformRequest':[null],'transformResponse':[null],'timeout':0,'xsrfCookieName':'XSRF-TOKEN','xsrfHeaderName':'X-XSRF-TOKEN','maxContentLength':-1,'maxBodyLength':-1,'env':{},'headers':{'User-Agent':'Mozilla/5.0.'},'method':'get','url':'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2021-01-01T00:00:01Z'},'code':'ERR_BAD_REQUEST','status':429}
                  18.8.2022, 14:13:00.133	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: undefined
                  18.8.2022, 14:13:00.136	[error]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: TypeError: Cannot read property 'total' of undefined
                  18.8.2022, 14:13:00.136	[error]: javascript.0 (1151)     at writeValueOverview (script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver:10:23)
                  18.8.2022, 14:13:00.361	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'message':'Request failed with status code 429','name':'AxiosError','config':{'transitional':{'silentJSONParsing':true,'forcedJSONParsing':true,'clarifyTimeoutError':false},'transformRequest':[null],'transformResponse':[null],'timeout':0,'xsrfCookieName':'XSRF-TOKEN','xsrfHeaderName':'X-XSRF-TOKEN','maxContentLength':-1,'maxBodyLength':-1,'env':{},'headers':{'User-Agent':'Mozilla/5.0.'},'method':'get','url':'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-7%20day'},'code':'ERR_BAD_REQUEST','status':429}
                  18.8.2022, 14:13:00.361	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: undefined
                  18.8.2022, 14:13:00.362	[error]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: TypeError: Cannot read property 'total' of undefined
                  18.8.2022, 14:13:00.363	[error]: javascript.0 (1151)     at writeValueReward2 (script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver:27:23)
                  18.8.2022, 14:13:11.414	[info ]: javascript.0 (1151) Stop script script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver
                  


                  Fehler Nr.2

                  18.8.2022, 14:24:08.120	[info ]: javascript.0 (1151) Start javascript script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver
                  18.8.2022, 14:24:08.131	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: registered 0 subscriptions and 1 schedule
                  18.8.2022, 14:25:00.125	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'message':'Request failed with status code 429','name':'AxiosError','config':{'transitional':{'silentJSONParsing':true,'forcedJSONParsing':true,'clarifyTimeoutError':false},'transformRequest':[null],'transformResponse':[null],'timeout':0,'xsrfCookieName':'XSRF-TOKEN','xsrfHeaderName':'X-XSRF-TOKEN','maxContentLength':-1,'maxBodyLength':-1,'env':{},'headers':{'User-Agent':'Mozilla/5.0.'},'method':'get','url':'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-7%20day'},'code':'ERR_BAD_REQUEST','status':429}
                  18.8.2022, 14:25:00.126	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: undefined
                  18.8.2022, 14:25:00.127	[error]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: TypeError: Cannot read property 'total' of undefined
                  18.8.2022, 14:25:00.127	[error]: javascript.0 (1151)     at writeValueReward2 (script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver:27:23)
                  18.8.2022, 14:25:00.131	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':1.49197495,'sum':149197495,'stddev':0.0097176223317734,'min':0,'median':0.00827458,'max':0,'avg':0.013321204910714285}
                  18.8.2022, 14:25:00.141	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':0.10191292,'sum':10191292,'stddev':0.010497921837,'min':0,'median':0.01697798,'max':0,'avg':0.016985486666666667}
                  


                  hier mal kein Fehler

                  18.8.2022, 14:26:00.045	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':0.10191292,'sum':10191292,'stddev':0.010497921837,'min':0,'median':0.01697798,'max':0,'avg':0.016985486666666667}
                  18.8.2022, 14:26:00.049	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':1.49197495,'sum':149197495,'stddev':0.0097176223317734,'min':0,'median':0.00827458,'max':0,'avg':0.013321204910714285}
                  18.8.2022, 14:26:00.131	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':0.33453871,'sum':33453871,'stddev':0.010191871516,'min':0,'median':0.00766701,'max':0,'avg':0.0133815484}
                  


                  Fehler Nr.3

                  18.8.2022, 14:29:00.047	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':0.33453871,'sum':33453871,'stddev':0.010191871516,'min':0,'median':0.00766701,'max':0,'avg':0.0133815484}
                  18.8.2022, 14:29:00.121	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'message':'Request failed with status code 429','name':'AxiosError','config':{'transitional':{'silentJSONParsing':true,'forcedJSONParsing':true,'clarifyTimeoutError':false},'transformRequest':[null],'transformResponse':[null],'timeout':0,'xsrfCookieName':'XSRF-TOKEN','xsrfHeaderName':'X-XSRF-TOKEN','maxContentLength':-1,'maxBodyLength':-1,'env':{},'headers':{'User-Agent':'Mozilla/5.0.'},'method':'get','url':'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-1%20day'},'code':'ERR_BAD_REQUEST','status':429}
                  18.8.2022, 14:29:00.121	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: undefined
                  18.8.2022, 14:29:00.122	[error]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: TypeError: Cannot read property 'total' of undefined
                  18.8.2022, 14:29:00.122	[error]: javascript.0 (1151)     at writeValueReward1 (script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver:19:23)
                  18.8.2022, 14:29:00.126	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':1.49197495,'sum':149197495,'stddev':0.0097176223317734,'min':0,'median':0.00827458,'max':0,'avg':0.013321204910714285}
                  18.8.2022, 14:30:00.044	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':1.49197495,'sum':149197495,'stddev':0.0097176223317734,'min':0,'median':0.00827458,'max':0,'avg':0.013321204910714285}
                  18.8.2022, 14:30:00.125	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':0.10191292,'sum':10191292,'stddev':0.010497921837,'min':0,'median':0.01697798,'max':0,'avg':0.016985486666666667}
                  18.8.2022, 14:30:00.128	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':0.33453871,'sum':33453871,'stddev':0.010191871516,'min':0,'median':0.00766701,'max':0,'avg':0.0133815484}
                  
                  

                  Wie du siehst geht es manchmal gut, manchmal aber auch nicht. Wie würdest du das lösen?

                  OliverIOO 1 Antwort Letzte Antwort
                  0
                  • U Unbekannt

                    @oliverio
                    Ich versuche es mal. Also hier dein Skript mit diesen Anpassungen:

                    • Miner ID ergänzt/ausgetauscht
                    • Zeile 6 &12 dp2 entfernt (benötige ich nicht)
                    • Zeile 9 (url) zu (v_url) geändert (sonst bekomme ich den Fehler, das url nicht definiert ist)
                    • Zeile 21 & 29 data.total ergänzt statt Fragezeichen
                    • Zeile 30 gelöscht
                    • Zeile 42 zum Testen auf jede Minute geändert

                    Hier das Skript:

                    
                    var axios = require("axios");
                    
                    async function writeValueOverview() {
                       var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.Total";
                       var v_url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2021-01-01T00:00:01Z'
                    
                       var data = await getData(v_url); //abruf der daten
                       log(data);  // ausgabe des ergebnisses auf der debug-console
                       setState(dp1,data.total); // schreiben der summe in datenpunkt
                    }
                    
                    async function writeValueReward1() {
                       var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte24Stunden";
                       var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-1%20day'
                    
                       var data = await getData(url); //abruf der daten
                       log(data);  // ausgabe des ergebnisses auf der debug-console
                       setState(dp1,data.total); // schreiben des rewards in datenpunkt
                    }
                    async function writeValueReward2() {
                       var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte7Tage";
                       var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-7%20day'
                    
                       var data = await getData(url); //abruf der daten
                       log(data);  // ausgabe des ergebnisses auf der debug-console
                       setState(dp1,data.total); // schreiben des rewards in datenpunk
                    }
                    
                    async function getData(url) {
                       try {
                           let res = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                           return res.data.data;
                       } catch (e) {
                           log(e)
                       }
                    }
                    
                    schedule('*/1 * * * *',function() {
                       writeValueOverview();
                       writeValueReward1();
                       writeValueReward2();
                    });
                    

                    Ich habe das Skript mal laufen gelassen und festgestellt, das Resultat nach jedem Abruf unterschiedlich ist. Mal bekomme ich einen Fehler, mal mehrere und manchmal keine.
                    Hier die Ausgabe:

                    Fehler Nr.1

                    18.8.2022, 14:12:47.301	[info ]: javascript.0 (1151) Stop script script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver
                    18.8.2022, 14:12:47.310	[info ]: javascript.0 (1151) Start javascript script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver
                    18.8.2022, 14:12:47.318	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: registered 0 subscriptions and 1 schedule
                    18.8.2022, 14:13:00.128	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':0.10191292,'sum':10191292,'stddev':0.010497921837,'min':0,'median':0.01697798,'max':0,'avg':0.016985486666666667}
                    18.8.2022, 14:13:00.132	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'message':'Request failed with status code 429','name':'AxiosError','config':{'transitional':{'silentJSONParsing':true,'forcedJSONParsing':true,'clarifyTimeoutError':false},'transformRequest':[null],'transformResponse':[null],'timeout':0,'xsrfCookieName':'XSRF-TOKEN','xsrfHeaderName':'X-XSRF-TOKEN','maxContentLength':-1,'maxBodyLength':-1,'env':{},'headers':{'User-Agent':'Mozilla/5.0.'},'method':'get','url':'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2021-01-01T00:00:01Z'},'code':'ERR_BAD_REQUEST','status':429}
                    18.8.2022, 14:13:00.133	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: undefined
                    18.8.2022, 14:13:00.136	[error]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: TypeError: Cannot read property 'total' of undefined
                    18.8.2022, 14:13:00.136	[error]: javascript.0 (1151)     at writeValueOverview (script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver:10:23)
                    18.8.2022, 14:13:00.361	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'message':'Request failed with status code 429','name':'AxiosError','config':{'transitional':{'silentJSONParsing':true,'forcedJSONParsing':true,'clarifyTimeoutError':false},'transformRequest':[null],'transformResponse':[null],'timeout':0,'xsrfCookieName':'XSRF-TOKEN','xsrfHeaderName':'X-XSRF-TOKEN','maxContentLength':-1,'maxBodyLength':-1,'env':{},'headers':{'User-Agent':'Mozilla/5.0.'},'method':'get','url':'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-7%20day'},'code':'ERR_BAD_REQUEST','status':429}
                    18.8.2022, 14:13:00.361	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: undefined
                    18.8.2022, 14:13:00.362	[error]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: TypeError: Cannot read property 'total' of undefined
                    18.8.2022, 14:13:00.363	[error]: javascript.0 (1151)     at writeValueReward2 (script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver:27:23)
                    18.8.2022, 14:13:11.414	[info ]: javascript.0 (1151) Stop script script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver
                    


                    Fehler Nr.2

                    18.8.2022, 14:24:08.120	[info ]: javascript.0 (1151) Start javascript script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver
                    18.8.2022, 14:24:08.131	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: registered 0 subscriptions and 1 schedule
                    18.8.2022, 14:25:00.125	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'message':'Request failed with status code 429','name':'AxiosError','config':{'transitional':{'silentJSONParsing':true,'forcedJSONParsing':true,'clarifyTimeoutError':false},'transformRequest':[null],'transformResponse':[null],'timeout':0,'xsrfCookieName':'XSRF-TOKEN','xsrfHeaderName':'X-XSRF-TOKEN','maxContentLength':-1,'maxBodyLength':-1,'env':{},'headers':{'User-Agent':'Mozilla/5.0.'},'method':'get','url':'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-7%20day'},'code':'ERR_BAD_REQUEST','status':429}
                    18.8.2022, 14:25:00.126	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: undefined
                    18.8.2022, 14:25:00.127	[error]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: TypeError: Cannot read property 'total' of undefined
                    18.8.2022, 14:25:00.127	[error]: javascript.0 (1151)     at writeValueReward2 (script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver:27:23)
                    18.8.2022, 14:25:00.131	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':1.49197495,'sum':149197495,'stddev':0.0097176223317734,'min':0,'median':0.00827458,'max':0,'avg':0.013321204910714285}
                    18.8.2022, 14:25:00.141	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':0.10191292,'sum':10191292,'stddev':0.010497921837,'min':0,'median':0.01697798,'max':0,'avg':0.016985486666666667}
                    


                    hier mal kein Fehler

                    18.8.2022, 14:26:00.045	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':0.10191292,'sum':10191292,'stddev':0.010497921837,'min':0,'median':0.01697798,'max':0,'avg':0.016985486666666667}
                    18.8.2022, 14:26:00.049	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':1.49197495,'sum':149197495,'stddev':0.0097176223317734,'min':0,'median':0.00827458,'max':0,'avg':0.013321204910714285}
                    18.8.2022, 14:26:00.131	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':0.33453871,'sum':33453871,'stddev':0.010191871516,'min':0,'median':0.00766701,'max':0,'avg':0.0133815484}
                    


                    Fehler Nr.3

                    18.8.2022, 14:29:00.047	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':0.33453871,'sum':33453871,'stddev':0.010191871516,'min':0,'median':0.00766701,'max':0,'avg':0.0133815484}
                    18.8.2022, 14:29:00.121	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'message':'Request failed with status code 429','name':'AxiosError','config':{'transitional':{'silentJSONParsing':true,'forcedJSONParsing':true,'clarifyTimeoutError':false},'transformRequest':[null],'transformResponse':[null],'timeout':0,'xsrfCookieName':'XSRF-TOKEN','xsrfHeaderName':'X-XSRF-TOKEN','maxContentLength':-1,'maxBodyLength':-1,'env':{},'headers':{'User-Agent':'Mozilla/5.0.'},'method':'get','url':'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-1%20day'},'code':'ERR_BAD_REQUEST','status':429}
                    18.8.2022, 14:29:00.121	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: undefined
                    18.8.2022, 14:29:00.122	[error]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: TypeError: Cannot read property 'total' of undefined
                    18.8.2022, 14:29:00.122	[error]: javascript.0 (1151)     at writeValueReward1 (script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver:19:23)
                    18.8.2022, 14:29:00.126	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':1.49197495,'sum':149197495,'stddev':0.0097176223317734,'min':0,'median':0.00827458,'max':0,'avg':0.013321204910714285}
                    18.8.2022, 14:30:00.044	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':1.49197495,'sum':149197495,'stddev':0.0097176223317734,'min':0,'median':0.00827458,'max':0,'avg':0.013321204910714285}
                    18.8.2022, 14:30:00.125	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':0.10191292,'sum':10191292,'stddev':0.010497921837,'min':0,'median':0.01697798,'max':0,'avg':0.016985486666666667}
                    18.8.2022, 14:30:00.128	[info ]: javascript.0 (1151) script.js.Allgemein.Crypto.Helium.Originalskript_von_Oliver: {'total':0.33453871,'sum':33453871,'stddev':0.010191871516,'min':0,'median':0.00766701,'max':0,'avg':0.0133815484}
                    
                    

                    Wie du siehst geht es manchmal gut, manchmal aber auch nicht. Wie würdest du das lösen?

                    OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    schrieb am zuletzt editiert von
                    #24

                    @unbekannt
                    Schau ich mir Anfang der nö hatten Woche im Detail an. Bin Grad ni ht an einem Rechner

                    Der Fehler 429 kann 2 Möglichkeiten haben.
                    Einmal too many requests. Anbieter versuchen die Häufigkeit der Anfragen in einem bestimmten Zeitabschnitt zu limitieren. Das muss man beachten. Hab aber auf die schnelle keine Regel gefunden
                    Allerdings hab ich gefunden das man einen User-Agent String mit angeben muss da ansonsten genau mit 429 abgebrochen wird. Evtl findest du dazu Details. Wenn du im Internet suchst dann findest Angaben bspw zu Chrome oder Firefox. Welcher ist relativ egal

                    Meine Adapter und Widgets
                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                    Links im Profil

                    U 1 Antwort Letzte Antwort
                    0
                    • OliverIOO OliverIO

                      @unbekannt
                      Schau ich mir Anfang der nö hatten Woche im Detail an. Bin Grad ni ht an einem Rechner

                      Der Fehler 429 kann 2 Möglichkeiten haben.
                      Einmal too many requests. Anbieter versuchen die Häufigkeit der Anfragen in einem bestimmten Zeitabschnitt zu limitieren. Das muss man beachten. Hab aber auf die schnelle keine Regel gefunden
                      Allerdings hab ich gefunden das man einen User-Agent String mit angeben muss da ansonsten genau mit 429 abgebrochen wird. Evtl findest du dazu Details. Wenn du im Internet suchst dann findest Angaben bspw zu Chrome oder Firefox. Welcher ist relativ egal

                      U Offline
                      U Offline
                      Unbekannt
                      schrieb am zuletzt editiert von Unbekannt
                      #25

                      @oliverio
                      Ja, dass der Fehler wegen zu vieler Anfragen kommt, hatte ich auch recherchiert, daher wollte ich ja den Timeout setzen. Aber du meintest ja, dass es so wie ich es gemacht habe nicht optimal ist.

                      Ich habe jetzt einen anderen Ansatz gewählt und einfach mal ganz pragmatisch den cronjob angepasst, damit läuft das Skript auf jeden Fall fehlerfrei.

                      Ich danke dir auf jeden Fall für deinen Input, ich habe eine Menge gelernt :-)

                      Für die, die es interessiert, hier das funktionierende Skript. Ihr müsst nur "dp1" und die Miner-ID anpassen:

                      
                      var axios = require("axios");
                      
                      async function writeValueOverview() {
                         var dp1 = "0_userdata.0.Helium.NoisyMauveOsprey.Total";
                         var url = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2022-08-01T00:00:01Z'
                      
                         var data = await getData(url); //abruf der daten
                         log(data);  // ausgabe des ergebnisses auf der debug-console
                         setState(dp1,data.total); // schreiben der summe in datenpunkt
                      }
                      
                      async function writeValueReward1() {
                         var dp1 = "0_userdata.0.Helium.NoisyMauveOsprey.letzte24Stunden";
                         var url = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?min_time=-1%20day'
                      
                         var data = await getData(url); //abruf der daten
                         log(data);  // ausgabe des ergebnisses auf der debug-console
                         setState(dp1,data.total); // schreiben des rewards in datenpunkt
                      }
                      
                      async function writeValueReward2() {
                         var dp1 = "0_userdata.0.Helium.NoisyMauveOsprey.letzte7Tage";
                         var url = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?min_time=-7%20day'
                      
                         var data = await getData(url); //abruf der daten
                         log(data);  // ausgabe des ergebnisses auf der debug-console
                         setState(dp1,data.total); // schreiben des rewards in datenpunk
                      }
                      
                      async function writeValueReward3() {
                         var dp1 = "0_userdata.0.Helium.NoisyMauveOsprey.letzte30Tage";
                         var url = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?min_time=-30%20day'
                      
                         var data = await getData(url); //abruf der daten
                         log(data);  // ausgabe des ergebnisses auf der debug-console
                         setState(dp1,data.total); // schreiben des rewards in datenpunk
                      } 
                      
                      async function getData(url) {
                         try {
                             let res = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                             return res.data.data;
                         } catch (e) {
                             log(e)
                         }
                      }
                      
                      schedule('35 0,30 * * * *',function() {
                         writeValueOverview();
                      });
                      schedule('40 0,30 * * * *',function() {
                         writeValueReward1();
                      });
                      schedule('45 0,30 * * * *',function() {
                         writeValueReward2();
                      });
                      schedule('50 0,30 * * * *',function() {
                         writeValueReward3();
                      });
                      

                      OliverIOO 2 Antworten Letzte Antwort
                      0
                      • U Unbekannt

                        @oliverio
                        Ja, dass der Fehler wegen zu vieler Anfragen kommt, hatte ich auch recherchiert, daher wollte ich ja den Timeout setzen. Aber du meintest ja, dass es so wie ich es gemacht habe nicht optimal ist.

                        Ich habe jetzt einen anderen Ansatz gewählt und einfach mal ganz pragmatisch den cronjob angepasst, damit läuft das Skript auf jeden Fall fehlerfrei.

                        Ich danke dir auf jeden Fall für deinen Input, ich habe eine Menge gelernt :-)

                        Für die, die es interessiert, hier das funktionierende Skript. Ihr müsst nur "dp1" und die Miner-ID anpassen:

                        
                        var axios = require("axios");
                        
                        async function writeValueOverview() {
                           var dp1 = "0_userdata.0.Helium.NoisyMauveOsprey.Total";
                           var url = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2022-08-01T00:00:01Z'
                        
                           var data = await getData(url); //abruf der daten
                           log(data);  // ausgabe des ergebnisses auf der debug-console
                           setState(dp1,data.total); // schreiben der summe in datenpunkt
                        }
                        
                        async function writeValueReward1() {
                           var dp1 = "0_userdata.0.Helium.NoisyMauveOsprey.letzte24Stunden";
                           var url = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?min_time=-1%20day'
                        
                           var data = await getData(url); //abruf der daten
                           log(data);  // ausgabe des ergebnisses auf der debug-console
                           setState(dp1,data.total); // schreiben des rewards in datenpunkt
                        }
                        
                        async function writeValueReward2() {
                           var dp1 = "0_userdata.0.Helium.NoisyMauveOsprey.letzte7Tage";
                           var url = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?min_time=-7%20day'
                        
                           var data = await getData(url); //abruf der daten
                           log(data);  // ausgabe des ergebnisses auf der debug-console
                           setState(dp1,data.total); // schreiben des rewards in datenpunk
                        }
                        
                        async function writeValueReward3() {
                           var dp1 = "0_userdata.0.Helium.NoisyMauveOsprey.letzte30Tage";
                           var url = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?min_time=-30%20day'
                        
                           var data = await getData(url); //abruf der daten
                           log(data);  // ausgabe des ergebnisses auf der debug-console
                           setState(dp1,data.total); // schreiben des rewards in datenpunk
                        } 
                        
                        async function getData(url) {
                           try {
                               let res = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                               return res.data.data;
                           } catch (e) {
                               log(e)
                           }
                        }
                        
                        schedule('35 0,30 * * * *',function() {
                           writeValueOverview();
                        });
                        schedule('40 0,30 * * * *',function() {
                           writeValueReward1();
                        });
                        schedule('45 0,30 * * * *',function() {
                           writeValueReward2();
                        });
                        schedule('50 0,30 * * * *',function() {
                           writeValueReward3();
                        });
                        

                        OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        schrieb am zuletzt editiert von OliverIO
                        #26

                        @unbekannt
                        das hatte hier ich als andere alternative auch geschrieben
                        24d54e68-8fed-4c60-b86d-3a65c8cf9689-image.png

                        die skript detail sachen kann ich fühestens erst ab montag wieder schauen

                        Meine Adapter und Widgets
                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                        Links im Profil

                        1 Antwort Letzte Antwort
                        0
                        • U Unbekannt

                          @oliverio
                          Ja, dass der Fehler wegen zu vieler Anfragen kommt, hatte ich auch recherchiert, daher wollte ich ja den Timeout setzen. Aber du meintest ja, dass es so wie ich es gemacht habe nicht optimal ist.

                          Ich habe jetzt einen anderen Ansatz gewählt und einfach mal ganz pragmatisch den cronjob angepasst, damit läuft das Skript auf jeden Fall fehlerfrei.

                          Ich danke dir auf jeden Fall für deinen Input, ich habe eine Menge gelernt :-)

                          Für die, die es interessiert, hier das funktionierende Skript. Ihr müsst nur "dp1" und die Miner-ID anpassen:

                          
                          var axios = require("axios");
                          
                          async function writeValueOverview() {
                             var dp1 = "0_userdata.0.Helium.NoisyMauveOsprey.Total";
                             var url = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2022-08-01T00:00:01Z'
                          
                             var data = await getData(url); //abruf der daten
                             log(data);  // ausgabe des ergebnisses auf der debug-console
                             setState(dp1,data.total); // schreiben der summe in datenpunkt
                          }
                          
                          async function writeValueReward1() {
                             var dp1 = "0_userdata.0.Helium.NoisyMauveOsprey.letzte24Stunden";
                             var url = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?min_time=-1%20day'
                          
                             var data = await getData(url); //abruf der daten
                             log(data);  // ausgabe des ergebnisses auf der debug-console
                             setState(dp1,data.total); // schreiben des rewards in datenpunkt
                          }
                          
                          async function writeValueReward2() {
                             var dp1 = "0_userdata.0.Helium.NoisyMauveOsprey.letzte7Tage";
                             var url = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?min_time=-7%20day'
                          
                             var data = await getData(url); //abruf der daten
                             log(data);  // ausgabe des ergebnisses auf der debug-console
                             setState(dp1,data.total); // schreiben des rewards in datenpunk
                          }
                          
                          async function writeValueReward3() {
                             var dp1 = "0_userdata.0.Helium.NoisyMauveOsprey.letzte30Tage";
                             var url = 'https://api.helium.io/v1/hotspots/11wWXAuRHec8cfqLz3tc5CaVbMhUX4SW7YWHGRYGRm8WqULrFtY/rewards/sum/?min_time=-30%20day'
                          
                             var data = await getData(url); //abruf der daten
                             log(data);  // ausgabe des ergebnisses auf der debug-console
                             setState(dp1,data.total); // schreiben des rewards in datenpunk
                          } 
                          
                          async function getData(url) {
                             try {
                                 let res = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                                 return res.data.data;
                             } catch (e) {
                                 log(e)
                             }
                          }
                          
                          schedule('35 0,30 * * * *',function() {
                             writeValueOverview();
                          });
                          schedule('40 0,30 * * * *',function() {
                             writeValueReward1();
                          });
                          schedule('45 0,30 * * * *',function() {
                             writeValueReward2();
                          });
                          schedule('50 0,30 * * * *',function() {
                             writeValueReward3();
                          });
                          

                          OliverIOO Offline
                          OliverIOO Offline
                          OliverIO
                          schrieb am zuletzt editiert von OliverIO
                          #27

                          @unbekannt

                          ich habe den folgenden Code ausprobiert. Das schedule habe ich aus testzwecken entfernt.
                          Er hat einwandfrei funktioniert.
                          Gab es jetzt noch ein Problem.
                          Den Useragent hast ja auch ergänzt.
                          Hab daher nun kein 429 mehr erhalten.

                           
                          var axios = require("axios");
                           
                          async function writeValueOverview() {
                             var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.Total";
                             var v_url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2021-01-01T00:00:01Z'
                           
                             var data = await getData(v_url); //abruf der daten
                             log(data);  // ausgabe des ergebnisses auf der debug-console
                             setState(dp1,data.total); // schreiben der summe in datenpunkt
                          }
                           
                          async function writeValueReward1() {
                             var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte24Stunden";
                             var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-1%20day'
                           
                             var data = await getData(url); //abruf der daten
                             log(data);  // ausgabe des ergebnisses auf der debug-console
                             setState(dp1,data.total); // schreiben des rewards in datenpunkt
                          }
                          async function writeValueReward2() {
                             var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte7Tage";
                             var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-7%20day'
                           
                             var data = await getData(url); //abruf der daten
                             log(data);  // ausgabe des ergebnisses auf der debug-console
                             setState(dp1,data.total); // schreiben des rewards in datenpunk
                          }
                           
                          async function getData(url) {
                             try {
                                 let res = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                                 return res.data.data;
                             } catch (e) {
                                 log(e)
                             }
                          }
                           
                          
                          writeValueOverview();
                          writeValueReward1();
                          writeValueReward2();
                          
                          
                          

                          Meine Adapter und Widgets
                          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                          Links im Profil

                          M U 2 Antworten Letzte Antwort
                          0
                          • OliverIOO OliverIO

                            @unbekannt

                            ich habe den folgenden Code ausprobiert. Das schedule habe ich aus testzwecken entfernt.
                            Er hat einwandfrei funktioniert.
                            Gab es jetzt noch ein Problem.
                            Den Useragent hast ja auch ergänzt.
                            Hab daher nun kein 429 mehr erhalten.

                             
                            var axios = require("axios");
                             
                            async function writeValueOverview() {
                               var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.Total";
                               var v_url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2021-01-01T00:00:01Z'
                             
                               var data = await getData(v_url); //abruf der daten
                               log(data);  // ausgabe des ergebnisses auf der debug-console
                               setState(dp1,data.total); // schreiben der summe in datenpunkt
                            }
                             
                            async function writeValueReward1() {
                               var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte24Stunden";
                               var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-1%20day'
                             
                               var data = await getData(url); //abruf der daten
                               log(data);  // ausgabe des ergebnisses auf der debug-console
                               setState(dp1,data.total); // schreiben des rewards in datenpunkt
                            }
                            async function writeValueReward2() {
                               var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte7Tage";
                               var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-7%20day'
                             
                               var data = await getData(url); //abruf der daten
                               log(data);  // ausgabe des ergebnisses auf der debug-console
                               setState(dp1,data.total); // schreiben des rewards in datenpunk
                            }
                             
                            async function getData(url) {
                               try {
                                   let res = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                                   return res.data.data;
                               } catch (e) {
                                   log(e)
                               }
                            }
                             
                            
                            writeValueOverview();
                            writeValueReward1();
                            writeValueReward2();
                            
                            
                            

                            M Offline
                            M Offline
                            manni4545
                            schrieb am zuletzt editiert von
                            #28

                            @oliverio Hi
                            ich beschäftige mich auch gerade mit dem auslesen von der API
                            aber im moment blicke ich garnichts.
                            Ich habe Iobroker und Grafana am laufen.
                            Und möchte auch die Daten aus der Helium Api auslesen.
                            Es hapert aber schon an diesem Axis. Muss man das im Iobroker einrichten oder wie benutze ich dieses Script.
                            Sorry für diese doofe Frage.

                            OliverIOO 1 Antwort Letzte Antwort
                            0
                            • M manni4545

                              @oliverio Hi
                              ich beschäftige mich auch gerade mit dem auslesen von der API
                              aber im moment blicke ich garnichts.
                              Ich habe Iobroker und Grafana am laufen.
                              Und möchte auch die Daten aus der Helium Api auslesen.
                              Es hapert aber schon an diesem Axis. Muss man das im Iobroker einrichten oder wie benutze ich dieses Script.
                              Sorry für diese doofe Frage.

                              OliverIOO Offline
                              OliverIOO Offline
                              OliverIO
                              schrieb am zuletzt editiert von OliverIO
                              #29

                              @manni4545

                              axios ist eine zusätzliche bibliothek, mit der man http-abfragen machen kann.
                              also genau die art von abfragen, die der browser im hintergrund macht.

                              axios wird auch von iobroker intern verwendet, aber um sicher zu gehen,
                              sollte man ihn in den einstellungen des javascript-adapters im feld "zusätzliche npm module" eintragen. also einfach "axios" eintragen.
                              danach kann im javascript diese bibiothek mit

                              var axios = require("axios");
                              

                              verwendet werden.
                              welche befehle und parameter zur verfügung stehen, kann man in der doku nachlesen
                              https://axios-http.com/docs/api_intro

                              Meine Adapter und Widgets
                              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                              Links im Profil

                              1 Antwort Letzte Antwort
                              0
                              • OliverIOO OliverIO

                                @unbekannt

                                ich habe den folgenden Code ausprobiert. Das schedule habe ich aus testzwecken entfernt.
                                Er hat einwandfrei funktioniert.
                                Gab es jetzt noch ein Problem.
                                Den Useragent hast ja auch ergänzt.
                                Hab daher nun kein 429 mehr erhalten.

                                 
                                var axios = require("axios");
                                 
                                async function writeValueOverview() {
                                   var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.Total";
                                   var v_url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2021-01-01T00:00:01Z'
                                 
                                   var data = await getData(v_url); //abruf der daten
                                   log(data);  // ausgabe des ergebnisses auf der debug-console
                                   setState(dp1,data.total); // schreiben der summe in datenpunkt
                                }
                                 
                                async function writeValueReward1() {
                                   var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte24Stunden";
                                   var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-1%20day'
                                 
                                   var data = await getData(url); //abruf der daten
                                   log(data);  // ausgabe des ergebnisses auf der debug-console
                                   setState(dp1,data.total); // schreiben des rewards in datenpunkt
                                }
                                async function writeValueReward2() {
                                   var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte7Tage";
                                   var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-7%20day'
                                 
                                   var data = await getData(url); //abruf der daten
                                   log(data);  // ausgabe des ergebnisses auf der debug-console
                                   setState(dp1,data.total); // schreiben des rewards in datenpunk
                                }
                                 
                                async function getData(url) {
                                   try {
                                       let res = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                                       return res.data.data;
                                   } catch (e) {
                                       log(e)
                                   }
                                }
                                 
                                
                                writeValueOverview();
                                writeValueReward1();
                                writeValueReward2();
                                
                                
                                

                                U Offline
                                U Offline
                                Unbekannt
                                schrieb am zuletzt editiert von
                                #30

                                @oliverio sagte in Helium API per GET abrufen (incl. User-Agent):

                                @unbekannt

                                ich habe den folgenden Code ausprobiert. Das schedule habe ich aus testzwecken entfernt.
                                Er hat einwandfrei funktioniert.
                                Gab es jetzt noch ein Problem.
                                Den Useragent hast ja auch ergänzt.
                                Hab daher nun kein 429 mehr erhalten.

                                 
                                var axios = require("axios");
                                 
                                async function writeValueOverview() {
                                   var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.Total";
                                   var v_url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2021-01-01T00:00:01Z'
                                 
                                   var data = await getData(v_url); //abruf der daten
                                   log(data);  // ausgabe des ergebnisses auf der debug-console
                                   setState(dp1,data.total); // schreiben der summe in datenpunkt
                                }
                                 
                                async function writeValueReward1() {
                                   var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte24Stunden";
                                   var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-1%20day'
                                 
                                   var data = await getData(url); //abruf der daten
                                   log(data);  // ausgabe des ergebnisses auf der debug-console
                                   setState(dp1,data.total); // schreiben des rewards in datenpunkt
                                }
                                async function writeValueReward2() {
                                   var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte7Tage";
                                   var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-7%20day'
                                 
                                   var data = await getData(url); //abruf der daten
                                   log(data);  // ausgabe des ergebnisses auf der debug-console
                                   setState(dp1,data.total); // schreiben des rewards in datenpunk
                                }
                                 
                                async function getData(url) {
                                   try {
                                       let res = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                                       return res.data.data;
                                   } catch (e) {
                                       log(e)
                                   }
                                }
                                 
                                
                                writeValueOverview();
                                writeValueReward1();
                                writeValueReward2();
                                
                                
                                

                                kurzes Update:
                                Ich habe den Code (mit schedule) nun seit einigen Tagen fehlerfrei laufen.

                                Danke nochmal für deine Hilfestellungen.

                                M 1 Antwort Letzte Antwort
                                1
                                • U Unbekannt

                                  @oliverio sagte in Helium API per GET abrufen (incl. User-Agent):

                                  @unbekannt

                                  ich habe den folgenden Code ausprobiert. Das schedule habe ich aus testzwecken entfernt.
                                  Er hat einwandfrei funktioniert.
                                  Gab es jetzt noch ein Problem.
                                  Den Useragent hast ja auch ergänzt.
                                  Hab daher nun kein 429 mehr erhalten.

                                   
                                  var axios = require("axios");
                                   
                                  async function writeValueOverview() {
                                     var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.Total";
                                     var v_url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2021-01-01T00:00:01Z'
                                   
                                     var data = await getData(v_url); //abruf der daten
                                     log(data);  // ausgabe des ergebnisses auf der debug-console
                                     setState(dp1,data.total); // schreiben der summe in datenpunkt
                                  }
                                   
                                  async function writeValueReward1() {
                                     var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte24Stunden";
                                     var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-1%20day'
                                   
                                     var data = await getData(url); //abruf der daten
                                     log(data);  // ausgabe des ergebnisses auf der debug-console
                                     setState(dp1,data.total); // schreiben des rewards in datenpunkt
                                  }
                                  async function writeValueReward2() {
                                     var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte7Tage";
                                     var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-7%20day'
                                   
                                     var data = await getData(url); //abruf der daten
                                     log(data);  // ausgabe des ergebnisses auf der debug-console
                                     setState(dp1,data.total); // schreiben des rewards in datenpunk
                                  }
                                   
                                  async function getData(url) {
                                     try {
                                         let res = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                                         return res.data.data;
                                     } catch (e) {
                                         log(e)
                                     }
                                  }
                                   
                                  
                                  writeValueOverview();
                                  writeValueReward1();
                                  writeValueReward2();
                                  
                                  
                                  

                                  kurzes Update:
                                  Ich habe den Code (mit schedule) nun seit einigen Tagen fehlerfrei laufen.

                                  Danke nochmal für deine Hilfestellungen.

                                  M Offline
                                  M Offline
                                  manni4545
                                  schrieb am zuletzt editiert von
                                  #31

                                  @unbekannt said in Helium API per GET abrufen (incl. User-Agent):

                                  @oliverio sagte in Helium API per GET abrufen (incl. User-Agent):

                                  @unbekannt

                                  ich habe den folgenden Code ausprobiert. Das schedule habe ich aus testzwecken entfernt.
                                  Er hat einwandfrei funktioniert.
                                  Gab es jetzt noch ein Problem.
                                  Den Useragent hast ja auch ergänzt.
                                  Hab daher nun kein 429 mehr erhalten.

                                   
                                  var axios = require("axios");
                                   
                                  async function writeValueOverview() {
                                     var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.Total";
                                     var v_url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2021-01-01T00:00:01Z'
                                   
                                     var data = await getData(v_url); //abruf der daten
                                     log(data);  // ausgabe des ergebnisses auf der debug-console
                                     setState(dp1,data.total); // schreiben der summe in datenpunkt
                                  }
                                   
                                  async function writeValueReward1() {
                                     var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte24Stunden";
                                     var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-1%20day'
                                   
                                     var data = await getData(url); //abruf der daten
                                     log(data);  // ausgabe des ergebnisses auf der debug-console
                                     setState(dp1,data.total); // schreiben des rewards in datenpunkt
                                  }
                                  async function writeValueReward2() {
                                     var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte7Tage";
                                     var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-7%20day'
                                   
                                     var data = await getData(url); //abruf der daten
                                     log(data);  // ausgabe des ergebnisses auf der debug-console
                                     setState(dp1,data.total); // schreiben des rewards in datenpunk
                                  }
                                   
                                  async function getData(url) {
                                     try {
                                         let res = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                                         return res.data.data;
                                     } catch (e) {
                                         log(e)
                                     }
                                  }
                                   
                                  
                                  writeValueOverview();
                                  writeValueReward1();
                                  writeValueReward2();
                                  
                                  
                                  

                                  kurzes Update:
                                  Ich habe den Code (mit schedule) nun seit einigen Tagen fehlerfrei laufen.

                                  Danke nochmal für deine Hilfestellungen.

                                  Hi wo hast du das Schedule eingetragen?

                                  OliverIOO 1 Antwort Letzte Antwort
                                  0
                                  • M manni4545

                                    @unbekannt said in Helium API per GET abrufen (incl. User-Agent):

                                    @oliverio sagte in Helium API per GET abrufen (incl. User-Agent):

                                    @unbekannt

                                    ich habe den folgenden Code ausprobiert. Das schedule habe ich aus testzwecken entfernt.
                                    Er hat einwandfrei funktioniert.
                                    Gab es jetzt noch ein Problem.
                                    Den Useragent hast ja auch ergänzt.
                                    Hab daher nun kein 429 mehr erhalten.

                                     
                                    var axios = require("axios");
                                     
                                    async function writeValueOverview() {
                                       var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.Total";
                                       var v_url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?max_time=2029-01-01T00:00:01Z&min_time=2021-01-01T00:00:01Z'
                                     
                                       var data = await getData(v_url); //abruf der daten
                                       log(data);  // ausgabe des ergebnisses auf der debug-console
                                       setState(dp1,data.total); // schreiben der summe in datenpunkt
                                    }
                                     
                                    async function writeValueReward1() {
                                       var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte24Stunden";
                                       var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-1%20day'
                                     
                                       var data = await getData(url); //abruf der daten
                                       log(data);  // ausgabe des ergebnisses auf der debug-console
                                       setState(dp1,data.total); // schreiben des rewards in datenpunkt
                                    }
                                    async function writeValueReward2() {
                                       var dp1 = "0_userdata.0.Helium.TrendyGunmetalHare.letzte7Tage";
                                       var url = 'https://api.helium.io/v1/hotspots/112WPeSWTzHYzbQRZhQ95mJqpXjkeB1JpBLUS3amEAZiMANMH8Ty/rewards/sum/?min_time=-7%20day'
                                     
                                       var data = await getData(url); //abruf der daten
                                       log(data);  // ausgabe des ergebnisses auf der debug-console
                                       setState(dp1,data.total); // schreiben des rewards in datenpunk
                                    }
                                     
                                    async function getData(url) {
                                       try {
                                           let res = await axios.get(url, { headers: { 'User-Agent': 'Mozilla/5.0.' } });
                                           return res.data.data;
                                       } catch (e) {
                                           log(e)
                                       }
                                    }
                                     
                                    
                                    writeValueOverview();
                                    writeValueReward1();
                                    writeValueReward2();
                                    
                                    
                                    

                                    kurzes Update:
                                    Ich habe den Code (mit schedule) nun seit einigen Tagen fehlerfrei laufen.

                                    Danke nochmal für deine Hilfestellungen.

                                    Hi wo hast du das Schedule eingetragen?

                                    OliverIOO Offline
                                    OliverIOO Offline
                                    OliverIO
                                    schrieb am zuletzt editiert von
                                    #32

                                    @manni4545
                                    in diesem post kannst du nachschauen
                                    https://forum.iobroker.net/topic/50188/helium-api-per-get-abrufen-incl-user-agent/25?_=1661253687023

                                    wobei man auch alle Funktionsaufrufe in ein schedule reinschreiben kann.
                                    bei mir gab es keine fehlermeldung mehr, auch wenn ich das skript mehrmals hintereinander laufen lassen habe

                                    Meine Adapter und Widgets
                                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                    Links im Profil

                                    T 1 Antwort Letzte Antwort
                                    0
                                    • OliverIOO OliverIO

                                      @manni4545
                                      in diesem post kannst du nachschauen
                                      https://forum.iobroker.net/topic/50188/helium-api-per-get-abrufen-incl-user-agent/25?_=1661253687023

                                      wobei man auch alle Funktionsaufrufe in ein schedule reinschreiben kann.
                                      bei mir gab es keine fehlermeldung mehr, auch wenn ich das skript mehrmals hintereinander laufen lassen habe

                                      T Offline
                                      T Offline
                                      theGrinch
                                      schrieb am zuletzt editiert von
                                      #33

                                      Hat jemand zufällig schon eine Lösung für die neue API erarbeitet?

                                      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

                                      415

                                      Online

                                      32.5k

                                      Benutzer

                                      81.7k

                                      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