1 """Support for Mealie sensors."""
3 from collections.abc
import Callable
4 from dataclasses
import dataclass
6 from aiomealie
import Statistics
10 SensorEntityDescription,
17 from .coordinator
import MealieConfigEntry, MealieStatisticsCoordinator
18 from .entity
import MealieEntity
21 @dataclass(frozen=True, kw_only=True)
23 """Describes Mealie Statistics sensor entity."""
25 value_fn: Callable[[Statistics], StateType]
28 SENSOR_TYPES: tuple[MealieStatisticsSensorEntityDescription, ...] = (
31 state_class=SensorStateClass.TOTAL,
32 value_fn=
lambda statistics: statistics.total_recipes,
36 state_class=SensorStateClass.TOTAL,
37 value_fn=
lambda statistics: statistics.total_users,
41 state_class=SensorStateClass.TOTAL,
42 value_fn=
lambda statistics: statistics.total_categories,
46 state_class=SensorStateClass.TOTAL,
47 value_fn=
lambda statistics: statistics.total_tags,
51 state_class=SensorStateClass.TOTAL,
52 value_fn=
lambda statistics: statistics.total_tools,
59 entry: MealieConfigEntry,
60 async_add_entities: AddEntitiesCallback,
62 """Set up Mealie sensors based on a config entry."""
63 coordinator = entry.runtime_data.statistics_coordinator
71 """Defines a Mealie sensor."""
73 entity_description: MealieStatisticsSensorEntityDescription
74 coordinator: MealieStatisticsCoordinator
78 coordinator: MealieStatisticsCoordinator,
79 description: MealieStatisticsSensorEntityDescription,
81 """Initialize Mealie sensor."""
82 super().
__init__(coordinator, description.key)
88 """Return the state of the sensor."""
StateType native_value(self)
None __init__(self, MealieStatisticsCoordinator coordinator, MealieStatisticsSensorEntityDescription description)
None async_setup_entry(HomeAssistant hass, MealieConfigEntry entry, AddEntitiesCallback async_add_entities)