Home Assistant Unofficial Reference 2024.12.1
lawn_mower.py
Go to the documentation of this file.
1 """Demo platform that has a couple fake lawn mowers."""
2 
3 from __future__ import annotations
4 
6  LawnMowerActivity,
7  LawnMowerEntity,
8  LawnMowerEntityFeature,
9 )
10 from homeassistant.config_entries import ConfigEntry
11 from homeassistant.core import HomeAssistant
12 from homeassistant.helpers.entity_platform import AddEntitiesCallback
13 from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
14 
15 
17  hass: HomeAssistant,
18  config: ConfigType,
19  async_add_entities: AddEntitiesCallback,
20  discovery_info: DiscoveryInfoType | None = None,
21 ) -> None:
22  """Set up the Demo lawn mowers."""
24  [
26  "kitchen_sink_mower_001",
27  "Mower can mow",
28  LawnMowerActivity.DOCKED,
29  LawnMowerEntityFeature.START_MOWING,
30  ),
32  "kitchen_sink_mower_002",
33  "Mower can return",
34  LawnMowerActivity.RETURNING,
35  LawnMowerEntityFeature.DOCK
36  | LawnMowerEntityFeature.PAUSE
37  | LawnMowerEntityFeature.START_MOWING,
38  ),
40  "kitchen_sink_mower_003",
41  "Mower can dock",
42  LawnMowerActivity.MOWING,
43  LawnMowerEntityFeature.DOCK | LawnMowerEntityFeature.START_MOWING,
44  ),
46  "kitchen_sink_mower_004",
47  "Mower can pause",
48  LawnMowerActivity.DOCKED,
49  LawnMowerEntityFeature.PAUSE | LawnMowerEntityFeature.START_MOWING,
50  ),
52  "kitchen_sink_mower_005",
53  "Mower can do all",
54  LawnMowerActivity.DOCKED,
55  LawnMowerEntityFeature.DOCK
56  | LawnMowerEntityFeature.PAUSE
57  | LawnMowerEntityFeature.START_MOWING,
58  ),
60  "kitchen_sink_mower_006",
61  "Mower is paused",
62  LawnMowerActivity.PAUSED,
63  LawnMowerEntityFeature.DOCK
64  | LawnMowerEntityFeature.PAUSE
65  | LawnMowerEntityFeature.START_MOWING,
66  ),
67  ]
68  )
69 
70 
72  hass: HomeAssistant,
73  config_entry: ConfigEntry,
74  async_add_entities: AddEntitiesCallback,
75 ) -> None:
76  """Set up the Everything but the Kitchen Sink config entry."""
77  await async_setup_platform(hass, {}, async_add_entities)
78 
79 
81  """Representation of a Demo lawn mower."""
82 
83  def __init__(
84  self,
85  unique_id: str,
86  name: str,
87  activity: LawnMowerActivity,
88  features: LawnMowerEntityFeature = LawnMowerEntityFeature(0),
89  ) -> None:
90  """Initialize the lawn mower."""
91  self._attr_name_attr_name = name
92  self._attr_unique_id_attr_unique_id = unique_id
93  self._attr_supported_features_attr_supported_features = features
94  self._attr_activity_attr_activity = activity
95 
96  async def async_start_mowing(self) -> None:
97  """Start mowing."""
98  self._attr_activity_attr_activity = LawnMowerActivity.MOWING
99  self.async_write_ha_stateasync_write_ha_state()
100 
101  async def async_dock(self) -> None:
102  """Start docking."""
103  self._attr_activity_attr_activity = LawnMowerActivity.DOCKED
104  self.async_write_ha_stateasync_write_ha_state()
105 
106  async def async_pause(self) -> None:
107  """Pause mower."""
108  self._attr_activity_attr_activity = LawnMowerActivity.PAUSED
109  self.async_write_ha_stateasync_write_ha_state()
None __init__(self, str unique_id, str name, LawnMowerActivity activity, LawnMowerEntityFeature features=LawnMowerEntityFeature(0))
Definition: lawn_mower.py:89
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: lawn_mower.py:75
None async_setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback async_add_entities, DiscoveryInfoType|None discovery_info=None)
Definition: lawn_mower.py:21