diff --git a/src/knx/bau_systemB_device.cpp b/src/knx/bau_systemB_device.cpp index 37289af..25a7e3b 100644 --- a/src/knx/bau_systemB_device.cpp +++ b/src/knx/bau_systemB_device.cpp @@ -69,8 +69,21 @@ void BauSystemBDevice::sendNextGroupTelegram() if (flag != ReadRequest && flag != WriteRequest) continue; + if (flag == WriteRequest) + { +#ifdef SMALL_GROUPOBJECT + GroupObject::processClassCallback(go); +#else + GroupObjectUpdatedHandler handler = go.callback(); + if (handler) + handler(go); +#endif + } if (!go.communicationEnable()) + { + go.commFlag(Ok); continue; + } SecurityControl goSecurity; goSecurity.toolAccess = false; // Secured group communication never uses the toolkey. ETS knows all keys, also the group keys. @@ -113,14 +126,17 @@ void BauSystemBDevice::updateGroupObject(GroupObject & go, uint8_t * data, uint8 memcpy(goData, data, length); - go.commFlag(Updated); + if (go.commFlag() != WriteRequest) + { #ifdef SMALL_GROUPOBJECT - GroupObject::processClassCallback(go); + GroupObject::processClassCallback(go); #else - GroupObjectUpdatedHandler handler = go.callback(); - if (handler) - handler(go); + GroupObjectUpdatedHandler handler = go.callback(); + if (handler) + handler(go); #endif + } + go.commFlag(Updated); } bool BauSystemBDevice::configured()