From c1ed2f17ac41d065cc05ada1876d284ad1dca342 Mon Sep 17 00:00:00 2001 From: Robert Dunmire III Date: Tue, 27 Nov 2018 07:26:52 -0500 Subject: [PATCH] Update librouteros and re-connect to api if connection is lost (#18421) * Reconnect when connection is lost * Fix tabs * add librouteros.exceptions * add logger * fix line too long * added import librouteros * Update librouteros version * Update mikrotik.py * Update mikrotik.py * Fix trailing whitespace * Update mikrotik.py * Update mikrotik.py --- homeassistant/components/device_tracker/mikrotik.py | 12 +++++++++--- requirements_all.txt | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/device_tracker/mikrotik.py b/homeassistant/components/device_tracker/mikrotik.py index 587872db839..cddcd1f26ee 100644 --- a/homeassistant/components/device_tracker/mikrotik.py +++ b/homeassistant/components/device_tracker/mikrotik.py @@ -16,7 +16,7 @@ from homeassistant.components.device_tracker import ( from homeassistant.const import ( CONF_HOST, CONF_PASSWORD, CONF_USERNAME, CONF_PORT, CONF_SSL, CONF_METHOD) -REQUIREMENTS = ['librouteros==2.1.1'] +REQUIREMENTS = ['librouteros==2.2.0'] _LOGGER = logging.getLogger(__name__) @@ -144,12 +144,18 @@ class MikrotikScanner(DeviceScanner): librouteros.exceptions.MultiTrapError, librouteros.exceptions.ConnectionError) as api_error: _LOGGER.error("Connection error: %s", api_error) - return self.connected def scan_devices(self): """Scan for new devices and return a list with found device MACs.""" - self._update_info() + import librouteros + try: + self._update_info() + except (librouteros.exceptions.TrapError, + librouteros.exceptions.MultiTrapError, + librouteros.exceptions.ConnectionError) as api_error: + _LOGGER.error("Connection error: %s", api_error) + self.connect_to_device() return [device for device in self.last_results] def get_device_name(self, device): diff --git a/requirements_all.txt b/requirements_all.txt index 354b7ca908a..294f1cb1ebb 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -570,7 +570,7 @@ libpurecoollink==0.4.2 libpyfoscam==1.0 # homeassistant.components.device_tracker.mikrotik -librouteros==2.1.1 +librouteros==2.2.0 # homeassistant.components.media_player.soundtouch libsoundtouch==0.7.2