Merge pull request #4771 from wled/fix-4643

Fix for #4643 - Missing MQTT updates
This commit is contained in:
Blaž Kristan
2025-09-17 12:20:41 +02:00
committed by GitHub
2 changed files with 11 additions and 2 deletions

View File

@@ -349,8 +349,13 @@ void initServer()
if (verboseResponse) {
if (!isConfig) {
lastInterfaceUpdate = millis(); // prevent WS update until cooldown
interfaceUpdateCallMode = CALL_MODE_WS_SEND; // schedule WS update
serveJson(request); return; //if JSON contains "v"
interfaceUpdateCallMode = CALL_MODE_WS_SEND; // override call mode & schedule WS update
#ifndef WLED_DISABLE_MQTT
// publish state to MQTT as requested in wled#4643 even if only WS response selected
publishMqtt();
#endif
serveJson(request);
return; //if JSON contains "v"
} else {
configNeedsWrite = true; //Save new settings to FS
}

View File

@@ -59,6 +59,10 @@ void wsEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventTyp
if (!interfaceUpdateCallMode) { // individual client response only needed if no WS broadcast soon
if (verboseResponse) {
#ifndef WLED_DISABLE_MQTT
// publish state to MQTT as requested in wled#4643 even if only WS response selected
publishMqtt();
#endif
sendDataWs(client);
} else {
// we have to send something back otherwise WS connection closes