diff --git a/custom_components/mikrotik_router/__init__.py b/custom_components/mikrotik_router/__init__.py index 625bf3a..6dd249a 100644 --- a/custom_components/mikrotik_router/__init__.py +++ b/custom_components/mikrotik_router/__init__.py @@ -5,7 +5,6 @@ import voluptuous as vol import homeassistant.helpers.config_validation as cv from homeassistant.exceptions import ConfigEntryNotReady -from homeassistant.const import CONF_NAME from .const import ( DOMAIN, DATA_CLIENT, @@ -15,7 +14,9 @@ from .mikrotik_controller import MikrotikControllerData _LOGGER = logging.getLogger(__name__) -SCRIPT_SCHEMA = vol.Schema({vol.Required(CONF_NAME): cv.string}) +SCRIPT_SCHEMA = vol.Schema( + {vol.Required("router"): cv.string, vol.Required("script"): cv.string} +) # --------------------------- diff --git a/custom_components/mikrotik_router/mikrotik_controller.py b/custom_components/mikrotik_router/mikrotik_controller.py index 5450fa6..de2488d 100644 --- a/custom_components/mikrotik_router/mikrotik_controller.py +++ b/custom_components/mikrotik_router/mikrotik_controller.py @@ -194,8 +194,16 @@ class MikrotikControllerData: def run_script(self, name): """Run script using Mikrotik API""" if type(name) != str: - if CONF_NAME in name.data: - name = name.data.get(CONF_NAME) + if "router" not in name.data: + return + + if self.config_entry.data["name"] != name.data.get("router"): + return + + if "script" in name.data: + name = name.data.get("script") + else: + return try: self.api.run_script(name) diff --git a/custom_components/mikrotik_router/services.yaml b/custom_components/mikrotik_router/services.yaml index 4d7cb38..d318823 100644 --- a/custom_components/mikrotik_router/services.yaml +++ b/custom_components/mikrotik_router/services.yaml @@ -1,6 +1,9 @@ run_script: description: Run script on Mikrotik fields: - name: + router: + description: Name of the router + example: "Mikrotik" + script: description: Name of the script example: "MyScript" \ No newline at end of file