Abfrage auf eigenen InstanceStatus

Hallo,

gibt es einen eleganten Weg auf den eigenen InstanceStatus zuzugreifen?

Oder ist

IPS_GetInstance($this->InstanceID)['InstanceStatus']

zu nehmen?

Gruß

Burkhard

Da doch nur du selbst den Status setzen kannst… Warum weiß dein Code nicht den aktuellen Stand?
Sonst geht das nur so.
Michael

Wenn eine Methode der Instanz aufgerufen wird (z.B. vom TimerEvent) dann will ich vorher prüfen, ob ich überhaupt IS_ACTIVE bin.
Ich hatte erst gedacht, dass wenn der Status fehlerhaft ist (>200) auch kein Timer mehr ausgeführt wird. Aber dem ist nicht so (was vielleicht auch ganz gut ist).

Der Status hat erstmal keinerlei direkte Funktion.
Wozu nutzt du das bei einem einem Funktionsmodul (also ohne Hardware Anbindung) überhaupt?
Du hast doch weder IP noch Splitter.
Also las den Status immer auf ACTIVE.
Oder halt auf den Status Fehler oder Active.

Michael

Zumindest bei Status >= 200 nicht. Bei < 200 bin ich mir nicht sicher. Wird der TimerEvent auch bei IS_INACTIVE ausgeführt?

Es geht um das Rollladenmodul.
Ich prüfe im ApplyChanges und auch im MessageSink, ob die Properties und auch der verlinkte WochenPlan konsistent sind. Wenn nicht, dann setzte ich den Status auf einen passenden Fehlercode.
So meine Idee und es funktioniert auch gut. Ich hoffe, es widerspricht keiner Regel.

Alles super so.
Wie gesagt inactive beeinflusst nichts.
Dein Timer läuft weiter.
Das musst du alles selber im Code steuern.
Ich merke mir in einigen Modulen bestimmte Stati einfach in einem Buffer.
Also z.b. ob ich gerade überhaupt einen Parent habe (MessagSink), oder die Konfiguration sinnvoll ist (Applychanges).
So brauche ich dann in der eigentlichen ‚Ansteuer‘-Methode nur auf diesen Stati bzw. Flag prüfen und werde sonst einen Fehler.

Michael