Ankündigung

Einklappen
Keine Ankündigung bisher.

DotKNXt - KNX mit dem .Net-Framework

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

    DotKNXt - KNX mit dem .Net-Framework

    Hallo zusammen,

    ich bin ganz neu hier und wollte kurz mein kleines, privates Projekt vorstellen: http://www.winnedia.de

    Als Diplom-Informatiker und .Net-Softwarearchitekt habe ich vor ein paar Monaten begonnen für mein KNX verkabeltes Haus einen Homeserver zu schreiben. Warum? Eigentlich nur, weil es mich brennend interessiert hat wie das ganze im Hintergrund funktioniert und weil ich denke als reiner Software-Mensch eine etwas andere SIcht- und Herangehensweise habe als eher Elektrotechnik-denkende Anwender.
    Herausgekommen sind folgende Komponenten:
    • DotKNXt Service
      • Verarbeitet Logiken (geschrieben in C#.Net und der Möglichkeit das komplette Framework zu nutzen)
      • Persistiert Daten
      • Was ein KNX Home Server eben so tut
      • Läuft am Besten auf einem Raspberry PI 2
    • DotKNXt Home Control
      • HTML5 full-responsive Website als Visualisierung
    • DotKNXt Studio
      • Windows Anwendung als IDE (Inteligent Development Environment)
      • Konfiguration von Server und Visualisierung ohne das editieren unzähliger Konfigurationsdateien
      • Editor für Logiken
        • Syntax-Highlighting
        • Syntax-Überprüfung
        • IntelliSense
      • Esf-Import
      • Item- und Visu-Definition per Drag & Drop
      • Item-Monitor
      • ...

    Mein eigenes EFH läuft reibungslos und komplett mit diesem System. Nichts desto trotz ist das System sicherlich nicht über einen Alpha-Status hinaus dennoch glaube ich es wäre lohnenswert weiter daran zu arbeiten. Dafür brauche ich Leute die Spaß daran haben ein neues System "einfach mal auszuprobieren" und daran mitwirken wollen. Die mir z.B. Feedback bzgl. Fehler und fehlender Feature geben. Grad der Feature-Umfang ist natürlich entsprechend der Anforderungen an mein eigenes Haus entstanden.

    Also wer Lust hat mehr über das Projekt zu erfahren, der kann sich gerne bei mir melden. Ich würde mich wirklich freuen.

    Viele Grüße aus Syke
    Maik

    PS: Vielleicht sieht man sich ja auch beim Stammtisch

    #2
    Respekt! Klingt gut!

    Also ich hätte Interesse da mal bisschen mit zu testen!

    Ist der RasPi denn nötig? Wenn alles .NET ist sollte das ja auf jedem Win-Rechner lauffähig sein, richtig?

    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

    Kommentar


      #3
      Hört sich sehr interessant an. Ich vermute es ist dann auch möglich eigene Plugins bzw. Logiken in C# zu schreiben?! Habe in der Firma selbst manchmal mit C# zu tun und könnte (bei ausreichend Zeit) vermutlich auch etwas beitragen.

      Was ist denn schon an Schnittstellen vorhanden? Für mich wäre 1-wire eigentlich das wichtigste..
      So oder so würde ich mich aber auch als Tester melden. Zuerst vielleicht am Win10-Laptop und später auch gerne auf meinem RasPi.

      Kommentar


        #4
        Hättest du ein paar Screenhsots, wie das bei dir aussieht?

        Kommentar


          #5
          Hallo zusammen,

          der RasPi ist nicht zwingend notwendig. Allerdings benutze ich einen Redis-Server (http://redis.io/) um die Updates im Bus an die Clients (Visu und Studio) zu publizieren. Hier gibt es auch einen inoffiziellen Port für Windows (https://github.com/MSOpenTech/redis). Ich habe das selber noch gar nicht getestet. Aber werde ich heute Abend mal tun.
          Sollte das klappen (wovon ich ausgehe) kann man das ganze System auch komplett unter Windows laufen lassen.

          EDIT: Ich muss mich korrigieren. Die Visu bekommt ihre Updates über Webdis. Dies läuft offenbar nur auf Linux Systemen. (irgendwie etwas seltsam das eine .Net Anwendung zwingend einen Linux-Server benötigt. Muss ich wirklich zugeben ). Ich werde mich mit der Zeit nach Alternative umsehen. Aber z.Z. benötigt man irgendeinen Linux-Server im Netzwerk. Werde bei Bedarf mal ein Image zusammenstellen welches man als virtuelle Maschiene laufen lassen kann.

          Ja es gibt die Möglichkeit Plugins zu schreiben die auch dynamisch mit eingebunden werden. Allerdings bin ich hier noch nicht soweit eine einfache Schnittstelle anzubieten. Da muss man dann schon ein wenig C# KnowHow haben. Es ist aber ohne Probleme möglich aus einer Logik eine andere Logik aufzurufen. Damit ist das "PlugIn" zwar nicht über Projektgrenzen nutzbar, aber da bin ich wie gesagt dran. Ansonsten kann man, wie gesagt, man kann das komplette .Net-Framework nutzen (Threads, Tasks, Timer, objektorientierte Strukturen usw.).

          Momentan unterstütze ich nur KNX (Dpt1, 2, 3, 5, 5001, 9, 20, 20.001). Alle weiteren Datenpunkte kann ich schnell nachliefern. Auch habe ich die Architektur so gehalten, dass es "problemlos" möglich ist, weitere Umsysteme einzubinden (keine harten Abhängigkeiten zum KNX-Protokoll). Ich selber habe in meinem Haus ausschliesslich KNX und HTTP Schnittstellen.
          1-Wire wäre allerdings ein netter Punkt auf meiner Liste den ich sehr gerne angehen würde. Es ist halt verhältnismäßig schwierig etwas ins Blaue zu programmieren ohne tatsächlich testen zu können

          Alle Screenshots auf meiner Homepage (www.winnedia.de) sind vom Live-System. Was interessiert dich konkret?

          Viele Grüße
          Zuletzt geändert von Winnedia; 11.04.2016, 10:47.

          Kommentar


            #6
            Da es in der Visu Graphen gibt: Wie werden die Daten gespeichert bzw. welche Datenbank verwendest du?
            Ein weiteres nettes Feature wäre eine fertige Lösung für eine Zeitschaltuhr.

            Für 1-wire gibt es eine .NET-API, die Umsetzung sollte demnach nicht allzu problematisch sein. Wenn du soweit bist würde ich mir dein Projekt mal anschauen um zu entscheiden ob ich mich als Helfer und Tester beteiligen möchte.

            Kommentar


              #7
              Also ich habe mich gestern einmal dran gesetzt und werde heute Abend eine kurze Anleitung sowie ein Script zur Verfügung stellen können um das System komplett auf einem Windows Rechner laufen zu lassen.
              So kann man einfach mal rumspielen. Noch habe ich nicht den Anspruch mit meiner Software existierende Steuerungen abzulösen

              Als Datenbank nutze ich SQLite.

              Zum Thema Zeitschaltuhr:
              Meine Logiken lassen sich durch folgende Trigger auslösen:
              - ScheduleTrigger("CronExpression") - Definition einer Cron-Expression (würde ich mit einer Zeitschaltuhr gleichsetzen)
              - ItemTrigger("ItemId") - Auslösung bei Zustandsänderung eines Items
              - AttrubteTrigger("AttributeId") - Die Logik wird ausgeführt, wenn ein Item ein Attribute "AttributeId" besitzt und sich der Zustand des Items ändert

              Auf Attribute bin ich bisher nicht eingegangen. In einem Attribut können sich Item-spezifische Meta-Informationen gemerkt werden (int, double, string, ItemReferenz). Besonders interessant, wie ich finde, sind AttributeTrigger auf ItemReferenz-Attribute. Ein ItemReferenz-Attribut kann andere Items referenzieren.

              Ein Beispiel aus meinem Haus:
              - Das Item für das Schalten der Taste 4 meines Tasters in der Küche enthält ein ItemReferenz-Attribut ("SchaltItems") mit Referenz auf das Schalt-Item für die Deckenlampe..
              - Ich habe eine Logik, die auf das Attribut "SchaltItems" lauscht. Diese iteriert durch die referenzierten Items und setzt diese auf den neuen Zustand des Items, durch das die Logik getriggert wurde.
              - Ergebnis: Taster-Taste wird gedrückt (erhält den Zustand "true"), Deckenlicht geht an (erhält den Zustand "true")

              Diese Logik lässt sich nun für unzählige Zwecke einsetzen. Das Item für das Schalten der Deckenlampe z.B. hat ein ItemReferenz-Attribut ("SchaltItems") welches die Items für den Wert der Umschaltung der Taster-Taster und für die LED des Tasters referenziert. Nun ist es egal, ob die Lampe vom Taster oder von der Visu eingeschaltet wird, der Wert für die Umschaltung und die LED sind immer korrekt.

              Ich bin zuversichtlich, heute Abend eine Anleitung und Skript für das Herstellen der Umgebung bereitstellen zu können.
              Bei Interesse schreibt mir bitte eine Mail, damit ich auch den Link für den Download zukommen lassen kann.

              Kommentar


                #8
                Hi Maik,
                melde Dich doch mal per PN bei mir oder Gerry. Eventuell gibt es eine Form das Ganze auf profesionelle Basis zu stellen. Deine Ideen sind gut und wir suchen immer nach solchen Ideen um da zu investieren udn Dinge zu begleiten.

                Viele Grüße

                Axel

                Kommentar


                  #9
                  Hallo Maik, falls du noch Hilfe bei der Software brauchst kannst du mich gerne kontaktieren. Ich arbeite seit gut 15 Jahren im Bereich Embedded, Automotive und Desktop mit sehr guten Kenntnissen in C, C++, C# sowie einigen Scriptsprachen... Mfg

                  Kommentar


                    #10
                    Hallo zusammen,

                    ich habe nun meine erste Testversion zusammengestellt und kann diese interessierten Testern (Ausprobierern) zur Verfügung stellen. Bitte schreibt mich hierfür direkt an.
                    Die Umgebung läuft komplett auf einem Windows System (zumindest mit Windowss 7 konnte ich es erfolgreich testen).

                    Also: Bei Interesse gern bei mir melden.

                    Viele Grüße
                    Maik

                    Kommentar


                      #11
                      Hallo zusammen,

                      ich habe nun eine länger Stabilisierungsphase eingelegt und kann eine etwas stabilere Version 0.2 anbieten.

                      Aktuell bin ich dabei ein "Getting Started" und eine Online-Demo der Visualierung zu erarbeiten.

                      Bei Interesse gerne direkt bei mir melden. Ich könnte dann einen entsprechenden Download-Link zur Verfügung stellen.

                      Viele Grüße
                      Maik

                      Kommentar


                        #12
                        Bin gespannt.
                        Hat mich beeindruckt auf dem Stammtisch!

                        Kommentar


                          #13
                          Also das würde ich auch seeeeeh gerne mit ausprobieren. Was muss ich denn dafür tun?

                          Viele Grrüße

                          Jan

                          Kommentar


                            #14
                            So ... ich habe nun endlich den Link für die Testversion 0.2 versenden können.
                            Ich bin zuversichtlich das Getting Started aus Word zeitnah auf der Homepage präsentieren zu können.

                            Auch die Demo ist in voller Entwicklung und hoffentlich bald Verfügbar.

                            Viele Grüße
                            Maik

                            Kommentar


                              #15
                              Hallo zusammen,

                              nach einer etwas länger als geplanten Weile nun endlich mal wieder ein Update!

                              Ich habe auf meiner Seite http://www.winnedia.de/ eine Online-Demo meiner Visualisierung bereit gestellt! (oben recht )
                              Warum hat das so lange gedauert? Naja .. ich habe die Demo zum Anlass genommen die SOftware zu 100% von dem Protokoll KNX zu trennen. Die Verbindung zum KNX-Bus ist nun nur noch eine optinale Komponente.

                              Für die Online-Demo habe ich nun anstatt der KNX-Engine eine "Demo-Engine" hinter DOtKNXt gesetzt. Diese generiert für dedizierte Elemente Zufallswerte und reagiert auf Zustandänderungen. Probiert es einfach mal aus

                              Dieser Umbau hatte auch gleich noch einen zweiten possitiven Nebeneffekt. Zusätzlich zur KNX- und Demo-Engine habe ich nun auch noch eine Engine für die Kommunikation über den OW Server gebaut. D.h. auch 1-Wire kann nun über DotKNXt (über einen OW Server) eingebunden werden.

                              Ich freue mich über immer sehr über Feedback.

                              Ausserdem besteht weiterhin die Möglichkeit zu testen, wenn man mag. Dazu sei gesagt: Es geht noch sehr viel schief. Es macht durchaus SInn eine "Teamviewer"-Session o.ä. mit mir zu vereinbaren und das System gemeinsam in Betrieb zu nehmen. Schreibt mich einfach an.

                              Viele Grüße
                              Maik

                              Kommentar

                              Lädt...
                              X