Aktions vs. RequestAction

ich beschäftige mich seit längerem mit den „neuen“ Aktionen und überlege ob/was ich in alten Modulen nacharbeiten sollte.

Es gibt ja unterschiedlichen Funktionalitäten
a) Funktionen, die bisher nur als Instanz-eigenen Funktion zur Verfügung steht
=> hier mache die Erstellung einer Aktion auf jeden Fall Sinn, denn dämm muss der Anwender in Ablaufplänen keine PHP-Code-Wrapper schrieben und er weis, was es gibt und ggfs sogar welche Inhalte übergeben werden sollen.
Keine Frage, da gehe ich auch Stück für Stück dran.

b) ich habe in vielen Modulen Interaktion des Users über Variablen / RequestAction() realisiert. Diese Variablenänderungen werden ja in einem Ablaufplan auch angeboten, wenn man die passenden Variable als Ziel ausgewählt hat (also die Variablen und nicht die Instanz).
Einerseits muss der Anwender wissen, welche Variable er wählen muss, was aber bei den Punkten, die mir so durch den Kopf gehen, ziemlich selbsterklärten ist.
Meine Frage ist nun, ob es Sinn macht, für alle diese RequestAction()-gesteuerten Funktionen auch eigene Aktionen zu erstellen.
Das ist ja unter Umständen schon einige Menge an Arbeit und würde ich nur dann machen wollen, wenn es einen wirklichen Mehrwert gibt.

Und wenn es Sinn macht, noch eine Frage zur Umsetzung:
I.d.R. sind diese Variablen-gesteuerten Aktionen nicht als „public function“ vorhanden, da ich ja über RequestAction(<Variablen-Ident>, <Value>) steuere.
Ist es dann empfehlenswert, eigenen Funktionen zu schrieben, die in der Aktion benutzt werden oder sollte man in der Aktion RequestAction verwenden.

Bsp.

Es gebe eine Variable Power, die per Variablen-Aktion via RequestAction() das Gerät ein-/ausschaltet.
Dazu gibt es eben keine public function SwitchPower() sondern das wird irgendwie Modul-intern erledigt…

Wenn ich nun eine Aktion erstellen möchte, würde ich bei vorhandenen public funcion das machen:

"action": "XYZ_SwitchPower($_IPS['TARGET'], true);",

oder wäre das im Sinne des Erfinders, wenn man so vorgeht?

"action": "IPS_RequestAction($_IPS['TARGET'], 'Power', true);",

Was ist eure Meinung dazu?

demel

Wir haben in unseren Modulen nur Aktionen implementiert, die nicht über ein reguläres Schalten einer Variable umgesetzt werden können, da, wie du ja auch geschrieben hast, es hierfür ja die Standard-Aktionen zum Schalten von Variablen gibt.

1 „Gefällt mir“