1 """Support for openexchangerates.org exchange rates service."""
3 from __future__
import annotations
13 from .const
import DOMAIN
14 from .coordinator
import OpenexchangeratesCoordinator
16 ATTRIBUTION =
"Data provided by openexchangerates.org"
21 config_entry: ConfigEntry,
22 async_add_entities: AddEntitiesCallback,
24 """Set up the Open Exchange Rates sensor."""
25 quote: str = config_entry.data.get(CONF_QUOTE,
"EUR")
26 coordinator = hass.data[DOMAIN][config_entry.entry_id]
30 config_entry, coordinator, rate_quote, rate_quote == quote
32 for rate_quote
in coordinator.data.rates
37 CoordinatorEntity[OpenexchangeratesCoordinator], SensorEntity
39 """Representation of an Open Exchange Rates sensor."""
41 _attr_has_entity_name =
True
42 _attr_attribution = ATTRIBUTION
46 config_entry: ConfigEntry,
47 coordinator: OpenexchangeratesCoordinator,
51 """Initialize the sensor."""
54 entry_type=DeviceEntryType.SERVICE,
55 identifiers={(DOMAIN, config_entry.entry_id)},
56 manufacturer=
"Open Exchange Rates",
57 name=f
"Open Exchange Rates {coordinator.base}",
67 """Return the state of the sensor."""
68 return self.coordinator.data.rates[self.
_quote_quote]
_attr_native_unit_of_measurement
_attr_entity_registry_enabled_default
None __init__(self, ConfigEntry config_entry, OpenexchangeratesCoordinator coordinator, str quote, bool enabled)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)