text: """Suppoort for Amcrest IP camera binary sensors."""
  import asyncio
  from datetime import timedelta
  import logging
  
  from requests.exceptions import RequestException
  
  from homeassistant.components.binary_sensor import BinarySensorDevice
  from homeassistant.const import CONF_NAME, CONF_BINARY_SENSORS
  try:
      from . import DATA_AMCREST, BINARY_SENSORS
  except ImportError:
      from custom_components.amcrest import DATA_AMCREST, BINARY_SENSORS
  
  
  DEPENDENCIES = ['amcrest']
  
  _LOGGER = logging.getLogger(__name__)
  
  SCAN_INTERVAL = timedelta(seconds=5)
  
  
  @asyncio.coroutine
  def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
      """Set up a binary sensor for an Amcrest IP Camera."""
      if discovery_info is None:
          return
  
      device_name = discovery_info[CONF_NAME]
      binary_sensors = discovery_info[CONF_BINARY_SENSORS]
      amcrest = hass.data[DATA_AMCREST][device_name]
  
      amcrest_binary_sensors = []
      for sensor_type in binary_sensors:
          amcrest_binary_sensors.append(
              AmcrestBinarySensor(amcrest.name, amcrest.device, sensor_type))
  
      async_add_devices(amcrest_binary_sensors, True)
      return True
  
  
  class AmcrestBinarySensor(BinarySensorDevice):
      """Binary sensor for Amcrest camera."""
  
      def __init__(self, name, camera, sensor_type):
          """Initialize entity."""
          self._name = '{} {}'.format(name, BINARY_SENSORS.get(sensor_type))
          self._camera = camera
          self._sensor_type = sensor_type
          self._state = None
  
      @property
      def name(self):
          """Return entity name."""
          return self._name
  
      @property
      def is_on(self):
          """Return if entity is on."""
          return self._state
  
      @property
      def device_class(self):
          """Return device class."""
          return 'motion'
  
      def update(self):
          """Update entity."""
          _LOGGER.debug('Pulling data from {} binary sensor.'.format(self._name))
  
          if self._sensor_type == 'motion_detected':
              try:
                  self._state = self._camera.is_motion_detected
              except RequestException as exc:
                  _LOGGER.error(
                      '{}: {}'.format(exc.__class__.__name__, str(exc)))
  