1 """Switch platform for MicroBot."""
3 from __future__
import annotations
7 import voluptuous
as vol
15 async_get_current_platform,
19 from .const
import DOMAIN
20 from .coordinator
import MicroBotDataUpdateCoordinator
21 from .entity
import MicroBotEntity
23 CALIBRATE =
"calibrate"
24 CALIBRATE_SCHEMA: VolDictType = {
25 vol.Required(
"depth"): cv.positive_int,
26 vol.Required(
"duration"): cv.positive_int,
27 vol.Required(
"mode"): vol.In([
"normal",
"invert",
"toggle"]),
32 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
34 """Set up MicroBot based on a config entry."""
35 coordinator: MicroBotDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
38 platform.async_register_entity_service(
46 """MicroBot switch class."""
48 _attr_translation_key =
"push"
51 """Turn on the switch."""
52 await self.coordinator.api.push_on()
56 """Turn off the switch."""
57 await self.coordinator.api.push_off()
62 """Return true if the switch is on."""
63 return self.coordinator.api.is_on
71 """Send calibration commands to the switch."""
72 await self.coordinator.api.calibrate(depth, duration, mode)
None async_calibrate(self, int depth, int duration, str mode)
None async_turn_off(self, **Any kwargs)
None async_turn_on(self, **Any kwargs)
None async_write_ha_state(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)