IONode Library
The IONode functions provide getters for the inputs and setters for the outputs.
Import
There is no import line needed to use this library and its functions.
Functions
IONode.get_input
Usage: IONode.get_input(name)
Retrieves the value of last value for this tag. Note: If the trigger event does not contain this tag, the last value would be automatically retrieved from historic data.
- Credit cost: 0
- Parameters:
- name:
str
Name of input to retrieve
- name:
- Returns:
dict
Input data structure. If the input data structure is from a Tag node (green), it will be of the form:{ "observed_at": "2015-04-11T21:36:53.832111+00:00", "event_data": { "value": 60 }, "tag_name": "raw.bpm" }
If the input data structure is from another Python Module, it will be of the form:
{ "observed_at": "2015-04-11T21:36:53.832111+00:00", "event_data": { "action": "Help Request", "sensor_id": "Kiosk_3", "type": "Kiosk" } }
Note: here
action
,sensor_id
andtype
are example event_data key names
IONode.get_inputs
Usage: IONode.get_inputs()
Retrieves all of the inputs.
- Credit cost: 0
- Parameters: None
- Returns:
list
All inputs, of the form:[ { "observed_at": "2015-04-11T21:36:53.832111+00:00", "event_data": { "action": "Help Request", "sensor_id": "Kiosk_3", "type": "Kiosk" } }, ... ]
Note: here
action
,sensor_id
andtype
are example event_data key names
IONode.get_event
Usage: IONode.get_event()
Retrieves the event data from the event that triggered the workflow.
- Parameter: None
- Returns:
list
List of objects of event data that triggered the workflow{ 'trigger': 'data', 'not_trigger': 'data' }
IONode.tag_name
Usage: IONode.tag_name(name)
Retrieves the name of a tag node.
- Credit cost: 0
- Parameters:
- name:
str
Name of input from which to retrieve tag name, if it exists
- name:
- Returns:
str
Name of the tag, if the input is from a tag node. Otherwise returnsNone
"raw.bpm"
IONode.set_output
Usage: IONode.set_output(name, data, observed_at=None, user)
Sets the output data. This is used to output a single event.
- Credit cost: 0
- Parameters:
- name:
str
output name - data:
dict
output data - observed_at:
str
ISO 8601 time string. If not specified (or None), the observed_at of the IONode object will be set to the trigger event's observed_at. Time zone must be specified. - user:
str
user to output the new event to. Optional. If not specified then event will output to the user that triggered the workflow.
- name:
- Returns: None
- Example Usage:
IONode.set\_output('out1', {"tag1": 1}, user="different_user")
Output:
IONode.set_output('out1', {"tag_name":10})
IONode.set_output_list
Usage: IONode.set_output_list(name, data)
Sets the output data as a list. This is used to output multiple events. It is an alternative to using IONode.add_to_output_list.
- Credit cost: 0
- Parameters:
- name:
str
output name - data:
list
output data array of event objects - observed_at:
str
ISO 8601 time string. If not specified (or None), the observed_at of the IONode object will be set to the trigger event's observed_at. Time zone must be specified.
- name:
- Returns: None
- Example Usage:
outputMsgList = [] outputMsgList.append({"tag1":10}) outputMsgList.append({"tag2":10}) outputMsgList.append({"tag3":10}) IONode.set_output_list('out1', outputMsgList)
Note: This example gives the same results as the example provided for IONode.add_to_output_list
IONode.add_to_output_list
Usage: IONode.add_to_output_list(name, data, observed_at=None)
Sets the output data as a list. This is used to output multiple events. It is an alternative to using IONode.set_output_list.
- Credit cost: 0
- Parameters:
- name:
str
output name - data:
dict
output data - observed_at:
str
ISO 8601 time string. If not specified (or None), the observed_at of the IONode object will be set to the trigger event's observed_at. Time zone must be specified.
- name:
- Returns: None
- Example Usage:
IONode.add_to_output_list('out1', {"tag1":10}) IONode.add_to_output_list('out1', {"tag2":10}) IONode.add_to_output_list('out1', {"tag3":10})
Note: This example gives the same results as the example provided for IONode.set_output_list
IONode.is_trigger
Usage: IONode.is_trigger(name)
Checks if an IONode is a trigger. Note: This function will not return true if the IONode is a timer.
- Credit cost: 0
- Parameters:
- name:
str
Name of input to check
- name:
- Returns:
bool
True
if the input is from a tag node and triggered this workflow. OtherwiseFalse
True
Sample Code
A simple example of code to use IONode from python module:
# note: 'value' is the default name for any Tag input value
myvariable = IONode.get_input('in1')['event_data']['value']
myvariable = myvariable * 2
out_data = {}
# In the code below, the output dictionary is assigned a key name 'output_value' and
# the value to output:
#
# - if the output of this module is plugged directly into a Processed Stream output block
# a new Tag will be created in the Processed stream with the name 'output_value'.
#
# - if the output of this module is connected to another Python module, the
# IONode.get_input() call will then be 'IONode.get_input('in#')['event_data']['output_value']
# This way it is possible to send multiple (key, value) pairs to a single output.
out_data['output_value'] = myvariable
IONode.set_output('out1', out_data)