Prevent sending Home Assistant discovery messages when not connected to MQTT yet. #3451

This commit is contained in:
Koen Kanters
2020-04-30 19:06:17 +02:00
parent a12d9fb73e
commit e792f8bc8c
2 changed files with 6 additions and 2 deletions
+1 -1
View File
@@ -1967,7 +1967,7 @@ class HomeAssistant extends Extension {
}
onZigbeeEvent(type, data, resolvedEntity) {
if (resolvedEntity && type !== 'deviceLeave') {
if (resolvedEntity && type !== 'deviceLeave' && this.mqtt.isConnected()) {
this.discover(resolvedEntity);
}
}
+5 -1
View File
@@ -95,11 +95,15 @@ class MQTT extends events.EventEmitter {
this.emit('message', {topic, message: message.toString()});
}
isConnected() {
return this.client && !this.client.reconnecting;
}
async publish(topic, payload, options, base=settings.get().mqtt.base_topic) {
topic = `${base}/${topic}`;
options = {qos: 0, retain: false, ...options};
if (!this.client || this.client.reconnecting) {
if (!this.isConnected()) {
logger.error(`Not connected to MQTT server!`);
logger.error(`Cannot send message: topic: '${topic}', payload: '${payload}`);
return;