Skip to main content

Switch entity

A switch entity turns on or off something, for example a relay. Derive a platform entity from homeassistant.components.switch.SwitchEntity. To represent something which has an on or off state but can't be controlled, for example a wall switch which transmits its state but can't be turned on or off from Home Assistant, a Binary Sensor is a better choice. To represent something which doesn't have a state, for example a door bell push button, a custom event or a Device Trigger is a better choice.

Properties​

tip

Properties should always only return information from memory and not do I/O (like network requests). Implement update() or async_update() to fetch data.

NameTypeDefaultDescription
is_onbooleanNoneIf the switch is currently on or off.

Methods​

Turn on​

Turn the switch on.

class MySwitch(SwitchEntity):
# Implement one of these methods.

def turn_on(self, **kwargs: Any) -> None:
"""Turn the entity on."""

async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn the entity on."""

Turn off​

Turn the switch off.

class MySwitch(SwitchEntity):
# Implement one of these methods.

def turn_off(self, **kwargs: Any) -> None:
"""Turn the entity off."""

async def async_turn_off(self, **kwargs: Any) -> None:
"""Turn the entity off."""

Toggle​

Optional. If not implemented will default to checking what method to call using the is_on property.

class MySwitch(SwitchEntity):
# Implement one of these methods.

def toggle(self, **kwargs: Any) -> None:
"""Toggle the entity."""

async def async_toggle(self, **kwargs: Any) -> None:
"""Toggle the entity."""

Available device classes​

Optional. What type of device this. It will possibly map to google device types.

ConstantDescription
SwitchDeviceClass.OUTLETDevice is an outlet for power.
SwitchDeviceClass.SWITCHDevice is switch for some type of entity.