Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 9 additions & 27 deletions homeassistant/components/mikrotik/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
import logging
import ssl

import librouteros
from librouteros.login import login_plain, login_token
from librouteros import connect
from librouteros.exceptions import LibRouterosError
from librouteros.login import plain as login_plain, token as login_token
import voluptuous as vol

from homeassistant.components.device_tracker import DOMAIN as DEVICE_TRACKER
Expand Down Expand Up @@ -82,23 +83,17 @@ def setup(hass, config):
port = MTK_DEFAULT_API_PORT

if login == MTK_LOGIN_PLAIN:
login_method = (login_plain,)
elif login == MTK_LOGIN_TOKEN:
login_method = (login_token,)
login_method = login_plain
else:
login_method = (login_plain, login_token)
login_method = login_token

try:
api = MikrotikClient(
host, use_ssl, port, user, password, login_method, encoding
)
api.connect_to_device()
hass.data[DOMAIN][HOSTS][host] = {"config": device, "api": api}
except (
librouteros.exceptions.TrapError,
librouteros.exceptions.MultiTrapError,
librouteros.exceptions.ConnectionError,
) as api_error:
except LibRouterosError as api_error:
_LOGGER.error("Mikrotik %s error %s", host, api_error)
continue

Expand Down Expand Up @@ -148,15 +143,9 @@ def connect_to_device(self):
kwargs["ssl_wrapper"] = self._ssl_wrapper

try:
self._client = librouteros.connect(
self._host, self._user, self._password, **kwargs
)
self._client = connect(self._host, self._user, self._password, **kwargs)
self._connected = True
except (
librouteros.exceptions.TrapError,
librouteros.exceptions.MultiTrapError,
librouteros.exceptions.ConnectionError,
) as api_error:
except LibRouterosError as api_error:
_LOGGER.error("Mikrotik %s: %s", self._host, api_error)
self._client = None
return False
Expand Down Expand Up @@ -184,14 +173,7 @@ def command(self, cmd, params=None):
response = self._client(cmd=cmd, **params)
else:
response = self._client(cmd=cmd)
except (librouteros.exceptions.ConnectionError,) as api_error:
_LOGGER.error("Mikrotik %s connection error %s", self._host, api_error)
self.connect_to_device()
return None
except (
librouteros.exceptions.TrapError,
librouteros.exceptions.MultiTrapError,
) as api_error:
except LibRouterosError as api_error:
_LOGGER.error(
"Mikrotik %s failed to retrieve data. cmd=[%s] Error: %s",
self._host,
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/mikrotik/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"domain": "mikrotik",
"name": "MikroTik",
"documentation": "https://www.home-assistant.io/integrations/mikrotik",
"requirements": ["librouteros==2.3.0"],
"requirements": ["librouteros==3.0.0"],
"dependencies": [],
"codeowners": []
}
2 changes: 1 addition & 1 deletion requirements_all.txt
Original file line number Diff line number Diff line change
Expand Up @@ -775,7 +775,7 @@ libpyfoscam==1.0
libpyvivotek==0.4.0

# homeassistant.components.mikrotik
librouteros==2.3.0
librouteros==3.0.0

# homeassistant.components.soundtouch
libsoundtouch==0.7.2
Expand Down