1 """Binary sensor platform for Version."""
3 from __future__
import annotations
5 from awesomeversion
import AwesomeVersion
8 BinarySensorDeviceClass,
10 BinarySensorEntityDescription,
16 from .
import VersionConfigEntry
17 from .const
import CONF_SOURCE, DEFAULT_NAME
18 from .entity
import VersionEntity
20 HA_VERSION_OBJECT = AwesomeVersion(HA_VERSION)
25 config_entry: VersionConfigEntry,
26 async_add_entities: AddEntitiesCallback,
28 """Set up version binary_sensors."""
29 coordinator = config_entry.runtime_data
30 if (source := config_entry.data[CONF_SOURCE]) ==
"local":
33 if (entity_name := config_entry.data[CONF_NAME]) == DEFAULT_NAME:
34 entity_name = config_entry.title
36 entities: list[VersionBinarySensor] = [
38 coordinator=coordinator,
41 name=f
"{entity_name} Update Available",
42 device_class=BinarySensorDeviceClass.UPDATE,
43 entity_category=EntityCategory.DIAGNOSTIC,
52 """Binary sensor for version entities."""
54 entity_description: BinarySensorEntityDescription
58 """Return true if the binary sensor is on."""
59 version = self.coordinator.version
60 return version
is not None and (version > HA_VERSION_OBJECT)
None async_setup_entry(HomeAssistant hass, VersionConfigEntry config_entry, AddEntitiesCallback async_add_entities)