Shelly Plus mit Scripts in mJS

  • Hallo zusammen.

    Ich sitze - auch nächtens - konzentriert am PC und freue mich über die Shelly Plus Serie von Allterco Robotics - in etwa weitgehend. ;)

    Durch meine Vorerfahrungen mit Tasmota32 und der ziemlich gelungenen Hybridsprache Berry haben sich meine Erwartungen etwas hochgeschraubt.

    Ich belasse die originale Firmware auf meinem Shelly Plus 1 und auch auf Plus i4 und versuche, die Möglichkeiten des Scriptings auszuleuchten. Mit etwas Durchärgereien und der print-Anweisung (zum debugging und Erfahrungs-/Experimentierlernen) komme ich inzwischen sehr gut zurecht. Das mJS (reduziertes JavaScript) bietet zwar nicht sehr viel Komfort, das Fehlende code ich dann halt selbst zusammen, was bisher auch gut gelingt.

    Nun stoße ich aber auf derbe Einschränkungen:

    • Es gibt nichts, was einem include entspricht.
    • Ich finde keine qualified identifier, die Datei übergreifend nutzbar sein könnten.
    • Mir fehlen forward Deklarationen, was vermutlich in JavaScript eh nicht existiert.

    Ok, ich bin von C++ etwas verwöhnt und erwarte hier nicht annähernd deren Leistungsumfang. Wenn wenigstens einer dieser obigen Punkte implementiert wäre, käme ich ein Stück weiter. Es ist schlicht sehr unübersichtlich, alles in einer einzigen Scriptdatei zu pflegen. Typischerweise stellt sich die Frage: "In welcher Datei, welchem Objekt/Datenstruktur bringe ich die erwünschte Funktionalität unter?"

    Bspw. kann man in Tasmota32 eine Datei "autoexec.be(c)" erstellen, die andere Dateien lädt. Damit existiert wenigstens ein workaround für ein fehlendes include und man kann die Gesamtfunktionalitäten sehr gut auf mehrere Dateien verteilen. So habe ich bspw. mein Zisternenmessgerät realisiert. Nun implementiere ich auf Shelly Plus (1) all das, was ich per Tasmota/Rules auf einem Shelly 1 (mühsam) für zeitgesteuerte Bewässerungen bereits implementierte. Die Vorteile des Shelly Scriptings auf ESP32 gegenüber einem Tasmota auf ESP8266 und Rules erscheinen mir sehr deutlich. Ich genieße die Freiheiten des MQTT subscriben und publishen mit selbst zusammengestellten Topics und Payloads. Bisher funktioniert alles sehr gut. Die Flexibilität des Zusammenstellens genieße ich - nur die o.a. Einschränkungen machen mir inzwischen so sehr zu schaffen, dass ich mich deshalb hier etwas auslasse.

    Falls hier jemand Kenntnisse hat, obige Einschränkungen zu umschiffen, würde ich mich über eine Reaktion freuen.

    Gruß Gerhard

    P.S.: Ich treibe mich ungerne in mehreren Foren um. Deshalb habe ich noch kein Konto im Shelly Forum. Vielleicht muss ich mich dann doch dort mal registrieren lassen - leider.