Wie setze ich ein Property in einem Modul?

Hallo,

vielleicht eine dumme Frage, aber wie setze ich zur Laufzeit ein Property in einem Modul.

Ich habe den Weg


IPS_SetProperty($this->InstanceID, 'myProperty', $propertyValue);
IPS_ApplyChanges($this->InstanceID);

gefunden.

Aber geht es auch einfacher/direkter? Ich möchte mir einfach ein paar Werte persistent speichern. Vielleicht denke ich aber auch zu kompliziert.

Gruß

Burkhard

Jein…
Nur so, aber nicht erlaubt und die gefahr von Endlosschleife weil ja jedesmal Applychanges ausgeführt werden muss.
Siehe 2. v
Best Practice zur PHP-Modul Erstellung · GitHub
Besser die neuen Attribute nutzen:
RegisterAttributeString — IP-Symcon :: Automatisierungssoftware
Michael

Was ist den der Unterschied zwischen RegisterAttribute und RegisterPorperty? Die Doku ist gleich, sogar das Beispiel ist identisch?!?

Heiko

Die Frage stellt sich mir auch. Zumal dort steht, dass die Methode nur in der Create Methode anzuwenden ist. Ich möchte das Property aber zur ‚Laufzeit‘ setzen.

Gibt keine WriteProperty und da steht der Unterschied:
WriteAttributeBoolean — IP-Symcon :: Automatisierungssoftware

Property werden durch User in den Konfigurationsformularen gesetzt.

Attribute sind vom User nicht zu ändern und sind für persistente Daten einer Instanz.
Michael

Register geht immer nur im Create.
Das ist aber nicht das Verändern, das ist Write.
Michael

Okay, Danke alles klar!

Heiko

Auch von mir ein Danke!

Genau das habe ich gesucht.