commit 5a7ace4af47fd9b05a0e9b64b2c98fcd1381d2e3 Author: Patrick Haßel Date: Tue Oct 8 17:37:02 2024 +0200 Initial WIP diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..938b6ab --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/.pio/ +/.idea/ diff --git a/platformio.ini b/platformio.ini new file mode 100644 index 0000000..aff9a4b --- /dev/null +++ b/platformio.ini @@ -0,0 +1,5 @@ +[env:KnxEsp] +platform = espressif32 +board = esp32dev +framework = arduino +lib_deps = https://github.com/thorsten-gehrig/arduino-tpuart-knx-user-forum diff --git a/src/Group.h b/src/Group.h new file mode 100644 index 0000000..1d36d5a --- /dev/null +++ b/src/Group.h @@ -0,0 +1,28 @@ +#ifndef GROUP_H +#define GROUP_H + +class Group { + +public: + + uint8_t main = 0; + + uint8_t mid = 0; + + uint8_t sub = 0; + + uint8_t dpt = 0; + + static Group groups[500]; + + static void write(uint8_t main, uint8_t mid, uint8_t sub) { + for (auto group: groups) { + if (group.main == main && group.mid == mid && group.sub == sub) { + group. + } + } + } + +}; + +#endif diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..c718a1a --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,38 @@ +#include + +#include + +#include "Group.h" + +KnxTpUart knx(&Serial1, "15.15.20"); + +void knxSetup(); + +void knxLoop(); + +void setup() { + Serial.begin(112500); + delay(500); + Serial.print("\n\n\nStartup\n"); + knxSetup(); +} + +void loop() { + knxLoop(); +} + +void knxSetup() { + Serial1.begin(19200, SERIAL_8E1); + knx.uartReset(); + knx.setListenToBroadcasts(true); +} + +void knxLoop() { + auto type = knx.serialEvent(); + if (type != KNX_TELEGRAM) { + return; + } + KnxTelegram *telegram = knx.getReceivedTelegram(); + Group::write(telegram->getTargetMainGroup(), telegram->getTargetMiddleGroup(), telegram->getTargetSubGroup(),telegram->getPayloadLength()); + Serial.printf("%d/%d/%d\n", telegram->getTargetMainGroup(), telegram->getTargetMiddleGroup(), telegram->getTargetSubGroup()); +}