bumaas
16. Januar 2019 um 09:14
1
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
pitti
16. Januar 2019 um 09:45
3
Was ist den der Unterschied zwischen RegisterAttribute und RegisterPorperty? Die Doku ist gleich, sogar das Beispiel ist identisch?!?
Heiko
bumaas
16. Januar 2019 um 09:51
4
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
bumaas
16. Januar 2019 um 10:54
8
Auch von mir ein Danke!
Genau das habe ich gesucht.