docs: async def _connect(self, connection_lost_callbk=None):
          """Asyncio connection to Elk."""
          self.connection_lost_callbk = connection_lost_callbk
          url = self._config['url']
          LOG.info("Connecting to ElkM1 at %s", url)
          scheme, dest, param, ssl_context = parse_url(url)
          conn = partial(Connection, self.loop, self._connected,
                         self._disconnected, self._got_data, self._timeout)
          try:
              if scheme == 'serial':
                  await serial_asyncio.create_serial_connection(
                      self.loop, conn, dest, baudrate=param)
              else:
                  await asyncio.wait_for(self.loop.create_connection(
                      conn, host=dest, port=param, ssl=ssl_context), timeout=30)
          except (ValueError, OSError, asyncio.TimeoutError) as err:
              LOG.warning("Could not connect to ElkM1 (%s). Retrying in %d seconds",
                          err, self._connection_retry_timer)
              self.loop.call_later(self._connection_retry_timer, self.connect)
              self._connection_retry_timer = 2 * self._connection_retry_timer \
                  if self._connection_retry_timer < 32 else 60