Beiträge von akreienbring

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.

    Zitat

    "damit kommt der Shelly net zu recht"

    :-) Seltsam aber OK! However

    Bestpractice also bis hierhin:

    Nachdem ich jetzt beim inneren asynchronen Aufruf, entweder

    - keine Funktion

    Code
          Shelly.call("HTTP.GET",
            { url: "someOtherShellyURL"},
            null,  /function
            null  //userdata
          );

    oder

    - eine benannte Funktion

    Code
          Shelly.call("HTTP.GET",
            { url: "someOtherShellyURL"},
            someCallbackFunction
            null  //userdata
          );

    angegeben habe, kommt es nicht mehr zum spontanen Stop des Scripts. Danke!

    Hallo Shelly Fans,

    ich fange gerade erst mit dem Shelly Scripting an, bin aber schon länger mit Javascript vertraut.

    Asynchronität war noch nie mein Lieblingsthema, aber wie geht man im Shelly Script am Besten vor, wenn es verschachtelte Calls gibt?

    Mein Script, auf einem PlusI4 wird instabil (stoppt einfach ohne Fehlermeldung), wenn ich z.B. sowas mache:

    Die Idee ist natürlich asynchrone Aufrufe in eine Reihenfolge zu bringen. Dafür gibt es ja sonst Promises und ähnliche Konstrukte...

    Warum mag mein PlusI4 das nicht und reagiert dem unkommentierten Stop des Scriptes? Folgendes scheint weniger Probleme zu machen:

    Vielleicht gibt es also bei Variante eins auch Probleme mit den Scopes der Variablen (z.B. 'res') ...

    Bin gespannt, ob auch andere diese "Abbruch-Probleme" haben und wie man das am Besten macht.

    Supi! :-) Hier mal mein Code für andere, die evtl. das gleiche Problem haben:

    Code
    Shelly.call("HTTP.GET",
        { url: "http://[VintageIP]/light/0?status"},
        function (result, error_code, error_msg, ud) {
        let lightIsOn = false;
        if (result.code === 200) {
            let body = JSON.parse(result.body);
            lightIsOn = body.ison;
            console.log("lightIsOn= ", lightIsOn);
        ...

    Hallo,

    kann ich bei einer Vintage mit "http://[ipaddress]/rpc/Light.GetStatus?id=0" festellen, ob sie gerade angeschaltet ist? Lt. https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/Light sollte das doch gehen, oder?

    Ich bekomme als Antwort allerdings nur ein "404 Not Found". Shelly.ListMethods liefert ebenfalls nichts. :-(

    Firmware ist jedenfalls aktuell. Und die HTTP Actions funktionieren auch.

    Schon jetzt vielen Dank für eure Hilfe.