Plugin ‚knx‘ Konfiguration
Im folgenden sind etwaige Anforderungen und unterstützte Hardware beschrieben. Danach folgt die Beschreibung, wie das Plugin knx konfiguriert wird. Außerdem ist im folgenden beschrieben, wie das Plugin in den Item Definitionen genutzt werden kann. [1]
Es handelt sich bei diesem Plugin um ein gateway Plugin.
Beschreibung
Anbindung von KNX Bussystemen via EIBD/KNXD Daemon
Anforderungen
Minimum SmartHomeNG Version: 1.9.0
Konfiguration
Im folgenden ist beschrieben, wie das Plugin knx konfiguriert wird. Außerdem ist im folgenden beschrieben, wie das Plugin in den Item Definitionen genutzt werden kann.
Parameter
Das Plugin verfügt über folgende Parameter, die in der Datei ../etc/plugin.yaml
konfiguriert werden:
busmonitor
Wenn auf ‚on‘/‘true‘ gesetzt, wird jedes KNX-Paket im Standard-Logger protokolliert. Wenn ‚logger‘ eingestellt ist, werden alle KNX-Meldungen in einem separaten Logger ‚knx_busmonitor‘ protokolliert.
Datentyp: str
Standardwert: off
Mögliche Werte:
on - Ein
off - Aus
logger - in eigenen Logger
true - Ein
false - Aus
True - Ein
False - Aus
date_ga
Gruppenadresse, um das Datum an den Knx-Bus zu senden
Datentyp: knx_ga
enable_stats
Wenn diese Option auf „True“ gesetzt ist, werden die Statistikfunktionen aktiviert um Daten erfassen
Datentyp: bool
Standardwert: True
host
IP Adresse oder Hostname des KNX Schnittstellen Dienstes
Datentyp: ip
Standardwert: 127.0.0.1
log_own_packets
Wenn der Wert auf „True“ gesetzt ist, loggt der Busmonitor auch Pakete, die vom Plugin selbst geschrieben werden.
Datentyp: bool
Standardwert: False
loglevel_knxd_cache_problems
Beim Start von SmartHomeNG werden Items mit dem Attribut knx_cache direkt vom knxd eingelesen. Wenn die Werte der Gruppenadressen nicht verfügbar sind, liefert der knxd ein fehlerhaftes Paket. Mit dem hier festgelegten Loglevel wird dieses Paket protokolliert.
Datentyp: str
Standardwert: INFO
Mögliche Werte:
DEBUG - DEBUG
WARNING - WARNING
INFO - INFO
ERROR - ERROR
NOTSET - NOTSET
port
Port, der bei der Kommunikation mit dem KNX Schnittstellen Dienst verwendet wird
Datentyp: int
Standardwert: 6720
Minimalwert: 0
Maximalwert: 65535
project_file_password
Legt optional ein Passwort für den Zugriff auf eine knxproj Datei fest
Datentyp: str
projectpath
Legt den Pfad fest, wo das Plugin eine hochgeladene ETS Projektdatei speichert. Wenn der Pfad relativ ist, wird dazu als Basis das Startverzeichnis von SmartHomeNG genommen
Datentyp: str
Standardwert: var/knx
provider
Dienst, der die Schnittstelle zum KNX bereitstellt. Das kann der eibd/knxd sein, aber auch eine IP Schnittstelle oder ein IP Router
Datentyp: str
Standardwert: knxd
Mögliche Werte:
knxd - eib oder knxd
IP Interface - IP Schnittstelle
IP Router - IP Router mit Multicast
readonly
Wenn der Wert auf „True“ gesetzt ist, liest das Plugin nur den KNX-Bus und sendet keine Nachrichten an den Bus.
Datentyp: bool
Standardwert: False
send_time
Zeitintervall (in Sekunden) zum Senden von Uhrzeit und Datum an den KNX-Bus
Datentyp: int
Standardwert: 0
Minimalwert: 0
time_ga
Gruppenadresse, um die Uhrzeit an den Knx-Bus zu senden
Datentyp: knx_ga
use_project_file
Wenn diese Option auf „True“ gesetzt ist, kann eine ETS Projektdatei hochgeladen und die enthaltenen Gruppenadressen angezeigt werden
Datentyp: bool
Standardwert: False
Item Attribute
Das Plugin unterstützt folgende Item Attribute, die in den Dateien im Verzeichnis ../items
verwendet werden:
knx_cache
Gruppenadresse für die Initialisierung des Items. Der Wert wird aus dem Cache von KNXD/EIBD gelesen. Wenn kein Cache-Wert vorhanden ist, wird der KNX-Bus nach dem Wert abgefragt. Die Angabe impliziert knx_listen, also muss knx_listen nicht für diese Gruppenadresse angegeben werden.
Datentyp: knx_ga
knx_dpt
Dieses Attribut setzt den Typ des KNX-Datenpunktes, der für die Konvertierung der KNX-Nachrichten in das interne SmartHomeNG-Format verwendet wird. Die Angabe ist zwingend erforderlich ist. Wenn Sie keinen Wert angeben, wird das Element vom Plugin ignoriert. Der DPT muss dem Typ des Artikels entsprechen!
Datentyp: str
Mögliche Werte:
1 - Schalten (1 Bit) -> bool
2 - Zwangssteuerung (2 Bit) -> list
3 - Dimmen (4 Bit) -> list
4002 - Zeichen [8859_1] (8 Bit) -> str
4.002 - Zeichen [8859_1] (8 Bit) -> str
5 - Relativwert, 0 … 255 (8 Bit) -> num
5001 - Relativwert, 0 … 100 % (8 Bit) -> num
5.001 - Relativwert, 0 … 100 % (8 Bit) -> num
5003 - Winkel, 0 … 360 ° (8 Bit) -> num
5.003 - Winkel, 0 … 360 ° (8 Bit) -> num
5999 - Spezial DPT für Tebis TS Systeme, (8 Bit) -> num
5.999 - Spezial DPT für Tebis TS Systeme, (8 Bit) -> num
6 - Ganzzahl -128 - 127 (8 Bit) -> num
7 - Ganzzahl 0 - 65535 (16 Bit) -> num
8 - Ganzzahl -32768 - 32767 (16 Bit) -> num
9 - Gleitkomma -671088,64 - 670760,96 (16 Bit) -> num
10 - Uhrzeit [datetime.time] (24 Bit) -> foo
11 - Datum [datetime.date] (24 Bit) -> foo
12 - Ganzzahl 0 - 4294967295 (32 Bit) -> num
13 - Ganzzahl -2147483648 - 2147483647(32 Bit) -> num
14 - Gleitkommazahl (32 Bit) -> num
16000 - Zeichenkette [ASCII] (14 Byte) -> str
16 - Zeichenkette [ASCII] (14 Byte) -> str
16001 - Zeichenkette [8859_1] (14 Byte) -> str
16.001 - Zeichenkette [8859_1] (14 Byte) -> str
17 - Szenennummer: 0 - 63 (8 Bit) -> num
17001 - Szenennummer: 1 - 64 (8 Bit) -> num
17.001 - Szenennummer: 1 - 64 (8 Bit) -> num
18001 - Szenen-Kontrolle: 1 - 64 (Aufruf) 129-192 (Speichern) (8 Bit) -> num
18.001 - Szenen-Kontrolle: 1 - 64 (Aufruf) 129-192 (Speichern) (8 Bit) -> num
20 - HVAC: 0 - 255 (8 Bit) -> num
24 - Unlimitierte Zeichenkette [8859_1] (var) -> str
229 - Smartmeter Werte Tripel: [Ganzzahl -2147483648 - 2147483647(32 Bit), 0-255 (8 Bit), 0-255 (8 Bit)] (6 Byte) -> list
232 - RGB: [0, 0, 0] - [255, 255, 255] (3 Byte) -> list
251 - RGBW: [0, 0, 0, 0] - [255, 255, 255, 255] (4 Byte)-> list
275.100 - Quadrupel mit Solltemperaturen für Komfort, Standby, Nachtabsenkung, Frostschutz (4 Fließkommazahlen mit 16 Bit) -> list
hex - Empfangen von Roh-/Hex-Daten (um Key IDs des alten Winkhaus Schließsystems auszulesen
knx_init
Gruppenadresse für die Initialisierung des Items. Der KNX-Bus wird nach dem Wert abgefragt. Die Angabe impliziert knx_listen, also muss knx_listen nicht für diese Gruppenadresse angegeben werden.
Datentyp: knx_ga
knx_listen
Gruppenadresse (oder Liste von Gruppenadressen), auf die gehört werden soll. KNX-Nachrichten an diese Gruppenadresse(n) ändern den Wert des Items
Datentyp: list(knx_ga)
knx_poll
Geben Sie eine abzurufende Gruppenadresse und das Zeitintervall in Sekunden für eine automatisierte Abfrage vom KNX Bus in Form einer Liste an. Der erste Eintrag ist die Gruppenadresse, der zweite Eintrag ist das Pollintervall in Sekunden. Dies kann für Aktoren oder Sensoren verwendet werden, die keine regelmäßige Übermittlung von Werten unterstützen.
Datentyp: list(2,knx_ga,int)
knx_reply
Eine oder mehrere Gruppenadressen angeben, um den Objektwert vom KNX-Bus aus lesen zu können.
Datentyp: list(knx_ga)
knx_send
Gruppenadresse, an die gesendet werden soll, wenn das Element geändert wird. Sie können eine oder mehrere Gruppenadressen angeben.
Datentyp: list(knx_ga)
knx_status
Ähnlich wie bei knx_send, sendet aber auch bei Änderungen über KNX, wenn sich der knx_status GA vom Ziel-GA unterscheidet. Sie können eine oder mehrere Gruppenadressen angeben.
Datentyp: list(knx_ga)
Logik Parameter
Das Plugin verfügt über folgende Parameter, die in der Datei ../etc/logic.yaml
konfiguriert werden:
Keine Logik Parameter in den Metadaten beschrieben - Bitte in der README nachsehen (siehe Fußnote)
Plugin Functions
Das Plugin verfügt über folgende öffentliche Funktionen, die z.B. in Logiken aufgerufen werden können.
encode(data, dpt)
Diese Funktion codiert Ihre Daten entsprechend dem angegebenen Datenpunkt - Beispiel: data = sh.knx.encode(data, 9)
Ergebnistyp der Funktion: foo
data
Zu codierende Daten
Datentyp: foo
dpt
KNX Datenpunkttyp
Datentyp: foo
groupread(ga, cache=False)
Diese Funktion löst eine Leseanforderung für die angegebene Gruppenadresse aus. Da KNX ereignisgesteuert ist wird der empfangene Wert nicht zurückgegeben!
Ergebnistyp der Funktion: foo
ga
Gruppenadresse von der gelesen werden soll
Datentyp: knx_ga
cache
Versuchen den Wert aus dem Cache von KNXD zu lesen?
Datentyp: bool
Standardwert: False
groupwrite(ga, data, dpt)
Mit dieser Funktion könnten Sie die Daten an die angegebene Gruppenadresse senden - Beispiel: sh.knx.groupwrite(‚1/1/10‘, 10.3, ‚9‘)
Ergebnistyp der Funktion: foo
ga
Gruppenadresse an die der Wert gesendet werden soll
Datentyp: knx_ga
data
Zu sendende Daten. Der Datentyp wird durch den Parameter ‚dpt‘ bestimmt.
Datentyp: foo
dpt
KNX Datenpunkttyp
Datentyp: str
Mögliche Werte:
1 - Schalten (1 Bit) -> bool
2 - Zwangssteuerung (2 Bit) -> list
3 - Dimmen (4 Bit) -> list
4002 - Zeichen [8859_1] (8 Bit) -> str
4.002 - Zeichen [8859_1] (8 Bit) -> str
5 - Relativwert, 0 … 255 (8 Bit) -> num
5001 - Relativwert, 0 … 100 % (8 Bit) -> num
5.001 - Relativwert, 0 … 100 % (8 Bit) -> num
5003 - Winkel, 0 … 360 ° (8 Bit) -> num
5.003 - Winkel, 0 … 360 ° (8 Bit) -> num
5999 - Spezial DPT für Tebis TS Systeme, (8 Bit) -> num
5.999 - Spezial DPT für Tebis TS Systeme, (8 Bit) -> num
6 - Ganzzahl -128 - 127 (8 Bit) -> num
7 - Ganzzahl 0 - 65535 (16 Bit) -> num
8 - Ganzzahl -32768 - 32767 (16 Bit) -> num
9 - Gleitkomma -671088,64 - 670760,96 (16 Bit) -> num
10 - Uhrzeit [datetime.time] (24 Bit) -> foo
11 - Datum [datetime.date] (24 Bit) -> foo
12 - Ganzzahl 0 - 4294967295 (32 Bit) -> num
13 - Ganzzahl -2147483648 - 2147483647(32 Bit) -> num
14 - Gleitkommazahl (32 Bit) -> num
16000 - Zeichenkette [ASCII] (14 Byte) -> str
16 - Zeichenkette [ASCII] (14 Byte) -> str
16001 - Zeichenkette [8859_1] (14 Byte) -> str
16.001 - Zeichenkette [8859_1] (14 Byte) -> str
17 - Szenennummer: 0 - 63 (8 Bit) -> num
17001 - Szenennummer: 1 - 64 (8 Bit) -> num
17.001 - Szenennummer: 1 - 64 (8 Bit) -> num
18001 - Szenen-Kontrolle: 1 - 64 (Aufruf) 129-192 (Speichern) (8 Bit) -> num
18.001 - Szenen-Kontrolle: 1 - 64 (Aufruf) 129-192 (Speichern) (8 Bit) -> num
20 - HVAC: 0 - 255 (8 Bit) -> num
24 - Unlimitierte Zeichenkette [8859_1] (var) -> str
229 - Smartmeter Werte Tripel: [Ganzzahl -2147483648 - 2147483647(32 Bit), 0-255 (8 Bit), 0-255 (8 Bit)] (6 Byte) -> list
232 - RGB: [0, 0, 0] - [255, 255, 255] (3 Byte) -> list
251 - RGBW: [0, 0, 0, 0] - [255, 255, 255, 255] (4 Byte)-> list
275.100 - Quadrupel mit Solltemperaturen für Komfort, Standby, Nachtabsenkung, Frostschutz (4 Fließkommazahlen mit 16 Bit) -> list
send_time(time_ga, date_ga)
Diese Funktion sendet die aktuelle Uhrzeit und/oder das aktuelle Datum an die angegebene Gruppenadresse. Hinweis: Anstelle dieser Funktion können Sie das Plugin-Attribut ‚send_time‘ wie oben beschrieben verwenden - Beispiele: sh.knx.send_time(‚1/1/1‘, ‚1/1/2‘) # sendet die Zeit zu 1/1/1 und das Datum zu 1/1/2; sh.knx.send_time(‚1/1/1‘) # sendet nur die Zeit zu 1/1/1; sh.knx.send_time(data_ga=‘1/1/2‘) # Sendet nur das Datum zu 1/1/2
Ergebnistyp der Funktion: foo
time_ga
Gruppenadresse an die die Uhrzeit gesendet wird
Datentyp: knx_ga
date_ga
Gruppenadresse an die das Datum gesendet wird
Datentyp: knx_ga