knx
Konfiguration
Die Informationen zur Konfiguration des Plugins sind unter Plugin ‚knx‘ Konfiguration beschrieben.
plugin.yaml
Bitte die Dokumentation lesen, die aus den Metadaten der plugin.yaml
erzeugt wurde.
Nachfolgend eine Beispielkonfiguration für das Logging der eingehenden KNX Telegramme auf einen separaten
Logger. Die einzelnen Abschnitte müssen in die logging.yaml
integriert werden:
formatters:
busmonitor:
format: '%(asctime)s;%(message)s'
datefmt: '%Y-%m-%d %H:%M:%S'
handlers:
busmonitor_file:
class: logging.handlers.TimedRotatingFileHandler
formatter: busmonitor
when: midnight
backupCount: 7
filename: ./var/log/knx_busmonitor.log
loggers:
knx_busmonitor:
level: INFO
handlers: [busmonitor_file]
Mit dieser Konfiguration werde alle busmonitor Mitteilungen in
./var/log/knx_busmonitor.log
geschrieben.
items.yaml
Bitte die Dokumentation lesen, die aus den Metadaten der plugin.yaml
erzeugt wurde.
Nachfolgend eine Datei mit Beispielen für Item Definitionen unter Berücksichtigung des KNX Plugins
living_room:
light:
type: bool
knx_dpt: 1
knx_send: 1/1/3
knx_listen:
- 1/1/4
- 1/1/5
knx_init: 1/1/6
temperature:
type: num
knx_dpt: 9
knx_send: 1/1/6
knx_reply: 1/1/6
# see 1-Wire plugin
ow_addr: '28.BBBBB20000'
ow_sensor: T
window:
type: bool
knx_dpt: 1
knx_poll:
- 1/1/9
- 60
logic.yaml
Bitte die Dokumentation lesen, die aus den Metadaten der plugin.yaml
erzeugt wurde.
logic1:
knx_dpt: 9
knx_listen: 1/1/7
logic2:
knx_dpt: 9
knx_reply:
- 1/1/8
- 1/1/8
Im Kontext des KNX Plugins beinhaltet das Dictionary trigger
folgende Elemente:
trigger[‚by‘] Protokoll (‚KNX‘)
trigger[‚source‘] Physikalische Adresse der Paketquelle
trigger[‚value‘] der Wert
Funktionen
Bitte die Dokumentation lesen, die aus den Metadaten der plugin.yaml
erzeugt wurde.
Beispiele zur Nutzung der Zeitfunktionen:
sh.knx.send_time('1/1/1', '1/1/2')
Die Zeit senden an
1/1/1
und das Datum an1/1/2
sh.knx.send_time('1/1/1')
Nur die Zeit an
1/1/1
sendensh.knx.send_time(data_ga='1/1/2')
Nur das Datum an
1/1/2
senden
Alternativ zu diesen Funktionen kann auch das Plugin Attribut send_time
genutzt werden.
Umwandlungen der Datentypen in Itemwerte
Die Umwandlungen der Werte vom KNX in einen Itemwert und von Itemwerte zum KNX entsprechen den Festlegungen des Dokumentes 03_07_02_Datapoint Types v02.01.02 AS der KNX System specifications.
Es gibt Situationen wo der KNX Werte liefern kann die nicht als Itemwert zugelassen sind.
Ein Beispiel dafür ist der Datenpunkt Typ 14 der eine 4 Byte umfassende Fliesskommazahl codiert.
Werte die ungültig sind und vom KNX geliefert werden entsprechen in Python einem Wert NaN
.
Da dieser Wert (Not a Number) in Items von SmartHomeNG nicht zugelassen ist wird die Zuweisung auf ein Item unterdrückt
und eine Warnung in das entsprechende Logfile geschrieben (wenn konfiguriert)
Beispiele
ToDo …
Statistiken
Die Statistikfunktionen wurden eingebaut um zu sehen, was dauerhaft am KNX passiert. Es wird aufgezeichnet welches Gerät (physikalische Adresse) Gruppenadresse als Leseanforderung abfragt oder als Schreibanforderung einen neuen Wert sendet. Auf diese Weise werden folgende Fragestellungen beantwortet:
Welches physikalische Gerät hat eine Anforderungen initiiert (Herkunft)
Welche Art Anforderung wurde gestartet (lesen, schreiben, antworten)
Welche Gruppenadresse wurde für welche Anforderung wie oft genutzt?
Gibt es unbekannte physikalische Geräte
Web Interface
Das Plugin Webinterface kann aus dem Admin Interface aufgerufen werden. Dazu auf der Seite Plugins in der entsprechenden Zeile das Icon in der Spalte Web Interface anklicken.
Oben rechts werden allgemeine Parameter zum Plugin angezeigt. Unter dem ersten Tab werden die Items die das Plugin nutzen übersichtlich dargestellt:

Der zweite Tab zeigt Statistiken zu den Gruppenadressen:

Der dritte Tab zeigt Statistiken zu den physikalischen Adressen:

Über das Webinterface kann eine Projektdatei aus der ETS hochgeladen werden um zu prüfen ob es Items ohne Zuweisung zu Gruppenadressen gibt oder auch Gruppenadressen die keine Items definiert haben. Kompatibel sind Exportdateien aus der ETS5 (*.knxproj) oder ETS4 (*.esf = OPC). Es ist möglich für geschützte Projektdateien ein Passwort mit anzugeben. Dieses Passwort wird dann intern für die Laufzeit in SmartHomeNG gespeichert und steht dort solange zur Verfügung bis ein Neustart erfolgt oder bis ein anderes Passwort zugewiesen wird. Ebenfalls ist es möglich im Abschnitt in der Plugin.yaml ein Passwort zu definieren. Ist ein solches definiert und erfolgt ein Upload unter Angabe eines neuen Passwortes, so wird das vorbelegte intern überschrieben. Erst nach einem Neustart ist das in der Plugin.yaml definierte Passwort dann wieder vorhanden.
Nur wenn eine gültige Datei hochgeladen wurde wird ein vierter Tab angezeigt. Hier wird dann der Vergleich zwischen den definierten Gruppenadressen aus der ETS mit den in SmartHomeNG konfigurierten Items und deren knx spezifischen Attributen dargestellt. Gibt es eine Gruppenadresse, die in der ETS definiert wurde aber keine Entsprechung in SmartHomeNG hat, so erscheint in der rechten Spalte nicht zugewiesen.

Alle Tabellen im Webinterface haben rechts oben eine Filter- bzw. Suchmöglichkeit vorgesehen. Damit lassen sich die angezeigten Daten begrenzen. So kann z.B. gezielt nach bestimmten Gruppenadressen, Attributen oder nicht zugewiesenen Gruppenadressen gesucht werden.
Wichtig
Das Webinterface des Plugins kann mit SmartHomeNG v1.4.2 und davor nicht genutzt werden. Es wird dann nicht geladen. Diese Einschränkung gilt nur für das Webinterface. Ansonsten gilt für das Plugin die in den Metadaten angegebene minimale SmartHomeNG Version.