Ich würde es auch wegen der benötigten Drittkomponente als separates Plugin belassen.
knx_ets würde mir auch vernünftig erscheinen.
Ankündigung
Einklappen
Keine Ankündigung bisher.
smarthomeNG über ETS konfigurieren
Einklappen
X
-
Hallo,
den Ansatz verstehe ich nicht:
Mit dem neuen Plugin brauche ich doch knx_* nicht mehr.
Gruß,
Hendrik
Einen Kommentar schreiben:
-
Könnte man das Ganze nicht ins normale knx Plugin einfließen lassen, indem es das Zusatzattribut knx_ets gibt? Etwaige Konkurrenz zwischen dan Attributen könnte dann auch eher abgefangen werden..Also knx_listen und knx_ets mögen sich ja obiger Info zufolge nicht..?
Einen Kommentar schreiben:
-
Hallo,
Zitat von thesing Beitrag anzeigenBesseren Namen für das Plugin ausdenken. (Vorschläge?)
knxprod
Zitat von thesing Beitrag anzeigenParameter 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
Ich überlege noch, ob es nicht sogar sinnvoll wäre, statt alles auf die Item-Yaml basieren zu lassen, die Objekte in der ETS zu erstellen und zu konfigurieren. Aber ich vermute, das ist zu komplex.
Gruß,
Hendrik
Einen Kommentar schreiben:
-
Direkt nach dem Klonen ist noch Folgendes nötig:
Code:cd knxd git submodule init git submodule update --recursive
Code:2019-01-20 15:27:18 ERROR lib.item Item WP.Status.Modus: problem running <bound method KNX2.update_item of <plugins.knx2.KNX2 object at 0xaa426a90>>: bytesValue Traceback (most recent call last): File "/usr/local/smarthome/lib/item.py", line 2103, in __update method(self, caller, source, dest) File "/usr/local/smarthome/plugins/knx2/__init__.py", line 204, in update_item groupObject.value = rawValue ValueError: bytesValue
Code:Modus: visu_acl: r type: num cache: 'true' knx_go: 5 knx_dpt: 5
Bei boolschen Items scheint es im Log keine Probleme zu geben.
Einen Kommentar schreiben:
-
Das soll keine extra Konfigurationsdatei werden, sondern eher ein Cache. So kann man sicherstellen, dass ein Item jedes mal die gleiche KO-Nummer erhält. Welche KO-Nummern ein Item erhält ist ja eigentlich egal, sie sollte sich nur nicht ändern. Beim fester Vergabe durch ein Attribut muss man dann wieder aufpassen welche Items zwei KO-Nummern brauchen und welche nicht.
Hast du Ideen für einen Namen? knx2 ist nicht so toll.
Einen Kommentar schreiben:
-
Oder einfach im im items/*.yaml knx_go als Liste zulassen? Eine zusätzliche Konfigurationsdatei würde das ganze IMHO nur verkomplizieren.
- Likes 1
Einen Kommentar schreiben:
-
Ich werde wohl die Zuordnung von Items zu Kommunikationsobjekten in einem yaml in var speichern. Dann kann ich auch für eine Item zwei Kommunikationsobjekte erzeugen.
Einen Kommentar schreiben:
-
Zitat von thesing Beitrag anzeigenFür knx_status kann man auch einfach ein neues Item erstellen das dann getriggert wird. Dazu kann man dann auch die neuen Unteritem-Templates nutzen.
Aber funktionieren würde es natürlich.
Einen Kommentar schreiben:
-
@smai: Die Flags von ETS werden voll unterstützt. Das I-Flag muss ich mal noch implementieren, der Rest geht aber. Für knx_status kann man auch einfach ein neues Item erstellen das dann getriggert wird. Dazu kann man dann auch die neuen Unteritem-Templates nutzen.
@msinn: Du kannst das Problemlos parallel nutzen. Wenn du die gleiche GA einmal direkt als Attribut und einmal per ETS konfigurierst, werden Änderungen von shNG vermutlich doppelt gesendet. Bei unterschiedlichen GAs gibt es lustige Effekte wie. Wenn ein Item in shNG z.B. die GA 1/0/1 hat und per ETS 2/0/1 kriegt, werden die beiden GAs synchron geschaltet: 2/0/1 kommt vom Bus -> mein Plugin setzt Item -> knx-Plugin schickt auf den Bus 1/0/1. Umgekehrt geht es auch.
Einen Kommentar schreiben:
-
Das klingt interessant. Das wäre wohl nicht das knx Plugin für jedermann, aber sicherlich eine Option für SmartHomeNG Nutzer, deren Installation stark auf der KNX Seite liegt und die zur Konfiguration häufig in der ETS unterwegs sind.
Ich kann mir vorstellen, dass wir (nachdem Dein Plugin die Entwicklungsstadien hinter sich hat) das Plugin mit in das Repo aufnehmen.
Eine Frage zum testen: Kann ich das Plugin parallel zum bestehenden Plugin (für andere Items) einsetzen?
Einen Kommentar schreiben:
-
Klingt sehr interessant.
Wäre es nicht möglich, knx_status als separates KO auf demselben Item zu implementieren? Bzw. allgemein ein separates KO für knx_listen und knx_send ermöglichen.
Das würde auch der Lösung in heutigen KNX-Aktoren entsprechen.
knx_reply müsste am besten über das L-Flag in der ETS gelöst werden, falls möglich.
Einen Kommentar schreiben:
-
smarthomeNG über ETS konfigurieren
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:
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.Angehängte DateienStichworte: -
- Likes 2
Einen Kommentar schreiben: