diff --git a/homeassistant/components/esphome/bluetooth/scanner.py b/homeassistant/components/esphome/bluetooth/scanner.py index b6cd3d2ec35..ea44ff45d1c 100644 --- a/homeassistant/components/esphome/bluetooth/scanner.py +++ b/homeassistant/components/esphome/bluetooth/scanner.py @@ -1,7 +1,6 @@ """Bluetooth scanner for esphome.""" from __future__ import annotations -import re from typing import Any from aioesphomeapi import BluetoothLEAdvertisement @@ -9,8 +8,6 @@ from aioesphomeapi import BluetoothLEAdvertisement from homeassistant.components.bluetooth import BaseHaRemoteScanner from homeassistant.core import callback -TWO_CHAR = re.compile("..") - class ESPHomeScanner(BaseHaRemoteScanner): """Scanner for esphome.""" @@ -18,9 +15,10 @@ class ESPHomeScanner(BaseHaRemoteScanner): @callback def async_on_advertisement(self, adv: BluetoothLEAdvertisement) -> None: """Call the registered callback.""" - address = ":".join(TWO_CHAR.findall("%012X" % adv.address)) # must be upper + # The mac address is a uint64, but we need a string + mac_hex = f"{adv.address:012X}" self._async_on_advertisement( - address, + f"{mac_hex[0:2]}:{mac_hex[2:4]}:{mac_hex[4:6]}:{mac_hex[6:8]}:{mac_hex[8:10]}:{mac_hex[10:12]}", adv.rssi, adv.name, adv.service_uuids,