1 """NINA sensor platform."""
3 from __future__
import annotations
8 BinarySensorDeviceClass,
23 ATTR_RECOMMENDED_ACTIONS,
33 from .coordinator
import NINADataUpdateCoordinator
38 config_entry: ConfigEntry,
39 async_add_entities: AddEntitiesCallback,
43 coordinator: NINADataUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id]
45 regions: dict[str, str] = config_entry.data[CONF_REGIONS]
46 message_slots: int = config_entry.data[CONF_MESSAGE_SLOTS]
49 NINAMessage(coordinator, ent, regions[ent], i + 1, config_entry)
50 for ent
in coordinator.data
51 for i
in range(message_slots)
56 """Representation of an NINA warning."""
58 _attr_device_class = BinarySensorDeviceClass.SAFETY
62 coordinator: NINADataUpdateCoordinator,
66 config_entry: ConfigEntry,
74 self.
_attr_name_attr_name = f
"Warning: {region_name} {slot_id}"
77 identifiers={(DOMAIN, config_entry.entry_id)},
79 entry_type=DeviceEntryType.SERVICE,
84 """Return the state of the sensor."""
94 """Return extra attributes of the sensor."""
95 if not self.
is_onis_on:
101 ATTR_HEADLINE: data.headline,
102 ATTR_DESCRIPTION: data.description,
103 ATTR_SENDER: data.sender,
104 ATTR_SEVERITY: data.severity,
105 ATTR_RECOMMENDED_ACTIONS: data.recommended_actions,
106 ATTR_AFFECTED_AREAS: data.affected_areas,
109 ATTR_SENT: data.sent,
110 ATTR_START: data.start,
111 ATTR_EXPIRES: data.expires,
None __init__(self, NINADataUpdateCoordinator coordinator, str region, str region_name, int slot_id, ConfigEntry config_entry)
dict[str, Any] extra_state_attributes(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)