#pragma once #include #include // KNX Group Object Info für Web-API struct KnxGroupObjectInfo { uint16_t goIndex; // Group Object Index (1-based) uint16_t groupAddress; // Gruppenadresse (z.B. 1/2/3 = 0x0A03), 0 wenn nicht zugeordnet uint8_t dptMain; // DPT Haupttyp uint8_t dptSub; // DPT Subtyp bool commFlag; // Kommunikations-Flag bool readFlag; // Lese-Flag bool writeFlag; // Schreib-Flag }; class KnxWorker { public: KnxWorker(); void init(); void toggleProgMode(); bool getProgMode(); void setProgMode(bool enabled); void clearSettings(); void loop(); // KNX Gruppenadressen auslesen size_t getGroupObjectCount(); bool getGroupObjectInfo(size_t index, KnxGroupObjectInfo& info); // Gruppenadresse als String formatieren (z.B. "1/2/3") static void formatGroupAddress(uint16_t addr, char* buf, size_t bufSize); private: volatile uint8_t knxResetState_ = 0; volatile uint32_t knxResetAtMs_ = 0; };