Standard Attribute Update

In SmartHomeNG werden eine Reihe von Standard Attributen unterstützt. Diese sind in der folgenden Liste aufgeführt. Die Bedeutung und Verwendung der Attribute wird auf den folgenden Seiten beschrieben.

Zusätzlich können Plugins eigene Attribute definieren. Die Bedeutung und Verwendung dieser zusätzlichen plugin-spezifischen Attribute ist in der Dokumentation des jeweiligen Plugins nachzulesen.

Attribut

Beschreibung

autotimer

setzt den Wert des Items nach einer Zeitspanne auf einen bestimmten Wert. Ab SmartHomeNG v1.3 wurden die Konfigurationsmöglichkeiten erweitert (siehe autotimer).

cache

Wenn das Attribut auf True (oder ‚Yes‘) gesetzt wird, dann wird der Wert des Items zwischengespeichert und beim erneuten Start von SmartHomeNG wird der alte Wert aus dem Zwischenspeicher geladen (vergleichbar mit dem Permanentspeicher vom HS)

crontab

Die Evaluierung des Items findet zu angegebenen Zeitpunkten statt (siehe Beschreibung unten)

cycle

Definiert ein regelmäßiges Aufrufen des Items (und damit der verknüpften Logik oder Eval-Funktion). Ab SmartHomeNG v1.3 wurden die Konfigurationsmöglichkeiten erweitert (siehe cycle).

description

Eine optionale Beschreibung für das Item. Hier können zum Besipiel Bedeutungen der Werte des Items erläutert werden. Diese Beschreibung wird in der Admin GUI oberhalb des Item-Wertes angezeigt.

enforce_updates

Wenn das Attribut auf True gesetzt wird, führt jede Wertzuweisung ans Item dazu, das abhängige Logiken und item Evaluationen getriggert werden, auch wenn sich der Wert des Items bei der Zuweisung nicht ändert.

enforce_change

Wenn das Attribut auf True gesetzt wird, führt jede Wertzuweisung ans Item dazu, dass ein Update (keine Wertänderung) wie ein Change verarbeitet wird. Es werden die Attribute changed_by, last_change, etc. aktualisiert.

eval

eval legt einen Ausdruck fest, nach dem der Wert des Items berechnet wird. Mit eval_trigger wird festgelegt, wann eine (Neu)berechnung erfolgt (siehe Beschreibung unten)

eval_trigger

Liste von Items, bei deren Veränderung eine Neuberechnung der in eval definierten Formel erfolgen soll (siehe Beschreibung unten)

hysteresis_input

Pfad eines Items, welches als Eingabe Wert für die Hysterese dient. Der Wert dieses Items wird gegen die beiden Schwellwerte verglichen. Das hier angegebene Item muss als num definiert sein. - Das Item, welches die Hysterese Attribute verwendet, muss als bool definiert sein.

hysteresis_upper_threshold

Oberer Schwellwert für die Hysterese. Bei der Überschreitung dieses Wertes im Item welches den zu überwachenden Eingabewert darstellt, wird dieses Item auf True gesetzt. Optional kann in diesem Attribut eine Dauer angegeben werden, welche die Überscheitung andauern muss, damit der Wert des Items auf True gesetzt wird.

hysteresis_lower_threshold

Unterer Schwellwert für die Hysterese. Bei der Unterschreitung dieses Wertes im Item welches den zu überwachenden Eingabewert darstellt, wird dieses Item auf False gesetzt. Optional kann in diesem Attribut eine Dauer angegeben werden, welche die Unterscheitung andauern muss, damit der Wert des Items auf False gesetzt wird.

initial_value, value

Ein optionaler Startwert für dieses Item. Es wird empfohlen initial_value anstelle des bisherigen Attributnamens value zu verwenden.

Achtung: Wenn in den Item Definitionen ein Wertzuweisung zu einem Item vom Typ dict erfolgen soll, muss unbedingt darauf geachtet werden, dass der angegebene Wert in Anführungszeichen gesetzt wird, damit yaml nicht den Wert nicht als Datenstruktur interpretiert. (Also folgendermaßen: initial_value: "{'k1': 'v1', 'k2': 'v2'}" )

log_change

Ermöglicht das Loggen jeder Veränderung des Item-Wertes. log_change muss dazu den Namen des zu verwendeten Loggers enthalten. In logging.yaml muss der Logger als items.<Name> konfiguriert sein. Wertänderungen des Items werden dann mit dem Level INFO geloggt. (siehe log_change) Ab SmartHomeNG v1.5

log_level

Ermöglicht es einen anderen Loglevel für log_change festzulegen. Der angegebene Log_level kann jeder in SmartHomeNG unterstützte Python Loglevel sein. Die Angabe kann durch den Namen oder den Integer Wert des Loglevels erfolgen. Ab SmartHomeNG v1.9

log_text

Ermöglicht es einen eigenen Text für den Logeintrag festzulegen. log_text kann dabei eine Reihe von Variablen und eval-Ausdrücken enthalten. Ab SmartHomeNG v1.9 Unterstützt werden folgende Variablen: value, caller, source, dest, id, name, age, mvalue, lvalue, mlvalue, pid, pname, lowlimit, highlimit

Achtung: log_text darf keine Single-Quotes (') enthalten! Falls es aufgrund des YAML Syntaxes notwendig kann der gesamte String für log_text in Single-Quotes (') eingeschlossen werden. Beispiel: log_text: 'Alter={age}'

log_mapping

Ermöglicht es im Text ein Mapping von value auf einen anderen Wert auszugeben (siehe log_change). Ab SmartHomeNG v1.9

log_rules

Ermöglicht es Regeln zum log_change zu definieren (siehe log_change). Ab SmartHomeNG v1.9

name

ein optionaler Name für das Item

on_update

Ermöglicht das setzen des Wertes anderer Items, wenn das aktuelle Item ein Update erhält (auch wenn sich der Wert des aktuellen Items dabei nicht ändert).

on_change

Ermöglicht das Setzen des Wertes anderer Items, wenn der Wert des aktuellen Items verändert wird.

remark

ein optionaler Kommentar für das Item. Es ist sinnvoll Kommentare zu einem Item als remark Attribut zu erfassen und nicht als Kommentar ( # ) in die Konfigurationsdatei zu schreiben. Dadurch können Kommentare in einer später kommenden graphischen Konfigurationsoberfläche angezeigt und gepflegt werden.

struct

Mit dem Attribut struct kann ein Template für eine Itemstruktur statt eines einzelnen Items in den Item-Tree eingefügt werden. struct kann ein String oder eine Liste von Strings sein. Wenn eine Liste angegeben wird, werden die Template Strukturen in der Reihenfolge angewendet, in der sie in der Liste angegeben wurden. Ab SmartHomeNG v1.6

threshold

legt einen Schwellwert oder einen Schwellwertbereich fest. Wenn der Wert diesen Wert über- bzw. unterschreitet oder der Wert Bereich verlässt oder wieder betritt, kann durch dieses Item eine Logik oder die Berechnung anderer Items getriggert werden. Die Angabe des Bereichs erfolgt in Form von zwei numerischen Werten, die durch einen Doppelpunkt getrennt werden. (z.B. 21.4:25.0) ist. Es kann auch ein einzelner Wert notiert werden.

type

Um Werte zu speichern, muss ein Typ vorgegeben werden. Unterstützte Typen sind bool, num, str, list, dict, foo, scene