docs: def _send(self, event):
          """Generic function for sending commands to Alarm.com
  
          :param event: Event command to send to alarm.com
          """
          _LOGGER.debug('Sending %s to Alarm.com', event)
  
          try:
              with async_timeout.timeout(10, loop=self._loop):
                  response = yield from self._websession.post(
                      self.ALARMDOTCOM_URL + '{}/main.aspx'.format(
                          self._login_info['sessionkey']),
                      data={
                          self.VIEWSTATE: '',
                          self.VIEWSTATEENCRYPTED: '',
                          self.EVENTVALIDATION:
                              self.COMMAND_LIST[event]['eventvalidation'],
                          self.COMMAND_LIST[event]['command']: event},
                      headers={'User-Agent': 'Mozilla/5.0 '
                                             '(Windows NT 6.1; '
                                             'WOW64; rv:40.0) '
                                             'Gecko/20100101 '
                                             'Firefox/40.1'}
                  )
  
                  _LOGGER.debug(
                      'Response from Alarm.com %s', response.status)
                  text = yield from response.text()
                  tree = BeautifulSoup(text, 'html.parser')
                  try:
                      message = tree.select(
                          '#{}'.format(self.MESSAGE_CONTROL))[0].get_text()
                      if 'command' in message:
                          _LOGGER.debug(message)
                          # Update alarm.com status after calling state change.
                          yield from self.async_update()
                  except IndexError:
                      # May have been logged out
                      yield from self.async_login()
                      if event == 'Disarm':
                          yield from self.async_alarm_disarm()
                      elif event == 'Arm+Stay':
                          yield from self.async_alarm_arm_away()
                      elif event == 'Arm+Away':
                          yield from self.async_alarm_arm_away()
  
          except (asyncio.TimeoutError, aiohttp.ClientError):
              _LOGGER.error('Error while trying to disarm Alarm.com system')
          finally:
              if response is not None:
                  yield from response.release()