Пример #1
0
def init():
    camera_name = sys.argv[1]
    camera_settings = get_camera(camera_name)

    if camera_settings["hik_url"] is None:
        return

    global camera
    camera = HikCamera(
        camera_settings["hik_url"],
        usr=camera_settings["hik_user"],
        pwd=camera_settings["hik_pass"],
    )

    camera.start_stream()

    if camera.name is None:
        logging.error(f"Failed to initialize camera {camera_name}")
        sys.exit(1)

    for sensor, channel_list in camera.current_event_states.items():
        for channel in channel_list:
            camera.add_update_callback(
                Sensor(camera_name, camera, sensor, channel[1]).update,
                f"{camera.get_id}.{sensor}.{channel[1]}",
            )
Пример #2
0
class HikvisionData(object):
    """Hikvision device event stream object."""

    def __init__(self, hass, url, port, name, username, password):
        """Initialize the data oject."""
        from pyhik.hikvision import HikCamera
        self._url = url
        self._port = port
        self._name = name
        self._username = username
        self._password = password

        # Establish camera
        self.camdata = HikCamera(
            self._url, self._port, self._username, self._password)

        if self._name is None:
            self._name = self.camdata.get_name

        hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, self.stop_hik)
        hass.bus.listen_once(EVENT_HOMEASSISTANT_START, self.start_hik)

    def stop_hik(self, event):
        """Shutdown Hikvision subscriptions and subscription thread on exit."""
        self.camdata.disconnect()

    def start_hik(self, event):
        """Start Hikvision event stream thread."""
        self.camdata.start_stream()

    @property
    def sensors(self):
        """Return list of available sensors and their states."""
        return self.camdata.current_event_states

    @property
    def cam_id(self):
        """Return device id."""
        return self.camdata.get_id

    @property
    def name(self):
        """Return device name."""
        return self._name

    @property
    def type(self):
        """Return device type."""
        return self.camdata.get_type

    def get_attributes(self, sensor, channel):
        """Return attribute list for sensor/channel."""
        return self.camdata.fetch_attributes(sensor, channel)
Пример #3
0
class HikvisionData(object):
    """Hikvision device event stream object."""

    def __init__(self, hass, url, port, name, username, password):
        """Initialize the data object."""
        from pyhik.hikvision import HikCamera
        self._url = url
        self._port = port
        self._name = name
        self._username = username
        self._password = password

        # Establish camera
        self.camdata = HikCamera(
            self._url, self._port, self._username, self._password)

        if self._name is None:
            self._name = self.camdata.get_name

        hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, self.stop_hik)
        hass.bus.listen_once(EVENT_HOMEASSISTANT_START, self.start_hik)

    def stop_hik(self, event):
        """Shutdown Hikvision subscriptions and subscription thread on exit."""
        self.camdata.disconnect()

    def start_hik(self, event):
        """Start Hikvision event stream thread."""
        self.camdata.start_stream()

    @property
    def sensors(self):
        """Return list of available sensors and their states."""
        return self.camdata.current_event_states

    @property
    def cam_id(self):
        """Return device id."""
        return self.camdata.get_id

    @property
    def name(self):
        """Return device name."""
        return self._name

    @property
    def type(self):
        """Return device type."""
        return self.camdata.get_type

    def get_attributes(self, sensor, channel):
        """Return attribute list for sensor/channel."""
        return self.camdata.fetch_attributes(sensor, channel)
Пример #4
0
class HikvisionData(object):
    """Hikvision camera event stream object."""

    def __init__(self, hass, url, port, name, username, password):
        """Initialize the data oject."""
        from pyhik.hikvision import HikCamera
        self._url = url
        self._port = port
        self._name = name
        self._username = username
        self._password = password

        # Establish camera
        self._cam = HikCamera(self._url, self._port,
                              self._username, self._password)

        if self._name is None:
            self._name = self._cam.get_name

        # Start event stream
        self._cam.start_stream()

        hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, self.stop_hik)

    def stop_hik(self, event):
        """Shutdown Hikvision subscriptions and subscription thread on exit."""
        self._cam.disconnect()

    @property
    def sensors(self):
        """Return list of available sensors and their states."""
        return self._cam.current_event_states

    @property
    def cam_id(self):
        """Return camera id."""
        return self._cam.get_id

    @property
    def name(self):
        """Return camera name."""
        return self._name
Пример #5
0
class HikvisionData(object):
    """Hikvision camera event stream object."""
    def __init__(self, hass, url, port, name, username, password):
        """Initialize the data oject."""
        from pyhik.hikvision import HikCamera
        self._url = url
        self._port = port
        self._name = name
        self._username = username
        self._password = password

        # Establish camera
        self._cam = HikCamera(self._url, self._port, self._username,
                              self._password)

        if self._name is None:
            self._name = self._cam.get_name

        # Start event stream
        self._cam.start_stream()

        hass.bus.listen_once(EVENT_HOMEASSISTANT_STOP, self.stop_hik)

    def stop_hik(self, event):
        """Shutdown Hikvision subscriptions and subscription thread on exit."""
        self._cam.disconnect()

    @property
    def sensors(self):
        """Return list of available sensors and their states."""
        return self._cam.current_event_states

    @property
    def cam_id(self):
        """Return camera id."""
        return self._cam.get_id

    @property
    def name(self):
        """Return camera name."""
        return self._name