Replace led-ble util with bluetooth-data-tools (#81093)

This commit is contained in:
J. Nick Koston 2022-11-08 07:26:16 -06:00 committed by GitHub
parent 9b0b8ae9c0
commit b7533aff48
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 12 additions and 54 deletions

View File

@ -678,7 +678,6 @@ omit =
homeassistant/components/lcn/services.py
homeassistant/components/led_ble/__init__.py
homeassistant/components/led_ble/light.py
homeassistant/components/led_ble/util.py
homeassistant/components/lg_netcast/media_player.py
homeassistant/components/lg_soundbar/media_player.py
homeassistant/components/lidarr/__init__.py

View File

@ -10,6 +10,7 @@
"bleak-retry-connector==2.8.3",
"bluetooth-adapters==0.7.0",
"bluetooth-auto-recovery==0.3.6",
"bluetooth-data-tools==0.2.0",
"dbus-fast==1.72.0"
],
"codeowners": ["@bdraco"],

View File

@ -4,6 +4,7 @@ from __future__ import annotations
import logging
from typing import Any
from bluetooth_data_tools import human_readable_name
from led_ble import BLEAK_EXCEPTIONS, LEDBLE
import voluptuous as vol
@ -16,7 +17,6 @@ from homeassistant.const import CONF_ADDRESS
from homeassistant.data_entry_flow import FlowResult
from .const import DOMAIN, LOCAL_NAMES, UNSUPPORTED_SUB_MODEL
from .util import human_readable_name
_LOGGER = logging.getLogger(__name__)

View File

@ -3,7 +3,7 @@
"name": "LED BLE",
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/led_ble/",
"requirements": ["led-ble==1.0.0"],
"requirements": ["bluetooth-data-tools==0.2.0", "led-ble==1.0.0"],
"dependencies": ["bluetooth"],
"codeowners": ["@bdraco"],
"bluetooth": [

View File

@ -1,51 +0,0 @@
"""The yalexs_ble integration models."""
from __future__ import annotations
from homeassistant.components.bluetooth import (
BluetoothScanningMode,
BluetoothServiceInfoBleak,
async_discovered_service_info,
async_process_advertisements,
)
from homeassistant.components.bluetooth.match import ADDRESS, BluetoothCallbackMatcher
from homeassistant.core import HomeAssistant, callback
from .const import DEVICE_TIMEOUT
@callback
def async_find_existing_service_info(
hass: HomeAssistant, local_name: str, address: str
) -> BluetoothServiceInfoBleak | None:
"""Return the service info for the given local_name and address."""
for service_info in async_discovered_service_info(hass):
device = service_info.device
if device.address == address:
return service_info
return None
async def async_get_service_info(
hass: HomeAssistant, local_name: str, address: str
) -> BluetoothServiceInfoBleak:
"""Wait for the service info for the given local_name and address."""
if service_info := async_find_existing_service_info(hass, local_name, address):
return service_info
return await async_process_advertisements(
hass,
lambda service_info: True,
BluetoothCallbackMatcher({ADDRESS: address}),
BluetoothScanningMode.ACTIVE,
DEVICE_TIMEOUT,
)
def short_address(address: str) -> str:
"""Convert a Bluetooth address to a short address."""
split_address = address.replace("-", ":").split(":")
return f"{split_address[-2].upper()}{split_address[-1].upper()}"[-4:]
def human_readable_name(name: str | None, local_name: str, address: str) -> str:
"""Return a human readable name for the given name, local_name, and address."""
return f"{name or local_name} ({short_address(address)})"

View File

@ -14,6 +14,7 @@ bleak-retry-connector==2.8.3
bleak==0.19.2
bluetooth-adapters==0.7.0
bluetooth-auto-recovery==0.3.6
bluetooth-data-tools==0.2.0
certifi>=2021.5.30
ciso8601==2.2.0
cryptography==38.0.3

View File

@ -452,6 +452,10 @@ bluetooth-adapters==0.7.0
# homeassistant.components.bluetooth
bluetooth-auto-recovery==0.3.6
# homeassistant.components.bluetooth
# homeassistant.components.led_ble
bluetooth-data-tools==0.2.0
# homeassistant.components.bond
bond-async==0.1.22

View File

@ -366,6 +366,10 @@ bluetooth-adapters==0.7.0
# homeassistant.components.bluetooth
bluetooth-auto-recovery==0.3.6
# homeassistant.components.bluetooth
# homeassistant.components.led_ble
bluetooth-data-tools==0.2.0
# homeassistant.components.bond
bond-async==0.1.22