Ankündigung

Einklappen
Keine Ankündigung bisher.

OpenKNX NUKI Bridge ???

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

    #16
    Zitat von henfri Beitrag anzeigen
    ESP32-Openknx-Projekt
    aktuell noch nicht. wir arbeiten noch am support wobei theoretisch das wichtigste geht. ich teste selber gerne mit dem esp32 mit dem normalen wifi modul. wenn müsstest du dir meine oam-testapp anschauen. offm-network. kann eth und wifi.
    OpenKNX www.openknx.de | OpenKNX-Wiki (Beta)

    Kommentar


      #17
      Ing-Dom
      mumpf

      Sooo.
      Hatte die letzte Tage mal wieder weniger Zeit als gedacht.
      Bin nun zumindest mit dem Nuki BLE Teik soweit, dass das Schloss gebunden und soweit gesteuert werden kann (UnLock, UnLatch, Lock) und bekomme auch Daten vom Schloss zurück wie z.B. Batterie Status, Schloss Zustand ...
      War aber nicht ganz einfach, da das Nuki BLE Library Projekt Beispiel natürlich nicht funktioniert und erst debuggt werden musste.

      Dachte dann der Rest (KNX) wäre soweit einfach, da ja alles zusammen bereits kompilierbar war.
      Tja, leider auch nicht.

      Der Stack kommt zwar soweit hoch:
      ---------------------
      readMemory
      RESTORED FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
      DataObject api changed, any data stored in flash is invalid.
      expexted DataObject api version: 1, stored api version: FFFF
      ETS has to reprogram PA and application!
      TP is disconnected​
      ---------------------
      Über den Prog-Taster kann ich dann auch zwischen "progmod on" und "progmod off" umschalten, die ProgMod LED zeigt das auch richtig an.

      Ich bekomme aber anscheinend keine Verbindung zum NCN5120 oder was auch immer "TP is disconnected​" bedeuten soll.


      Hab dann als Gegencheck mal nur das unveränderte original Beispiel, ( https://github.com/thelsing/knx/blob...x-demo-diy.ino ) kompiliert und auf den ESP32 geladen, lediglich die GPIOs für LED (GPIO18) und Button (GPIO18) wurden angepasst. Die MicroBCU hängt an GPIO16 und GPIO17 des Boards (NodeMCU ESP32).
      Stromversorgung ist stabil (ca. 20mV Ripple) auf 3,3V

      Leider genau das selbe Ergebnis "TP is disconnected​" Device taucht auch nicht als "im Programmiermodus" in der ETS auf.

      Bevor ich mich (als CPP Noob) nun wieder mal ans debuggen von eigentlich funktionierendem Code ran mache, frag ich lieber nochmal hier was ich noch einfaches machen könnte.

      Zuletzt geändert von Techi; 03.10.2024, 19:27.

      Kommentar


        #18
        spontan würde ich auf die RX und TX Pins für die BCU tippen. Sind die definiert, und wenn ja, wo und wie
        OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

        Kommentar


          #19
          Ausser hier gibt es keine spezielle Definition.
          voidsetup()
          {
          knx.setButtonISRFunction(myButtonPressed);
          Serial2.begin(19200); // KNX, pin 16,17 on EPS32
          ...
          bzw. damit zusammenhängend

          ...
          Esp32Platform
          knxPlatform(&Serial2);
          Bau07B0knxBau(knxPlatform);
          KnxFacade<Esp32Platform, Bau07B0> knx(knxBau);
          ...


          ​Find sonst nichts wo im Example die Uart Pins geändert werden könnten. (siehe auch Kommentar bezüglich KNX, pin 16,17 im Source)
          Das schien mir auch plausibel, da der der ESP32 eh nur 2 Hardware Uarts hat und davon Uart1 (1 und 3) über den USB VCP Chip läuft und somit eh nur Uart2 (16 und 17 also Serial2) übrig bleibt.

          Hab auch wie für Serial2 vorgesehen 16 (RXD am ESP) und 17 (TXD am ESP) verwendet.
          RXD vom ESP32 geht dabei an Pin28 vom NCN5120 (TX Pin MicroBCU) und TXD vom ESP32 an Pin 27 vom NCN5120 (RX Pin MicroBCU)

          Hab mich gerade mal mit nem Logic auf RXD und TXD gehängt.
          Der NCN5120 sendet brav mit 19200 8E1 Daten vom KNX Bus kommend, aus dem ESP32 kommt dagegen gar nix, auch nicht beim Bootup

          Sollte das Example nicht eigentlich out of the Box funktionieren ?
          Zuletzt geändert von Techi; 03.10.2024, 19:57.

          Kommentar


            #20
            das ist eine Fehlannahme.
            wenn die Pins nicht definiert sind, sind die IMO mit -1 initialisiert.
            definiere mal KNX_UART_RX_PIN und KNX_UART_TX_PIN passend.
            Das setzen der PIns hat mgeramb eingebaut - Michael, evtl sollte man hier entweder einen passenden default setzen oder wenigstens eine warning oder irgendwas..

            Schau mal hier

            https://github.com/OpenKNX/knx/blob/...rm.cpp#L13-L24


            und hier

            https://github.com/OpenKNX/knx/blob/...rm.cpp#L37-L42
            im OpenKNX Kontext setzen wir die ganze Pins etc über die hardware.h
            zB so
            https://github.com/OpenKNX/OGM-Commo...re.h#L201-L260
            Zuletzt geändert von Ing-Dom; 03.10.2024, 20:14.
            OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

            Kommentar


              #21
              Dank für dem Hinweis :-)
              Wenn man sich in der esp32_platform.cpp anschaut was da bezüglich Uart passiert, dann bringt das setzen von KNX_UART_RX_PIN und KNX_UART_TX_PIN so für den ESP32 nichts.
              Was aber was bringt, ist die Pins direkt in der Initialisierung im "setup()" mit anzugeben, also mit
              Serial2.begin(19200, SERIAL_8E1, 16, 17);
              Also entweder hat da jemand das "Example" kaputt gebastelt oder es hat noch nie funktioniert.

              So läuft es jetzt zumindest erst mal.





              Zuletzt geändert von Techi; 04.10.2024, 07:36.

              Kommentar


                #22
                Phuuuu, Zwischenstand somit erreicht.
                Bis Montag sollten mein (gebraucht gekauftes KNX / USB) Interface sowie mein Low/Full/High Speed USB Isolator ankommen, damit wird dann das weitere Debuggen/Entwickeln am ESP32 mit TP KNX etwas einfacher. Dann mach ich endlich das Projekt mal soweit fertig, dass irgendetwas funktioniert was man auf GitHub stellen kann.
                Dann wird es noch interessant ob ich einen meiner JLinks zum debuggen am ESP32 gebrauchen kann, befürchte jedoch, das die Konfig mit OpenOCD wieder Tage an Aufwand erfordert, mal sehen ob es das wert ist.

                Zuletzt geändert von Techi; 04.10.2024, 03:35.

                Kommentar


                  #23
                  Zitat von Techi Beitrag anzeigen
                  dann bringt das setzen von KNX_UART_RX_PIN und KNX_UART_TX_PIN so für den ESP32 nichts.
                  doch, das funktioniert, hab ich so auch in Verwendung.

                  Zitat von Techi Beitrag anzeigen
                  Also entweder hat da jemand das "Example" kaputt gebastelt oder es hat noch nie funktioniert.
                  das example-diy wurde wohl beim Einbringen der Möglichkeit des Pin setzen für ESP vergessen anzupassen.
                  Darfst gern ein PR machen

                  Zitat von Techi Beitrag anzeigen
                  wobei ich mir nun nicht sicher bin ob nun wirklich der Hardware UART und keine Software Serial verwendet wird.
                  das ist schon HW UART. Die Pins sind beim ESP ja nahezu frei wählbar beim HW-UART.

                  Zitat von Techi Beitrag anzeigen
                  Dann wird es noch interessant ob ich einen meiner JLinks zum debuggen am ESP32 gebrauchen kann, befürchte jedoch, das die Konfig mit OpenOCD wieder Tage an Aufwand erfordert, mal sehen ob es das wert ist.
                  nur JTAG, die MINI sind auf jeden Fall nicht geeignet AFAIK. die nehmen wir üblicherweise.
                  OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                  Kommentar


                    #24
                    ich hab nur "normale" Segger Jlinks.
                    Aber wenn das schon mal bestätigt damit läuft dann wäre das ja schon mal super.

                    Aktuell bekommen ich aber noch nicht einmal das OpenKNX Framework ans laufen :-(
                    https://knx-user-forum.de/forum/proj...70#post1983870
                    Als nicht "Softie" ist das alles eine mega Einstiegshürde.
                    Das ganze Thema von den ersten Anfängen mit dem zusammensetzen des reinen Testcodes (BLE und KNX) bis heute zum Einrichten von OpenKNX, zieht es sich jetzt schon über knapp 60 Stunden.
                    Ist echt frustrierend.

                    Kommentar


                      #25
                      weil das in dem andere Thread eigentlich Offtopic ist, da gehts ja um den knx stack, hier...

                      Zitat von Techi Beitrag anzeigen
                      Muss ich denn für jedes einzelne Project auf welches in "OAM-TestApp" referenziert wird die Restore-Skripte auführen ???

                      Der Weg zum buildfähigen OAM (OpenKNX Application Module) ist eigentlich nicht so kompliziert. Mit dem ESP bist du halt derzeit noch in einem Work-in-Progress Umfeld unterwegs, daher mag es hier bisweilen nicht ganz so stolperfrei ablaufen.
                      Im Wiki ist der Prozess auch beschrieben:
                      https://github.com/OpenKNX/OpenKNX/w...e-developement

                      1) klone dir ein OAM, zB die OAM-TestApp (idealerweise in einem separatem Ordner, denn auf der selben Ebene werden dann auch die abhängigen OGMs/OFMs etc geklont)
                      2) switche auf den korrekten Branch (hier: espdev)
                      3) führe im OAM restore/Restore-Dependencies-Branch.ps1 aus (rechtsklick => mit powershell ausführen)
                      4) Öffne OAM-TestApp mit VSC, warte ab bis alle Abhängigkeiten geladen sind
                      5) wechsle im VSC auf das richtige Platform IO Environment, in dem Fall wohl mal env:develop_ESP32_TP (auch hier: warten bis alles fertig geladen ist)
                      6) Plattform IO build ausführen (das kleine Häckchen unten in der Leiste
                      7) per Plattform IO upload (der Pfile nach rechts) auf deine HW übertragen
                      8) per Serial Monitor (der Stecker) kannst du mal schauen was das Gerät so tut...

                      Ein evironment bezieht sich idR auf eine konkrete HW bzw HW Konfiguration.
                      in der plattformio.custom.ini im Abschnitt des besagten env findet sicher normalerweise ein flag das die HW-Konfiguration auswählt, in dem Fall BOARD_ESP32_DEV.
                      in der hardware.h sind dann dafür zB Pins definiert​ (warum hier die KNX_SERIAL Pins und viele weitere fehlen... schau ich mir gerade an)

                      Ich hab das hier bei mir jetzt mal mit einem ESP-WROOM-32 hochgezogen parallel zu meinem Geschreibsel hier.
                      Konsole läuft, TP kommt als nächstes.
                      Zuletzt geändert von Ing-Dom; 05.10.2024, 09:09.
                      OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                      Kommentar


                        #26
                        Zitat von Ing-Dom Beitrag anzeigen
                        (warum hier die KNX_SERIAL Pins und viele weitere fehlen... schau ich mir gerade an)
                        mit den RX2 und TX2 Pins hat es jetzt out-of-the-box geklappt - warum verstehe ich selbst gerade nicht
                        ok, -1 bei Serial.begin scheint im esp arduino core zu bedeuten, dass die default pins verwendet werden !
                        OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                        Kommentar


                          #27
                          Aber genau so hab ich es gemacht, hab Schritt für Schritt das so abgearbeitet. (ich hab halt erst mal wie in der Anleitung angegeben erst mal das OAM-Logic... als Basis verwendet.)
                          Es bleibt dabei es ändert sich nichts.
                          Was halt auffällt ist, das z.B. "lib" in OGM-Common leer bleibt es aber über die platformio.base.ini & .esp32.ini & .example.ini verweise auf Dateien darin gibt.


                          Kommentar


                            #28
                            Zitat von Techi Beitrag anzeigen
                            das z.B. "lib" in OGM-Common leer bleibt
                            das ist auch leer, bis auf eine Readme

                            Zitat von Techi Beitrag anzeigen
                            es aber über die platformio.base.ini & .esp32.ini & .example.ini verweise auf Dateien darin gibt.
                            hmm nein. der Verweis geht auf lib/OGM-Common, nicht OGM-Common/lib !

                            lib/OGM-Common ist der symlink, der auf ../../OGM-Common verweisen sollte, wo das restore script das OGM-Common auch geklont haben sollte.

                            Was ist jetzt die konkrete Fehlermeldung die dich bei was aufhält?
                            Sorry falls das schon wo steht verliere den Überblick
                            OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                            Kommentar


                              #29
                              Zitat von Techi Beitrag anzeigen
                              ich hab halt erst mal wie in der Anleitung angegeben erst mal das OAM-Logic... als Basis verwendet
                              Aber Du hast nachdem Du OAM-TestApp gecloned hast, die Schritte nochmal gemacht:
                              Zitat von Ing-Dom Beitrag anzeigen
                              2) switche auf den korrekten Branch (hier: espdev)
                              3) führe im OAM restore/Restore-Dependencies-Branch.ps1 aus (rechtsklick => mit powershell ausführen)
                              Nicht dass Du gedacht hast, die Dateien sind ja schon da, das ist nicht mehr nötig? Es werden immer die entsprechenden Branches gecloned...

                              Gruß, Waldemar
                              OpenKNX www.openknx.de

                              Kommentar


                                #30
                                Nein, nur als Basis erst mal OAM-Logic...
                                Dann explizit OAM-TestApp ausgecheckt dann dort auch die restore/Restore-Dependencies-Branch.ps1​ ausgeführt.

                                Open ■
                                ┬────┴ Restore Dependencies
                                ■ KNX

                                Starting to Restore depended projects...
                                - We are on Windows Build Environment with PowerShell 5.1. √
                                - The script is running with Developer Mode. √
                                - We will use mklink to create symbolic links. √
                                - Reading the dependencies.txt file and processing each line.
                                - Checking if the 'lib' directory exists.
                                - Creating git dependency information for each project file.
                                - Checking, cloning and rebranching the git repositories for each dependency.
                                - CloneRepository - 'knx' Branch 'v1dev' Checked out. √
                                - CloneRepository - 'OFM-ConfigTransfer' Branch 'v1' Checked out. √
                                - CloneRepository - 'OFM-FileTransferModule' Branch 'v1' Checked out. √
                                - CloneRepository - 'OFM-LogicModule' Branch 'v1' Checked out. √
                                - CloneRepository - 'OFM-Network' Branch 'v1dev' Checked out. √
                                - CloneRepository - 'OFM-UsbExchange' Branch 'v1' Checked out. √
                                - CloneRepository - 'OFM-VirtualButton' Branch 'v1' Checked out. √
                                - CloneRepository - 'OGM-Common' Branch 'v1dev-neopixel-draft' Checked out. √
                                - CreateSymbolicLink - Symbolic link created at C:\Users\meyer\Documents\PlatformIO\Projects\OpenK NX\OAM-TestApp\lib\knx with target ..\..\knx √
                                - CreateSymbolicLink - Symbolic link created at C:\Users\meyer\Documents\PlatformIO\Projects\OpenK NX\OAM-TestApp\lib\OFM-ConfigTransfer with target ..\..\OFM-ConfigTransfer √
                                - CreateSymbolicLink - Symbolic link created at C:\Users\meyer\Documents\PlatformIO\Projects\OpenK NX\OAM-TestApp\lib\OFM-FileTransferModule with target ..\..\OFM-FileTransferModule √
                                - CreateSymbolicLink - Symbolic link created at C:\Users\meyer\Documents\PlatformIO\Projects\OpenK NX\OAM-TestApp\lib\OFM-LogicModule with target ..\..\OFM-LogicModule √
                                - CreateSymbolicLink - Symbolic link created at C:\Users\meyer\Documents\PlatformIO\Projects\OpenK NX\OAM-TestApp\lib\OFM-Network with target ..\..\OFM-Network √
                                - CreateSymbolicLink - Symbolic link created at C:\Users\meyer\Documents\PlatformIO\Projects\OpenK NX\OAM-TestApp\lib\OFM-UsbExchange with target ..\..\OFM-UsbExchange √
                                - CreateSymbolicLink - Symbolic link created at C:\Users\meyer\Documents\PlatformIO\Projects\OpenK NX\OAM-TestApp\lib\OFM-VirtualButton with target ..\..\OFM-VirtualButton √
                                - CreateSymbolicLink - Symbolic link created at C:\Users\meyer\Documents\PlatformIO\Projects\OpenK NX\OAM-TestApp\lib\OGM-Common with target ..\..\OGM-Common √

                                Open ■
                                ┬────┴ Restore Dependencies: Done √
                                ■ KNX

                                Kommentar

                                Lädt...
                                X