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)
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)
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