Ankündigung
Einklappen
Keine Ankündigung bisher.
smarthomeNG über ETS konfigurieren
Einklappen
X
-
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
Einen Kommentar schreiben:
-
Du musst als Medium in der knxprod IP auswählen. Dieses Gerät kann man dann auch nur in eine IP-Linie einfügen. 07B0 steht für ein TP-Gerät und 57B0 für ein IP-Gerät.
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
Ja, programmiert hab ich, also die PA.
Möchte nicht ausschließen, dass meine knxprod Blödsinn ist. Wäre super, wenn du hier mal Item und prod config rein stellen könntest, dann find ich vielleicht das Problem.
Einen Kommentar schreiben:
-
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.
Einen Kommentar schreiben:
-
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.
Einen Kommentar schreiben:
-
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.
Einen Kommentar schreiben:
-
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.
Einen Kommentar schreiben:
-
Onkelandy: Der Fehler in Python kommt wahrscheinlich dadurch, dass die Länge der übergebenen Bytes zum Kommunikationsobjekt nicht stimmt. Wenn du Lust hast, kannst du das ja mit ein paar print() Zeilen untersuchen. Ich versuche erstmal ein Webinterface für das Plugin zu bauen.
Einen Kommentar schreiben:
-
Dann könnten ja attribut und Plugin knx_ets heißen, oder?
Ich habe leider keinen wirklich Plan von Visualstudio und Co.. Kannst du vielleicht eine kurze Anleitung zum Builden des knxdprod-Creators posten?
Wenn ich in VisualStudio die Lösung builden möchte, kommt folgende Meldung:
Code:1>------ Build started: Project: CreateKnxProd, Configuration: Debug Any CPU ------ 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "GongSolutions.Wpf.DragDrop, Version=1.1.0.0, Culture=neutral, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "WPFLocalizeExtension, Version=3.0.1.0, Culture=neutral, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. 1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "XAMLMarkupExtensions, Version=1.2.2.0, Culture=neutral, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. 1>E:\Downloads\CreateKnxProd-master\MainWindow.xaml(10,9): error MC3072: The property 'ResxLocalizationProvider.DefaultAssembly' does not exist in XML namespace 'http://wpflocalizeextension.codeplex.com'. Line 10 Position 9. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Zuletzt geändert von Onkelandy; 21.01.2019, 09:01.
Einen Kommentar schreiben:
-
Onkelandy Ich hab bisher nur bool getestet. Wahrscheinlich klappt da noch was mit der Konvertierung nicht in dpts.py. Ich denke auch ein separates plugin ist besser. Der Ansatz ist eben schon komplett anders als beim knx_plugin.
@henfri:
Komplett über ETS wird das nicht gehen. Damit wan das shNG-"Geräte" per ETS konfigurieren kann, muss man die knxprod-Datei erstellen. Dazu müssen die items in shNG schon da sein. Man könnte allerdings eines der Skripte reaktivieren die aus der knxproj-Datei items erzeugen. Dann könnte man recht viel in ETS konfigurieren. Besonders in Verbindung mit Generierung der smartvisu-Seiten könnte man relativ automatisch eine Art Grundsystem aus dem ETS-Projekt erzeugen, daraus dann die knxprod-Datei und die dann wieder in ETS konfigurieren.
Einen Kommentar schreiben:
Einen Kommentar schreiben: