depty24
Wenn du dich tatsächlich einarbeiten willst, unterstütze ich deine Mühe auch gerne.
Was brauchst du dazu?
- Den Menüpunkt "Scripts" im WebUI finden und nutzen können
- Grundlegende Kenntnisse in JavaScript
- Zumindest Datenstrukturen im JSON (JavaSCript Object Notation) Format analysierend lesen können
- Auf einen Teil (ich nenne so etwas Komponente) eines Objektes per Punktnotation zugreifen können
- Die weitgehendst präzise API Dokumentation (teilweise) verstehend lesen können
Du kannst auch Informationen an Hand eines Links in meiner Signatur finden.
Ich beginne mal mit einem ersten Skript Gerüst.
function process(event) {
print(event);
}
Shelly.addEventHandler(process);
Shelly.addEventHandler meldet dem System (Firmware), dass es beim eintreffen eines Ereignisses eine Funktion (=Unterprogramm) darüber informieren soll. Eine solche Funktion wird Eventhandler genannt. Hier ist das die Funktion "process", welche zwingend einen Parameter, hier bspw. event genannt (Name kann anders gewählt werden), entgegennehmen muss. Ich nenne ein solches Entgegennehmen "importieren". process tut hier nichts anderes, als den Wert (=Inhalt) des Parameters event auszugeben.
Der an Hand des Parameters event importierte Wert ist immer ein Objekt, welches print im JSON Format ausgibt. Eine oder mehrere solcher Ausgaben solltest du kopieren und in einen Editor zwecks Analyse einkleben und bei Bedarf abspeichern. Wenn du deren Struktur (halbwegs) verstanden hast, hast du die erste Hürde überwunden. Es werden voraussichtlich ständig Ereignisse auftreten, weshalb das Console Fenster nach und nach gefüllt wird.
Eine kompaktere Form der Ausgabe erhältst du mit
print(JSON.stringify(event));
Hinweis:
Shelly Skripte sind grundsätzlich Ereignis gesteuert. Sie werden nicht wie ein SPS Programm oder die Funktion loop() in Arduino zyklisch abgearbeitet. Deshalb solltest du beim Versuch, eine Wiederholungsstruktur (Schleife) einzubauen immer darauf achten, dass diese sicher nach wenigen Wiederholungen zu Ende ist. Eine Warteschleife kann "tödlich" sein - Finger weg von so etwas! Eine Zähler gesteuerte Schleife (for ...) ist i.d.R. noch geeignet, solange die Schleifenbedingung den Zählerstand entscheidend berücksichtigt.