"""Support for Modbus switches.""" from __future__ import annotations import logging from homeassistant.components.switch import SwitchEntity from homeassistant.const import CONF_NAME, CONF_SWITCHES from homeassistant.core import HomeAssistant from homeassistant.helpers.typing import ConfigType from .base_platform import BaseSwitch from .const import MODBUS_DOMAIN from .modbus import ModbusHub PARALLEL_UPDATES = 1 _LOGGER = logging.getLogger(__name__) async def async_setup_platform( hass: HomeAssistant, config: ConfigType, async_add_entities, discovery_info=None ): """Read configuration and create Modbus switches.""" switches = [] for entry in discovery_info[CONF_SWITCHES]: hub: ModbusHub = hass.data[MODBUS_DOMAIN][discovery_info[CONF_NAME]] switches.append(ModbusSwitch(hub, entry)) async_add_entities(switches) class ModbusSwitch(BaseSwitch, SwitchEntity): """Base class representing a Modbus switch.""" async def async_turn_on(self, **kwargs): """Set switch on.""" await self.async_turn(self.command_on)