Hallo allerseits,
eine neues knx-Plugin als Proof-of-Concept gehackt. Bei diesem Plugin wird shNG als KNX-Gerät behandelt. Es bekommt eine eigene PA und die entsprechend konfigurierten Items erhalten eine GA von ETS. Ich habe das bisher nur alpha-getestet. Aber vielleicht möchte jemand experimentieren
Die Kommunikation zum Bus erfolgt über einen KNX-Router. Dies kann auch knxd sein.
Installation python knx-Modul:
Das Plugin ist im Anhang. Die Dateien kommen nach plugins/knx2.
In die plugins.yaml kommt:
Die Items müssen eine Attribut knx_go erhalten. Dies ist die Nummer des Kommunikationsobjekts in ETS. Die müssen mit 1 startend durchnummeriert werden. Zusätzlich ist noch das Attribut knx_dpt nötig.
Passend zu den Items muss man sich dann noch eine knxprod-Datei erstellen. Das muss man derzeit manuell mit https://github.com/thelsing/CreateKnxProd machen.
Später soll die xml-Datei mal aus den Items generiert werden. Dann muss man die nur noch in das Tool laden und als knxprod-Datei exportieren.
Aktuell muss man den Programmiermodus im Plugin einkommentieren. (__init__.py Zeile 112) Dann startet das Plugin shNG im Programmiermodus. Wenn man eine PA vergeben hat, kann man das wieder auskommentieren. Dass kann man sicher besser über das Backend lösen.
Die von ETS konfigurierten Daten werden in einer Datei "flash.bin" abgelegt. Die Datei wird noch im aktuellen Verzeichnis abgelegt. Daher funktioniert das ganze wahrscheinlich nur, wenn man shNG von der Kommandozeile startet.
Das Plugin kann natürlich viele Sachen nicht, die das normale knx-Plugin kann. Da bei meinem Plugin ein item zu einem Kommunikationsobjekt wird, sind knx_reply und knx_status so nicht möglich. Durch ETS kann ein item nur eine sendende GA und ggf. noch weitere "lauschende" GAs erhalten. Andere Features wie knx_poll könnte man nachbauen.
Ich werde langfristig durch dieses Plugin das knx-Plugin bei mir ersetzen. Besteht hier an dem Plugin Interesse?
Meine weiter Planung:
- flash bin nach var verschieben
- xml für CreateKnxProd generierbar machen lassen.
- knx_go-Attribut überdenken. Das ist eigentlich nur da, um bei der Generierung der xml-Datei dafür zu sorgen, dass Items die gleichen KO-Nummern behalten. Dann sollte es möglich sein einfach die geänderte knxprod-Datei in ETS zu importieren, ohne das smarthomeNG-"Gerät" komplett neu konfigurieren zu müssen. Evtl. kann man aber das gleiche erreichen indem man die xml-Datei unter var ablegt und dort beim Generieren die letze KO-Nummer rausparst.
- Programmiermodus einfacher schaltbar machen.
- Besseren Namen für das Plugin ausdenken. (Vorschläge?)
- Features vom knx-Plugin wieder einbauen (Webinterface und so)
- Parameter von ETS nutzbar machen. Vielleicht als Item oder so. Keine Ahnung ob man das sinnvoll nutzen kann. Es ist wahrscheinlich einfacher die Werte in die plugin.yaml zu schreiben statt in ETS und dann durch ETS zu setzen.
Das ganze wird eine Weile dauern, da ich Python während der Programmierung erst lerne.
Viele Grüße,
Thomas
P.S. Bitte keine Diskussion darüber ob CreateKnxProd legal ist oder nicht. Wer mag kann sich KNX-MT kaufen um ein ETS-Projekt zu erstellen und darüber das Gerät in ETS importieren.
eine neues knx-Plugin als Proof-of-Concept gehackt. Bei diesem Plugin wird shNG als KNX-Gerät behandelt. Es bekommt eine eigene PA und die entsprechend konfigurierten Items erhalten eine GA von ETS. Ich habe das bisher nur alpha-getestet. Aber vielleicht möchte jemand experimentieren

Die Kommunikation zum Bus erfolgt über einen KNX-Router. Dies kann auch knxd sein.
Installation python knx-Modul:
Code:
#git clone https://github.com/thelsing/knx.git #cd knx/knxPython #cmake . #make #cp knx.*.so /usr/local/lib/python<pythonVersion>/dist-packages
In die plugins.yaml kommt:
Code:
knx2: class_name: KNX2 class_path: plugins.knx2
Passend zu den Items muss man sich dann noch eine knxprod-Datei erstellen. Das muss man derzeit manuell mit https://github.com/thelsing/CreateKnxProd machen.
Später soll die xml-Datei mal aus den Items generiert werden. Dann muss man die nur noch in das Tool laden und als knxprod-Datei exportieren.
Aktuell muss man den Programmiermodus im Plugin einkommentieren. (__init__.py Zeile 112) Dann startet das Plugin shNG im Programmiermodus. Wenn man eine PA vergeben hat, kann man das wieder auskommentieren. Dass kann man sicher besser über das Backend lösen.
Die von ETS konfigurierten Daten werden in einer Datei "flash.bin" abgelegt. Die Datei wird noch im aktuellen Verzeichnis abgelegt. Daher funktioniert das ganze wahrscheinlich nur, wenn man shNG von der Kommandozeile startet.
Das Plugin kann natürlich viele Sachen nicht, die das normale knx-Plugin kann. Da bei meinem Plugin ein item zu einem Kommunikationsobjekt wird, sind knx_reply und knx_status so nicht möglich. Durch ETS kann ein item nur eine sendende GA und ggf. noch weitere "lauschende" GAs erhalten. Andere Features wie knx_poll könnte man nachbauen.
Ich werde langfristig durch dieses Plugin das knx-Plugin bei mir ersetzen. Besteht hier an dem Plugin Interesse?
Meine weiter Planung:
- flash bin nach var verschieben
- xml für CreateKnxProd generierbar machen lassen.
- knx_go-Attribut überdenken. Das ist eigentlich nur da, um bei der Generierung der xml-Datei dafür zu sorgen, dass Items die gleichen KO-Nummern behalten. Dann sollte es möglich sein einfach die geänderte knxprod-Datei in ETS zu importieren, ohne das smarthomeNG-"Gerät" komplett neu konfigurieren zu müssen. Evtl. kann man aber das gleiche erreichen indem man die xml-Datei unter var ablegt und dort beim Generieren die letze KO-Nummer rausparst.
- Programmiermodus einfacher schaltbar machen.
- Besseren Namen für das Plugin ausdenken. (Vorschläge?)
- Features vom knx-Plugin wieder einbauen (Webinterface und so)
- Parameter von ETS nutzbar machen. Vielleicht als Item oder so. Keine Ahnung ob man das sinnvoll nutzen kann. Es ist wahrscheinlich einfacher die Werte in die plugin.yaml zu schreiben statt in ETS und dann durch ETS zu setzen.
Das ganze wird eine Weile dauern, da ich Python während der Programmierung erst lerne.
Viele Grüße,
Thomas
P.S. Bitte keine Diskussion darüber ob CreateKnxProd legal ist oder nicht. Wer mag kann sich KNX-MT kaufen um ein ETS-Projekt zu erstellen und darüber das Gerät in ETS importieren.
Kommentar