diff --git a/README.md b/README.md index edf5755..95dd001 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ ![GitHub commits since latest release](https://img.shields.io/github/commits-since/tomaae/homeassistant-mikrotik_router/latest?style=plastic) ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/tomaae/homeassistant-mikrotik_router?style=plastic) -![GitHub Workflow Status](https://img.shields.io/github/workflow/status/tomaae/homeassistant-mikrotik_router/CI?label=CI&style=plastic) +![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/tomaae/homeassistant-mikrotik_router/ci.yml?style=plastic) [![Help localize](https://img.shields.io/badge/lokalise-join-green?style=plastic&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REVCNzgzOEY4NDYxMTFFQUIyMEY4Njc0NzVDOUZFMkMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REVCNzgzOEU4NDYxMTFFQUIyMEY4Njc0NzVDOUZFMkMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozN0ZDRUY4Rjc0M0UxMUU3QUQ2MDg4M0Q0MkE0NjNCNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozN0ZDRUY5MDc0M0UxMUU3QUQ2MDg4M0Q0MkE0NjNCNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pjs1zyIAAABVSURBVHjaYvz//z8DOYCJgUxAtkYW9+mXyXIrI7l+ZGHc0k5nGxkupdHZxve1yQR1CjbPZURXh9dGoGJZIPUI2QC4JEgjIfyuJuk/uhgj3dMqQIABAPEGTZ/+h0kEAAAAAElFTkSuQmCC)](https://app.lokalise.com/public/581188395e9778a6060128.17699416/) diff --git a/custom_components/mikrotik_router/coordinator.py b/custom_components/mikrotik_router/coordinator.py index aa4eab5..53d7eae 100644 --- a/custom_components/mikrotik_router/coordinator.py +++ b/custom_components/mikrotik_router/coordinator.py @@ -442,9 +442,9 @@ class MikrotikCoordinator(DataUpdateCoordinator[None]): # --------------------------- # execute # --------------------------- - def execute(self, path, command, param, value): + def execute(self, path, command, param, value, attributes=None): """Change value using Mikrotik API""" - return self.api.execute(path, command, param, value) + return self.api.execute(path, command, param, value, attributes) # --------------------------- # run_script @@ -1487,7 +1487,9 @@ class MikrotikCoordinator(DataUpdateCoordinator[None]): ): return - self.execute("/system/package/update", "check-for-updates", None, None) + self.execute( + "/system/package/update", "check-for-updates", None, None, {"duration": 10} + ) self.ds["fw-update"] = parse_api( data=self.ds["fw-update"], source=self.api.query("/system/package/update"), diff --git a/custom_components/mikrotik_router/mikrotikapi.py b/custom_components/mikrotik_router/mikrotikapi.py index 5c24290..2fef45e 100644 --- a/custom_components/mikrotik_router/mikrotikapi.py +++ b/custom_components/mikrotik_router/mikrotikapi.py @@ -258,7 +258,7 @@ class MikrotikAPI: # --------------------------- # execute # --------------------------- - def execute(self, path, command, param, value) -> bool: + def execute(self, path, command, param, value, attributes=None) -> bool: """Execute a command""" entry_found = None params = {} @@ -292,6 +292,9 @@ class MikrotikAPI: params = {".id": entry_found} + if attributes: + params.update(attributes) + self.lock.acquire() try: tuple(response(command, **params)) diff --git a/custom_components/mikrotik_router/sensor_types.py b/custom_components/mikrotik_router/sensor_types.py index ec23eb9..865908c 100644 --- a/custom_components/mikrotik_router/sensor_types.py +++ b/custom_components/mikrotik_router/sensor_types.py @@ -331,7 +331,7 @@ SENSOR_TYPES: tuple[MikrotikSensorEntityDescription, ...] = ( icon="mdi:lan", native_unit_of_measurement=None, device_class=None, - state_class=None, + state_class=SensorStateClass.MEASUREMENT, entity_category=None, ha_group="System", data_path="resource", @@ -346,7 +346,7 @@ SENSOR_TYPES: tuple[MikrotikSensorEntityDescription, ...] = ( icon="mdi:wifi", native_unit_of_measurement=None, device_class=None, - state_class=None, + state_class=SensorStateClass.MEASUREMENT, entity_category=None, ha_group="System", data_path="resource", @@ -361,7 +361,7 @@ SENSOR_TYPES: tuple[MikrotikSensorEntityDescription, ...] = ( icon="mdi:key-wireless", native_unit_of_measurement=None, device_class=None, - state_class=None, + state_class=SensorStateClass.MEASUREMENT, entity_category=None, ha_group="System", data_path="resource", diff --git a/custom_components/mikrotik_router/translations/cs.json b/custom_components/mikrotik_router/translations/cs.json index 4830ed4..bb73491 100644 --- a/custom_components/mikrotik_router/translations/cs.json +++ b/custom_components/mikrotik_router/translations/cs.json @@ -49,7 +49,7 @@ "sensor_mangle": "Mangle spínače", "sensor_ppp": "Uživatelé PPP", "sensor_filter": "Přepínače filtrů", - "sensor_client_captive": "Captive portal data" + "sensor_client_captive": "Captive portál data" }, "title": "Nastavení Mikrotik Router (2\/2)", "description": "Povolit senzory a přepínače" diff --git a/custom_components/mikrotik_router/translations/de.json b/custom_components/mikrotik_router/translations/de.json index 137ce0a..18814bc 100644 --- a/custom_components/mikrotik_router/translations/de.json +++ b/custom_components/mikrotik_router/translations/de.json @@ -17,7 +17,7 @@ "error": { "name_exists": "Name existiert bereits", "cannot_connect": "Verbindung zu Mikrotik nicht möglich.", - "ssl_handshake_failure": "SSL Vereinbarung-Fehler", + "ssl_handshake_failure": "SSL Handshake Fehler", "connection_timeout": "Mikrotik-Verbindungstimeout.", "wrong_login": "Ungültiger Benutzername oder Passwort." } @@ -38,18 +38,18 @@ "sensor_select": { "data": { "track_network_hosts": "Verfolgen Sie Netzwerkgeräte", - "sensor_port_tracker": "Hafentracker-Sensoren", - "sensor_port_traffic": "Hafen-Verkehrssensoren", - "sensor_client_traffic": "Kunden-Verkehrssensoren", + "sensor_port_tracker": "Port-Statussensoren", + "sensor_port_traffic": "Port-Durchsatz Sensoren", + "sensor_client_traffic": "Client-Durchsatz Sensoren", "sensor_simple_queues": "Einfache Endschalter", "sensor_nat": "NAT-Schalter", "sensor_scripts": "Skript-Schalter", - "sensor_environment": "Umwelt variable Sensoren", + "sensor_environment": "umgebungsvariablen-Sensoren", "sensor_kidcontrol": "Kinderkontrolle", "sensor_mangle": "Mangle-Schalter", "sensor_ppp": "PPP-Nutzer", - "sensor_filter": "Schalter filtern", - "sensor_client_captive": "Captive portal data" + "sensor_filter": "Schalter für Filterregeln", + "sensor_client_captive": "Captive-Portal Daten" }, "title": "Mikrotik-Router-Optionen (2\/2)", "description": "Sensoren und Schalter aktivieren" diff --git a/custom_components/mikrotik_router/translations/no.json b/custom_components/mikrotik_router/translations/no.json new file mode 100644 index 0000000..d1b703a --- /dev/null +++ b/custom_components/mikrotik_router/translations/no.json @@ -0,0 +1,59 @@ +{ + "config": { + "step": { + "user": { + "title": "Sett opp Mikrotik router", + "description": "Sett opp Mikrotik Router integrasjon", + "data": { + "name": "Navn på integreringen", + "host": "Adresse", + "port": "Port", + "username": "Brukernavn", + "password": "Passord", + "ssl": "Bruk SSL" + } + } + }, + "error": { + "name_exists": "Navnet eksisterer allerede", + "cannot_connect": "Kunne ikke koble til Mikrotik", + "ssl_handshake_failure": "SSH håndtrykkfeil", + "connection_timeout": "Mikrotik tilkoblingen fikk tidsavbrudd", + "wrong_login": "Feil brukernavn og\/eller passord" + } + }, + "options": { + "step": { + "basic_options": { + "data": { + "scan_interval": "Søke interval (krever HA omstart)", + "track_iface_clients": "Vis klient MAC og IP på grensesnittet", + "unit_of_measurement": "Måleenhet", + "track_network_hosts_timeout": "Spor nettverks enhet tidsavbrudd (sekunder)", + "zone": "Sone for enhetssporer" + }, + "title": "Mikrotik Router alternativer", + "description": "Konfigurer integrasjon" + }, + "sensor_select": { + "data": { + "track_network_hosts": "Spor nettverksenheter", + "sensor_port_tracker": "Port sporings sensorer", + "sensor_port_traffic": "Port trafikk sensorer", + "sensor_client_traffic": "Klient trafikk sensorer", + "sensor_simple_queues": "Enklel kø brytere", + "sensor_nat": "NAT Brytere", + "sensor_scripts": "Script brytere", + "sensor_environment": "Miljøvariabel sensorer", + "sensor_kidcontrol": "Barnekontroll", + "sensor_mangle": "Mangle brytere", + "sensor_ppp": "PPP Brukere", + "sensor_filter": "Filter brytere", + "sensor_client_captive": "Captive portal data" + }, + "title": "Mikrotik Router options (2\/2)", + "description": "Skru på sensorer og brytere" + } + } + } +} \ No newline at end of file diff --git a/custom_components/mikrotik_router/translations/pt_BR.json b/custom_components/mikrotik_router/translations/pt_BR.json index 6db1588..e99aed3 100644 --- a/custom_components/mikrotik_router/translations/pt_BR.json +++ b/custom_components/mikrotik_router/translations/pt_BR.json @@ -49,7 +49,7 @@ "sensor_mangle": "Interruptores Mangle", "sensor_ppp": "Usuários de PPP", "sensor_filter": "Interruptores de filtro", - "sensor_client_captive": "Captive portal data" + "sensor_client_captive": "sensores de cliente cativo" }, "title": "Opções de roteador Mikrotik (2\/2)", "description": "Ativar sensores e interruptores" diff --git a/custom_components/mikrotik_router/translations/ru.json b/custom_components/mikrotik_router/translations/ru.json index b778d6f..fb4d180 100644 --- a/custom_components/mikrotik_router/translations/ru.json +++ b/custom_components/mikrotik_router/translations/ru.json @@ -6,7 +6,7 @@ "description": "Настройка Home Assistant для интеграции с Mikrotik.", "data": { "name": "Название интеграции", - "host": "Адрес маршрутизатора", + "host": "Адрес хоста", "port": "Порт", "username": "Имя пользователя", "password": "Пароль", @@ -49,7 +49,7 @@ "sensor_mangle": "Переключатели Mangle", "sensor_ppp": "PPP-пользователи", "sensor_filter": "Переключатели фильтров", - "sensor_client_captive": "Captive portal data" + "sensor_client_captive": "Данные портала авторизации" }, "title": "Параметры Mikrotik Router (2\/2)", "description": "Включить датчики и переключатели" diff --git a/custom_components/mikrotik_router/translations/uk.json b/custom_components/mikrotik_router/translations/uk.json new file mode 100644 index 0000000..23d674c --- /dev/null +++ b/custom_components/mikrotik_router/translations/uk.json @@ -0,0 +1,59 @@ +{ + "config": { + "step": { + "user": { + "title": "Налаштувати Mikrotik Router", + "description": "Налаштувати Mikrotik Router інтеграцію", + "data": { + "name": "Назва інтеграції", + "host": "Хост", + "port": "Порт", + "username": "Користувач", + "password": "Пароль", + "ssl": "Використовувати SSL" + } + } + }, + "error": { + "name_exists": "Назва вже існує.", + "cannot_connect": "Cannot connect to Mikrotik.", + "ssl_handshake_failure": "SSL handshake failure", + "connection_timeout": "Mikrotik connection timeout.", + "wrong_login": "Invalid user name or password." + } + }, + "options": { + "step": { + "basic_options": { + "data": { + "scan_interval": "Scan interval (requires HA restart)", + "track_iface_clients": "Show client MAC and IP on interfaces", + "unit_of_measurement": "Unit of measurement", + "track_network_hosts_timeout": "Track network devices timeout (seconds)", + "zone": "Zone for device tracker" + }, + "title": "Mikrotik Router options (1\/2)", + "description": "Налаштувати інтеграцію" + }, + "sensor_select": { + "data": { + "track_network_hosts": "Track network devices", + "sensor_port_tracker": "Port tracker sensors", + "sensor_port_traffic": "Port traffic sensors", + "sensor_client_traffic": "Client traffic sensors", + "sensor_simple_queues": "Simple queues switches", + "sensor_nat": "NAT switches", + "sensor_scripts": "Script switches", + "sensor_environment": "Environment variable sensors", + "sensor_kidcontrol": "Дитячий контроль", + "sensor_mangle": "Mangle switches", + "sensor_ppp": "Користувачі PPP", + "sensor_filter": "Filter switches", + "sensor_client_captive": "Captive portal data" + }, + "title": "Mikrotik Router options (2\/2)", + "description": "Enable sensors and switches" + } + } + } +} \ No newline at end of file