GET request to external REST API

Hinweis zur Nutzung von Skripten (für Nutzer)

Die Verwendung von Skripten erfolgt ausdrücklich auf eigene Gefahr. Weder Shelly noch die jeweiligen Autoren oder Entwickler der Skripte übernehmen irgendeine Form der Haftung für mögliche Schäden, Fehlfunktionen, Datenverluste oder anderweitige Beeinträchtigungen, die durch die Nutzung dieser Skripte entstehen könnten. Bitte stellen Sie vor dem Einsatz sicher, dass Sie den Quellcode verstehen und sich der möglichen Auswirkungen bewusst sind. Die Skripte werden ohne Gewähr bereitgestellt und unterliegen keiner regelmäßigen Wartung oder offiziellen Unterstützung.


Hinweis für Entwickler

Wenn Sie eigene Skripte bereitstellen, achten Sie bitte darauf, eine klare Beschreibung, eventuelle Einschränkungen und Sicherheitsaspekte zu dokumentieren. Beachten Sie zudem, dass Nutzer Ihre Skripte grundsätzlich auf eigenes Risiko verwenden. Eine Haftung für Schäden ist ausgeschlossen, sofern diese nicht vorsätzlich oder grob fahrlässig verursacht wurden oder gesetzlich anderweitig geregelt ist.

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

  • I am trying to write a script so the Shelly is sending a REST request to a external server.

    The info I need is:
    how to add a header to the request using Shelly.call() ?

    I am getting response.code 401, it seems that the header with the auth info is not send correctly.

    My script so far :

    Edit by 66er:

    Code placed in Code-Tag

    Einmal editiert, zuletzt von tom321123 (27. Juli 2023 um 21:15)

  • 401, Unauthorized,

    Make sure you are using a valid API key, and if Shelly has set up a PW, try removing it temporarily.

    HTTP.get is not the right thing for this, try HTTP.Request.

    https://shelly-api-docs.shelly.cloud/gen2/0.14/Comp…TTP#httprequest

    Also keep in mind,

    NOTE

    The HTTP server cannot process requests of total size greater than 3072 bytes. This includes the HTTP request line, headers and body. In this case connection is reset and no response is sent.

    NOTE

    Content-Length and Connection: close headers are automatically set in the response and override any such headers set by the script. Content-Type header defaults to text/plain if not set by the script.

  • For example you can try that

    Shelly.call("http.get", {url: "https://www.api-couleur-tempo.fr/api/jourTempo/today",timeout: 1,ssl_ca: "*"}, RpcBackLectureTempoJourJ);


    The json answer: {"dateJour": "2023-12-01","codeJour": 0,"periode": "2023-2024"}

    The function to read json answer

    function RpcBackLectureTempoJourJ(resultat, error_code, error_message, userdata)

    {

    if (error_code === 0) //--- pas d'erreur de lecture

    {

    if (resultat)

    {

    if (resultat.body !== undefined)

    {

    // print(resultat.body);

    let json = JSON.parse(resultat.body);

    if (json )

    {

    CodeCouleurJourJ = json.codeJour;

    if (CodeCouleurJourJ===0) CouleurJourJ="Inconnu";

    else if (CodeCouleurJourJ===1) CouleurJourJ="BLEU";

    else if (CodeCouleurJourJ===2) CouleurJourJ="BLANC";

    else if (CodeCouleurJourJ===3) CouleurJourJ="ROUGE";

    }

    }

    }

    }

    }

    everything works correctly

  • Dieses Thema enthält einen weiteren Beitrag, der nur für registrierte Benutzer sichtbar ist.