Onkelandy Du musst vorher im Kontextmenü der Solution mal auf "Restore NuGet Packages" klicken. Dann läd VS die benötigten Abhängigkeiten herunter. (NuGet ist das Äquivalent zu pip bei Python)
Ankündigung
Einklappen
Keine Ankündigung bisher.
smarthomeNG über ETS konfigurieren
Einklappen
X
-
Eine kompilierte Variante wäre schon ein Ansatz henfri für ETS 5.5
Das mit den Paketen hatte ich gemacht. Jetzt habe ich die allerdings noch aktualisiert und die Fehelrmeldung ist nun eine andere, wenn ich auf Build Solution gehe:
Code:Error The property 'DragDrop.IsDragSource' does not exist in XML namespace 'clr-namespace:GongSolutions.Wpf.DragDrop;assembly=GongSolutions.Wpf.DragDrop'. Line 81 Position 52. CreateKnxProd E:\Downloads\CreateKnxProd-master\MainWindow.xaml 81
.NET hab ich 4.6.1 und 4.7.2 falls das relevant ist.
Kommentar
-
Du kannst die vorkompilierte Version von https://github.com/thelsing/CreateKnxProd/releases geht auch mit ETS 5.5. Du muss nur den Pfand in der .config Datei wie in der Readme erwähnt anpassen.
Edit: Ich habe im Projekt den Pfad zu den Referenzen korrigiert.Zuletzt geändert von thesing; 21.01.2019, 13:51.
Kommentar
-
Oki, danke. Mit der neuen Version hat es nun geklappt. War zwar alles recht holprig - mit hash Fehler in ETS, etc. - aber im Großen und Ganzen tut es.
Nur.. das Plugin bringt bei mir egal was ich tue immer den ValueError: bytesvalue. Was mach ich da falsch? Hab's sowohl mit develop als auch master branch von shng getestet. Hab auch mal rawvalue = bytes(True) angegeben. Es ist völlig egal.
Kommentar
-
Mal eine dumme Frage. Du hast schon shNG erfolgreich mit ETS "programmiert", oder? Obwohl es auch so keine Fehler geben sollte.
Der Fehler kommt eigentlich wenn die Anzahl der Bytes nicht mit der Größe des KO übereinstimmt. Bei dpt 1 also z.B. 1 Byte.
Die Zeile von dir müsste bei dpt 1 also auch "rawvalue = bytes([0])" oder "bytes([1])" heißen.
Ich teste derzeit übrigens nur mit der master branch.
Kommentar
-
Das Programmieren scheint tatsächlich nicht geklappt zu haben.
Also refresh...
- Löschen der flash.bin
- Aktivieren des ProgramMode im Plugin in Zeile 112
- Hinzufügen von "knx_go: 1 und knx_dpt: 1" in einem Item
- Starten von shng
- Anpassen des Verzeichnisses für ETS5 in CreateKnxProd.exe.config
- Erstellen der knxdprod mit einem KO als 1bit. Die leeren Felder auf Seite 1 habe ich mit shng ausgefüllt.
- ETS: Importieren und Hinzufügen des Geräts in ETS 5.5 / 5.6 (hier gabs beim erneuten Import bzw. Hinzufügen immer wieder "Hash" Fehlermeldungen)
- ETS: Programmieren der PA. Erfolgreich.
- Löschen der Zeile 112 im Plugin
- shng neustarten
- ETS: Zuweisen einer GA
- partielle Programmierung
Bei Letzterem kommt nun der Fehler:
inkompatible BCU Version 57B0 (benötigt wird 07B0)
Ich hab das knxdprod hier mal angehängt. Danke für die Hilfe
Angehängte Dateien
Kommentar
-
Ich habe inzwischen einen Zwischenstand unter https://github.com/thelsing/knx_ets hochgeladen. Die flash.bin wird jetzt unter var/knx_ets abgelegt.
Man kann nun den Programmiermodus im webif umschalten. Außerdem kann man eine xml-Datei für CreateKnxprod vom webif herunterladen. Die generierte xml-Datei wird auch unter var/knx_ets abgelegt.
Die anderen knx_attribute beinflussen die Standartflags der Kommunikationsobjekte. (Siehe Readme)
Nächster Schritt:
Ich will knx_go wieder los werden. Dazu würde ich die verschiedenen GAs zählen die ein item durch die diversen knx_*-Attribute erhalten hat. Pro GA würde ich dann ein KO anlegen. Die Standardflags des ersten wird wie in der Readme ermittelt. (ohne knx_status). Wenn das Item das knx_status-Attribut hat, generiere ich ein zweites KO mit den Flags, die so ein Objekt normalerweise hat. Die restlichen KOs für das Item (Anzahl GAs des Items - 2) kriegen keine Flags gesetzt.
Natürlich kann man die Flags für jedes KO in ETS normal überschreiben. In ETS hat ein KO einen Namen und einen Funktionsnamen. Ich würde als Namen str(item) nehmen und bei Funktiontext vom ersten KO eines Items "value", beim zweiten "status" (wenn durch knx_status) und alle weiteren bekommen "extra_1", "extra_2" usw.
Danach kommt knx_poll dran. Statistikfunktion und Busmonitor werde ich nicht implementieren.
Die date_ga und time_ga vom knx_plugin müsste man doch mit extra items für Zeit und Datum mit eval und cycle erschlagen kriegen.
Habt ihr Fragen/Anmerkungen/Vorschläge dazu?
Msinn Fehlt dem plugin rein formell außer der plugin.yaml noch etwas?
- Likes 1
Kommentar
-
Sehr cool, hab nun auch alles zum Laufen gebracht. Beim Start allerdings diesen Fehler..
Code:2019-01-23 23:03:43 ERROR lib.plugin Plugin 'knx_ets' from section 'knx_ets' exception: module 'knx' has no attribute 'FlashFilePath' Traceback (most recent call last): File "/usr/local/smarthome/lib/plugin.py", line 143, in __init__ plugin_thread = PluginWrapper(smarthome, plugin, classname, classpath, args, instance, self.meta, self._gtrans) File "/usr/local/smarthome/lib/plugin.py", line 596, in __init__ exec("self.plugin.__init__(smarthome{0}{1})".format("," if len(arglist) else "", argstring)) File "<string>", line 1, in <module> File "/usr/local/smarthome/plugins/knx_ets/__init__.py", line 75, in __init__ knx.FlashFilePath(flashFile) AttributeError: module 'knx' has no attribute 'FlashFilePath'
Kommentar
Kommentar