Modul, Ablaufsteuerung beschleunigen - Funktionen / Methoden im eigenen Kontext

Ich habe ja bereits einige Module geschrieben, habe aber dennoch eine Frage an die Experten.

Generell ist es ja so, dass Befehle / Funktionen nacheinander abgearbeitet werden.

Folgendes Beispiel:


public function ToggleLED()
{
    $this->ToggleHomeMaticDevice(12345, 1, 1);
    $this->Notification();
    $this->DoThis();
    $this->DoThat();
}

public function ToggleHomematicDevice(int $ID, int $Color, int $Level)
{
    HM_WriteValueInteger(46371, 'COLOR', $Color);
    HM_WriteValueFloat(46371, 'LEVEL', $Level);
}

public function Notification()
{
    echo "Die LED wurde geschaltet!
";
}

public function DoThis()
{
    echo "Do this
";
}


public function DoThat()
{
    echo "Do that
";
}

Angenommen an irgendeiner Stelle wird $this->ToggleLED(); aufgerufen, dann wird ja die Methode ToggleLED() aufgerufen und abgearbeitet.

Jetzt ist es ja so, dass HM_Write… eine Rückmeldung (true, false) liefert, die ich in dem Fall gar nicht auswerten will, warum auch immer.

Der Schaltvorgang dauert einige Sekunden, bis die nachfolgenden Funktionen / Methoden $this->Notification, $this->DoThis, $this->DoThat ausgeführt werden.

Besteht die Möglichkeit das zu „beschleunigen“?

So wie ist das verstanden habe läuft ja alles in einem Kontext.
Bei IPS_RunScript gibt es ja die Möglichkeit ein Skript in einem eigenen Kontext aufzurufen, bzw. auszuführen.
Das geht auch schneller, habe ich bereits getestet, aber dann habe ich wieder nicht alles in einem Modul, sondern habe zusätzlich Skripte.

Gibt es so etwas auch bei den Funktionen / Methoden im Modul?

Natürlich könnte ich den Schaltvorgang ans Ende stellen, das macht aber bei manchen Ablaufsteuerungen keinen Sinn.

Oder ist von mir nur einfach schlecht programmiert :cool:

Uli

Es gibt da noch einen Befehl, welcher kein Script als Objekt sondern als reinen Text benötigt.
Das könnte dir helfen.
IPS_RunScriptText — IP-Symcon :: Automatisierungssoftware
Michael

Hallo Michael,

mal wieder Danke!, das war der richtige Tipp !

Uli