Hallöchen zusammen,
ich bin grad fleißig am basteln und nachdem man ja für viele Automationen recht schnell viele Skripte zusammenbekommt, war meine Überlegung, ob ich nicht gleiche Funktionen zusammenfassen könnte. Die Grundanforderung ist:
Leistung einer Steckdose fällt länger als x Minuten unter den Wert y -> Steckdose abschalten.
Ich hab das schon erfolgreich getestet (Staubsauger, Fernseher, Waschmaschine, etc.) mit folgendem Skript (ein Skript pro Steckdose):

Jetzt bin ich am überlegen, ob man das nicht mit einer Funktion kombinieren könnte, sprich, dass ich bei dem LoadPower geändert Trigger eine Funktion aufrufe und ihr Parameter übergebe (Schwellwert, Wert, Vorheriger Wert, ObjektID, Timeout Name, Timeout Time) und diese dann weiter verwurschteln kann. Mit den "normalen" Werten (Schwellwert, Wert, vorheriger Wert, ObjektID) geht das ja wunderbar. Wenn aber nun die Funktion zweimal angetriggert wird laufen ja dann 2 Instanzen der Funktion oder? Was nicht Sinn der Sache ist, denn dann wird die Steckdose auf jeden Fall 5 Minuten nach dem ersten Trigger ausgeschaltet, richtig? Man müsste also bereits am Anfang des Skriptes die verschiedenen Timeouts (TimeoutStaubsauger, TimeoutFernseher, etc.) deklarieren und diese dann in der Funktion verwenden oder? Ist das überhaupt machbar? Weil ich ja dann die Funktion mit einem Parameter aufrufen müsste, in etwa so:
function Steckdosenschaltung (TimeoutName, TimeoutTime, Schwellwert, ...) {
}
Wenn ich die Funktion dann mit
Steckdosenschaltung ("TimeoutStaubsauger", 300000, 5, ...)
aufrufe, ist es überhaupt möglich, sich dann innerhalb der Funktion mit der "TimeoutName" Variable auf den tatsächlichen Timeout "TimeoutStaubsauger" zu beziehen? Oder müsste ich die zu Beginn deklarierte Variable "TimeoutStaubsauger" als Parameter übergeben, also in etwa so:
Steckdosenschaltung (TimeoutStaubsauger, 300000, 5, ...)
Ich hoffe, ich versteht ungefähr, was ich meine. Vielleicht ist es ja auch gar nicht sinnvoll, das zu tun und man bastelt lieber für jeden Schaltvorgang ein eigenes Skript. Nachteil: Will ich darin was ändern, muss ich alle Skripte anpassen.
Danke schonmal für euren Rat!
Viele Grüße
Ketanest
EDIT: Wäre das mit Blockly überhaupt möglich oder muss man da (soferns überhaupt geht bzw. empfehlenswert ist) direkt JS Coden?