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. Mehrfacher API-Aufruf bei request im Debug-Modus?

NEWS

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

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

Mehrfacher API-Aufruf bei request im Debug-Modus?

Geplant Angeheftet Gesperrt Verschoben JavaScript
2 Beiträge 2 Kommentatoren 226 Aufrufe 2 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.
  • A Offline
    A Offline
    andi112
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,
    ich möchte mir die Daten meiner PV-Anlage von der SolarEdge Monitoring-API abrufen und nutze dazu folgendes Adressschema für den HTTP-Request:

    https://monitoringapi.solaredge.com/equipment/{site}/{sn}/data?startTime=2023-04-10 00:00:00&endTime=2023-04-10 23:59:59&api_key={key}

    Wenn ich diese URL (natürlich mit meinen Daten) im Browser aufrufe, klappt das problemlos. Auch mehrfach.
    Wenn ich die Daten per JS abrufen möchte und zum Entwickeln die Debug-Ausgabe aktiv habe, wird meine IP bei Solaredge sofort gesperrt und ich bekomme den Status 429 - too many requests.

    Auch wenn ich das Skript nur 1x ausführe. Aufgefallen ist mir aber, dass, wenn ich den Debug-Modus deaktiviere, das Skript läuft, aber nichts zurückgibt, aber auch meinen Account nicht sperrt.

    Das hier wäre ein Beispielskript, mit dem ich (im Debug-Modus) die Sperre provozieren kann:

    const url = `https://monitoringapi.solaredge.com/equipment/${site}/${sn}/data?startTime=2023-04-10%2000:00:00&endTime=2023-04-10%2023:59:59&api_key=${apiKey}`;
    
    const maxRetries = 3;
    let retryCount = 0;
    console.log(url)
    function sendRequest() {
      request(url, function (error, response, body) {
        if (!error && response.statusCode === 200) {
          const jsonResponse = JSON.parse(body);
          const telemetries = jsonResponse.telemetries;
    
          telemetries.forEach(telemetry => {
            const date = telemetry.date;
            const totalActivePower = telemetry.totalActivePower;
            const dcVoltage = telemetry.dcVoltage;
            const powerLimit = telemetry.powerLimit;
            // Extrahiere weitere benötigte Daten
    
            console.log('Datum:', date);
            console.log('Gesamtleistung:', totalActivePower);
            console.log('DC-Spannung:', dcVoltage);
            console.log('Leistungsbegrenzung:', powerLimit);
            console.log('---------------------------------');
          });
        } else if (response.statusCode === 429 && retryCount < maxRetries) {
          // Too Many Requests, Retry nach einer Verzögerung
          retryCount++;
          const delaySeconds = retryCount * 5; // Erhöhe die Verzögerung mit jedem Versuch
          console.log(`Zu viele Anfragen, erneuter Versuch nach ${delaySeconds} Sekunden...`);
          setTimeout(sendRequest, delaySeconds * 1000);
        } else {
          console.error('Fehler bei der Anfrage:', error);
        }
      });
    }
    sendRequest();
    

    Laut SolarEdge API-Doku sind am Tag 300 Requests zulässig und max. 3 gleichzeitig.
    Die 300 habe ich sicher nicht (offensichtlich) erreicht, außer, der Debug-Modus verhält sich anders als ich das annehmen würde.

    Das blöde ist, dass ich dann immer 1 Tag warten muss, bis ich den nächsten Versuch starten kann...

    Hat da jemand eine Idee?

    Besten Dank und viele Grüße
    Andi

    1 Antwort Letzte Antwort
    0
    • M Online
      M Online
      MCU
      schrieb am zuletzt editiert von MCU
      #2

      @andi112 evtl URL encoden?

      url = encodeURIComponent(url);
      

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      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

      542

      Online

      32.5k

      Benutzer

      81.7k

      Themen

      1.3m

      Beiträge
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2025
      logo
      • Anmelden

      • Du hast noch kein Konto? Registrieren

      • Anmelden oder registrieren, um zu suchen
      • Erster Beitrag
        Letzter Beitrag
      0
      • Home
      • Aktuell
      • Tags
      • Ungelesen 0
      • Kategorien
      • Unreplied
      • Beliebt
      • GitHub
      • Docu
      • Hilfe