1 """Support for showing random numbers."""
3 from __future__
import annotations
5 from collections.abc
import Mapping
6 from random
import randrange
9 import voluptuous
as vol
12 PLATFORM_SCHEMA
as SENSOR_PLATFORM_SCHEMA,
21 CONF_UNIT_OF_MEASUREMENT,
28 from .const
import DEFAULT_MAX, DEFAULT_MIN
30 ATTR_MAXIMUM =
"maximum"
31 ATTR_MINIMUM =
"minimum"
33 DEFAULT_NAME =
"Random sensor"
36 PLATFORM_SCHEMA = SENSOR_PLATFORM_SCHEMA.extend(
38 vol.Optional(CONF_MAXIMUM, default=DEFAULT_MAX): cv.positive_int,
39 vol.Optional(CONF_MINIMUM, default=DEFAULT_MIN): cv.positive_int,
40 vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
41 vol.Optional(CONF_UNIT_OF_MEASUREMENT): cv.string,
49 async_add_entities: AddEntitiesCallback,
50 discovery_info: DiscoveryInfoType |
None =
None,
52 """Set up the Random number sensor."""
59 config_entry: ConfigEntry,
60 async_add_entities: AddEntitiesCallback,
62 """Initialize config entry."""
65 [
RandomSensor(config_entry.options, config_entry.entry_id)],
True
70 """Representation of a Random number sensor."""
72 _attr_translation_key =
"random"
73 _unrecorded_attributes = frozenset({ATTR_MAXIMUM, ATTR_MINIMUM})
75 def __init__(self, config: Mapping[str, Any], entry_id: str |
None =
None) ->
None:
76 """Initialize the Random sensor."""
89 """Get a new number and update the state."""
None __init__(self, Mapping[str, Any] config, str|None entry_id=None)
_attr_extra_state_attributes
_attr_native_unit_of_measurement
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
None async_setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback async_add_entities, DiscoveryInfoType|None discovery_info=None)