Rename BThome to BTHome (#77807)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io> Co-authored-by: J. Nick Koston <nick@koston.org>pull/77968/head
parent
e07554dc25
commit
1231ba4d03
|
@ -1,9 +1,9 @@
|
||||||
"""The BThome Bluetooth integration."""
|
"""The BTHome Bluetooth integration."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from bthome_ble import BThomeBluetoothDeviceData, SensorUpdate
|
from bthome_ble import BTHomeBluetoothDeviceData, SensorUpdate
|
||||||
from bthome_ble.parser import EncryptionScheme
|
from bthome_ble.parser import EncryptionScheme
|
||||||
|
|
||||||
from homeassistant.components.bluetooth import (
|
from homeassistant.components.bluetooth import (
|
||||||
|
@ -27,7 +27,7 @@ _LOGGER = logging.getLogger(__name__)
|
||||||
def process_service_info(
|
def process_service_info(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
entry: ConfigEntry,
|
entry: ConfigEntry,
|
||||||
data: BThomeBluetoothDeviceData,
|
data: BTHomeBluetoothDeviceData,
|
||||||
service_info: BluetoothServiceInfoBleak,
|
service_info: BluetoothServiceInfoBleak,
|
||||||
) -> SensorUpdate:
|
) -> SensorUpdate:
|
||||||
"""Process a BluetoothServiceInfoBleak, running side effects and returning sensor data."""
|
"""Process a BluetoothServiceInfoBleak, running side effects and returning sensor data."""
|
||||||
|
@ -40,14 +40,14 @@ def process_service_info(
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||||
"""Set up BThome Bluetooth from a config entry."""
|
"""Set up BTHome Bluetooth from a config entry."""
|
||||||
address = entry.unique_id
|
address = entry.unique_id
|
||||||
assert address is not None
|
assert address is not None
|
||||||
|
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
if bindkey := entry.data.get("bindkey"):
|
if bindkey := entry.data.get("bindkey"):
|
||||||
kwargs["bindkey"] = bytes.fromhex(bindkey)
|
kwargs["bindkey"] = bytes.fromhex(bindkey)
|
||||||
data = BThomeBluetoothDeviceData(**kwargs)
|
data = BTHomeBluetoothDeviceData(**kwargs)
|
||||||
|
|
||||||
coordinator = hass.data.setdefault(DOMAIN, {})[
|
coordinator = hass.data.setdefault(DOMAIN, {})[
|
||||||
entry.entry_id
|
entry.entry_id
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
"""Config flow for BThome Bluetooth integration."""
|
"""Config flow for BTHome Bluetooth integration."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from collections.abc import Mapping
|
from collections.abc import Mapping
|
||||||
import dataclasses
|
import dataclasses
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from bthome_ble import BThomeBluetoothDeviceData as DeviceData
|
from bthome_ble import BTHomeBluetoothDeviceData as DeviceData
|
||||||
from bthome_ble.parser import EncryptionScheme
|
from bthome_ble.parser import EncryptionScheme
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
|
@ -34,8 +34,8 @@ def _title(discovery_info: BluetoothServiceInfo, device: DeviceData) -> str:
|
||||||
return device.title or device.get_device_name() or discovery_info.name
|
return device.title or device.get_device_name() or discovery_info.name
|
||||||
|
|
||||||
|
|
||||||
class BThomeConfigFlow(ConfigFlow, domain=DOMAIN):
|
class BTHomeConfigFlow(ConfigFlow, domain=DOMAIN):
|
||||||
"""Handle a config flow for BThome Bluetooth."""
|
"""Handle a config flow for BTHome Bluetooth."""
|
||||||
|
|
||||||
VERSION = 1
|
VERSION = 1
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ class BThomeConfigFlow(ConfigFlow, domain=DOMAIN):
|
||||||
async def async_step_get_encryption_key(
|
async def async_step_get_encryption_key(
|
||||||
self, user_input: dict[str, Any] | None = None
|
self, user_input: dict[str, Any] | None = None
|
||||||
) -> FlowResult:
|
) -> FlowResult:
|
||||||
"""Enter a bindkey for an encrypted BThome device."""
|
"""Enter a bindkey for an encrypted BTHome device."""
|
||||||
assert self._discovery_info
|
assert self._discovery_info
|
||||||
assert self._discovered_device
|
assert self._discovered_device
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
"""Constants for the BThome Bluetooth integration."""
|
"""Constants for the BTHome Bluetooth integration."""
|
||||||
|
|
||||||
DOMAIN = "bthome"
|
DOMAIN = "bthome"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
"""Support for BThome Bluetooth devices."""
|
"""Support for BTHome Bluetooth devices."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from bthome_ble import DeviceKey, SensorDeviceInfo
|
from bthome_ble import DeviceKey, SensorDeviceInfo
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"domain": "bthome",
|
"domain": "bthome",
|
||||||
"name": "BThome",
|
"name": "BTHome",
|
||||||
"config_flow": true,
|
"config_flow": true,
|
||||||
"documentation": "https://www.home-assistant.io/integrations/bthome",
|
"documentation": "https://www.home-assistant.io/integrations/bthome",
|
||||||
"bluetooth": [
|
"bluetooth": [
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
"service_data_uuid": "0000181e-0000-1000-8000-00805f9b34fb"
|
"service_data_uuid": "0000181e-0000-1000-8000-00805f9b34fb"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"requirements": ["bthome-ble==0.5.2"],
|
"requirements": ["bthome-ble==1.0.0"],
|
||||||
"dependencies": ["bluetooth"],
|
"dependencies": ["bluetooth"],
|
||||||
"codeowners": ["@Ernst79"],
|
"codeowners": ["@Ernst79"],
|
||||||
"iot_class": "local_push"
|
"iot_class": "local_push"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
"""Support for BThome sensors."""
|
"""Support for BTHome sensors."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from typing import Optional, Union
|
from typing import Optional, Union
|
||||||
|
@ -202,26 +202,26 @@ async def async_setup_entry(
|
||||||
entry: config_entries.ConfigEntry,
|
entry: config_entries.ConfigEntry,
|
||||||
async_add_entities: AddEntitiesCallback,
|
async_add_entities: AddEntitiesCallback,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Set up the BThome BLE sensors."""
|
"""Set up the BTHome BLE sensors."""
|
||||||
coordinator: PassiveBluetoothProcessorCoordinator = hass.data[DOMAIN][
|
coordinator: PassiveBluetoothProcessorCoordinator = hass.data[DOMAIN][
|
||||||
entry.entry_id
|
entry.entry_id
|
||||||
]
|
]
|
||||||
processor = PassiveBluetoothDataProcessor(sensor_update_to_bluetooth_data_update)
|
processor = PassiveBluetoothDataProcessor(sensor_update_to_bluetooth_data_update)
|
||||||
entry.async_on_unload(
|
entry.async_on_unload(
|
||||||
processor.async_add_entities_listener(
|
processor.async_add_entities_listener(
|
||||||
BThomeBluetoothSensorEntity, async_add_entities
|
BTHomeBluetoothSensorEntity, async_add_entities
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
entry.async_on_unload(coordinator.async_register_processor(processor))
|
entry.async_on_unload(coordinator.async_register_processor(processor))
|
||||||
|
|
||||||
|
|
||||||
class BThomeBluetoothSensorEntity(
|
class BTHomeBluetoothSensorEntity(
|
||||||
PassiveBluetoothProcessorEntity[
|
PassiveBluetoothProcessorEntity[
|
||||||
PassiveBluetoothDataProcessor[Optional[Union[float, int]]]
|
PassiveBluetoothDataProcessor[Optional[Union[float, int]]]
|
||||||
],
|
],
|
||||||
SensorEntity,
|
SensorEntity,
|
||||||
):
|
):
|
||||||
"""Representation of a BThome BLE sensor."""
|
"""Representation of a BTHome BLE sensor."""
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def native_value(self) -> int | float | None:
|
def native_value(self) -> int | float | None:
|
||||||
|
|
|
@ -464,7 +464,7 @@ bsblan==0.5.0
|
||||||
bt_proximity==0.2.1
|
bt_proximity==0.2.1
|
||||||
|
|
||||||
# homeassistant.components.bthome
|
# homeassistant.components.bthome
|
||||||
bthome-ble==0.5.2
|
bthome-ble==1.0.0
|
||||||
|
|
||||||
# homeassistant.components.bt_home_hub_5
|
# homeassistant.components.bt_home_hub_5
|
||||||
bthomehub5-devicelist==0.1.1
|
bthomehub5-devicelist==0.1.1
|
||||||
|
|
|
@ -365,7 +365,7 @@ brunt==1.2.0
|
||||||
bsblan==0.5.0
|
bsblan==0.5.0
|
||||||
|
|
||||||
# homeassistant.components.bthome
|
# homeassistant.components.bthome
|
||||||
bthome-ble==0.5.2
|
bthome-ble==1.0.0
|
||||||
|
|
||||||
# homeassistant.components.buienradar
|
# homeassistant.components.buienradar
|
||||||
buienradar==1.0.5
|
buienradar==1.0.5
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
"""Tests for the BThome integration."""
|
"""Tests for the BTHome integration."""
|
||||||
|
|
||||||
from bleak.backends.device import BLEDevice
|
from bleak.backends.device import BLEDevice
|
||||||
from bleak.backends.scanner import AdvertisementData
|
from bleak.backends.scanner import AdvertisementData
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
"""Test the BThome config flow."""
|
"""Test the BTHome config flow."""
|
||||||
|
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
from bthome_ble import BThomeBluetoothDeviceData as DeviceData
|
from bthome_ble import BTHomeBluetoothDeviceData as DeviceData
|
||||||
|
|
||||||
from homeassistant import config_entries
|
from homeassistant import config_entries
|
||||||
from homeassistant.components.bluetooth import BluetoothChange
|
from homeassistant.components.bluetooth import BluetoothChange
|
||||||
|
@ -167,7 +167,7 @@ async def test_async_step_user_no_devices_found_2(hass):
|
||||||
"""
|
"""
|
||||||
Test setup from service info cache with no devices found.
|
Test setup from service info cache with no devices found.
|
||||||
|
|
||||||
This variant tests with a non-BThome device known to us.
|
This variant tests with a non-BTHome device known to us.
|
||||||
"""
|
"""
|
||||||
with patch(
|
with patch(
|
||||||
"homeassistant.components.xiaomi_ble.config_flow.async_discovered_service_info",
|
"homeassistant.components.xiaomi_ble.config_flow.async_discovered_service_info",
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
"""Test the BThome sensors."""
|
"""Test the BTHome sensors."""
|
||||||
|
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue