Plugin knx

protocol plugin

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

Beschreibung

Anbindung von KNX Bussystemen via EIBD/KNXD Daemon

Anforderungen

  • Minimum SmartHomeNG Version: 1.5e

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

    • true   -   Ein

    • false   -   Aus

    • logger   -   in eigenen Logger

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 Computers auf dem der EIB Daemon bzw. KNX Daemon läuft. Standard: Auf dem Computer auf dem SmartHomeMG läuft.

  • Datentyp: ip

  • Standardwert: 127.0.0.1

port

Port, der bei der Kommunikation mit dem Eibd- oder Knxd-Daemon verwendet wird

  • Datentyp: int

  • Standardwert: 6720

  • Minimalwert: 0

  • Maximalwert: 65535

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

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. Wie bei knx_listen kann eine Liste von GAs angegeben werden. Dann wird der erste Eintrag der Liste für die Initialisierung verwendet.

  • Datentyp: list(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

    • 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

    • 275.100   -   Quadrupel mit Solltemperaturen für Komfort, Standby, Nachtabsenkung, Frostschutz (4 Fließkommazahlen mit 16 Bit) -> list

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. Wie bei knx_listen kann eine Liste von GAs angegeben werden. Dann wird der erste Eintrag der Liste für die Initialisierung verwendet.

  • Datentyp: list(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

    • 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

    • 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

1

Diese Seite wurde aus den Metadaten des Plugins erzeugt. Für den Fall, dass diese Seite nicht alle benötigten Informationen enthält, bitte auf die englischsprachige README Datei des Plugins zugreifen.