Events
Deprecation Notice
This page describes features that have been removed or replaced in Luxonis Hub. Functionality may be limited and only available to Hub Original customers. Please refer to the up-to-date guides to provision devices, manage fleets, and deploy applications.
Out of the box Events
Therobothubsupport three basic use cases- Send one image
- Send one image with additional images zipped and send as an attachment
- Send a video
Should your use case require a new type of
Event, let us know on our forummodule
robothub.events
variable
function
send_image_event(image: Union
[
np.ndarray
,
bytes
], title: str, device_id: str = None, metadata: Optional
[
dict
] = None, tags: List
[
str
] = None, mjpeg_quality = 98, encode = False) -> Optional[str]: Optional[str]Send a single image frame event to RH. :param image: The image to send. :param title: The title of the event. :param device_id: The device ID to associate with the event. :param metadata: A dictionary of metadata to associate with the event. :param tags: A list of tags to associate with the event. :param mjpeg_quality: The JPEG quality to use when encoding. :param encode: Whether to encode the image as a JPEG before sending. :return: The event ID. None if the event failed to send.
function
send_frame_event_with_zipped_images(cv_frame: np.ndarray, files: list, title: str, device_id: str, tags: List
[
str
] = None, metadata: Optional
[
dict
] = None, encode: bool = False, mjpeg_quality = 98) -> Optional[str]: Optional[str]Send a collection of images as a single event to RH. :param cv_frame: The main image frame to send. :param files: A list of images to zip and send. :param title: The title of the event. :param device_id: The device ID to associate with the event. :param tags: A list of tags to associate with the event. :param metadata: A dictionary of metadata to associate with the event. :param encode: Whether to encode the images as JPEGs before sending. :param mjpeg_quality: The JPEG quality to use when encoding. :return: The event ID. None if the event failed to send.
function
send_video_event(video: bytes
|
str, title: str, metadata: Optional
[
dict
] = None) -> Optional[str]: Optional[str]Send a video event to RH. The video can be a path to a video file or a bytes object. :param video: Path to a video file or a bytes object. :param title: Title of the video event. :param metadata: Overlay metadata to be displayed on the video. :return: The event ID. None if the event failed to send.
Custom Events
You can use the low level API to build and send a custom Event. Example:Python
1import robothub as rh
2event: FutureEvent = rh.EVENTS.prepare()
3event.set_tags(["video", "interesting situation"])
4event.add_video(video_as_bytes, filename=video_file_name)
5event.set_title(f"Video Event")
6event.add_file(support_file.getvalue(), name='metadata.zip', filename='metadata.zip')
7rh.EVENTS.upload(event)support_file.getvalue() returns bytesrepresentation of a zipfile.ZipFile objectclass
robothub.robothub_core_wrapper.events.FutureEvent
variable
id
ID of the Event
variable
folder_path
Path to the folder of the Event in the App's container. Added frames, files & videos are stored in this folder.
method
variable
title
Title of the Event in the Cloud. Set to "Event" + UUID by default.
method
add_video(self, _bytes: bytes
|
bytearray, name: str
|
None = None, metadata: dict
|
None = None, filename: str
|
None = None, camera_serial: str
|
None = None)Adds a video to the Event. @param _bytes: Bytes of the encoded video. Must be H264 format. @type _bytes: bytes | bytearray @param name: Optional - Name of the video @type name: str | NoneType @param metadata: Optional - Metadata to be overlayed over the video. List length must be equal to number of frames in the video. @type metadata: list @param filename: Optional - can define name of the video file on Host. @type filename: str | NoneType @param camera_serial: Optional - Serial number (MxID) of camera that took the video @type camera_serial: str
method
add_frame(self, _bytes, camera_serial: str
|
None = None, name: str
|
None = None, metadata: dict
|
None = None, filename: str
|
None = None)Adds a frame to the Event. @param _bytes: Bytes of the encoded frame @type _bytes: bytes | bytearray @param camera_serial: Optional - Serial number (MxID) of camera that took the frame @type camera_serial: str @param name: Optional - Name of the frame @type name: str | NoneType @param metadata: Optional - Metadata to be overlayed over the frame @type metadata: list @param filename: Optional - can define name of the frame file on Host. @type filename: str | NoneType
method
add_file(self, _bytes, name: str
|
None = None, filename: str
|
None = None)Adds a file to the Event. @param _bytes: Bytes of the file. @type _bytes: bytes | bytearray @param name: Optional - Name of the file in the cloud @type name: str | NoneType @param filename: Optional - can define name of the file saved on Host. @type filename: str | NoneType
method
add_existing_file(self, filename: Path
|
str, copy: bool = True, name: str
|
None = None)Adds an existing file to the Event. @param filename: Path to the file to be added. @type filename: Path | str @param copy: If True, the file will be copied to the Event folder. If False, the file will be moved to the Event folder. @type copy: bool @param name: Optional - Name of the file in the cloud @type name: str | NoneType
method
set_title(self, title)Sets the title of the Event. @param title: Title for the Event @type title: str | NoneType
method
set_metadata(self, metadata: dict)Sets the metadata of the Event. @param metadata: Dictionary containing the metadata @type metadata: dict
method
add_tag(self, tag: str)Adds a tag to the Event. Cannot add more than 10 tags to one Event. @param tag: The tag string @type tag: str
method
method
property
keep_after_upload
Decides whether Event should be kept after upload, C{False} by default. Example usage: >>> self.keep_after_upload True return: boolmethod
keep_after_upload.setter(self, value: bool)Sets the keep after upload property. Example usage: >>> self.keep_after_upload = True
property
no_upload_by_default
If set to True, Event will not be uploaded. C{False} by default. Example usage: >>> self.no_upload_by_default True return: boolmethod
no_upload_by_default.setter(self, value: bool)Sets the keep after upload property. Example usage: >>> self.keep_after_upload = True
property
keep_when_space_low
Decides whether Event should be kept when storage space is low, C{False} by default. Example usage: >>> self.keep_after_upload True return: boolmethod
keep_when_space_low.setter(self, value: bool)Sets the keep when space low property. Example usage: >>> self.keep_when_space_low = True