Der EIB/KNX Treiber ermöglicht es Datenpunkte im KNX auszulesen und zu manipulieren. Dabei kann der Treiber auf bereits im KNX-Netz vorhandene Datenpunkte zugreifen sowie eigene Datenpunkte lokal auf dem Gateway bereitstellen.
Bei Geräten mit integrierter KNX-Schnittstelle kann die physikalische Adresse (Default 15.15.255) auf einen beliebigen gültigen Wert eingestellt werden, dies erfolgt über die integrierte Weboberfläche.
Damit der Treiber beim hochfahren des Gateways für alle Datenpunkte aktuelle Werte erhält, müssen alle im Treiber definierte Datenpunkte ETS-seitig das Leseflag gesetzt haben. Andernfalls werden diese Datenpunkte erst bei Wertänderung zum Gateway übertragen und das Hochfahren des Gateways verzögert sich, da der Treiber missglückte Leseversuche diverse Male wiederholt. Sollte es nicht möglich sein, bei einem Datenpunkt das Leseflag zu setzten kann dem Treiber durch ein speziellen Formatzusatz mitgeteilt werden, dass dieser nicht lesbar ist. Für diese Datenpunkte überspringt der Treiber die initialen Leseversuche.
Bitte beachten Sie, dass für den Betrieb eine KNX Netzes in jedem Fall eine externe KNX-Spannungsversorgung vonnöten ist. Im Regelfall ist eine solche Spannungsversorgung in den bereits existierenden KNX Netzen vorhanden.
Der Name des EIB/KNX-Treibers lautet: eib
Die Routing-Adresse des ersten EIB/KNX-Treibers ist: 70
Die Datenpunktdatei für den ersten EIB/KNX-Treiber heißt: eib1.txt
Die Konfigurationsdatei für globale Einstellungen des ersten EIB/KNX-Treibers heißt: eib1.cfg
Bei dem EIB/KNX-Treiber sowie allen weiteren Gateway-Treibern gilt für die Definition von Datenpunkten in der Datenpunktdatei:
Typ: | Bedeutung |
---|---|
M | Ganzzahliger Wert (Binäre Datenpunkte, Zählwerte) der vom Gateway nur gelesen werden kann/soll. |
S | Ganzzahliger Wert der vom Gateway gelesen sowie geschrieben werden kann/soll. |
X | Analogwert (mit Nachkommastellen) der vom Gateway nur gelesen werden kann/soll. |
Y | Analogwert (mit Nachkommastellen) der vom Gateway gelesen sowie geschrieben werden kann/soll. |
A | String, findet z.B. Verwendung bei BACnet Trends und ESPA4.4.4 Datenpunkten |
Der Treiber kann sowohl zwei wie auch drei stellige KNX-Adressen verarbeiten. Die Adressen sind wie folgt aufgebaut.
Zweistellig: „<maj>/<min>[.<index>]„
Dreistellig: “<maj>/<mid>/<ext>[.<index>]„
Kommunikationsstatus mit EIB: „failure“
Dabei gilt folgende Definition:
Parameter | Wertebereich | Beschreibung |
---|---|---|
<maj> | 0-31 | Obere Gruppenadresse |
<min> | 0-2047 | Untere Gruppenadresse |
<mid> | 0-7 | Mittlere Gruppenadresse |
<ext> | 0-255 | Erweiterte Gruppenadresse |
<index> | 1-255 | optionaler Index für Array Elemente |
Die Adresse eines binären Quelldatenpunktes mit der dreistelligen Adresse „5/3/10“ wird demnach wie folgt in der Datei eibX.txt oder eibusbX.txt angegeben:
[M 5/3/10]
Um dem Treiber mitzuteilen wie er die unter einer Adresse abgelegten Informationen auswerten kann muss für jeden Datenpunkt das Format übergeben werden. Dies erfolgt anhand der Formatdefinition:
format = <format> [F:<fact>] [P:<poll>][U:<upd>] [I:<opt>] [L:<loc>] [H:<prio>] [R:<addr>] [D:<dly>]
Dabei kann <format> folgende Werte annehmen:
<format> | Beschreibung |
---|---|
UINT1 | 1bit |
UINT2 | 2bits |
UINT3 | 3bits |
UINT4 | 4bits |
UINT5 | 5bits |
UINT6 | 6bits |
UINT7 | 7bits |
UINT8 | 8bit unsigned (Vorzeichenlos) |
SINT8 | 8bit signed |
UINT16 | 16bit unsigned |
SINT16 | 16bit signed |
UINT24 | 24bit unsigned |
UINT32 | 32bit unsigned |
SINT32 | 32bit signed (Vorzeichenbehaftet) |
FLOAT | 32bit IEEE754 floating point (Fliesskommazahl) |
DOUBLE | 64bit IEEE754 floating point |
SFLOAT | 16bit IEEE754 floating point |
DPT222 | Array mit 3x 16bit IEEE754 floating point |
Zuordnungstabelle der EIB/KNX Standard-Datenpunkttypen zum UGW Format:
EIS Typ | DPT Typ | Länge | Bedeutung | UGW Format |
---|---|---|---|---|
EIS-1 | DPT-1 | 1 Bit | Schalten | UINT1 |
EIS-2 | DPT-3 | 4 Bit | Dimmen | UINT4 |
EIS-3 | DPT-10 | 3 Byte | Zeit | UINT24 |
EIS-4 | DPT-11 | 3 Byte | Datum | UINT24 |
EIS-5 | DPT-9 | 2 Byte | Fließkomma kurz | SFLOAT |
EIS-6 | DPT-5 DPT-6 | 1 Byte | Relativwert | UINT8 F:2.55 |
EIS-7 | DPT-1 | 1 Bit | Antriebssteuerung | BIT1 |
EIS-8 | DPT-2 | 1/2 Bit | Prioritätskontrolle | UINT1 / UINT2 |
EIS-9 | DPT-14 | 4 Byte | Fließkomma IEEE754 32Bit | FLOAT |
EIS-10 | DPT-7 DPT-8 | 2 Byte | Zähler 16Bit | UINT16 / SINT16 |
EIS-11 | DPT-12 DPT-13 | 4 Byte | Zähler 32Bit | UINT32 / SINT32 |
EIS-12 | DPT-15 | 4 Byte | Zugangskontrolle | UINT32 |
EIS-13 | DPT-4 | 1 Byte | ASCII/ISO8859-1 Zeichen | UINT8 |
EIS-14 | DPT-5 DPT-6 | 1 Byte | Zähler 8Bit | UINT8 / SINT8 |
EIS-15 | DPT-16 | 14 Byte | Text 14 Zeichen | — |
— | — | 8 Byte | Fließkomma IEEE 64Bit | DOUBLE |
— | DPT-17 | 1 Byte | Szene | UINT8 |
— | DPT-20 | 1 Byte | HVAC Mode | UINT8 |
— | DPT-21 | 1 Byte | Status | UINT8 |
— | DPT-22 | 2 Byte | Status | UINT16 |
— | DPT-23 | 2 Bit | Action on/off Alarm up/down | UINT2 |
— | DPT-25 | 1 Byte | Double Nibble | UINT8 |
— | DPT-26 | 1 Byte | Scene Info | UINT8 |
— | DPT-27 | 4 Byte | combined info on/off | UINT32 |
— | DPT-222 | 6 Byte | 3 SFLOAT Werte in einem Array | DPT222 |
— | DPT-232 | 3 Byte | RGB Farbwert | UINT24 |
EIS = EIB Interworking Standard, DPT = DatenPunktTyp
Bei Bedarf kann die Format-Angabe um weitere Parameter ergänzt werden, folgende Parameter stehen hierbei zur Verfügung:
Wert | Wertebereich | Beschreibung |
---|---|---|
F:<fact> | Gültiger 32Bit floating point Wert | Divisor durch den der vom KNX-Bus übertragene Wert bei der Abbildung im Gateway dividiert wird bzw. Faktor mit dem der vom Gateway zum KNX-Bus übertagene Wert multipiziert wird. Wird kein Faktor angegeben so ist dieser „1.0“ |
P:<poll> | 0 - 216 | Zeit in Sekunden im dessen Intervall der Datenpunkt aktiv vom Bus gelesen wird. Wird keine Pollrate angegeben so ist diese „0“ d.h. es wird nicht zyklisch gelesen. |
U:<upd> | 0 - 216 | Zeit in Sekunden im dessen Intervall der Datenpunkt aktiv auf den Bus geschrieben wird. Wird kein Updateintervall angegeben so ist dieses „0“ d.h. es wird nicht zyklisch geschrieben |
I:<opt> | 0 - 7 | Bit0 Wertänderung: „0“ Filtere Wertänderungen „1“ Wertänderungen nicht filtern Bit1 Wert Pollen: „0“ Leseanfragen generieren „1“ keine Leseanfragen generieren Bit2 Lokales Schreiben: „0“ keine Schreibanfragen generieren „1“ Schreibanfragen generieren Werden keine <opt>-Flags angegeben so werden diese als „0“ interpretiert. Anmerkung: Für lokale Datenpunkte werden Bit0 und Bit1 intern immer auf „1“ gesetzt. |
L:<loc> | 0 - 1 | „0“ Entfernter Datenpunkt „1“ Lokaler Datenpunkt |
H:<prio> | 0 - 1 | „0“ Niedrige Priorität (default) „1“ Hohe Priorität Definiert die Priorität mit der der Datenpunkt vom DP-Manager geschrieben wird. Datenpunkte hoher Priorität werden vor denen mit niedriger Priorität geschrieben. |
R:<addr> | Gültiger EIB-Datenpunkt ausgenommen: „failure“ | Diese Adresse wird gelesen nachdem der Datenpunkt zu dem diese Option gehört vom DP-Manager upgedated wurde. Der Treiber generiert diese Leseanfrage um <dly> Sekunden verzögert falls <dly> gesetzt ist. |
D:<dly> | 0 - 216 | Zeit in Sekunden die der Treiber wartet bis der in <addr> definierten Datenpunkt gelesen wird nachdem der Datenpunkt zu dem diese Option gehört geschrieben wurde. |
Typische Datenpunktdefinitionen können demnach sein:
[M 5/3/10]
name = digitale Betriebsmeldung
query = pe
format = UINT1
[S 2/10]
name = digitaler Sollwert
query = pe
format = UINT1
writecache = yes
[M 5/3/11]
name = multistate Meldung z.B. 0,1,2 für Aus,An,Auto
query = pe
format = UINT8
[S 5/3/12]
name = multistate Sollwert z.B. Stufenschalter 0,1,2 für Aus, An, Auto
query = pe
format = UINT8
writecache = yes
[X 5/3/13]
name = Temperatur Messwert
query = pe
format = SFLOAT
[Y 5/3/14]
name = Temperatur Sollwert
query = pe
format = SFLOAT
writecache = yes
# Prozentwerte 0-100% werden im EIB häufig auf 0-255 skaliert,
#deshalb muss in diesem Fall der Wert durch 2.55 dividiert werden.
[X 5/3/15]
name = Prozentwert
query = pe
format = UINT8 F:2.55
# Festkomma Wert (16 Bit, mit Faktor 10)
[X 13/3/222]
name = Festkomma
query = pe
format = UINT16 F:10
# Status der Verbindung zum EIB/KNX-Bus
[M failure]
name = Verbindung zum EIB-BUS, 0=OK 1=Ausfall
query = pe