Ankündigung

Einklappen
Keine Ankündigung bisher.

Knx Esp32 Server

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

    Knx Esp32 Server

    Hallo Community,

    ich wollte euch heute mein neues Projekt (https://github.com/AndreasMainz/Knx_Esp32_Server.git) vorstellen ein KNX Esp32 Server, den man als Mqtt Bridge und beispielsweise zur Rolladensteuerung verwenden kann.
    Der ESP Server ist auch auf der Ethernetseite kabelgebunden und verwendet kein WLAN.
    Alle nicht zeitkritischen Anwendungen sind auf den zweiten Core ausgelagert, sodass die KNX Task nicht gestört werden kann.
    Zur Sicherheit habe ich hier eine Laufzeitüberwachung eingebaut, die den Benutzer zur Not über eine mqtt Message über die erhöhte Laufzeit benachrichtigt.
    Ich weiß, dass dieses Forum nicht gut auf den ESP zu sprechen ist, wegen seiner großen Stromaufnahme , aber die Gerüchte, dass das serielle Interface nicht korrekt funktioniert, kann ich jetzt nicht bestätigen.
    Der ESP Server basiert auf der Platine WT32-ETH01, welche man für ca 11 € in der Bucht kaufen kann.
    Die Stromversorgung wird über ein USB to UART Interface gewährleistet, die interne 5 Volt Stromversorgung des tpuart wird nicht verwendet, so dass hier auch keiner Stromversorgung Probleme entstehen können.
    Ich habe mal das gesamte Projekt wie immer auf github gepostet, die Zeitsteuerung für die Rolladen und das Web-Interface sind noch nicht fertig, vielleicht hat ja jemand hier aus dem Forum Lust daran mitzuarbeiten.
    Ebenso passiert der KNX driver auf der original KNxdevice Software von Franck Marini und nicht auf der Konnecting Erweiterung, da ich die Parameter via Webinterface im Spiffs speichere.
    Das Gute an der kabelgebundenen Lösung ist, dass der KNX Server jederzeit über eine entsprechende IP-Adresse erreichbar ist, man braucht kein WLAN zu booten.
    Ansonsten habe ich versucht, alle Callback Funktionen so kurz wie möglich zu machen und habe ganz auf Stringverarbeitung verzichtet. Seitdem läuft die ganze Sache sehr stabil.
    Als nächstes möchte ich noch ein Mqtt Laufband vorstellen, über das ich alle Meldungen im Haus verschicke und anzeigen lassen kann. Dazu nächste Woche mehr.
    DSC07184.jpg DSC07183.jpg DSC07181.jpg
    Ich würde mich mal über eine Mitarbeit hier aus dem Forum freuen, gerade meine Talente in der c + + Programmierung sind nur etwas begrenzt 😉.
    Was noch anzumerken ist, dass der KNX device Treiber für die Initialisierung der Tpuart gepatcht werden muss, das entsprechende File liegt mit dem repo.
    Ich würde mich über eine Rückmeldung freuen, wenn Interesse besteht, verschicke ich auch gerne Platinen zum Aufbau.

    Gruß aus Mainz
    Andreas
    Zuletzt geändert von odysee_2002; 21.11.2021, 14:15.

    #2
    Hallo,

    nachdem das Echo auf den Knx Server mit ESP32 so groß ist 😪, habe ich mich doch entschlossen, das gleiche mit dem neuen RP2040 nochmal umzusetzen.
    Ich habe mich schon in den RP2040 eingelesen und sehr schön finde ich, dass er ein SWD mit on Board hat, das hat beim ESP32 nie richtig geklappt mit dem Debuggen, da erhoffe ich mit vom RP2040 mehr. Besonders vielversprechend finde ich die 2 neuen PIO's mit denen man sich jede denkbare Peripheral selbst zusammen bauen kann, das ich echt super.
    Sobald ich fertig bin, werde ich den Knx RP2040 Server posten, dauert aber noch, da ich ja auch neue Platinen entwerfen muss. Aber für die Corona Zeit ein schönes Projekt..

    Gruß

    Kommentar


      #3
      Hallo,

      da ich nicht verstanden habe, was dein KNX Server nun genau macht hab ich mir mal den Code auf github angesehen.
      Das sieht alles komplett hardcoded aus. (Ein Rollo, Zeit, Datum, Luftdruck, und Li1-4?)
      Es wird auch nirgendswo darauf hingewiesen, welche Bibliotheken alles verwendet werden.

      Das sieht halt alles nach genau deinen Bedürfnissen aus und ist somit nicht für die breite Masse.
      Zumal das Einrichten über Web für KNX Geräte nicht wirklich geeignet ist. Wie dokumentierst du das?
      Ich bezweifle auch, dass der Umstieg auf den RP2040 das ändern wird.
      Auch der Anschluss von KNX, Ethernet und USB wird in vielen Verteiler oder Dosen schier unmöglich.

      Um das für alle Interessanter zu machen, sollten die Parameter per ETS einstellbar sein und/oder die Applikation sehr flexibel sein.
      Den USB obsolet machen für die Stromversorgung und auf 24V mit Wandler setzen oder vll auch über POE wenn das geht.

      Gruß Mike


      P.s.: Mir ist immer noch nicht klar, was das Projekt nun als "Server" macht. Es ist aktuell eher ein Gateway oder? Mqtt <-> KNX
      OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

      Kommentar


        #4
        Hallo Mike,
        auch zu diesem Post wollte ich mich noch mal melden: in der Tat ist der Begriff KNX Server nicht gerade passend, gedanklich hatte ich eher an ein Logikbaustein gedacht, der zum Beispiel die zeitliche Steuerung der Rollladenautomatik übernimmt.
        Der Begriff ETS Server ist gedanklich eher aus der Tatsache entstanden, dass die kleine Platine Hardwired mit einem Netzwerkkabel verbunden ist und damit permanent aus dem Netz erreichbar ist, um die vorgesehenen Parameter zu ändern.
        Auf dem ersten Blick sehen die Gruppenadressen hardcoded aus, man kann jedoch die Werte bevor man Knx.init() aufruft noch mit neuen Werten überschreiben, die man durch das Webinterface bekommen kann. Dies ist aktuell in der hochgeladenen Version noch nicht realisiert, das werde ich aber nachrüsten, Beispiele hierzu kann man in älteren Git Repos bereits finden.
        Hinweise, welche Treiber ich in welchen Versionen verwendet habe werde ich noch mal in der Beschreibung ergänzen.
        Meine Strategie ist es, nicht die ETS als Mittel der Parametrisierung zu verwenden, sondern ein Webinterface , welches man mit jedem x-beliebigen Browser aufrufen kann, dies finde ich sogar noch universeller als es mit der ETS Version zu tun.
        Leider hat diese Strategie hier im Forum noch keine Anhänger gefunden. Stattdessen quält man sich lieber damit, Parameter und Applikationen wie in der ETS in die Module runterladen zu können.
        Der Plan, von einem ESP32 auf den Rp2040 umzusteigen passierte darauf, dass ich lange mit dem ESP32 Laufzeit Probleme bekommen hatte, die aber in der letzten Version, in der ich konsequent alle DebugInformationen aus dem Code entfernt habe, sowie die String Verarbeitung (welches dynamisch Speicher allokiert und eigentlich eine eigene Klasse ist) auf Char Arrays umgestellt habe, verschwunden sind.
        Meine Erfahrung ist es, dass es relativ einfach ist, eine funktionierende Version zu erstellen, aber es ist sehr schwer, diese so zu gestalten, dass sie auf Dauer fehlerfrei funktioniert und stabil ist und nicht abstürzt.
        Gruß Andreas

        Kommentar


          #5
          Zitat von odysee_2002 Beitrag anzeigen
          welches man mit jedem x-beliebigen Browser aufrufen kann, dies finde ich sogar noch universeller als es mit der ETS Version zu tun.
          und genau damit machst du den Vorteil von KNX wieder zunichte.
          Wenn jetzt jedes KNX Gerät über ne eigene Webseite die sie selbst hostet eingerichtet werden müsste, ich es verdammt schwer nach ein paar Wochen oder Montagen wieder Verbindungen (gedanklich, warum habe ich das wie gemacht) herzustellen.
          In der ETS siehst du alle Verknüpfungen auf ein mal und misst nicht erst die Webseite aufrufen um zu schauen, ob das KO schon verbunden ist.

          Und von quälen ist da auch nicht die Rede.
          Die Applikationen von mumpf (als ein Beispiel) sind sehr gut strukturiert und auch leicht verständlich.
          Der Stack von thesing ist auch sehr mächtig und bietet vieles um das Parametrieren zu beschleunigen/verhindern/unterschiedliches Übertragen.
          Wenn ich mir vorstelle, ich müsste die ganzen Parameter und Verknüpfungen händisch in nem WebInterface einrichten, hätte ich schon keine Lust mehr auf das Modul^^

          (Nicht betrachtet auch Linien-Koppler, die manuell gepflegt werden müssen)
          Das ist allerdings nur mal meine Meinung
          Wenn das bei dir gut funktioniert und es gut dokumentierst ist es ja auch gut.
          OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

          Kommentar


            #6
            Zitat von odysee_2002 Beitrag anzeigen
            Hallo Community,

            ich wollte euch heute mein neues Projekt (https://github.com/AndreasMainz/Knx_Esp32_Server.git) vorstellen ein KNX Esp32 Server, den man als Mqtt Bridge und beispielsweise zur Rolladensteuerung verwenden kann.
            Der ESP Server ist auch auf der Ethernetseite kabelgebunden und verwendet kein WLAN.
            Alle nicht zeitkritischen Anwendungen sind auf den zweiten Core ausgelagert, sodass die KNX Task nicht gestört werden kann.
            Zur Sicherheit habe ich hier eine Laufzeitüberwachung eingebaut, die den Benutzer zur Not über eine mqtt Message über die erhöhte Laufzeit benachrichtigt.
            Ich weiß, dass dieses Forum nicht gut auf den ESP zu sprechen ist, wegen seiner großen Stromaufnahme , aber die Gerüchte, dass das serielle Interface nicht korrekt funktioniert, kann ich jetzt nicht bestätigen.
            Der ESP Server basiert auf der Platine WT32-ETH01, welche man für ca 11 € in der Bucht kaufen kann.
            Die Stromversorgung wird über ein USB to UART Interface gewährleistet, die interne 5 Volt Stromversorgung des tpuart wird nicht verwendet, so dass hier auch keiner Stromversorgung Probleme entstehen können.
            Ich habe mal das gesamte Projekt wie immer auf github gepostet, die Zeitsteuerung für die Rolladen und das Web-Interface sind noch nicht fertig, vielleicht hat ja jemand hier aus dem Forum Lust daran mitzuarbeiten.
            Ebenso passiert der KNX driver auf der original KNxdevice Software von Franck Marini und nicht auf der Konnecting Erweiterung, da ich die Parameter via Webinterface im Spiffs speichere.
            Das Gute an der kabelgebundenen Lösung ist, dass der KNX Server jederzeit über eine entsprechende IP-Adresse erreichbar ist, man braucht kein WLAN zu booten.
            Ansonsten habe ich versucht, alle Callback Funktionen so kurz wie möglich zu machen und habe ganz auf Stringverarbeitung verzichtet. Seitdem läuft die ganze Sache sehr stabil.
            Als nächstes möchte ich noch ein Mqtt Laufband vorstellen, über das ich alle Meldungen im Haus verschicke und anzeigen lassen kann. Dazu nächste Woche mehr.
            DSC07184.jpg DSC07183.jpg DSC07181.jpg
            Ich würde mich mal über eine Mitarbeit hier aus dem Forum freuen, gerade meine Talente in der c + + Programmierung sind nur etwas begrenzt 😉.
            Was noch anzumerken ist, dass der KNX device Treiber für die Initialisierung der Tpuart gepatcht werden muss, das entsprechende File liegt mit dem repo.
            Ich würde mich über eine Rückmeldung freuen, wenn Interesse besteht, verschicke ich auch gerne Platinen zum Aufbau.

            Gruß aus Mainz
            Andreas
            When using the KNxdevice library, it fails to compile on ESP32S. Can you explain how to organize these source codes, thank you.

            Kommentar

            Lädt...
            X