Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    916

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

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

Scheduled Pinned Locked Moved JavaScript
33 Posts 8 Posters 5.1k Views 8 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • U Offline
    U Offline
    Unbekannt
    wrote on last edited by
    #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 Reply Last reply
    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
      wrote on last edited by
      #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 Reply Last reply
      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
        wrote on last edited by
        #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 Reply Last reply
        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
          wrote on last edited by
          #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 Reply Last reply
          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
            wrote on last edited by 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 Replies Last reply
            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
              wrote on last edited by 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 Reply Last reply
              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
                wrote on last edited by 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 Replies Last reply
                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
                  wrote on last edited by
                  #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 Reply Last reply
                  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
                    wrote on last edited by 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 Reply Last reply
                    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
                      wrote on last edited by
                      #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 Reply Last reply
                      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
                        wrote on last edited by
                        #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 Reply Last reply
                        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
                          wrote on last edited by
                          #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 Reply Last reply
                          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
                            wrote on last edited by
                            #33

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

                            1 Reply Last reply
                            0
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            300

                            Online

                            32.6k

                            Users

                            82.2k

                            Topics

                            1.3m

                            Posts
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                            ioBroker Community 2014-2025
                            logo
                            • Login

                            • Don't have an account? Register

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Home
                            • Recent
                            • Tags
                            • Unread 0
                            • Categories
                            • Unreplied
                            • Popular
                            • GitHub
                            • Docu
                            • Hilfe