From 7f640c4a2e41fdea4bafb5d43bb5dae0ef3314f8 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Sat, 7 Nov 2020 16:27:09 +0100 Subject: [PATCH] Generate random MQTT client ID (#42934) * Generate random MQTT client ID * Add comment * Apply suggestions from code review Co-authored-by: Franck Nijhof Co-authored-by: Franck Nijhof --- homeassistant/components/mqtt/__init__.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/mqtt/__init__.py b/homeassistant/components/mqtt/__init__.py index 09655ababda..5898b1918a2 100644 --- a/homeassistant/components/mqtt/__init__.py +++ b/homeassistant/components/mqtt/__init__.py @@ -10,6 +10,7 @@ import os import ssl import time from typing import Any, Callable, List, Optional, Union +import uuid import attr import certifi @@ -711,9 +712,10 @@ class MQTT: client_id = self.conf.get(CONF_CLIENT_ID) if client_id is None: - self._mqttc = mqtt.Client(protocol=proto) - else: - self._mqttc = mqtt.Client(client_id, protocol=proto) + # PAHO MQTT relies on the MQTT server to generate random client IDs. + # However, that feature is not mandatory so we generate our own. + client_id = mqtt.base62(uuid.uuid4().int, padding=22) + self._mqttc = mqtt.Client(client_id, protocol=proto) # Enable logging self._mqttc.enable_logger()