Properties eines Items
Jedes definierte Item bietet die folgenden Properties an, die unter anderem in eval Ausdrücken genutzt werden können. Alle Properties sind zumindest lesend (r/o) zugreifbar. Einige Properties können auch beschrieben (r/w) werden.
Properties sind ab SmartHomeNG v1.6 verfügbar.
Die Properties last/prev_trigger(_by/_age)
sind ab SmartHomeNG v1.9.1 verfügbar.
Properties werden in Logiken und eval-Ausdrücken folgendermaßen abgerufen:
var = sh.<Item-Pfad>.property.<Property-Name>
# Beispiel zur Abfrage des Names eines Items:
var = sh.wohnung.testitem.property.name
Werte für Properties, die auch geschrieben werden können (z.B. in Logiken), werden folgendermaßen gesetzt:
sh.<Item-Pfad>.property.<Property-Name> = value
# Beispiel zur Abfrage des Names eines Items:
sh.wohnung.testitem.property.name = 'Neuer Name'
Property |
Access |
Type |
Beschreibung |
---|---|---|---|
attributes |
r/o |
list |
Liefert die Namen der plugin-spezfischen Attribute als Liste Auf die Werte dieser Attribute kann über dynamische Properties zugegriffen werde. (Siehe Ende dieser Tabelle) |
defined_in |
r/o |
str |
Liefert den Dateinamen in dem das Item definiert wurde zurück |
enforce_updates |
r/w |
bool |
Setzt oder löscht den enforce_updates Status |
eval |
r/w |
str |
Erlaubt das Abfragen oder Setzen der eval Expression |
eval_unexpanded |
r/w |
str |
Erlaubt das Abfragen oder Setzen der eval Expression. Beim Beschreiben des Properties werden evtl. enthaltene relative Item Referenzen zur Nutzung expandiert (analog zum Laden aus Item Konfigurationsdateien). |
last_change |
r/o |
datetime |
Liefert ein datetime Objekt mit dem Zeitpunkt der letzten Änderung des Items zurück. |
last_change_age |
r/o |
float |
Liefert das Alter des Items seit der letzten Änderung des Wertes in Sekunden zurück. |
last_change_by |
r/o |
str |
Liefert einen String zurück, der auf das Objekt hinweist, welches das Item zuletzt geändert hat. |
last_trigger |
r/o |
datetime |
Liefert ein datetime Objekt mit dem Zeitpunkt der letzten eval Triggerung des Items zurück. Hat das Item kein eval Attribut oder wurde es nicht getriggert, wird der Zeitpunkt des letzten Updates übermittelt. |
last_trigger_age |
r/o |
float |
Liefert das Alter der letzten Eval Triggerung in Sekunden zurück. |
last_trigger_by |
r/o |
str |
Liefert einen String zurück, der auf das Objekt hinweist, durch welches eine eventuell vorhandene eval Expression getriggert wurde. |
last_update |
r/o |
datetime |
Liefert ein datetime Objekt mit dem Zeitpunkt des letzten Updates des Items zurück. Im Gegensatz zu last_change() wird dieser Zeitstempel auch verändert, wenn sich bei einem Update der Wert des Items nicht ändert. |
last_update_age |
r/o |
float |
Liefert das Alter des Items seit dem letzten Update in Sekunden zurück. Das Update Age wird auch gesetzt, wenn sich bei einem Update der Wert des Items nicht ändert. |
last_update_by |
r/o |
str |
Liefert einen String zurück, der auf das Objekt hinweist, durch welches das Item zuletzt ein Update erfahren hat. |
last_value |
r/o |
str |
Liefert den Wert des Items zurück, den es vor der letzten Änderung hatte. |
name |
r/w |
str |
Erlaubt das Abfragen oder Setzen des Namens des Items |
on_change |
r/o |
list |
Liefert die Liste der on_change Ausdrücke des Items zurück |
on_change_unexpanded |
r/w |
list |
Liefert die Liste der on_change Ausdrücke des Items zurück, in der relative Item Referenzen nicht expandiert sind. Beim Beschreiben des Properties werden evtl. enthaltene relative Item Referenzen zur Nutzung expandiert (analog zum Laden aus Item Konfigurationsdateien). |
on_update |
r/o |
list |
Liefert die Liste der on_update Ausdrücke des Items zurück |
on_update_unexpanded |
r/w |
list |
Liefert die Liste der on_update Ausdrücke des Items zurück, in der relative Item Referenzen nicht expandiert sind. Beim Beschreiben des Properties werden evtl. enthaltene relative Item Referenzen zur Nutzung expandiert (analog zum Laden aus Item Konfigurationsdateien). |
path |
r/o |
str |
Liefert den Pfad des Items zurück |
prev_change |
r/o |
datetime |
Liefert ein datetime Objekt mit dem Zeitpunkt der vorletzten Änderung des Items zurück. |
prev_change_age |
r/o |
float |
Liefert das Alter des vorangegangenen (geänderten) Wertes in Sekunden zurück. |
prev_change_by |
r/o |
str |
Liefert einen String zurück, der auf das Objekt hinweist, welches das Item das vorletzte Mal geändert hat. |
prev_trigger |
r/o |
datetime |
Liefert ein datetime Objekt mit dem Zeitpunkt der vorletzten eval Triggerung des Items zurück. |
prev_trigger_age |
r/o |
float |
Liefert das Alter der vorletzten Eval Triggerung in Sekunden zurück. |
prev_trigger_by |
r/o |
str |
Liefert einen String zurück, der auf das Objekt hinweist, durch welches eine eventuell vorhandene eval Expression das vorletzte Mal ausgelöst wurde. |
prev_update |
r/o |
datetime |
Liefert ein datetime Objekt mit dem Zeitpunkt des vorletzten Updates des Items zurück. Im Gegensatz zu prev_change() wird dieser Zeitstempel auch verändert, wenn sich bei einem Update der Wert des Items nicht ändert. |
prev_update_age |
r/o |
float |
Liefert das Alter des vorangegangenen Updates in Sekunden zurück. |
prev_update_by |
r/o |
str |
Liefert einen String zurück, der auf das Objekt hinweist, durch welches das Item das vorletzte Mal ein Update erfahren hat. |
prev_value |
r/o |
str |
Liefert den Wert des Items zurück, den es vor der vorletzten Änderung hatte. |
trigger |
r/w |
list |
Erlaubt das Abfragen oder Setzen der Liste der Trigger (eval_trigger) des Items. |
trigger_unexpanded |
r/w |
list |
Erlaubt das Abfragen oder Setzen der Liste der nicht expandierten Trigger (eval_trigger) des Items. Beim Beschreiben des Properties werden evtl. enthaltene relative Item Referenzen zur Nutzung expandiert (analog zum Laden aus Item Konfigurationsdateien). |
type |
r/o |
str |
Liefert den Typ des Items zurück |
value |
r/w |
str |
Das Property value stellt eine Alternative zur Abfrage/Zuweisung durch var= item() / item( value ) dar. |
<dynamic property> |
r/o |
str |
Als dynamische Properties werden die plugin-spezifischen Attribute unter- stützt. So kann z.B. aus der smartVISU auf die KNX Sendeadresse eines Items schaltaktor zugegriffen werden: schaltaktor.property.knx_send Dyn. Properties sind erst in SmartHomeNG Releases nach v1.6.1 implementiert. |
Der folgende Beispiel eval Ausdruck sorgt dafür, dass ein Item den zugewiesenen Wert nur dann übernimmt, wenn die Wertänderung bzw. das Anstoßen der eval Funktion über das Admin Interface erfolgt ist und das letzte Update vor der aktuellen Triggerung über 10 Sekunden zurück liegt.
eval: value if sh..self.property.last_trigger_by == 'admin' and sh..self.property.last_update_age > 10 else None