1 """The Things Network's integration sensors."""
5 from ttn_client
import TTNSensorValue
13 from .const
import CONF_APP_ID, DOMAIN
14 from .entity
import TTNEntity
16 _LOGGER = logging.getLogger(__name__)
20 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
22 """Add entities for TTN."""
24 coordinator = hass.data[DOMAIN][entry.entry_id]
26 sensors: set[tuple[str, str]] = set()
28 def _async_measurement_listener() -> None:
29 data = coordinator.data
33 entry.data[CONF_APP_ID],
36 for device_id, device_uplinks
in data.items()
37 for field_id, ttn_value
in device_uplinks.items()
38 if (device_id, field_id)
not in sensors
39 and isinstance(ttn_value, TTNSensorValue)
43 sensors.update(new_sensors.keys())
45 entry.async_on_unload(coordinator.async_add_listener(_async_measurement_listener))
46 _async_measurement_listener()
50 """Represents a TTN Home Assistant Sensor."""
52 _ttn_value: TTNSensorValue
56 """Return the state of the entity."""
StateType native_value(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)