Beiträge von ostfriese

    Klar, ist ja kein Geheimnis.

    Ich baue eine kleine, webbasierte, Zentrale für ein WoMo. Läuft alles auf EINEM Gen 2. Umfasst die Erfassung und Steuerung von Temperatur, Luftfeuchtigkeit und eine Alarmanlage. Sieht bis jetzt so aus: (Die Steuerung von Temperatur und Luftfeuchtigkeit ist noch nicht fertig)

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
    )

    In der Api steht, dass so ein Skript beim Booten deaktiviert wird. Offensichtlich passiert das nicht.

    Zitat

    Non-blocking execution

    Shelly scripts are executed in an environment which shares CPU time with the rest of the firmware. Code in the scripts runs on the main system task and is not allowed to block for long. This is why any APIs which can potentially take a long while are callback-based. Still, it is possible to write code which will hoard the CPU for longer then acceptable. Such code may cause issues with other firmware features, communication or even cause the device to crash. One obvious example is an infinite (or near infinite) loop:

    Code
    Loop for too long
    let n = 0;
    while (n < 500000) {
    n = n + 1;
    }

    If a script manages to crash the device the system will detect this and disable the script at the next boot.

    Kurzes Update. Beide Skripte laufen und befeuern den Mini mit dem Befehl, das entsprechende Skript zu stoppen. Sowohl über http als auch über ws.

    Der Shelly macht im Minutentakt einen Reboot, vermutlich, weil der Prozessor überhitzt. Das er eine Reboot macht, merkt man am Klacken des Relais, wenn ein geschlossener Schalter angeschlossen ist. Der Shelly ist nicht einmal kurzzeitig per Ping erreichbar.

    Ich lasse das jetzt mal über Nacht laufen, in der Hoffnung, dass irgend ein Befehl mal durchkommt.

    So, habe mich mal schlau gemacht. Habe es auf einem funktionierenden Shelly getestet. So kann man mit Python Dauerfeuer auf ws senden:

    Hat aber leider, bis jetzt, auch nichts gebracht.

    Gute Idee, habe ich auch schon mit einem Python-Skript versucht. Läuft jetzt seit Stunden. Ohne Erfolg.

    Wenn ihr euren Shelly Gen 2/3 nachhaltig zerstören wollt, macht folgendes:

    Dieses Skript installieren und auf automatischen Start nach Reboot stellen.

    Code
    while(true);

    Jetzt rebooten.

    ACHTUNG: DER SHELLY IST JETZT ENDGÜLTIG ZERSTÖRT!!!!

    Warum?

    Der Shelly bootet und startetet die Endlosschleife des Skriptes. Ihr habt keine Chance mehr, den Shelly zu erreichen, weil die Schleife den Prozessor 100% auslastet.

    Selbst ein Rücksetzen in den Werkzustand gelingt nicht mehr, weil der Shelly dazu vollständig booten muss. Hier läuft dann wieder die Endlosschleife.

    Wenn jemand eine Lösung kennt, wie man den Shelly dazu veranlassen kann, das Skript nicht auszuführen,

    bin ich dankbar. Ich bin durch einen Tippfehler in einem Skript selbst Opfer geworden und so auf diese kuriose Lücke gestoßen.

    Mein Plus 1 Mini G3 ist tot.