size limit of 15000 bits

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.

  • Hi, I used shelly script to control my pool pump with temperature.

    I started to make this script with 0.12 firmware version and not i'm with 0.14.

    With new version 1.0.3, the script must be less than 15000 bits !!! can you update this limit ?, my script is 30kbit.

    I would like update my script in order to use shelly addon to plu température sensor, but i can't improve or just commit my script with this limit.

    https://github.com/sylvaing/shelly-pool-pump

  • You would have to contact the manufacturer directly via a support ticket. As far as I am informed, this limit will be raised again. Temporarily only the possibility remains to divide on several scripts.

  • You cannot have both, ether >FW 1.0 or large code files, I got to the point where I just concentrate on doing a toolbox, so some code I can use inside my main code to reduce the main code, while keeping of this toolbax a version thats readable and a version thats kompressed. Also there are a lot of lifehacks to reduce the code size like renaming functions, so ---> GetStatus = Shelly.getComponentStatus;, now you can just use GetStatus('switch',0); inside your main code.

    And some new FW1.0 functions and Syntax can help to reduce the code futher, like "inline if" , for x of y, for x in y, try catch and switch case are working since fw1.0

    inline if ---> true ? DoStuff() : DoOtherStuff();

    Here is a list of stuff i found working inside FW1.0.

    while()

    else if ()

    else {}

    return

    Timer.set()

    Timer.clear()

    this

    typeof

    try

    if()

    in

    Object.keys()

    print()

    arguments.length

    Array.isArray()

    atob()

    Shelly.call()

    Shelly.addEventHandler()

    Shelly.addStatusHandler()

    Shelly.removeEventHandler()

    Shelly.removeStatusHandler()

    Shelly.emitEvent()

    Shelly.getComponentConfig()

    Shelly.getDeviceInfo()

    Shelly.getCurrentScriptId()

    switch()

    die()

    Date.now()

    Date.parse()

    do()

    delete

    function

    Function.replaceWith()

    for()

    HTTPServer.registerEndpoint()

    JSON.parse()

    JSON.stringify()

    let

    chr()

    console.log()

    case()

    continue

    catch

    var

    BLE.Scanner.SCAN_START

    BLE.Scanner.SCAN_STOP

    BLE.Scanner.SCAN_RESULT

    BLE.Scanner.INFINITE_SCAN

    BLE.Scanner.subscribe()

    BLE.Scanner.Start()

    BLE.Scanner.Stop()

    BLE.Scanner.isRunning()

    BLE.Scanner.GetScanOptions()

    BLE.GAP.ADDRESS_TYPE_PUBLIC

    BLE.GAP.ADDRESS_TYPE_RANDOM_STATIC

    BLE.GAP.ADDRESS_TYPE_RANDOM_NON_RESOLVABLE

    BLE.GAP.ADDRESS_TYPE_RANDOM_RESOLVABLE

    BLE.GAP.EIR_FLAGS

    BLE.GAP.EIR_SERVICE_16_INCOMPLETE

    BLE.GAP.EIR_SERVICE_16

    BLE.GAP.EIR_SERVICE_32_INCOMPLETE

    BLE.GAP.EIR_SERVICE_128_INCOMPLETE

    BLE.GAP.EIR_SERVICE_128

    BLE.GAP.EIR_SHORT_NAME

    BLE.GAP.EIR_FULL_NAME

    BLE.GAP.EIR_TX_POWER_LEVEL

    BLE.GAP.EIR_DEVICE_ID

    BLE.GAP.EIR_SERVICE_DATA_16

    BLE.GAP.EIR_SERVICE_DATA_32

    BLE.GAP.EIR_SERVICE_DATA_128

    BLE.GAP.EIR_URL

    BLE.GAP.EIR_MANUFACTURER_SPECIFIC_DATA

    BLE.GAP.parseName()

    BLE.GAP.parseManufacturerData()

    BLE.GAP.ParseDataByEIRType()

    BLE.GAP.HasService()

    BLE.GAP.ParseServiceData()

    bind()

    btoa()

    btoh()

    break

    Number.MAX_VALUE

    Number.MIN_VALUE

    Number.NaN

    Number.NEGATIVE_INFINITY

    Number.POSITIVE_INFINITY

    new Number

    new String

    new Array

    new Date

    null

    MQTT.isConnected()

    MQTT.subscribe()

    MQTT.unsubscribe()

    MQTT.publish()

    MQTT.setConnectHandler()

    MQTT.setDisconnectHandler()

    Math.E

    Math.LN10

    Math.LN2

    Math.LOG10E

    Math.LOG2E

    Math.PI

    Math.SQRT1_2

    Math.SQRT2

    Math.abs()

    Math.acos()

    Math.asin()

    Math.atan()

    Math.atan2()

    Math.ceil()

    Math.cos()

    Math.exp()

    Math.floor()

    Math.log()

    Math.max()

    Math.min()

    Math.pow()

    Math.random()

    Math.round()

    Math.sign()

    Math.sin()

    Math.sqrt()

    Math.tan()

    Math.wrap()

    eval();

    HIGH

    LOW

    Infinity

    NaN

    isFinite();

    isNaN();

    parseInt();

    parseFloat();

    throw new Error("Shit hit the Fan!");

    test.length.toFixed()

    test.charAt()

    test.concat()

    test.endsWith()

    test.fromCharCode()

    test.indexOf()

    test.lastIndexOf()

    test.localeCompare()

    test.match()

    test.repeat()

    test.replace()

    test.slice()

    test.split()

    test.startsWith()

    test.substr()

    test.toLowerCase()

    test.toUpperCase()

    test.trim()

    //Array

    //test2.isArray()

    //test2.filter();

    //test2.forEach();

    //test2.join();

    //test2.map();

    //test2.pop();

    //test2.push();

    //test2.some();

    //test2.splice();

    //test2.toString();

    //Date

    //test3.getDate();

    //test3.getDay();

    //test3.getFullYear();

    //test3.getHours();

    //test3.getMilliseconds();

    //test3.getMinutes();

    //test3.getMonth();

    //test3.getSeconds()

    //test3.getTime()

    //Date.now()

    //test3 = Date.parse('2011-10-20');

    //test3.setTime(202344);

    //test3.toISOString();

    //test3.toJSON();

    //test3.toString();

    //test3.toUTCString();

    //test3.valueOf();

    //functions

    //test4.apply();

    //test4.bind();

    //test4.call();

    //new Function("a", "b", "c", "return a+b+c");

    //test4.replaceWith();

    5 Mal editiert, zuletzt von _[Deleted]_ (8. November 2023 um 16:40)

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