Instanz Status Code in Modulen abfragen?

Hi,

ich würde gerne den StatusCode in meinem Modul abfragen, um in der ApplyChanges() nur bei einem bestimmten status code eine Methode auszuführen.

Ist das möglich? Habe nur SetStatus gefunden.

Hintergrund: Es sollen in der ApplyChanges Timer gesetzt werden, aber nur dann wenn bestimmte Properties gesetzt und nicht die default Properties „aktiv“ sind.

Gruß

Hi!

Ich mache es wie folgt (gut zu sehen ab Zeile 89):
BY_HostMonitor/module.php at master · BayaroX/BY_HostMonitor · GitHub

Ich prüfe, ob Feld X und Y gefüllt sind, wenn ja gehts normal weiter, wenn nicht wird ein Status-Code gesetzt.

Oder in Zeile 207 > wenn X gesetzt ist, dann mach dies, ansonsten nicht.

Ist quasi das gleiche in grün was du möchtest?!

Grüße,
Chris

ApplyChanges wird nicht nur bei Übernahme der Config ausgeführt, sondern auch bei dem Anlegen der Instanz selbst.
Ich lege in der ApplyChanges einen Timer basierend auf den registrierten Properties an, die beim Anlegen der Instanz natürlich nur Standardwerten zugeordnet sind. Das würde zu einem Fehler führen.
Ich kann jetzt manuell abfragen, ob die Properties Standardwerte haben oder nicht und dementsprechend den Timer erstellen bzw nicht erstellen.

Es wäre mMn eleganter wenn man abfragen könnte, ob der User die Konfiguration übernommen hat oder nicht, zB über StatusCode.

Ich glaube es ist nicht ganz das selbe in grün, oder?

Das ist das selbe in Grün :wink:
Du weißt nie wer Applychanges aufruft. Von daher solltest du immer die Properties prüfen und nur darauf basierend den Status und Timer setzen.
Was anderes ist es z.B. beim Datenaustausch, dort frage ich den Status ganz normal mit IPS_GetInstance ab.
Michael

Wenn „Instanz angelegt“ den Status Code X hat und „Config vom User übernommen“ Code X+1 hat, könnte ich genau das abfragen, unabhängig davon, dass die Properties an entsprechenden Stellen natürlich geprüft werden müssen.

Beispiel: Die Timer sollten dem User als CheckBox per default in der Form „aktiviert“ angezeigt werden. Dieses Boolean benutze ich als Trigger dafür, ob der Timer erstellt werden soll oder nicht, aber erst dann wenn der User die Config übernomment hat.

Naja ich schaue mal weiter … vll hilft mir IPS_GetInstance weiter

Ist doch völlig egal wer das Applychanges aufruft…
Wenn Checkbox an Timer auf x Sekunden.
Wenn aus Timer auf 0.

Was ist da jetzt das Problem :confused:

Michael

Ich lösche die timer auch, weil ich es sauberer finde … Darum geht’s aber nicht.

Habe jetzt Validierungen an anderen Stellen.

Werde das Modul demnächst mal veröffentlichen. Vielleicht versteht man mich am konkreten Codebeispiel besser

Trotzdem danke