Grundlagen - Items

was und wie:

Um die Gruppenadressen (im folgenden GA oder GAs genannt) anzusprechen, arbeitet die SmartVISU mit dem Backend SmartHomeNG und den so genannten Items.
Das Verzeichnis dieser Items ist unter "Grundlagen-Einführung" benannt. Die Item-Definitionen sind in Dateien vom Typ *.yaml zusammengefasst.
Die Items enthalten die notwendigen GAs selbst, die dazugehörigen Datentypen, die Möglichkeit diese GA in einer Datenbank zu speichern, die Möglichkeit die GA über die VISU zu steuern und weitere.
Im Folgenden möchten wir aber nur auf minimale Punkte von SmartHomeNG eingehen. Ein Link zu SmartHomeNG ist ganz unten auf der Seite zu finden.
Items werden in einer YAML Datei strukturiert und baumartig angelegt. Dabei dürfen für die Einrückung nur Leerzeichen verwendet werden und die Einrückungstiefe muß zwischen den einzelnen Ebenen gleich bleiben.

Strukturaufbau Items

Zweig_1:
     Unterebene_1:
          Unterebene_1_1:
               Unterebene_1_1_1:
                    Unterebene_1_1_1_1:

Beispiel:

EG:
     Wohnzimmer:
          Deckenlicht:
               schalten:
               dimmen:

In Smartvisu werden die items angesprochen, indem die Ebenen aneinandergehängt und jweils mit einem Punkt verbunden werden. Das Beispiel ergibt somit auf der 3. Unterverzweigung 2 items: 'EG.Wohnzimmer.Deckenlicht.schalten' und 'EG.Wohnzimmer.Deckenlicht.dimmen'.

Auf den Ebenen werden die Eigenschaften und Verbindungen der Items definiert. Um eine Leuchte (z.B. "Deckenlicht") zu schalten, wurde der dazugehörige Aktorausgang in der ETS mit der GA 0/0/3 verknüpft. Die Rückmeldung erhalten wir über die GA 0/1/3.
Das dazugehörige Item könnte wie folgt aussehen.

Eigenschaften der Items

EG:
     Wohnzimmer:
          Deckenlicht:
               schalten:
                    type: bool
                    visu_acl: rw
                    knx_dpt: 1
                    knx_listen: 0/1/3
                    knx_send: 0/0/3

Hier wurde jetzt folgendes definiert:
  • type: bool - Das Attribut des Item ist bool (s. unten Datentypen und Attribute)
  • visu_acl: rw - Das Item kann über die Visu angesprochen werden (rw = read and write / ro = real only).
  • knx_dpt: 1 - Der Datapoint (dpt) des Item ist 1 (=1bit)(s. unten Datentypen und Attribute)
  • knx_listen: 0/1/3 - Das Item EG.Wohnzimmer.Deckenlicht.schalten "hört" auf die GA 0/1/3 *)
  • knx_send: 0/0/3 - Das Item EG.Wohnzimmer.Deckenlicht.schalten sendet auf die GA 0/0/3

Datentypen und Attribute:

Diese Datentypen und Attribute sind verbindlich. Der datapoint muß im item zum jeweiligen Type passen.

Auflistung

DPT Data Type Werte
1    
2     
3     
4.002
5     
5.001     
6     
7     
8     
9     
10     
11     
12     
13     
14     
16     
16.001     
17     
20     
24     
232
1 bit     
2 bit     
4 bit     
8 bit     
8 bit     
8 bit     
8 bit     
2 byte     
2 byte     
2 byte     
3 byte     
3 byte     
4 byte     
4 byte     
4 byte     
14 byte
14 byte
8 bit     
8 bit     
var     
3 byte
bool     
list     
list     
str     
num     
num     
num     
num     
num     
num     
foo     
foo     
num     
num     
num     
str     
str     
num     
num     
str     
list
True | False
[0, 0] - [1, 1]
[0, 0] - [1, 7]
1 character (8859_1) e.g. ‘c’
0 - 255
0 - 100
-128 - 127
0 - 65535
-32768 - 32767
-671088,64 - 670760,96
datetime.time
datetime.date
0 - 4294967295
-2147483648 - 2147483647
4-Octet Float Value IEEE 754
14 characters (ASCII)
14 characters (8859_1)
Scene: 0 - 63
HVAC: 0 - 255
ulimited string (8859_1)
RGB: [0, 0, 0] - [255, 255, 255]


HINWEIS:
*) Im obigen Beispiel verwenden wir knx_listen: 0/1/3. Dies besagt, dass bei laufendem SmarthomeNG Änderungen auf dieser Gruppenadresse registriert werden. Um beim Start oder Neustart von SmartHomeNG einen definierten Zustand zu erzwingen, kann diese Gruppenadresse initialisiert werden, indem man "knx_init" anstelle von "knx_listen" verwendet. Dann wird beim Start von SmarthomeNG eine Leseanforderung an diese Gruppenadresse geschickt. Benutzt man nun in jedem Item das knx_init, wird je nach Anzahl der Items und der damit verbundenen Gruppenadressen logischerweise eine entsprechend hohe Buslast "produziert". SmartHomeNG geht daher einen Schritt weiter und fängt dies mit knx_cache ab. Man hat die Möglichkeit sich jedes Telegramm in einen Cache schreiben zu lassen. Mit knx_cache: 0/1/3 wird bei einem Neustart von SmartHomeNG nun nicht direkt der Bus durch eine Leseanforderung belastet, sondern es wird der letzte Wert aus dem Cache genommen. Nur wenn kein Cache-Wert vorhanden ist, wird eine Leseanforderung auf die Gruppenadresse gesendet. Dies verringert die Buslast beim Neustart enorm. "knx_init" und "knx_cache" verhalten sich bei laufendem System wie "knx_listen".

Weitere Einzelheiten, Infos und Dokumentationen zu SmartHomeNG findet man in deutscher Sprache hier .