diff --git a/homeassistant/components/onewire/binary_sensor.py b/homeassistant/components/onewire/binary_sensor.py index 2bb393e48a8..7d6b3e2c019 100644 --- a/homeassistant/components/onewire/binary_sensor.py +++ b/homeassistant/components/onewire/binary_sensor.py @@ -16,7 +16,7 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback -from .const import DEVICE_KEYS_0_3, DEVICE_KEYS_0_7, DEVICE_KEYS_A_B, READ_MODE_BOOL +from .const import DEVICE_KEYS_0_3, DEVICE_KEYS_0_7, DEVICE_KEYS_A_B, READ_MODE_INT from .entity import OneWireEntity, OneWireEntityDescription from .onewirehub import ( SIGNAL_NEW_DEVICE_CONNECTED, @@ -37,13 +37,14 @@ class OneWireBinarySensorEntityDescription( ): """Class describing OneWire binary sensor entities.""" + read_mode = READ_MODE_INT + DEVICE_BINARY_SENSORS: dict[str, tuple[OneWireBinarySensorEntityDescription, ...]] = { "12": tuple( OneWireBinarySensorEntityDescription( key=f"sensed.{device_key}", entity_registry_enabled_default=False, - read_mode=READ_MODE_BOOL, translation_key="sensed_id", translation_placeholders={"id": str(device_key)}, ) @@ -53,7 +54,6 @@ DEVICE_BINARY_SENSORS: dict[str, tuple[OneWireBinarySensorEntityDescription, ... OneWireBinarySensorEntityDescription( key=f"sensed.{device_key}", entity_registry_enabled_default=False, - read_mode=READ_MODE_BOOL, translation_key="sensed_id", translation_placeholders={"id": str(device_key)}, ) @@ -63,7 +63,6 @@ DEVICE_BINARY_SENSORS: dict[str, tuple[OneWireBinarySensorEntityDescription, ... OneWireBinarySensorEntityDescription( key=f"sensed.{device_key}", entity_registry_enabled_default=False, - read_mode=READ_MODE_BOOL, translation_key="sensed_id", translation_placeholders={"id": str(device_key)}, ) @@ -78,7 +77,6 @@ HOBBYBOARD_EF: dict[str, tuple[OneWireBinarySensorEntityDescription, ...]] = { OneWireBinarySensorEntityDescription( key=f"hub/short.{device_key}", entity_registry_enabled_default=False, - read_mode=READ_MODE_BOOL, entity_category=EntityCategory.DIAGNOSTIC, device_class=BinarySensorDeviceClass.PROBLEM, translation_key="hub_short_id", @@ -162,4 +160,4 @@ class OneWireBinarySensorEntity(OneWireEntity, BinarySensorEntity): """Return true if sensor is on.""" if self._state is None: return None - return bool(self._state) + return self._state == 1 diff --git a/homeassistant/components/onewire/const.py b/homeassistant/components/onewire/const.py index 57cdd8c483c..2db2bf973a2 100644 --- a/homeassistant/components/onewire/const.py +++ b/homeassistant/components/onewire/const.py @@ -51,6 +51,5 @@ MANUFACTURER_MAXIM = "Maxim Integrated" MANUFACTURER_HOBBYBOARDS = "Hobby Boards" MANUFACTURER_EDS = "Embedded Data Systems" -READ_MODE_BOOL = "bool" READ_MODE_FLOAT = "float" READ_MODE_INT = "int" diff --git a/homeassistant/components/onewire/entity.py b/homeassistant/components/onewire/entity.py index 2ea21aca488..64c7a8c3ebb 100644 --- a/homeassistant/components/onewire/entity.py +++ b/homeassistant/components/onewire/entity.py @@ -10,9 +10,8 @@ from pyownet import protocol from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.entity import Entity, EntityDescription -from homeassistant.helpers.typing import StateType -from .const import READ_MODE_BOOL, READ_MODE_INT +from .const import READ_MODE_INT @dataclass(frozen=True) @@ -45,7 +44,7 @@ class OneWireEntity(Entity): self._attr_unique_id = f"/{device_id}/{description.key}" self._attr_device_info = device_info self._device_file = device_file - self._state: StateType = None + self._state: int | float | None = None self._value_raw: float | None = None self._owproxy = owproxy @@ -82,7 +81,5 @@ class OneWireEntity(Entity): _LOGGER.debug("Fetching %s data recovered", self.name) if self.entity_description.read_mode == READ_MODE_INT: self._state = int(self._value_raw) - elif self.entity_description.read_mode == READ_MODE_BOOL: - self._state = int(self._value_raw) == 1 else: self._state = self._value_raw diff --git a/homeassistant/components/onewire/switch.py b/homeassistant/components/onewire/switch.py index d2cc3b80185..aeea0b8e98b 100644 --- a/homeassistant/components/onewire/switch.py +++ b/homeassistant/components/onewire/switch.py @@ -13,7 +13,7 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback -from .const import DEVICE_KEYS_0_3, DEVICE_KEYS_0_7, DEVICE_KEYS_A_B, READ_MODE_BOOL +from .const import DEVICE_KEYS_0_3, DEVICE_KEYS_0_7, DEVICE_KEYS_A_B, READ_MODE_INT from .entity import OneWireEntity, OneWireEntityDescription from .onewirehub import ( SIGNAL_NEW_DEVICE_CONNECTED, @@ -32,13 +32,14 @@ SCAN_INTERVAL = timedelta(seconds=30) class OneWireSwitchEntityDescription(OneWireEntityDescription, SwitchEntityDescription): """Class describing OneWire switch entities.""" + read_mode = READ_MODE_INT + DEVICE_SWITCHES: dict[str, tuple[OneWireEntityDescription, ...]] = { "05": ( OneWireSwitchEntityDescription( key="PIO", entity_registry_enabled_default=False, - read_mode=READ_MODE_BOOL, translation_key="pio", ), ), @@ -47,7 +48,6 @@ DEVICE_SWITCHES: dict[str, tuple[OneWireEntityDescription, ...]] = { OneWireSwitchEntityDescription( key=f"PIO.{device_key}", entity_registry_enabled_default=False, - read_mode=READ_MODE_BOOL, translation_key="pio_id", translation_placeholders={"id": str(device_key)}, ) @@ -57,7 +57,6 @@ DEVICE_SWITCHES: dict[str, tuple[OneWireEntityDescription, ...]] = { OneWireSwitchEntityDescription( key=f"latch.{device_key}", entity_registry_enabled_default=False, - read_mode=READ_MODE_BOOL, translation_key="latch_id", translation_placeholders={"id": str(device_key)}, ) @@ -69,7 +68,6 @@ DEVICE_SWITCHES: dict[str, tuple[OneWireEntityDescription, ...]] = { key="IAD", entity_registry_enabled_default=False, entity_category=EntityCategory.CONFIG, - read_mode=READ_MODE_BOOL, translation_key="iad", ), ), @@ -78,7 +76,6 @@ DEVICE_SWITCHES: dict[str, tuple[OneWireEntityDescription, ...]] = { OneWireSwitchEntityDescription( key=f"PIO.{device_key}", entity_registry_enabled_default=False, - read_mode=READ_MODE_BOOL, translation_key="pio_id", translation_placeholders={"id": str(device_key)}, ) @@ -88,7 +85,6 @@ DEVICE_SWITCHES: dict[str, tuple[OneWireEntityDescription, ...]] = { OneWireSwitchEntityDescription( key=f"latch.{device_key}", entity_registry_enabled_default=False, - read_mode=READ_MODE_BOOL, translation_key="latch_id", translation_placeholders={"id": str(device_key)}, ) @@ -99,7 +95,6 @@ DEVICE_SWITCHES: dict[str, tuple[OneWireEntityDescription, ...]] = { OneWireSwitchEntityDescription( key=f"PIO.{device_key}", entity_registry_enabled_default=False, - read_mode=READ_MODE_BOOL, translation_key="pio_id", translation_placeholders={"id": str(device_key)}, ) @@ -115,7 +110,6 @@ HOBBYBOARD_EF: dict[str, tuple[OneWireEntityDescription, ...]] = { OneWireSwitchEntityDescription( key=f"hub/branch.{device_key}", entity_registry_enabled_default=False, - read_mode=READ_MODE_BOOL, entity_category=EntityCategory.CONFIG, translation_key="hub_branch_id", translation_placeholders={"id": str(device_key)}, @@ -127,7 +121,6 @@ HOBBYBOARD_EF: dict[str, tuple[OneWireEntityDescription, ...]] = { OneWireSwitchEntityDescription( key=f"moisture/is_leaf.{device_key}", entity_registry_enabled_default=False, - read_mode=READ_MODE_BOOL, entity_category=EntityCategory.CONFIG, translation_key="leaf_sensor_id", translation_placeholders={"id": str(device_key)}, @@ -138,7 +131,6 @@ HOBBYBOARD_EF: dict[str, tuple[OneWireEntityDescription, ...]] = { OneWireSwitchEntityDescription( key=f"moisture/is_moisture.{device_key}", entity_registry_enabled_default=False, - read_mode=READ_MODE_BOOL, entity_category=EntityCategory.CONFIG, translation_key="moisture_sensor_id", translation_placeholders={"id": str(device_key)}, @@ -226,7 +218,7 @@ class OneWireSwitchEntity(OneWireEntity, SwitchEntity): """Return true if switch is on.""" if self._state is None: return None - return bool(self._state) + return self._state == 1 def turn_on(self, **kwargs: Any) -> None: """Turn the entity on."""