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

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    495

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

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

Geplant Angeheftet Gesperrt Verschoben JavaScript
33 Beiträge 8 Kommentatoren 5.1k 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.
  • 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

                        486

                        Online

                        32.5k

                        Benutzer

                        81.8k

                        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