Zitat von henfri
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
OpenKNX NUKI Bridge ???
Einklappen
X
-
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
---------------------
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
-
spontan würde ich auf die RX und TX Pins für die BCU tippen. Sind die definiert, und wenn ja, wo und wie
Kommentar
-
Ausser hier gibt es keine spezielle Definition.
voidsetup()
{
knx.setButtonISRFunction(myButtonPressed);
Serial2.begin(19200); // KNX, pin 16,17 on EPS32
...
...
Esp32PlatformknxPlatform(&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
-
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-L260Zuletzt geändert von Ing-Dom; 03.10.2024, 20:14.
Kommentar
-
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);
So läuft es jetzt zumindest erst mal.
Zuletzt geändert von Techi; 04.10.2024, 07:36.
Kommentar
-
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
-
Zitat von Techi Beitrag anzeigendann bringt das setzen von KNX_UART_RX_PIN und KNX_UART_TX_PIN so für den ESP32 nichts.
Zitat von Techi Beitrag anzeigenAlso entweder hat da jemand das "Example" kaputt gebastelt oder es hat noch nie funktioniert.
Darfst gern ein PR machen
Zitat von Techi Beitrag anzeigenwobei ich mir nun nicht sicher bin ob nun wirklich der Hardware UART und keine Software Serial verwendet wird.
Zitat von Techi Beitrag anzeigenDann 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.
Kommentar
-
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
-
weil das in dem andere Thread eigentlich Offtopic ist, da gehts ja um den knx stack, hier...
Zitat von Techi Beitrag anzeigenMuss 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.
Kommentar
-
Zitat von Ing-Dom Beitrag anzeigen(warum hier die KNX_SERIAL Pins und viele weitere fehlen... schau ich mir gerade an)
ok, -1 bei Serial.begin scheint im esp arduino core zu bedeuten, dass die default pins verwendet werden !
Kommentar
-
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
-
Zitat von Techi Beitrag anzeigendas z.B. "lib" in OGM-Common leer bleibt
Zitat von Techi Beitrag anzeigenes aber über die platformio.base.ini & .esp32.ini & .example.ini verweise auf Dateien darin gibt.
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
Kommentar
-
Zitat von Techi Beitrag anzeigenich hab halt erst mal wie in der Anleitung angegeben erst mal das OAM-Logic... als Basis verwendet
Zitat von Ing-Dom Beitrag anzeigen2) switche auf den korrekten Branch (hier: espdev)
3) führe im OAM restore/Restore-Dependencies-Branch.ps1 aus (rechtsklick => mit powershell ausführen)
Gruß, Waldemar
Kommentar
-
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
Kommentar