Ankündigung

Einklappen
Keine Ankündigung bisher.

Kaenx - Open Source Inbetriebnahme Software

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Kaenx - Open Source Inbetriebnahme Software


    Hallo liebe Community,

    Prüfungen sind nun endlich alle geschrieben und Zeugnisse verteilt.
    Ich hatte somit endlich Zeit wieder etwas an meinem ehemaligen Technikerprojekt zu arbeiten und es nun endlich auch öffentlich zugänglich zu machen.
    Dazu wollte ich nun diesen Thread erstellen um auch mein weiteres vorgehen an dem Projekt zu beschreiben und hoffentlich auch den ein oder anderen zu finden, der mitentwickeln möchte.

    Was ist Kaenx?
    Die Kaenx hat eine lange Geschichte. Ich fing mit dem Projekt schon vor gut 8 Jahren an mit dem ersten importieren von Projekten, hab dann aber allerdings nicht mehr daran weiter gearbeitet.
    Während meinem Techniker kam das Projekt dann wieder hoch und habe es als Abschlussarbeit ausgewählt.
    Die Kaenx ist eine Inbetriebnahme Software für KNX Geräte. Sie ist Hersteller unabhängig und kann nur mit .knxprod Dateien umgehen.

    Was kann die Kaenx schon?
    Das Parametrieren von KNX Geräten wurden schon mit MDT Geräten getestet (AKK-0216.02 und BE-TA55502.01). Auch ein provisorischer Gruppenmonitor ist eingebaut.
    Es gibt eine Funktion um eine bestehende Anlage komplett auszulesen (aufgrund größerer Umbauten der letzten Wochen aktuell nicht funktionsfähig) und neue/entladene Geräte am Bus zu identifizieren (nur wenn das Geräte Seriennummer über PropertyRead unterstützt).
    Aktuell funktioniert die Verbindung nur über IP. Für USB wurde aber schon alles vorbereitet bzw. angefangen. Der Bus zugriff hat sich aber als zickig rausgestellt...
    Die Software hat aktuell noch den Alpha Status. Mit abstürzen ist also jederzeit zu rechnen.

    Was wird gerade geplant?
    In den letzten Wochen hab ich viel umgebaut um auch DIY Produkte besser zu unterstützen. So wird es bald möglich sein auch KONNETKTING Geräte zu importieren und zu parametrieren.
    Auch eine Remote Funktion ist geplant. Damit soll man selbst auch die Server-Komponente Hosten können, bzw per IPv6 P2P mit der Anlage kommunizieren können.
    Die aktuelle Software funktioniert nur auf Windows 10.
    Ende des Jahres will ich auf .NET MAUI umsteigen, somit werden auch Linux, MacOS, iOS und Android unterstützt.
    Somit setze ich den Fokus aktuell darauf den Algorythmus zum auslesen der Anlage oder vom Importieren der Geräte zu verbessern.

    Wo kann ich den Code anschauen/mithelfen?
    Der Code ist auf Github zu finden.
    Um den Code kompilieren zu können werden auch noch drei weitere Projekte benötigt:
    - Kaenx.Konnect
    - Kaenx.DataContext
    - Kaenx.Migration
    Das Projekt ist als UWP App ausgeführt und funktioniert somit aktuell nur auf Windows 10.


    Du willst es einfach nur schnell testen?
    Eine bereits kompilierte App ist auf meiner Webseite zu finden.
    Unter "Weitere Links" bitte zuerst das Herausgeberzertifikat installieren.
    (!!zwingend unter "Lokaler Computer" im Speicher "Vertrauenswürdige Stammzertifizierungsstellen")
    Diese Version ist deutlich schneller bei Updates, da sie automatisch beim Start nach einer neuen Version überprüft und installiert.

    Die zweite Möglichkeit ist aus dem Microsoft Store:
    - Store Webseite
    - Direkt im Store lokal öffnen
    Diese Version erhält nicht so oft Updates und soll nur als Vorschau dienen.

    Datenschutztechnisches zur App
    Die App sammelt anonymisierte Daten zu Abstürzen und ein paar definierter Ereignisse über App-Insights und App-Center (Daten werden bis zu 90 Tage gespeichert).


    Danksagung
    An dieser Stelle auch Danke an dachsei und MaxH
    Sie unterstützen das Projekt schon ne Weile und haben zum Beispiel die SystemB unterstützung (aktuell noch eigener Branch) oder auch Unit-Tests eingefügt.


    Falls interesse an der Technikerdoku besteht, kann ich die auch gern hochladen. Es steht aber eig nix drin was nicht schon bekannt ist^^
    Angehängte Dateien
    Zuletzt geändert von thewhobox; 18.09.2021, 16:18.
    OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

    #2
    Was differenziert das Tool von der ETS, außer das es ‚kostenfrei‘ ist?

    Kommentar


      #3
      Bzw. brauche ich trotzdem die ETS?

      Kommentar


        #4
        Meine Software ist von der ETS unabhängig.
        Sie muss nicht parallel installiert sein oder so.
        Sie baut auch nicht auf Bibliotheken der ETS auf.

        Die Kaenx ist eine komplette selbstentwicklung.


        Unterscheiden tut es sich vor allem im auslesen und erkennt von Geräten.
        Zusätzlich können DIY Hersteller hier khen Grauzone eigene Geräte veröffentlichen mit eigenen Hersteller ID wenn es nötig ist.
        OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

        Kommentar


          #5
          Hallo,

          ich bin echt beeindruckt.
          Wieviele Thread es schon gab, wo sich eine ETS Alternative gewünscht wurde...

          Danke fürs Teilen!

          Gruß,
          Hendrik

          Kommentar


            #6
            Cool, freue mich wenn wir hier etwas beitragen können.

            Kommentar


              #7
              Zitat von proggerKA Beitrag anzeigen
              In den letzten Wochen hab ich viel umgebaut um auch DIY Produkte besser zu unterstützen. So wird es bald möglich sein auch KONNETKTING Geräte zu importieren und zu parametrieren.

              OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

              Kommentar


                #8
                Zitat von proggerKA Beitrag anzeigen
                Unter "Weitere Links" bitte zuerst das Herausgeberzertifikat installieren.
                (!!zwingend unter "Lokaler Computer" im Speicher "Vertrauenswürdige Stammzertifizierungsstellen")
                das ist schon heftig, das weißt du oder?
                Das musst du ändern.
                OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                Kommentar


                  #9
                  Ing-Dom es funktioniert halt nicht wenn man das Zertifikat woanders installiert. Es gibt auch eine Version die im Microsoft Store zu finden ist, aber im Store braucht es immer ewig bis etwas hochgeladen und von Microsoft freigeschaltet wurde.
                  Um schnell Sachen zu testen war das die beste Möglichkeit.

                  Man muss auch bedenken, dass es eine Alpha Version ist und noch nix für den produktiven Einsatz.
                  ​​​​​​​Für den ersten Release wird das natürlich geändert.
                  OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

                  Kommentar


                    #10
                    mal ne Frage.

                    Ich denke gerade über Firmware-Update von Geräten mit thelsing/knx Stack nach.
                    Der weg über knxprods ist mir zu komplex.
                    Ich würde gerne über memorywrite (oder UserMemoryWrite oder ExtendedMemoryWrite) die Daten aufs Gerät schreiben.
                    Leider musste ich feststellen das Falcon in der Community-Variante kein MemoryWrite kann

                    Aber dein kaenx.connect könnte ich ja in eine einfache .net Update-Anwendung integrieren - memorywrite ist drin und usermemorywrite sollte sich leicht hinzufügen lassen.

                    Oder - und jetzt wirds eigentlich interessant - hast du mal über eine Plug-In Schnittstelle in Kaenx nachgedacht?
                    OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                    Kommentar


                      #11
                      Ing-Dom mal ne Antwort...

                      Das liese sich sehr leicht in die Kaenx.Konnect einpflegen. Man müsste dann in BusDevice MemoryWrite eine Abfrage einfügen, in der nach der Adresse des Speichers geprüft wird und jenachdem dann automatisch ein MemoryWrite oder UserMemoryWrite abschickt.

                      Ein Plugin-System war in Überlegung. Allerdings erlaubt das Microsoft in UWP-Apps nicht.
                      Bei der Neuentwicklung mit .Net Maui muss man dann wieder neu schauen, wie das gut auch Plattformübergreifend geht.
                      OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

                      Kommentar


                        #12
                        boah, dieses async await Zeug verknotet mir das Hirn.
                        Nicht mal das simpelste Beispiel kann man debuggen. Da stepst du durch, dann sprint er aus der Methode, macht nix mehr und du hast keine Ahnung was nicht geht.

                        Bin wohl etwas eingerostet.

                        Message = "Die Datei oder Assembly "Device.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden."

                        Das nuget package Device.Net 4.0.0.0 ist installiert .


                        Code:
                        private void button1_Click(object sender, EventArgs e)
                        {
                        knx();
                        }
                        
                        private async Task knx()
                        {
                        Kaenx.Konnect.Connections.IKnxConnection _connIp = new Kaenx.Konnect.Connections.KnxIpTunneling("192.168. 178.101", 3671);
                        
                        await _connIp.Connect();
                        
                        BusDevice dev = new BusDevice("1.1.2", _connIp);
                        await dev.Connect();
                        byte[] data = await dev.MemoryRead(0, 16);
                        string mask = await dev.DeviceDescriptorRead(); //Returns Mask Version like MV-0701, MV-07B0, ...
                        //byte[] serialbytes = await dev.PropertyRead("DeviceSerialNumber"); //Returns SerialNumber of Device as Byte Array
                        await dev.Restart();
                        await dev.Disconnect();
                        }
                        Zuletzt geändert von Ing-Dom; 30.07.2021, 18:06.
                        OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                        Kommentar


                          #13
                          Ja, Debuggen von async ist nicht leicht, aber wenn man sich daran geöhnt geht es leicht.
                          Ich hatte mit Visual Studio und async bisher nie große Probleme.

                          Hab grad mal ein neues Projekt erstellt, mit deinem Code von oben.
                          Bei mir kommt keine Fehlermeldung
                          Device.Net wird auch als abhängigkeit von Kaenx.Konnect installiert.

                          Wenn du mir das Projekt schickst kann ich mir es gern mal anschauen was da schief läuft.
                          OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

                          Kommentar


                            #14
                            Zitat von proggerKA Beitrag anzeigen
                            Wenn du mir das Projekt schickst kann ich mir es gern mal anschauen was da schief läuft.
                            mach ich mal, aber ich glaube fast dass es eher an der Umgebung liegt.
                            Ich hab einfach nur um die Kaenx.Konnekt eine Projektmappe erstellt und eine .Net Forms Anwendung dazu mit einem Button einfach um mal quick&dirty den memory write auszuprobieren war das Ziel.

                            https://github.com/SirSydom/Test_KaenxKonnekt

                            es ist ü
                            brigens diese Zeile, die die Exception auslöst:
                            public ReceiverParserDispatcher()
                            {
                            ....
                            Type[] types = Assembly.GetExecutingAssembly().GetTypes();
                            Zuletzt geändert von Ing-Dom; 30.07.2021, 21:12.
                            OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                            Kommentar


                              #15
                              Hallo Ing-Dom ,
                              ich konnte den Fehler zumindest bei mir nachstellen
                              Warum das so ist, konnte ich leider nicht auf die stelle rausbekommen, nur das hier der Fehler entsteht:
                              https://github.com/thewhobox/Kaenx.K...patcher.cs#L18
                              Und laut Fehlermeldung es mit "Device.Net" zusammenhängt

                              Lösung bei mir:
                              Füge über Nuget einfach "Device.Net" 4.0.0 in der Forms Anwendung hinzu.

                              Evtl. hängt es damit zusammen, das du eine Forms App hast (FullFramework) und die Lib netstandard2.0 ist. (Ja ich weiß, dass netstandard für net4.7.2 nutzbar ist, aber ich kenne nicht die ganzen Libs innerhalb von Kaenex.Konnect)

                              thewhobox
                              In Zeile 20 könnte man auch herrlich LINQ schreiben ^^
                              var parserTypes = types.Where(t => t.IsClass
                              && !t.IsNested
                              && t.Namespace.Equals("Kaenx.Konnect.Parser"));
                              Aber sonst, weiter so

                              Kommentar

                              Lädt...
                              X