enocean
enocean copied to clipboard
Communicator: UTE teaching / base_id crasesh when a callback is registered
When the Communicator (Serial or TCP) is created with a callback, the "base_id" getter stops working if the value has not been set previously.
When a callback is set on the Communicator, the receive queue is never filled with messages. They are only pushed to the registered callback. This causes the wait loop of the "base_id" getter to never receive the response from the module as the receive loop in the getter only queries this queue.
As result, the creation of the UTE response package fails because the "create_response_packet" method of the packet receives a "sender_id" value of "None".
This even crashes the main run loop and nothing can be received anymore.