Plugin ‚knx‘ Konfiguration

plugin logo

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