Thing class¶

class Thing

A Thing is an object exposing some REST API containing properties, actions and events.

__init__(thing_id, name, description=None, base_url="/", timestamp_fn=None)
• thing_id is the unique id for a Thing
• name is pretty name for human interfaces
• description is a human readable description of this Thing
• base_url is the base path, configurable for advanced purposes.
• timestamp_fn is a function to call for retrieving a timestamp string to be used in events generation.

Store a webserver instance for using it later when an action is created. .. method:: add_property(prop_id, label, prop_type, getter, setter=None, unit=None, description=None)

Add a new property to this thing.
• prop_id is a string for identifying uniquely a property
• label is a pretty name for this property
• prop_type can be one of [“integer”, “number”, “boolean”].
• getter is a function that must return current status of this property
• setter is a function that must accept new status as a parameter and set it
• unit is a pretty name for the measure unit of this property
• description is a human readable description of this property
add_action(act_id, label, callback, input_type=None, description=None)

Add a new action to this thing.

• act_id is a string for identifying uniquely an action
• label is a pretty name for this action
• input_type can be one of [“integer”, “number”, “boolean”].
• callback is a function that must accept a parameter of input_type and use it
• description is a human readable description of this action
register_event(evt_id, description)

Register a new event type to this Thing.

• evt_id is a string for identifying uniquely this event type.
• description is a human readable description for this event.
signal_event(evt_id, inp_data=None)

Log a new event of type evt_id.

• evt_id is a string for choosing a registered event type.
• inp_data is an optional argument for this event type.
as_dict()

Return a dict representing this Thing.