I have looked through the source code and found this in HomeMaticCentral.cpp:
int64_t time = BaseLib::HelperFunctions::getTime();
bool requestReceived = false;
while(waitIndex < 1000)
{
receivedPacket = _receivedPackets.get(peer->getAddress());
if(receivedPacket && receivedPacket->timeReceived() > time && receivedPacket->payload()->size() > 1 && receivedPacket->payload()->at(0) == 0 && receivedPacket->destinationAddress() == 0 && receivedPacket->controlByte() == 0 && receivedPacket->messageType() == 0x10)
{
std::string serialNumber((char*)&receivedPacket->payload()->at(1), receivedPacket->payload()->size() - 1);
if(serialNumber == peer->getSerialNumber())
{
requestReceived = true;
break;
}
else GD::out.printWarning("Warning: Update request received, but serial number (" + serialNumber + ") does not match.");
}
std::this_thread::sleep_for(std::chrono::milliseconds(50));
waitIndex++;
}
if(!requestReceived || !receivedPacket)
{
peer->setPhysicalInterfaceID(oldPhysicalInterfaceID);
_updateMutex.unlock();
_updateMode = false;
_bl->deviceUpdateInfo.results[id].first = 7;
_bl->deviceUpdateInfo.results[id].second = "No update request received.";
GD::out.printWarning("Warning: No update request received.");
return;
}
From my understanding I get a packet which matches (receivedPacket && receivedPacket->timeReceived() > time && receivedPacket->payload()->size() > 1 && receivedPacket->payload()->at(0) == 0 && receivedPacket->destinationAddress() == 0 && receivedPacket->controlByte() == 0 && receivedPacket->messageType() == 0x10)
but I still get the message: “No update request received.”
Do you want some log files?