Gestern Abend habe ich bei der Verwendung des Shelly Skript Editors einige interessante Entdeckungen gemacht, mir sind zwei neue Skript Limits in die quere gekommen, die bisher noch nicht in der API-Dokumentation aufgeführt sind.
1. Das erste Limit betrifft das Versenden von zu vielen Events.
Der Shelly begibt sich bei zu vielen Events in sehr kurzen Abständen in einen seltsamen Zustand, anstatt einfach abzustürzen. Es werden weitere Events generiert, in denen vermerkt ist, wie viele Events schon verpasst wurden. Das klingt zwar witzig, aber nach einer Weile hängt sich die Konsole auf und man wird zur Skript-Auswahl zurückgeschickt. Das Skript, mit dem diese Überlastung auftritt, wird dabei zerschossen, also Zeilen im Skript tauschen die Plätze und sogar der Skript-Name wurde gelöscht.
2. Das zweite Limit ist besonders frustrierend es betrifft jedoch nur größere, komplexere Skripts mit vielen Objekten.
Wenn das Skript zu groß wird, zum Beispiel durch die Verwendung vieler Instanzen eines komplexen Objekts, tritt ein Fehler auf. "line 2: [} 03:02:48 ] 03:02:48 /ramdisk/builds/Shelly/fw/shelly-ng/deps/vfs-fs-lfs/littlefs/lfs.c:584:error: No more free space 193" Doch das ist noch nicht alles: Man wird nicht nur zur Übersicht zurückgeschickt, sondern das gesamte Skript wird einfach ohne Vorwarnung gelöscht. Zack und weg ist es, der Skript Name wird auch zurück gesetzt und ein erneutes einfügen des Skripts und/oder speichern ist ebenfalls nicht mehr möglich, das triggerd nur die obere Fehlermeldung erneut, ich musste erst alle leeren/gelöschten Skripts manuell löschen "Editor Button delete"und neu erstellen um ein die Fehler Meldung los zu werden.
Darüber hinaus habe ich auch ein weiteres Editor Rätsel gelöst, das mich zunächst verwirrt und recht lange beschäftigt hatte. Die ghost []-Parse-Fehlermeldungen! Nach gründlicher Untersuchung konnte ich herausfinden, dass diese Fehlermeldungen auftreten, wenn man ein längeres Skript speichert und versucht, dieses sofort zu starten, während der Shelly noch mit dem Speichervorgang beschäftigt ist. Beim Speichern erhält man zwar eine Rückmeldung, wann das Skript erfolgreich gespeichert wurde, allerdings ist diese Rückmeldung irreführend. In Wirklichkeit muss man noch etwa 15 Sekunden nach der Rückmeldung warten, bis alles ordnungsgemäß abgeschlossen ist. Wenn man das nicht beachtet und das Skript sofort startet, erscheint immer wieder diese ärgerliche Fehlermeldung. Mit diesem Wissen kann man den Fehler recht leicht und konstant reproduzieren, völlig unabhängig vom genutzten Code. Es handelt sich also zu 100% um einen Editor Bug, der jedoch bei einem Neustart zum Glück keine Rolle spielt.
Mein früherer Beitrag zu den Ghost Parse [[] Fehlern:
parse error at line 27: [], at line 43: [], line 87, 90, 23, 41....GhostError
shelly_user_script.:423 Running 'script_8.js'...
18:03:00
MJS error: parse error at line 27: []
18:03:00
shelly_notification:161 Status change of script:8: {"id":8,"running":true}
18:03:00
shelly_notification:161 Status change of…