diff --git a/custom_components/mega/__init__.py b/custom_components/mega/__init__.py index dadc0bf..1e862c5 100644 --- a/custom_components/mega/__init__.py +++ b/custom_components/mega/__init__.py @@ -81,7 +81,7 @@ async def async_setup(hass: HomeAssistant, config: dict): ) hass.services.async_register( DOMAIN, 'run_cmd', partial(_run_cmd, hass), schema=vol.Schema({ - vol.Required('port'): int, + vol.Optional('port'): int, vol.Required('cmd'): str, vol.Optional('mega_id'): str, }) @@ -232,12 +232,11 @@ async def _get_port(hass: HomeAssistant, call: ServiceCall): @bind_hass async def _run_cmd(hass: HomeAssistant, call: ServiceCall): - port = call.data.get('port') mega_id = call.data.get('mega_id') cmd = call.data.get('cmd') if mega_id: hub: MegaD = hass.data[DOMAIN][mega_id] - await hub.send_command(port=port, cmd=cmd) + await hub.request(cmd=cmd) else: for hub in hass.data[DOMAIN].values(): - await hub.send_command(port=port, cmd=cmd) + await hub.request(cmd=cmd) diff --git a/custom_components/mega/config_flow.py b/custom_components/mega/config_flow.py index c13d6cb..b572932 100644 --- a/custom_components/mega/config_flow.py +++ b/custom_components/mega/config_flow.py @@ -18,7 +18,7 @@ _LOGGER = logging.getLogger(__name__) STEP_USER_DATA_SCHEMA = vol.Schema( { - vol.Required(CONF_ID, default='def'): str, + vol.Required(CONF_ID, default='mega'): str, vol.Required(CONF_HOST, default="192.168.0.14"): str, vol.Required(CONF_PASSWORD, default="sec"): str, vol.Optional(CONF_SCAN_INTERVAL, default=0): int, diff --git a/custom_components/mega/entities.py b/custom_components/mega/entities.py index 57d0d8d..7f6f6b5 100644 --- a/custom_components/mega/entities.py +++ b/custom_components/mega/entities.py @@ -246,16 +246,15 @@ class MegaOutPort(MegaPushEntity): cmd = brightness else: cmd = 1 if not self.invert else 0 - await self.mega.send_command(self.port, f"{self.port}:{cmd}") + await self.mega.request(cmd=f"{self.port}:{cmd}") self.mega.values[self.port] = {'value': cmd} await self.get_state() - async def async_turn_off(self, **kwargs) -> None: cmd = "0" if not self.invert else "1" - await self.mega.send_command(self.port, f"{self.port}:{cmd}") + await self.mega.request(cmd=f"{self.port}:{cmd}") self.mega.values[self.port] = {'value': cmd} await self.get_state() diff --git a/custom_components/mega/services.yaml b/custom_components/mega/services.yaml index 2ef7412..2147513 100644 --- a/custom_components/mega/services.yaml +++ b/custom_components/mega/services.yaml @@ -25,9 +25,10 @@ run_cmd: mega_id: description: ID меги, можно оставить пустым, тогда будут сохранены все зарегистрированные меги example: "mega" - port: - description: Номер порта (это не порт, которым мы управляем, а порт с которого шлем команду) - example: 1 cmd: description: Любая поддерживаемая мегой команда example: "1:0" + port: + description: (Deprecated, больше не нужен) Номер порта (это не порт, которым мы управляем, а порт с которого шлем команду) + example: 1 +