mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-21 17:56:31 +00:00
Fix discovery on MQTT reconnect
Fix discovery on MQTT reconnect (#12140)
This commit is contained in:
parent
56c15e2e70
commit
cacc8f1eb0
@ -220,13 +220,13 @@ void TasDiscovery(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TasRediscover(void) {
|
void TasRediscover(void) {
|
||||||
TasmotaGlobal.discovery_counter = 1; // Delayed discovery or clear retained messages
|
TasmotaGlobal.discovery_counter = 1; // Delayed discovery or clear retained messages
|
||||||
}
|
}
|
||||||
|
|
||||||
void TasDiscoverInit(void) {
|
void TasDiscoverInit(void) {
|
||||||
if (ResetReason() != REASON_DEEP_SLEEP_AWAKE) {
|
if (ResetReason() != REASON_DEEP_SLEEP_AWAKE) {
|
||||||
Settings.flag.hass_discovery = 0; // SetOption19 - Enable Tasmota discovery and Disable legacy Hass discovery
|
Settings.flag.hass_discovery = 0; // SetOption19 - Enable Tasmota discovery and Disable legacy Hass discovery
|
||||||
TasmotaGlobal.discovery_counter = 10; // Delayed discovery
|
TasmotaGlobal.discovery_counter = 10; // Delayed discovery
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -281,6 +281,11 @@ bool Xdrv12(uint8_t function) {
|
|||||||
case FUNC_COMMAND:
|
case FUNC_COMMAND:
|
||||||
result = DecodeCommand(kTasDiscoverCommands, TasDiscoverCommand, kTasDiscoverSynonyms);
|
result = DecodeCommand(kTasDiscoverCommands, TasDiscoverCommand, kTasDiscoverSynonyms);
|
||||||
break;
|
break;
|
||||||
|
case FUNC_MQTT_SUBSCRIBE:
|
||||||
|
if (0 == Mqtt.initial_connection_state) {
|
||||||
|
TasRediscover();
|
||||||
|
}
|
||||||
|
break;
|
||||||
case FUNC_MQTT_INIT:
|
case FUNC_MQTT_INIT:
|
||||||
TasDiscoverInit();
|
TasDiscoverInit();
|
||||||
break;
|
break;
|
||||||
|
@ -1179,6 +1179,7 @@ bool Xdrv12(uint8_t function)
|
|||||||
case FUNC_ANY_KEY:
|
case FUNC_ANY_KEY:
|
||||||
HAssAnyKey();
|
HAssAnyKey();
|
||||||
break;
|
break;
|
||||||
|
/*
|
||||||
case FUNC_MQTT_INIT:
|
case FUNC_MQTT_INIT:
|
||||||
hass_mode = 0; // Discovery only if Settings.flag.hass_discovery is set
|
hass_mode = 0; // Discovery only if Settings.flag.hass_discovery is set
|
||||||
TasmotaGlobal.discovery_counter = 10; // Delayed discovery
|
TasmotaGlobal.discovery_counter = 10; // Delayed discovery
|
||||||
@ -1186,9 +1187,11 @@ bool Xdrv12(uint8_t function)
|
|||||||
// NewHAssDiscovery();
|
// NewHAssDiscovery();
|
||||||
// }
|
// }
|
||||||
break;
|
break;
|
||||||
|
*/
|
||||||
case FUNC_MQTT_SUBSCRIBE:
|
case FUNC_MQTT_SUBSCRIBE:
|
||||||
HassLwtSubscribe(hasslwt);
|
HassLwtSubscribe(hasslwt);
|
||||||
|
hass_mode = 0; // Discovery only if Settings.flag.hass_discovery is set
|
||||||
|
TasmotaGlobal.discovery_counter = (0 == Mqtt.initial_connection_state) ? 1 : 10; // Delayed discovery
|
||||||
break;
|
break;
|
||||||
case FUNC_MQTT_DATA:
|
case FUNC_MQTT_DATA:
|
||||||
result = HAssMqttLWT();
|
result = HAssMqttLWT();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user