From c1e5c75473101236d6bf34fe43e7a0c981d1f277 Mon Sep 17 00:00:00 2001 From: Koen Kanters Date: Sun, 15 Nov 2020 13:22:29 +0100 Subject: [PATCH] Fix bridge/state online not send after reconnect. https://github.com/Koenkk/zigbee2mqtt/issues/4854 --- lib/controller.js | 1 - lib/mqtt.js | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/controller.js b/lib/controller.js index d6c8c1ff3..46678f37b 100644 --- a/lib/controller.js +++ b/lib/controller.js @@ -149,7 +149,6 @@ class Controller { // MQTT this.mqtt.on('message', this.onMQTTMessage.bind(this)); await this.mqtt.connect(); - this.mqtt.publish('bridge/state', 'online', {retain: true, qos: 0}); // Send all cached states. if (settings.get().advanced.cache_state_send_on_startup && settings.get().advanced.cache_state) { diff --git a/lib/mqtt.js b/lib/mqtt.js index b2caf96fd..17d54811a 100644 --- a/lib/mqtt.js +++ b/lib/mqtt.js @@ -72,8 +72,10 @@ class MQTT extends events.EventEmitter { return new Promise((resolve) => { this.client = mqtt.connect(mqttSettings.server, options); + const self = this; this.client.on('connect', () => { logger.info('Connected to MQTT server'); + self.publish('bridge/state', 'online', {retain: true, qos: 0}); resolve(); });