Ejemplo n.º 1
0
def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
    """Discover and setup Xeoma Cameras."""
    from pyxeoma.xeoma import Xeoma, XeomaError

    host = config[CONF_HOST]
    login = config.get(CONF_USERNAME)
    password = config.get(CONF_PASSWORD)

    xeoma = Xeoma(host, login, password)

    try:
        yield from xeoma.async_test_connection()
        discovered_image_names = yield from xeoma.async_get_image_names()
        discovered_cameras = [
            {
                CONF_IMAGE_NAME: image_name,
                CONF_HIDE: False,
                CONF_NAME: image_name,
                CONF_VIEWER_USERNAME: username,
                CONF_VIEWER_PASSWORD: pw

            }
            for image_name, username, pw in discovered_image_names
        ]

        for cam in config.get(CONF_CAMERAS, []):
            # https://github.com/PyCQA/pylint/issues/1830
            # pylint: disable=stop-iteration-return
            camera = next(
                (dc for dc in discovered_cameras
                 if dc[CONF_IMAGE_NAME] == cam[CONF_IMAGE_NAME]), None)

            if camera is not None:
                if CONF_NAME in cam:
                    camera[CONF_NAME] = cam[CONF_NAME]
                if CONF_HIDE in cam:
                    camera[CONF_HIDE] = cam[CONF_HIDE]

        cameras = list(filter(lambda c: not c[CONF_HIDE], discovered_cameras))
        async_add_devices(
            [XeomaCamera(xeoma, camera[CONF_IMAGE_NAME], camera[CONF_NAME],
                         camera[CONF_VIEWER_USERNAME],
                         camera[CONF_VIEWER_PASSWORD]) for camera in cameras])
    except XeomaError as err:
        _LOGGER.error("Error: %s", err.message)
        return
Ejemplo n.º 2
0
def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
    """Discover and setup Xeoma Cameras."""
    from pyxeoma.xeoma import Xeoma, XeomaError

    host = config[CONF_HOST]
    login = config.get(CONF_USERNAME)
    password = config.get(CONF_PASSWORD)

    xeoma = Xeoma(host, login, password)

    try:
        yield from xeoma.async_test_connection()
        discovered_image_names = yield from xeoma.async_get_image_names()
        discovered_cameras = [{
            CONF_IMAGE_NAME: image_name,
            CONF_HIDE: False,
            CONF_NAME: image_name,
            CONF_VIEWER_USERNAME: username,
            CONF_VIEWER_PASSWORD: pw
        } for image_name, username, pw in discovered_image_names]

        for cam in config.get(CONF_CAMERAS, []):
            # https://github.com/PyCQA/pylint/issues/1830
            # pylint: disable=stop-iteration-return
            camera = next((dc for dc in discovered_cameras
                           if dc[CONF_IMAGE_NAME] == cam[CONF_IMAGE_NAME]),
                          None)

            if camera is not None:
                if CONF_NAME in cam:
                    camera[CONF_NAME] = cam[CONF_NAME]
                if CONF_HIDE in cam:
                    camera[CONF_HIDE] = cam[CONF_HIDE]

        cameras = list(filter(lambda c: not c[CONF_HIDE], discovered_cameras))
        async_add_devices([
            XeomaCamera(xeoma, camera[CONF_IMAGE_NAME], camera[CONF_NAME],
                        camera[CONF_VIEWER_USERNAME],
                        camera[CONF_VIEWER_PASSWORD]) for camera in cameras
        ])
    except XeomaError as err:
        _LOGGER.error("Error: %s", err.message)
        return
Ejemplo n.º 3
0
def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
    """Discover and setup Xeoma Cameras."""
    from pyxeoma.xeoma import Xeoma, XeomaError

    host = config[CONF_HOST]
    login = config.get(CONF_USERNAME)
    password = config.get(CONF_PASSWORD)
    new_version = config[CONF_NEW_VERSION]

    xeoma = Xeoma(host, new_version, login, password)

    try:
        yield from xeoma.async_test_connection()
        discovered_image_names = yield from xeoma.async_get_image_names()
        discovered_cameras = [
            {
                CONF_IMAGE_NAME: image_name,
                CONF_HIDE: False,
                CONF_NAME: image_name
            }
            for image_name in discovered_image_names
        ]

        for cam in config[CONF_CAMERAS]:
            camera = next(
                (dc for dc in discovered_cameras
                 if dc[CONF_IMAGE_NAME] == cam[CONF_IMAGE_NAME]), None)

            if camera is not None:
                if CONF_NAME in cam:
                    camera[CONF_NAME] = cam[CONF_NAME]
                if CONF_HIDE in cam:
                    camera[CONF_HIDE] = cam[CONF_HIDE]

        cameras = list(filter(lambda c: not c[CONF_HIDE], discovered_cameras))
        async_add_devices(
            [XeomaCamera(xeoma, camera[CONF_IMAGE_NAME], camera[CONF_NAME])
             for camera in cameras])
    except XeomaError as err:
        _LOGGER.error("Error: %s", err.message)
        return
Ejemplo n.º 4
0
def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
    """Discover and setup Xeoma Cameras."""
    from pyxeoma.xeoma import Xeoma, XeomaError

    host = config[CONF_HOST]
    login = config.get(CONF_USERNAME)
    password = config.get(CONF_PASSWORD)
    new_version = config[CONF_NEW_VERSION]

    xeoma = Xeoma(host, new_version, login, password)

    try:
        yield from xeoma.async_test_connection()
        discovered_image_names = yield from xeoma.async_get_image_names()
        discovered_cameras = [{
            CONF_IMAGE_NAME: image_name,
            CONF_HIDE: False,
            CONF_NAME: image_name
        } for image_name in discovered_image_names]

        for cam in config[CONF_CAMERAS]:
            camera = next((dc for dc in discovered_cameras
                           if dc[CONF_IMAGE_NAME] == cam[CONF_IMAGE_NAME]),
                          None)

            if camera is not None:
                if CONF_NAME in cam:
                    camera[CONF_NAME] = cam[CONF_NAME]
                if CONF_HIDE in cam:
                    camera[CONF_HIDE] = cam[CONF_HIDE]

        cameras = list(filter(lambda c: not c[CONF_HIDE], discovered_cameras))
        async_add_devices([
            XeomaCamera(xeoma, camera[CONF_IMAGE_NAME], camera[CONF_NAME])
            for camera in cameras
        ])
    except XeomaError as err:
        _LOGGER.error("Error: %s", err.message)
        return
Ejemplo n.º 5
0
async def async_setup_platform(hass,
                               config,
                               async_add_entities,
                               discovery_info=None):
    """Discover and setup Xeoma Cameras."""
    from pyxeoma.xeoma import Xeoma, XeomaError

    host = config[CONF_HOST]
    login = config.get(CONF_USERNAME)
    password = config.get(CONF_PASSWORD)

    xeoma = Xeoma(host, login, password)

    try:
        await xeoma.async_test_connection()
        discovered_image_names = await xeoma.async_get_image_names()
        discovered_cameras = [{
            CONF_IMAGE_NAME: image_name,
            CONF_HIDE: False,
            CONF_NAME: image_name,
            CONF_VIEWER_USERNAME: username,
            CONF_VIEWER_PASSWORD: pw,
        } for image_name, username, pw in discovered_image_names]

        for cam in config.get(CONF_CAMERAS, []):
            camera = next(
                (dc for dc in discovered_cameras
                 if dc[CONF_IMAGE_NAME] == cam[CONF_IMAGE_NAME]),
                None,
            )

            if camera is not None:
                if CONF_NAME in cam:
                    camera[CONF_NAME] = cam[CONF_NAME]
                if CONF_HIDE in cam:
                    camera[CONF_HIDE] = cam[CONF_HIDE]

        cameras = list(filter(lambda c: not c[CONF_HIDE], discovered_cameras))
        async_add_entities([
            XeomaCamera(
                xeoma,
                camera[CONF_IMAGE_NAME],
                camera[CONF_NAME],
                camera[CONF_VIEWER_USERNAME],
                camera[CONF_VIEWER_PASSWORD],
            ) for camera in cameras
        ])
    except XeomaError as err:
        _LOGGER.error("Error: %s", err.message)
        return