Nube IO Rubix Wires Node Manual · Nube IO Rubix Wires Node Manual Rubix Wires User Guide - Rev...
Transcript of Nube IO Rubix Wires Node Manual · Nube IO Rubix Wires Node Manual Rubix Wires User Guide - Rev...
Nube IO Rubix Wires
Node Manual
Rubix Wires User Guide - Rev 1.1.4 | 1
1. Introduction 8 1.1 Document Availability 8 1.2 Document Change Log 8 1.3 Abbreviation Terms and Definitions 8
2. Overview 9
3. Node User Manual 10 Boolean 10
And 10 Or 10 Xor 10 Not 10 Toggle 11 One-Shot 11 Min-On-Off 12 On-Delay 13 Off-Delay 14 Ticker 14
Compare 15 Equal 15 Greater-Than 15 Less-Than 15 Between 15 Hysteresis 16 Type-Check 16
Connection 16 Link-Transmitter 17 Link-Receiver 17
Container 18 Folder 18 Folder-Input 19 Folder-Output 19
Count 20 Any-Event-Counter 20 Counter 20 Triggered-Ramp 20 Interval-Ramp 20 Waveform 21
CSV 21 CSV-Merge-Rows 22 Counter 22
Rubix Wires User Guide - Rev 1.1.4 | 2
Dashboard 22 Button 23 Progress 23 Slider 23 Switch 24 Text-Box 24 Log 24 Chart 25
Filter 26 Only-True 26 Only-False 26 Only-Between 26 Only-Greater 26 Only-Lower 26 Only-Equal 27 Prevent-Null 27 Prevent-Equal 27 Prevent-Duplicates 27
History 27 Data-Store 28 History 28
HVAC 1 Deadband 30 Thermostat 30 PID 31 Psychometrics 32 Energy-Conversion 32 Power-Conversion 32 Volume-Conversion 33 Temperature-Conversion 33 Atmospheric-Pressure 33 Pressure-Conversion 33
Latch 33 Bool-Latch 34 Num-Latch 34 String-Latch 34 Set-Reset 35
Math 36 Add 36 Subtract 36 Multiply 36 Divide 36
Rubix Wires User Guide - Rev 1.1.4 | 3
Absolute 36 Modulus 36 Power 37
Math-Advanced 38 Acos 1 Asin 38 Atan 38 Cbrt 38 Cos 38 Exp 38 Log 39 Log-10 39 Sin 39 Sqrt 39 Tan 39
Math-Trigger 40 Trigger-Add 40 Trigger-Subtract 40 Trigger-Multiply 40 Trigger-Divide 40 Trigger-Modulus 40 Trigger-Power 41
Nube 41 LORA-Sensor-Decoder 42
Num-Transform 43 Round 43 Floor 43 Ceil 43 Limit 44 Scale 45 Linear Shaper 46 Fade 47 Rate-Limit 47
Point 47 Bool-Constant 48 Num-Constant 48 String-Constant 48 Bool-Writable 48 Num-Writable 48 String-Writable 49
Protocols/Misc 50 Email 50
Rubix Wires User Guide - Rev 1.1.4 | 4
Serial-Connector 50 Protocols/Nube 51
Edge28-Network 51 Edge28-Input 52 Edge28-Output 52
Protocols/BACnet 53 BACnet-Network 53 BACnet-Device 54 BACnet-Point 55
Protocols/BACnet-Server 56 BACnet-Server 56 BACnet-Server-Point 57
Protocols/Modbus 58 Modbus-Server 58 Modbus-Client-Read 58 Modbus-Client-Write 58
Protocols/MQTT 59 MQTT-Client 59 MQTT-Network 59 MQTT-Point-Write 60 MQTT-Point-Read 61
Schedule 62 Schedule-Checker 62
Statistics 63 Min-Max-Avg 63 Avg 63 Min 63 Max 63 Sum 63 Median 64 Range 64 Rank 64 Stats-All 65
Stream 66 String-Average 66 Stream-Highest 66 Stream-Lowest 66 Stream-Sum 66 Gate 66 Stack 66 Queue 67 Stream Delay 67
Rubix Wires User Guide - Rev 1.1.4 | 5
Stream Delay-Meter 67 Frequency-Meter 67 Stream-Merge 68
String 68 String-Length 69 Char-To-Ascii 69 Ascii-To-Char 69 Char-At-Index 69 Substring-Cut 69 String-Split 70 String-Compare 70 String-Join 70 String-Case 70 String-Index-Of 70
Switch 70 Bool-Switch 71 Num-Switch 71 String-Switch 71 Bool-Select 71 Num-Select 72 String-Select 72 Bool-Output-Select 72 Num-Output-Select 72 String-Output-Select 72
System 72 Platform 73 System-Info 73 Beep 73 Execute-Cmd 74 Network-Interfaces 75 Network-Interfaces-Edge28 76
Time 1 Conversion 77 Clock 77 Date 77 Stopwatch 77 Cron-Interval 78 Cron-Weekly 78
Trigger 78 Change-Of Value 79 Random 79 Interval-inject 79
Rubix Wires User Guide - Rev 1.1.4 | 6
Iterator 79
1. Introduction The purpose of this document is to provide a guide to using Nube iO’s commissioning software, Rubix Wires. Please note that nodes which are not listed/described in this document are still under development. Using these nodes is not advised. If you require a node that is not included in this manual, please contact Nube to check on the status of the node development.
1.1 Document Availability Please email support to request a copy [email protected]
1.2 Document Change Log Version Number Issue Date Description
1.0 Nov 2019 Draft
1.1.4 July 2020 Issued for Preliminary Use, Review, and Training. Feedback is welcome.
1.3 Abbreviation Terms and Definitions
Name/Code Explanation External Reference
Edge Gateway / Device Edge Gateway Link
GCP Google Cloud Platform Link
Edge Edge computing is a distributed computing paradigm Link
IO (Input/Output) Communication process between a Computer or device Link
VPN A virtual private network (VPN) extends a private network across a public network Link
Nube Translates cloud in spanish
BACnet BACnet is a building automation protocol Link
Rubix Wires User Guide - Rev 1.1.4 | 7
MQTT A lightweight messaging protocol for small sensors Link
Modbus Modbus is a building automation protocol Link
Zigbee ZigBee is a smart office/home protocol Link
NB-IoT Low Power Wide Area Network (LPWAN) radio technology Link
LoRa LoRa is a long range, low power wireless chipset and protocol Link
LoRaWan LoRaWan is the network layer on LoRa Link
Haystack Standardize semantic data models for IoT data Link
API Application programming interface Link
2. Overview Rubix Wires is a simple and easy to use BMS programming tool. Key features include:
● Flow based real-time program editor. ● Drag and drop style. ● Web-based. ● Intuitive UI. ● Similar to other well known BMS commissioning interfaces. ● No downloads or uploads required.
Rubix Wires User Guide - Rev 1.1.4 | 8
3. Node User Manual In this section we describe the functions of each node. Nodes are grouped by their categories, and categories are listed alphabetically.
Boolean And
Performs a logical 'AND' operation (output 'true' when ALL inputs are 'true'). You can specify the number of inputs in the node settings.
Or
Performs a logical 'OR' operation (output 'true' when ANY input is 'true'). You can specify the number of inputs in the node settings.
Xor
Performs a logical 'XOR' operation (output 'true' when EITHER input is 'true', but not both). Limited to only 2 inputs.
Not
Performs a logical 'NOT' operation (output will be the inverse of the input).
Rubix Wires User Guide - Rev 1.1.4 | 9
Toggle
When the 'input' transitions from 'false' to 'true', 'output' will switch between 'false'/'true'. (See Figure A.)
One-Shot
Triggers ‘output’ to 'true' for 'interval' duration when 'trigger' input transitions from 'false' to 'true. Output is reset to 'false' when 'reset' transitions from 'false' to 'true. 'interval' units can be configured from settings. Maximum ‘interval’ setting is 587 hours. ‘remaining’ is the number of milliseconds left until ‘output’ changes to ‘false’. (See Figure A.)
Rubix Wires User Guide - Rev 1.1.4 | 10
Min-On-Off
‘output’ matches ‘input’ but is delayed by the 'minOn' and 'minOff' durations. ‘output’ will remain 'true' for 'minOn' duration then match the ‘input’ value. ‘output’ will remain 'false' for 'minOff' duration then match the ‘input’ value. 'minOn' and 'minOff' delays are cancelled when 'reset' transitions from 'false' to 'true. ‘minOn active’ is ‘true’ during ‘minOn’ periods. ‘minOff active’ is ‘true’ during ‘minOff’ periods. 'minOn' and 'minOff' units can be configured from settings. Maximum ‘minOn’ and ‘'minOff'’ setting is 587 hours. (See Figure A.)
Rubix Wires User Guide - Rev 1.1.4 | 11
On-Delay
‘output’ matches ‘input’, but ‘output’ transitions from 'false' to 'true' are delayed by 'delay' duration. The delay is cancelled when 'reset' transitions from 'false' to 'true. ‘onDelay active’ is ‘true’ during ‘onDelay’ periods. 'delay' units can be configured from settings. Maximum ‘delay’ setting is 587 hours. (See Figure A.)
Rubix Wires User Guide - Rev 1.1.4 | 12
Off-Delay
‘output’ matches ‘input’, but ‘output’ transitions from 'true' to 'false' are delayed by 'delay' duration. The delay is cancelled when 'reset' transitions from 'false' to 'true. ‘offDelay active’ is ‘true’ during ‘offDelay’ periods. 'delay' units can be configured from settings. Maximum ‘delay’ setting is 587 hours. (See Figure A.)
Ticker
While 'enable' is 'true', ‘output’ will change to 'true' at every 'interval' period. If 'Generate False' setting is set to ‘true’, ‘output’ will be 'false' for the second half of the 'interval' period. When 'enable' is 'false', ‘output’ will be 'false'. 'interval' units can be configured from settings. Maximum ‘interval’ setting is 587 hours. (See Figure A.)
Rubix Wires User Guide - Rev 1.1.4 | 13
Compare Equal
output equal' is 'true' when 'in 1' and 'in 2' are identical, otherwise 'output equal' is 'false'. Can be used to compare boolean, numeric, and string values; it can also be used to compare 'null' values. 'output not equal' is always the opposite of 'out equal'.
Greater-Than
out >' is 'true' when 'in 1' is greater than 'in 2', otherwise 'out >' is 'false'. 'out >=' is 'true' when 'in 1' is greater than or equal to 'in 2', otherwise 'out>=' is 'false'. Both Outputs will be 'false' if either input is undefined.
Less-Than
out <' is 'true' when 'in 1' is less than 'in 2', otherwise 'out <' is 'false'. 'out <=' is 'true' when 'in 1' is less than or equal to 'in 2', otherwise 'out <=' is 'false'. Both outputs will be 'false' if either input is undefined.
Between
output' is 'true' when 'in 1' is within the numeric range between 'from' value and 'to' value (exclusive), otherwise 'output' is 'false'. 'output' will be 'false' if either input is undefined. 'out not' is always the opposite of 'output'.
Rubix Wires User Guide - Rev 1.1.4 | 14
Hysteresis
Boolean 'output' based on 'input' in relation to 'risingEdge' and 'fallingEdge' setpoints. There are 2 cases: 'risingEdge' greater than 'fallingEdge', and 'risingEdge' less than 'fallingEdge'.
● [For 'risingEdge' > 'fallingEdge'] => 'output' is 'true' when 'input' is greater than 'risingEdge'. 'output' is 'false' when 'input' is less than 'fallingEdge'.
● [For 'fallingEdge' < 'fallingEdge'] => 'output' is 'false' when 'input' is greater than 'risingEdge'. 'output' is 'true' when 'input' is less than 'fallingEdge'.
In both cases, when 'input' is between 'risingEdge' and 'fallingEdge', 'output' will remain in its current state.
Type-Check
‘Output' is 'true' when 'input' type matches 'Type to check' string. 'isType' outputs the type of the 'input' value.
Rubix Wires User Guide - Rev 1.1.4 | 15
Connection Link-Transmitter
This node works in conjunction with link-receiver node, and provides a connection of nodes without the graphical wires. 'in #' inputs will be sent to the corresponding 'out #' output on link-receiver nodes with matching 'Channel Number' settings. The number of inputs is configurable from settings.
Link-Receiver
This node works in conjunction with link-transmitter node and provides a connection of nodes without the graphical wires. 'out #' outputs will match the corresponding 'in #' input from link-transmitter nodes with matching 'Channel Number' settings. The number of outputs is configurable from settings.
Rubix Wires User Guide - Rev 1.1.4 | 16
Container Folder
Folders are the basic type of container which can contain other nodes. They are used to organize and segment logic. Creating a folder node will also add an entry to the Menu Sidebar under ‘Editor’, which can be used to navigate between the created containers. Containers can also be navigated by using context menu options (see images below). Folders can also be created by selecting nodes, and then selecting ‘Move to Container’ from the context menu; this will move all the selected nodes to a newly created folder.
Context Menu Folder Navigation:
Move to Container:
Container Sub-Flow Example: (AND Node as a Sub-Flow)
Rubix Wires User Guide - Rev 1.1.4 | 17
Folder-Input
Folder-Input nodes are added within a Folder node. They are used to link values from outside the folder, to the logic within the folder. Once added, a new input slot will appear on the specific Folder node that they are contained by. Values can now be linked to the Folder node, and the value will be passed to the Folder-Input node, for use with the logic contained within the Folder. Folder-Input nodes have a ‘Name’ setting which, once set, will be displayed on the input slot of the parent Folder. Note: This node will only be available when within a folder’s Editor Pane.
Folder Node with Named Folder-Input:
Folder-Output
Folder-Output nodes are added within a Folder node. They are used to link values from within the folder, to the logic outside the folder. Once added, a new output slot will appear on the specific Folder node that they are contained by. Values can now be linked to the Folder-Output node and the value will be passed to the Folder node output slot, for use in the logic outside the Folder. Folder-Output nodes have a ‘Name’ setting which, once set, will be displayed on the output slot of the parent Folder. Note: This node will only be available when within a folder’s Editor Pane.
Folder Node with Named Folder-Output:
Rubix Wires User Guide - Rev 1.1.4 | 18
Count Any-Event-Counter
‘count' increases by 1 every time an event occurs at 'input'. Any incoming value, including null, will be taken. 'count' will be reset to 0 when 'reset' transitions from 'false' to 'true. ‘toggle’ will alternate between ‘true’ and ‘false’, changing each time count increases.
Counter
‘count' increases by 1 every time 'countUp' transitions from 'false' to 'true. 'count' decreases by 1 every time 'countDown' transitions from 'false' to 'true. 'count' will be set to 'set value' when 'reset' transitions from 'false' to 'true.
Triggered-Ramp
‘output' changes every time 'trigger' transitions from 'false' to 'true'. If 'count on true->false?' setting is enabled, 'output' will also change on 'false' to 'true' transition. 'output' will change based on the 'step' value on each change (if a full 'step' would cause the output to be greater than 'max', or less than 'min' it will be limited by 'max' or 'min' respectively). 'output' will first ramp up to 'max' then it will change directions and ramp down to 'min'. 'output' will be reset to 'min' when 'reset' transitions from 'false' to 'true. If ‘Ramp Up Only’ setting is ticked, the ramp down stage will be bypassed and ‘output’ will be reset back to ‘min’ value when it reaches the ‘max’ value.
Interval-Ramp ‘output' changes at every 'interval' period, while 'enable' is set to 'true'. 'output' will change by the 'step' value on each change (if a full 'step' would cause the output to be greater than 'max', or less than 'min' it will be limited by 'max' or 'min' respectively). 'output' will first ramp up to 'max' then it will change directions and ramp down to 'min'. 'output' will be reset to 'min' when 'reset' transitions from 'false' to 'true. If ‘Ramp Up Only’ setting is ticked, the ramp down stage will be bypassed and ‘output’ will be reset back to ‘min’ value when it reaches the ‘max’ value. 'interval’ units can be configured from settings. Maximum ‘interval’ setting is 587 hours.
Rubix Wires User Guide - Rev 1.1.4 | 19
Waveform This node generates a sequence of numbers based on the selected settings; these sequences (waveforms) are of the form 'Ramp', 'Sine', 'Square', 'Triangle', and 'Sawtooth'. While 'enable' is 'true', 'output' will produce the next number in the sequence after every 'interval' duration. The period (how often the waveform pattern repeats) is defined by 'period'. The amplitude of the waveform is defined by 'amplitude'. The waveform can be inverted by setting 'Invert Output' to 'true' in settings. The waveform will reset to its starting position if 'reset' transitions from 'false' to 'true'. 'interval' and ‘period’ units can be configured from settings. Maximum 'interval' and ‘period’ setting is 587 hours.
Rubix Wires User Guide - Rev 1.1.4 | 20
CSV CSV-Merge-Rows
This node merges the rows of properly formatted CSV strings. ‘merge’ CSV string will be joined with the ‘original’ CSV string. The ‘merge’ CSV rows will be added below the ‘original’ CSV rows. Only the ‘original’ header titles will be kept. No error checking.
Counter
This node merges the columns of properly formatted CSV strings. ‘merge’ CSV string will be joined with the ‘original’ CSV string. The ‘merge’ CSV columns will be added to the right of the ‘original’ CSV columns. ‘null’ will be added to rows where no value exists for that column. No error checking.
Rubix Wires User Guide - Rev 1.1.4 | 21
Dashboard Button
Dashboard node which displays a push button on the dashboard. When clicked it will send 'true' from the node 'output'.
Progress
A Dashboard node which displays a progress bar, between 0-100 of an ‘input’ value on the dashboard. Note, a ‘scale’ node may be required to scale ‘input’ values between zero to a hundred.
Slider
A Dashboard node which displays a moveable slider bar between 0 to 100 which users can manually adjust to modify the ‘output’. The slider can be overridden by wiring a numeric into the node’s ‘input’.
Rubix Wires User Guide - Rev 1.1.4 | 22
Switch
Dashboard node which displays a toggle switch on the dashboard. When clicked it will switch the node 'output' between 'true' and 'false'. The button text can be edited in settings. The button can be overridden by wiring a Boolean into the node 'input'.
Text-Box
Dashboard node which displays the input value on the dashboard.
Log
Dashboard node which displays a log of the values wired into 'input', these log entries have timestamps attached. There is an option in settings to save the log entries to the Wires Database (DB).
Rubix Wires User Guide - Rev 1.1.4 | 23
Chart
Dashboard node which displays a chart of the values wired into 'input'. Chart properties and types can be modified in settings. There is an option in settings to save the chart entries to the Wires Database (DB).
Rubix Wires User Guide - Rev 1.1.4 | 24
Filter Only-True
This node filters 'input' values. Only 'true' values are passed to 'output'.
Only-False
This node filters 'input' values. Only 'false' values are passed to 'output'.
Only-Between
This node filters 'input' values. Only Numeric 'input' values between 'min' and 'max' are passed to 'output'.
Only-Greater This node filters 'input' values. Only Numeric 'input' values greater than 'threshold' are passed to 'output'.
Only-Lower
This node filters 'input' values. Only Numeric 'input' values less than 'threshold' are passed to 'output'.
Rubix Wires User Guide - Rev 1.1.4 | 25
Only-Equal
This node filters 'input' values. Only 'input' values equal to 'match' are passed to 'output'.
Prevent-Null
This node filters 'input' values. All 'input' values are passed to 'output' EXCEPT 'null'.
Prevent-Equal
This node filters 'input' values. All 'input' values are passed to 'output' EXCEPT 'input' values which are equal to 'match'.
Prevent-Duplicates This node filters 'input' values. All 'input' values are passed to 'output' EXCEPT 'input' values which are equal to the previous 'input' value.
Rubix Wires User Guide - Rev 1.1.4 | 26
History Data-Store
The data-store node is used to store history log data locally. The data-store node has limited memory so the capacity is limited to 50 log entries; beware of using too many data-store nodes as it could affect the operation of Wires. The history logs can be configured to log in UTC or local timezone, and the output format can be set to ‘Array’, ‘CSV’, or ‘JSON’. If ‘Round up in increments of’ setting is used (not zero), then the timestamp will be rounded up to the nearest increment value step.
Rubix Wires User Guide - Rev 1.1.4 | 27
History
The History node is used to store values to an external database. History logs (when enabled) are pushed to either the Nube DB or an Influx DB instance. A ‘Point Name’ should be entered (under ‘History’ settings) to identify the history by name. History logging options are ‘Change Of Value (COV)’, ‘Periodic’, and ‘Trigger Only’. When set to COV, a log will be saved when the value changes by the ‘COV Threshold’ from the last saved history value. When set to ‘Periodic’ a log will be saved at every ‘Logging Interval’ period. When set to either ‘COV’ or ‘Periodic’ a log entry can be saved by transitioning the ‘histTrigger’ input from ‘false’ to ‘true’. If only the ‘histTrigger’ action is required, set the ‘History Logging Mode’ to ‘Trigger Only’. If the history/history node is unable to send the history logs to the configured database (network connection issues, or incorrect configuration) then they will be stored locally, and ‘storedHistCount’ will increase. Currently the local storage limit is set to 50 logs. The history/history node has limited memory so the capacity is limited to 50 log entries; beware of using too many history/history nodes as it could affect the operation of Wires. If ‘Round up in increments of’ setting is used (not zero), then the timestamp will be rounded up to the nearest increment value step. If the input value is a Number, the ‘Decimal Places’ setting will round the input value to the specified number of decimal places.
Settings:
Rubix Wires User Guide - Rev 1.1.4 | 28
HVAC Deadband
This node applies a Hysteresis function (see hysteresis node), with a deadband centered at 'setpoint'. The ON direction can be reversed from settings.
Thermostat This node functions as a Heat/Cool thermostat. While 'enable' is set to 'true', the node will function as follows: 'CLG Mode' will be set to 'true' if 'input' is greater than 'setpoint' + 'CLG offset', 'CLG Mode' will be set to 'false' if 'input' is less than 'setpoint'. 'HTG Mode' will be set to 'true' if 'input' is less than 'setpoint' - 'HTG offset', 'HTG Mode' will be set to 'false' if 'input' is greater than 'setpoint'. If 'enable' is 'false', 'CLG Mode' and 'HTG Mode' will both be set to 'false'.
Rubix Wires User Guide - Rev 1.1.4 | 29
PID
This node generates a PID ‘output’ based on input parameter settings. Inputs: Enable, Setpoint, Process Variable, inP (Proportional), inI (Integral), inD (Derivative), Direction, Interval, MaxOut, MinOut, Manual, and Bias. If 'direction' is 'true' the PID will be a Direct loop ('output' increases when 'processVariable' > 'setpoint'), if 'direction' is 'false' the PID will be a Reverse loop ('output' increases when 'processVariable' < 'setpoint'). 'interval' is the period that the PID output is re-calculated. 'bias' value is added to 'output'. 'manual' will be the 'output' value when 'enable' is 'false'. PID integral factor will be reset to 0 when 'reset' transitions from 'false' to 'true'. 'interval’ units can be configured from settings. Maximum ‘interval’ setting is 587 hours.
● ‘inP’ (Proportional) is a multiplication factor that is applied to the error (‘input’ - ‘’setpoint’) ● ‘inI’ (Integral) is set in “repeats per minute”. ie. ‘inI’ multiplied by the error, is added to the
‘output’ every second. ● ‘inD’ is multiplied by the difference between the current ‘processVariable’ value, and the
previous ‘processVariable’ value; the product is added to ‘output’
Rubix Wires User Guide - Rev 1.1.4 | 30
Psychometrics
This node provides psychrometric calculations based on a selection of: Dry Bulb Temp, Wet Bulb Temp, Dew Point, Relative Humidity, and Pressure. Inputs and Outputs as follows: (i) Dry bulb temperature in °F [IP] or °C [SI]; (i) Wet bulb temperature in °F [IP] or °C [SI]; (i) Atmospheric pressure in Psi [IP] or Pa [SI]; (o) Humidity ratio in lb_H₂O lb_Air⁻¹ [IP] or kg_H₂O kg_Air⁻¹ [SI]; (o) Dew point temperature in °F [IP] or °C [SI]; \n (o) Relative humidity [0-1]; (o) Partial pressure of water vapor in moist air in Psi [IP] or Pa [SI]; (o) Moist air enthalpy in Btu lb⁻¹ [IP] or J kg⁻¹ [SI]; (o) Specific volume ft³ lb⁻¹ [IP] or in m³ kg⁻¹ [SI]. Input types can be selected from settings. Outputs will change based on selected input type. Unit system can be set from settings to be in: Metric/SI or Imperial/IP.
Energy-Conversion This node converts between Energy units watt-hour (W·h), kilowatt-hour (kW·h), British Thermal Unit (Btu), calorie (cal), joule(J), and joule(kJ). Input type can be selected from settings. Outputs will change based on selected input type.
Power-Conversion This node converts between Power units kilowatt (kW), Tons of Refrigeration (tons), British Thermal Unit per hour (Btu/h), and Electrical Horsepower (hp). Input type can be selected from settings. Outputs will change based on selected input type.
Rubix Wires User Guide - Rev 1.1.4 | 31
Volume-Conversion This node converts between Volume units Litre (L), Cubic Metre (m³), Cubic Foot (ft³), and Gallon (gal). Input type can be selected from settings. Outputs will change based on selected input type.
Temperature-Conversion This node converts between Temperature units: Celsius, Fahrenheit, Kelvin, and Rankine . Input type can be selected from settings. Outputs will change based on selected input type.
Atmospheric-Pressure This node converts 'altitude' to Atmospheric Pressure in various units: Pascal (Pa), Standard Atmosphere (atm), Bar (bar), and Pound-force per square inch (lbf/in2) . 'altitude' units can be set from settings to be in: Metric/SI (Meters-> Pa), or Imperial/IP (Feet-> Psi).
Pressure-Conversion
This node converts between Pressure units: Pascal (Pa), Standard Atmosphere (atm), Bar (bar), and Pound-force per square inch (lbf/in2) . Input type can be selected from settings. Outputs will change based on selected input type.
Rubix Wires User Guide - Rev 1.1.4 | 32
Latch Bool-Latch
The Boolean 'input' value is passed to 'output' when 'latch' transitions from 'false' to 'true'; The 'output' value is maintained until the next 'false' to 'true' transition.
Num-Latch The Numeric 'input' value is passed to 'output' when 'latch' transitions from 'false' to 'true'; The 'output' value is maintained until the next 'false' to 'true' transition.
String-Latch
The String 'input' value is passed to 'output' when 'latch' transitions from 'false' to 'true'; The 'output' value is maintained until the next 'false' to 'true' transition.
Rubix Wires User Guide - Rev 1.1.4 | 33
Set-Reset
‘output' will change to 'true' when 'set' is 'true', and 'reset' is 'false'. There are 2 cases when 'output' will change to 'false':
1) 'reset' is 'true', and 'set is 'false'. 2) If the 'Reset when set=true' setting is turned ON (Default), and 'reset' and 'set' are both 'true' . If 'Reset when set=true' setting is turned OFF, 'output' will only change to 'false' under Case 1) conditions.
Rubix Wires User Guide - Rev 1.1.4 | 34
Math
Add ('output' = 'in 1' + 'in 2' + ...) 'output' is the result of adding of all Numeric inputs. Input values can be set from settings. The number of inputs is configurable from settings.
Subtract
('output' = 'in 1' - 'in 2' - ...) 'output' is the result of subtracting each Numeric input in order. Input values can be set from settings. The number of inputs is configurable from settings.
Multiply
('output' = 'in 1' * 'in 2' * ...) 'output' is the result of multiplying each Numeric input in order. Input values can be set from settings. The number of inputs is configurable from settings.
Divide
('output' = 'in 1' / 'in 2' / ...) 'output' is the result of dividing each Numeric input in order. Input values can be set from settings. The number of inputs is configurable from settings.
Absolute
('output' = |'in 1'|) 'output' is the absolute value (positive) of the Numeric input.
Rubix Wires User Guide - Rev 1.1.4 | 35
Modulus
('output' = 'in 1' % 'in 2') 'output' is the modulus of the Numeric inputs. Input values can be set from settings.
Power ('output' = 'in 1' ^ 'in 2') 'output' is the result of 'in 1' to the power of 'in 2'. Input values can be set from settings.
Rubix Wires User Guide - Rev 1.1.4 | 36
Math-Advanced Acos
acos(x)' is the result of arccos('x'). The Inverse Cosine function of input 'x'.
Asin
asin(x)' is the result of arcsin('x'). The Inverse Sine function of input 'x'.
Atan
atan(x)' is the result of arctan('x'). The Inverse Tangent function of input 'x'.
Cbrt
cbrt(x)' is the Cubic Root of input 'x'.
Cos cos(x)' is the result of cos('x'). The Cosine function of input 'x'.
Rubix Wires User Guide - Rev 1.1.4 | 37
Exp ('exp(x)' = E^'x') 'exp(x)' is the result of raising E (Euler's Number 2.71828) to the power of 'x'. The Natural Exponential function.
Log
log(x)' is the result of log('x') with base E (Euler's Number 2.71828). The Natural Logarithmic function of input 'x'.
Log-10
log10(x)' is the result of log('x') with base 10.
Sin
sin(x)' is the result of sin('x'). The Sine function of input 'x'.
Sqrt sqrt(x)' is the Square Root of input 'x'.
Tan
tan(x)' is the result of tan('x'). The Tangent function of input 'x'.
Rubix Wires User Guide - Rev 1.1.4 | 38
Math-Trigger
Trigger-Add
When 'trigger' transitions from 'false' to 'true', 'output' is updated with the result of the addition of all inputs ('in 1' + 'in 2' + ...). Input values can be set from settings. The number of inputs is configurable from settings.
Trigger-Subtract
When 'trigger' transitions from 'false' to 'true', 'output' is updated with the result of the subtraction of all inputs ('in 1' - 'in 2' - ...). Input values can be set from settings. The number of inputs is configurable from settings.
Trigger-Multiply
When 'trigger' transitions from 'false' to 'true', 'output' is updated with the result of the multiplication of all inputs ('in 1' * 'in 2' * ...). Input values can be set from settings. The number of inputs is configurable from settings.
Trigger-Divide
When 'trigger' transitions from 'false' to 'true', 'output' is updated with the result of the division of all inputs ('in 1' / 'in 2' / ...). Input values can be set from settings. The number of inputs is configurable from settings.
Trigger-Modulus
When 'trigger' transitions from 'false' to 'true', 'output' is updated with the result of the modulus of the inputs ('in 1' % 'in 2'). Input values can be set from settings.
Rubix Wires User Guide - Rev 1.1.4 | 39
Trigger-Power
When 'trigger' transitions from 'false' to 'true', 'output' is updated with the result of 'in1' to the power of 'in2' ('in 1' ^ 'in 2'). Input values can be set from settings.
Rubix Wires User Guide - Rev 1.1.4 | 40
Nube LORA-Sensor-Decoder
This node is used to decode raw serial input messages to LORA sensor values. It should be used in conjunction with the protocols/serial-connector node. If a ‘nodeID’ is set, only messages from matching LORA sensors will be output; if no ‘nodeID’ is set, all valid LORA sensor messages will be output. Outputs that are not present in the raw serial input message will be ‘null’. ‘lowBatteryAlm’ output will be ‘true’ if the LORA sensor has a battery ‘voltage’ value less than the ‘Low battery warning voltage’ setting; otherwise it will be ‘false’. ‘watchdog’ output will be ‘true’ if there has been no valid message from the ‘nodeID’ LORA sensor for the ‘Watchdog Delay’; otherwise ‘watchdog’ output will be false. Maximum ‘Watchdog Delay’ setting is 587 hours. This node can be used for decoding Nube Droplet sensors, and Nube MicroEdge sensors. The sensor type can be selected from settings.
Example Flow:
Settings:
Rubix Wires User Guide - Rev 1.1.4 | 41
Get-Schedules
This node is used to fetch schedules from the Nube dashboard. The ‘Get-Schedules’ node will output all schedules from the device; Specific schedule selection is done on the ‘Schedule-Checker’ node. ‘Interval’ (set from settings) is how often the node will re-check for schedule changes (minimum 10 seconds). In order for the ‘get-schedules’ node to work, there must be a `system/platform’ node in the main container (default editor pane) and there must be a ‘deviceID’ in the ‘system/platform’ node settings, It is recommended that the API-Schedule node is used in conjunction with a filter/prevent-null node to maintain the last successful schedule read in the case that the API-Login node becomes disconnected. 'interval’ units can be configured from settings. Maximum ‘interval’ setting is 587 hours.
Example Flow:
Rubix Wires User Guide - Rev 1.1.4 | 42
Num-Transform
Round ‘output' is the 'input' value rounded to the configured number of decimal places. The number of decimal places can be configured from settings (limited to 5 decimal places).
Floor 'output' is the 'input' value rounded DOWN to the nearest integer.
Ceil
'output' is the 'input' value rounded UP to the nearest integer.
Rubix Wires User Guide - Rev 1.1.4 | 43
Limit
‘output' follows the 'input' value when it is between the 'min' and 'max' values. If 'input' is greater than the 'max' value, 'output' will be the 'max' value. If 'input' is less than the 'min' value, 'output' will be the 'min' value. 'max' and 'min' values can be configured from settings.
Rubix Wires User Guide - Rev 1.1.4 | 44
Scale
Performs a linear interpolation of the 'input' value based configured settings. When 'input' value is between 'in-min' and 'in-max' it is linearly interpolated between 'out-min' and 'out-max'. If 'input' is greater than the 'in-max' value, 'output' will be the 'out-max' value. If 'input' is less than the 'in-min' value, 'output' will be the 'out-min' value. 'in-max', 'in-min', 'out-max', and 'out-min' values can be configured from settings.
Rubix Wires User Guide - Rev 1.1.4 | 45
Linear Shaper
Performs a linear interpolation of the 'input' value between configured inflection points. The number of inflection points can be configured in settings. The inflection points will be evenly distributed from 0-100. Values for each inflection point can be wired in, or set from settings. When the 'input' value is between 0 and 100 the 'output' value will be the linear interpolation of the 'input' value between the surrounding inflection point values. (Figure A.)
Rubix Wires User Guide - Rev 1.1.4 | 46
Fade
This node makes a smooth transition from 'from' to 'to' over the 'interval' period when 'enable' transitions from 'false' to 'true'; after this 'interval' period 'output' will match the 'to' value while 'enable' is 'true'. During the 'interval' period, the rate of 'output' change cannot be changed. Once the 'interval' period is complete 'out=to' becomes 'true' until 'enable' becomes 'false' again.
Rate-Limit
This node makes a rate limited transition from its current output value to the ‘input’ value. When ‘enable’ is ‘true’, ‘output’ is permitted to change towards the ‘input’ value based on settings values. ‘output’ can change by ‘step’ size every ‘interval’ period. ‘output’ will be ‘null’ when ‘enable’ is ‘false’.
Rubix Wires User Guide - Rev 1.1.4 | 47
Point Bool-Constant
Outputs a Boolean value set from settings. Can also output null.
Num-Constant
Outputs a Numeric value set from settings. Can also output null by leaving the settings field blank.
String-Constant
Outputs a String value set from settings. Can also output null by leaving the settings field blank.
Bool-Writable Outputs the highest priority, non-null, Boolean input. Highest priority is 'in 1' then 'in 2' and so on. Input values can also be wired in, or set from settings. The number of inputs can be modified from settings.
Num-Writable Outputs the highest priority, non-null, Numeric input. Highest priority is 'in 1' then 'in 2' and so on. Input values can also be wired in, or set from settings. The number of inputs can be modified from settings.
Rubix Wires User Guide - Rev 1.1.4 | 48
String-Writable Outputs the highest priority, non-null, String input. Highest priority is 'in 1' then 'in 2' and so on. Input values can also be wired in, or set from settings. The number of inputs can be modified from settings.
Rubix Wires User Guide - Rev 1.1.4 | 49
Protocols/Misc Email
Once configured (in settings) with the sender email server details ('email' and 'password') for Gmail, Hotmail, Outlook365, or Yahoo accounts: This node will attempt to send a new email when 'trigger' transitions from 'false' to 'true'. The String 'recipient' value will be the to: email address; The String 'subject' value will be the email subject; and the String 'message' value will be the email body. The 'response' output will be 'true' if the email is sent successfully. The 'error' output will be an error message String if there is an error sending the email.
Serial-Connector
This node reads/writes serial data from/to the onboard serial ports. These ports can be RS485 ports, or Rubix Compute wireless interface ports. Once the Port and Baud Rate settings are configured, when enabled, the ‘output’ will be raw messages received over the configured serial port. Any values written to the ‘writeValue’ input will be sent on the configured serial port.
Settings:
Rubix Wires User Guide - Rev 1.1.4 | 50
Protocols/Nube
Edge28-Network
This node acts as a container for edge28-input, and edge28-output nodes, which are used to read/write to/from the Edge 28 physical IO. All edge28-input and edge28-output nodes should be added within the edge28-network container. The polling interval for all the edge28-input nodes can be set in the settings of the edge28-network node.
Settings:
Rubix Wires User Guide - Rev 1.1.4 | 51
Edge28-Input
This node is used to read values from the physical input points on the Nube Edge28 controller. These points will update with the polling interval set in the settings of the edge28-api (container) node. The settings for the edge28-input node allow the user to set the configuration of each of the inputs as required. This configuration includes history logging. History logging can be sent to either the Nube DB, or to any instance of Influx DB. Notes on configuring edge28-inputs:
- DI points can only be set as ‘Digital’ - UI points cannot be set as ‘Digital’ but should be set as
‘UI-Digital’, ‘0-10dc’, ‘4-20mA’, or ‘10k-thermistor’. - Math functions are performed on the raw input value and will
alter the output as configured. - Once a ‘Units’ category has been selected, ‘Save’ the
settings, and re-open to choose the specific ‘unit’
For information on History settings, see History/History node. Configuration is the same for bacnet-point histories.
Edge28-Output This node is used to write values to the physical output points on the Nube Edge28 controller. The settings for the edge28-output node allow the user to set the configuration of each of the outputs as required. This configuration includes history logging. History logging can be sent to either the Nube DB, or to any instance of Influx DB. Notes on configuring edge28-outputs:
- DO and Relay (R1/R2) points can only be set as ‘DO’ - UO points cannot be set as ‘DO’ but should be set as ‘UO as
Digital’ or ‘UO as 0-10dc’. - Once a ‘Units’ category has been selected, ‘Save’ the
settings, and re-open to choose the specific ‘unit’
For information on History settings, see History/History node. Configuration is the same for bacnet-point histories.
Rubix Wires User Guide - Rev 1.1.4 | 52
Protocols/BACnet BACnet-Network
This node acts as a container for bacnet-device nodes. All bacnet-device nodes should be added within the bacnet-network container. IP configuration for the BACnet network connection are set from settings. The bacnet-network node can also be used to perform a BACnet Discover (WhoIs).
Settings:
Rubix Wires User Guide - Rev 1.1.4 | 53
BACnet-Device
This node acts as a container for bacnet-point nodes. All bacnet-device nodes should be added within the bacnet-network container. All bacnet-point nodes should be added within a bacnet-device container node. Configuration of BACnet device connections are set from settings. Both IP and MSTP BACnet devices can be configured from the bacnet-device settings.
Settings:
Rubix Wires User Guide - Rev 1.1.4 | 54
BACnet-Point
All bacnet-point nodes should be added within the bacnet-device container node. Configuration of BACnet points are set from settings. If the bacnet-network, and bacnet-device are configured correctly, the BACnet points will be available to select from the ‘Select a point’ setting; otherwise the point can be set manually. For information on History settings, see History/History node. Configuration is the same for bacnet-point histories.
Settings:
Rubix Wires User Guide - Rev 1.1.4 | 55
Protocols/BACnet-Server BACnet-Server
A BACnet server is used to host BACnet points to be read/written by other BACnet devices. The bacnet-server node acts as a container for bacnet-server-point nodes. All bacnet-server-point nodes should be added within the bacnet-server container. IP configurations for the BACnet server connection are set from settings.
Settings:
Rubix Wires User Guide - Rev 1.1.4 | 56
BACnet-Server-Point
Bacnet-server-point nodes should be added within a bacnet-server container node. BACnet point details should be set in settings. BACnet point settings include ID, Type, and Label.
Settings:
Rubix Wires User Guide - Rev 1.1.4 | 57
Protocols/Modbus Modbus-Server
Once the Port and Modbus Address settings are configured, when enabled, this node will create a Local Modbus TCP/IP Server. The points on this created Modbus Server can be written to and read from with other Modbus Nodes, or from another device.
Modbus-Client-Read
Modbus-client-read point nodes are used to read modbus values from modbus servers. Modbus details are configured in settings. ‘Modbus register offset’ setting can be used to return a range of modbus registers as an array of results. Math functions can be configured to be performed on the modbus value before being passed to ‘output’.
Modbus-Client-Write
Modbus-client-write point nodes are used to write modbus values to modbus servers. Modbus details are configured in settings. Math functions can be configured to be performed on the input value before being sent.
Rubix Wires User Guide - Rev 1.1.4 | 58
Protocols/MQTT
MQTT-Client
This node connects to an MQTT Broker, subscribes to topics, and can publish values to topics. Once configured (in settings) with a valid ‘Broker URL’, ‘Broker Port’, and ‘Authentication’ (if required), this node will read and write to MQTT topics when ‘enable’ is ‘true’. Number of topics, and the topic names can be configured from settings. Each topic will have a corresponding input and output.
Settings:
MQTT-Network
This node acts as a container for MQTT nodes. All MQTT nodes should be added within the MQTT-Network container. The MQTT broker details can be configured in settings.
Rubix Wires User Guide - Rev 1.1.4 | 59
MQTT-Point-Write
This node connects to an MQTT Broker, subscribes to a topic, and can publish values. Once configured (in settings) with a valid ‘Broker URL’, ‘Broker Port’, and ‘Authentication’(if required), this node will read and write to MQTT topics when ‘enable’ is ‘true’. This node has a built in 16 level priority array. A ‘Write Priority Level’ must be selected from settings. The highest write priority value will be published to the ‘topic’/value and ‘topic’/json. To release a priority level, a ‘null’ message should be sent on the priority level to be released. This point can be modified by an external MQTT device. From-External Example: ‘topic’ = “MyTopic”. To write a value to this MQTT-point from an external MQTT device, a value of the form {value:(your value here), priority:(your priority)} must be published to the MQTT topic “MyTopic/req”. When any message is published on the MQTT topic “MyTopic/req” this node will publish the updated value to MQTT topic “MyTopic/value/res” it will also publish complete message JSON to MQTT topic “MyTopic/json/res”. If the current value (in Wires) is 55 @ priority 5, then an external MQTT device publishes {value:33, priority:3} to “MyTopic/req” then the MQTT-Point will output 33. If the external MQTT device then publishes {value:null, priority:3} to “MyTopic/req” then the MQTT-Point output will revert to the next priority value (55 @ priority 5).
Settings:
Rubix Wires User Guide - Rev 1.1.4 | 60
MQTT-Point-Read This node connects to an MQTT Broker, subscribes to a topic. Once configured (in settings) with a valid ‘Broker URL’, ‘Broker Port’, and ‘Authentication’(if required), this node will read an MQTT topic when ‘enable’ is ‘true’. This node is to be used with the protocols/MQTT-point nodes (with priority array). Subscribing to basic MQTT topics should be done with the protocols/MQTT-Client node.
Settings:
Rubix Wires User Guide - Rev 1.1.4 | 61
Schedule Schedule-Checker
This node checks the Nube/get-schedules node output string for active schedules that match the selected ‘Schedule Name’ setting. ‘output’ will be ‘true’ when the matching schedule is active and ‘enable’ is ‘true’; otherwise ‘output’ will be ‘false’. ‘nextStart’ is the timestamp output of the next scheduled start time. ‘nextStop’ is the timestamp output of the next scheduled stop time. ‘lastCheck’ is the timestamp output of the last time a schedule check was run. ‘error’ output will be ‘true’ if there is an error while checking the schedule input string; otherwise ‘error’ will be false. The frequency that schedules are checked can be modified with the ‘Schedule Check Interval’ setting (set in millis). The ‘Timestamp Output Format’ setting can be adjusted to output timestamps as strings or as Epoch Timestamps. String timestamps will be displayed in the timezone specified by the ‘Timezone’ setting.
Example Flow:
Rubix Wires User Guide - Rev 1.1.4 | 62
Statistics Min-Max-Avg
Outputs the Minimum, Maximum, and Average values of all the (non null) Numeric inputs. The number of inputs and their values can be modified from settings.
Avg
Outputs the Average, Count, and Sum values of all the (non null) Numeric inputs. The number of inputs and their values can be modified from settings.
Min
Outputs the Minimum value of all the (non null) Numeric inputs. The number of inputs and their values can be modified from settings.
Max
Outputs the Maximum value of all the (non null) Numeric inputs. The number of inputs and their values can be modified from settings.
Rubix Wires User Guide - Rev 1.1.4 | 63
Sum
Outputs the Sum of all the (non null) Numeric inputs. The number of inputs and their values can be modified from settings.
Median
Outputs the Median value of all the (non null) Numeric inputs. The number of inputs and their values can be modified from settings.
Range
Outputs the Range value (max-min) of all the (non null) Numeric inputs. The number of inputs and their values can be modified from settings.
Rank
Outputs the ranked highest (max to min), or ranked lowest (min to max) of all the (non null) Numeric inputs. The number of inputs and the number of outputs can be modified from settings.
Rubix Wires User Guide - Rev 1.1.4 | 64
Stats-All
Outputs the Maximum, Minimum, Range, Sum, Mean, Median, Modes, Variance, Standard Deviation, Mean Absolute Deviation, and Z Score values of all the (non null) Numeric inputs. The number of inputs and their values can be modified from settings.
Rubix Wires User Guide - Rev 1.1.4 | 65
Stream String-Average
output' is the number of characters in the given String 'input' value.
Stream-Highest
output' is the highest received Numeric 'input' value. 'output' is reset when 'reset' transitions from 'false' to 'true'.
Stream-Lowest
output' is the lowest received Numeric 'input' value. 'output' is reset when 'reset' transitions from 'false' to 'true'.
Stream-Sum
‘output' is the sum of all received Numeric 'input' value. 'output' is reset to 0 when 'reset' transitions from 'false' to 'true'.
Gate
This node can allow(gate open) or block(gate close) the transfer of the 'input' to 'output'. When 'open' is 'true', 'input' is passed to 'output'. When 'open' is 'false', 'output' will maintain its last value. If 'Send null when closed' setting is ticked, 'output' will be 'null' when 'open' is 'false'.
Rubix Wires User Guide - Rev 1.1.4 | 66
Stack
‘input' values are stored in a list. Stored 'input' values are passed to 'output' one by one each time 'trigger' transitions from 'false' to 'true'. 'input' values are passed to 'output' in a last-in, first-out order. Stored 'input' values are deleted when 'clear' transitions from 'false' to 'true'. 'count' is the number of stored 'input' values.
Queue
‘input' values are stored in a list. Stored 'input' values are passed to 'output' one by one each time 'trigger' transitions from 'false' to 'true'. 'input' values are passed to 'output' in a first-in, first-out order. Stored 'input' values are deleted when 'clear' transitions from 'false' to 'true'. 'count' is the number of stored 'input' values.
Stream Delay
‘input' values are passed to 'output' after a 'delay' period. Each 'input' value is delayed by the same 'delay' period. 'delay' units can be configured from settings. Maximum ‘delay’ setting is 587 hours.
Stream Delay-Meter This node measures the delay between the incoming events. Any value sent to 'input' (excluding null) will be accepted. 'ms' output is the time between the lastest 'input', and the previous 'input'. 'ms' is reset when 'reset' transitions from 'false' to 'true'. 'ms' output is in millis.
Frequency-Meter
This node measures the frequency of the incoming 'input' events. Any value sent to 'input' (excluding null) will be accepted. 'events/sec' output is the average rate received 'input' values. 'events/sec' is reset when 'reset' transitions from 'false' to 'true'.
Rubix Wires User Guide - Rev 1.1.4 | 67
Stream-Merge This node merges multiple inputs into a single stream/output. Any new 'input' ('in #') value will be passed to 'output'. The number of inputs can be modified from settings.
Rubix Wires User Guide - Rev 1.1.4 | 68
String String-Length
‘output' is the number of characters in the given String 'input' value.
Char-To-Ascii
‘output' is the ASCII code of the first character of a given String 'input' value.
Ascii-To-Char ‘output' is the character of the given Numeric ASCII code 'input' value.
Char-At-Index
‘output' is the character at the Numeric 'index' (position) of String 'input'. The first character of the String 'input' is 'index' 0. If 'index' is negative, characters will be selected from the end of the 'input' string (eg. -1 is the last character; -2 is the second to last character, ...). 'output' will be 'null' on an invalid 'index'.
Substring-Cut
This node outputs a portion of a String 'input' defined by the Numeric 'start' and 'length' parameters. String 'output' is the portion of 'input' starting at index (position) 'start' and continating the next 'length' value of characters. 'start' value of 0 is the beginning of the string. If a negative 'start' value is given, the substring will be selected from the end of the 'input' string (eg. -1 is the end of the 'input'; -2 is the second to last character of the 'input', ...).
Rubix Wires User Guide - Rev 1.1.4 | 69
String-Split
Portions of the String 'input' are sent to the String 'output' sequentially when 'next' transitions from 'false' to 'true'; these 'output' strings are portions of the 'input' string split by the String 'separator' value. The Numeric 'left' outputs the number of 'output' strings remaining to be sent. When 'start' transitions from 'false' to 'true', the 'output' string will go back to the first portion of the 'input' string.
String-Compare
This node provides several functions to compare 2 String inputs, with a Boolean 'output'. Available comparison functions are: Equals, Includes, Starts With, and Ends With. The comparison function is selected from settings.
String-Join
This node takes String inputs and concatenates/joins them to produce a String 'output'. The number of inputs can be modified from settings.
String-Case ‘output' is the 'input' string with all characters changed to either upper or lower case. Upper or Lower case can be selected from settings.
String-Index-Of
This node takes String 'input' and 'searchFor'; Numeric 'output' is the index(position) of the first instance of 'searchFor' in 'input'. Index of 0 is the beginning of the 'input' string.
Rubix Wires User Guide - Rev 1.1.4 | 70
Switch Bool-Switch
Boolean 'switch' passes corresponding Boolean input to 'output'. If 'switch' is 'true', Boolean 'inTrue' value will be passed to 'output' 'inTrue' and 'inFalse' values can be set in settings.
Num-Switch
Boolean 'switch' passes corresponding Numeric input to 'output'. If 'switch' is 'true', Numeric 'inTrue' value will be passed to 'output' 'inTrue' and 'inFalse' values can be set in settings.
String-Switch
Boolean 'switch' passes corresponding String input to 'output'. If 'switch' is 'true', String 'inTrue' value will be passed to 'output' 'inTrue' and 'inFalse' values can be set in settings.
Bool-Select
Numeric integer 'select' passes corresponding Boolean input to 'output'. If 'select' is 2, 'in 2' will be passed to 'output' (likewise for other integer 'select' values). If the 'select' value does not have a corresponding 'in #' value, 'output' value will be 'null'. The number of inputs and their values can be modified from settings.
Rubix Wires User Guide - Rev 1.1.4 | 71
Num-Select
Numeric integer 'select' passes corresponding Numeric input to 'output'. If 'select' is 2, 'in 2' will be passed to 'output' (likewise for other integer 'select' values). If the 'select' value does not have a corresponding 'in #' value, 'output' value will be 'null'. The number of inputs and their values can be modified from settings.
String-Select Numeric integer 'select' passes corresponding String input to 'output'. If 'select' is 2, 'in 2' will be passed to 'output' (likewise for other integer 'select' values). If the 'select' value does not have a corresponding 'in #' value, 'output' value will be 'null'. The number of inputs and their values can be modified from settings.
Bool-Output-Select
Numeric integer 'select' passes Boolean 'input' to the corresponding Boolean 'output'. If 'select' is 2, 'input' will be passed to 'out 2' (likewise for other integer 'select' values). If the 'select' value does not have a corresponding 'out #' value, no values will be passed. The number of outputs can be modified from settings.
Num-Output-Select
Numeric integer 'select' passes Numeric 'input' to the corresponding Numeric 'output'. If 'select' is 2, 'input' will be passed to 'out 2' (likewise for other integer 'select' values). If the 'select' value does not have a corresponding 'out #' value, no values will be passed. The number of outputs can be modified from settings.
String-Output-Select
Numeric integer 'select' passes String 'input' to the corresponding String 'output'. If 'select' is 2, 'input' will be passed to 'out 2' (likewise for other integer 'select' values). If the 'select' value does not have a corresponding 'out #' value, no values will be passed. The number of outputs can be modified from settings.
Rubix Wires User Guide - Rev 1.1.4 | 72
System Platform
This node provides global settings for the Wires instance. It should be added to the main(root) Editor Pane of each Wires instance. ‘Client ID’ and ‘Device ID’ are used by each node with a history logging configuration to store data.
Settings:
System-Info
This node outputs various linux system information. Once a system property has been selected from settings, a ‘false’ to ‘true’ transition on the ‘trigger’ input will update the ‘output’. ‘error’ will display error information if the request is not successful.
Rubix Wires User Guide - Rev 1.1.4 | 73
Beep
This node plays a default system sound on the server (not in the browser) when ‘trigger’ transitions from ‘false’ to ‘true’.
Execute-Cmd
This node triggers commands to be run on the linux host. The string input ‘command input’ will be run when ‘trigger’ transitions from ‘false’ to ‘true’. NOTE: ONLY USE THIS NODE IF YOU KNOW EXACTLY WHAT YOU ARE DOING. SYSTEM COMMANDS CAN CHANGE SYSTEM CONFIGURATION WHICH CANNOT BE FIXED FROM WITHIN WIRES. YOU COULD BREAK WIRES, THE CONTROLLER, OR YOUR PC.
Rubix Wires User Guide - Rev 1.1.4 | 74
Network-Interfaces
This node is used to configure the network (IP) interfaces for the device. Changes made to settings will only be saved if ‘Save changes on save’ is toggled ON. In some cases a reboot will be required to save the changes, if ‘Reboot’ is toggled ON, then clicking ‘save’ will reboot the controller. NOTE: Making changes on a remote device could cause the device to become inaccessible.
Settings:
Rubix Wires User Guide - Rev 1.1.4 | 75
Network-Interfaces-Edge28
This node is used to configure the network (IP) interface for edge28 controllers. Changes made to settings will only be saved if ‘Save changes on save’ is toggled ON. In some cases a reboot will be required to save the changes, if ‘Reboot’ is toggled ON, then clicking ‘save’ will reboot the controller. NOTE: Making changes on a remote device could cause the device to become inaccessible.
Settings:
Rubix Wires User Guide - Rev 1.1.4 | 76
Time Conversion
This node converts between Time units Days('day'), Hours('hour'), Minutes('min'), Seconds('sec'), and Milliseconds('milli'). Input type can be selected from settings. Outputs will change based on selected input type. The number of decimal places that output values have can be set from the 'Precision' setting.
Clock
Outputs the System Time in various forms. Standard outputs are: Time('timeString') Hours('hour'), Minutes('min'), and Seconds('sec'). There are also Advanced outputs which can be enabled from settings. The Advanced outputs are: Milliseconds(millis), Time String including timezone ('longString'), Timezone Offset from UTC('TZOffset'), and Unix Timestamp ('epoch'). ‘interval’ is the output update frequency. ‘interval’ units can be configured from settings. Maximum ‘interval’ setting is 587 hours.
Date
Outputs various date information based on the system time. String 'dateString' is the current date. String 'dayString' is the current day of the week. Numeric 'dayOfWeek' is an integer between 0 and 6 corresponding to Sunday(0) through Saturday(6). Numeric 'date' is an integer of the current date. Numeric 'month' is an integer of the current month Jan(0) - Dec(12). Numeric 'year' is an integer of the current year.
Stopwatch
This node converts between Time units Days('day'), Hours('hour'), Minutes('min'), Seconds('sec'), and Milliseconds('milli'). Input type can be selected from settings. Outputs will change based on selected input type. The number of decimal places that output values have can be set from the 'Precision' setting. ‘interval’ units can be configured from settings. Maximum ‘interval’ setting is 587 hours.
Rubix Wires User Guide - Rev 1.1.4 | 77
Cron-Interval
This node allows the user to set a String output 'message' which is delivered at a selected times/intervals, configured in settings. 'info' will show information about the status of the node. 'cronExpression' represents the configured scheduled timings in Cron notation. 'cronDescription' represents the configured scheduled timings in plain english. 'nextExecution' is a String output representing the datetime that the next 'message' will be sent from 'output'. For more information on Cron Expressions see: (https://www.freeformatter.com/cron-expression-generator-quartz.html)
Cron-Weekly
This node allows the user to set a String output 'message' which is delivered at a configured time on each selected day. Days and Times are set in settings. 'info' will show information about the status of the node. 'cronExpression' represents the configured scheduled timings in Cron notation. 'cronDescription' represents the configured scheduled timings in plain english. 'nextExecution' is a String output representing the datetime that the next 'message' will be sent from 'output'. For more information on Cron Expressions see: (https://www.freeformatter.com/cron-expression-generator-quartz.html)
Rubix Wires User Guide - Rev 1.1.4 | 78
Trigger Change-Of Value
When ‘input’ changes value, output becomes ‘true’ for ‘interval’ duration, then ‘output’ changes back to ‘false’. For Numeric ‘input’ values, the change of value must be greater than the ‘threshold’ value to trigger the output.
Random
When 'trigger' transitions from 'false' to 'true', a random number between 'min' and 'max' values is produced at 'output'. The number of decimal places that 'output' values have can be set from settings.
Interval-inject
While 'enable' is 'true', ‘output’ will send 'message' value at every 'interval' period. When 'enable' is 'false', ‘output’ will be 'null'. ‘interval’ units can be configured from settings. Maximum ‘interval’ setting is 587 hours.
Iterator
This node generates a sequence of 'true' messages at 'output'. If the 'Generate False' setting is ticked (default), then a 'false' message will be sent between each 'true' at 'output'. The number of 'true' messages sent will be equal to 'iterations' value; these values are sent over the 'interval' duration (unless interrupted by ‘stop’ inputs). For example, if 'interval' is set to 5 (seconds) and 'iterations' is set to 5, a 'true' message will be sent from 'output' every 1000 millis. If 'stop’ input is ‘true’ then the next ‘true’ value will not be sent from ‘output’ until ‘stop’ is ‘false’ again. ‘interval’ units can be configured from settings. Maximum ‘interval’ setting is 587 hours.
Rubix Wires User Guide - Rev 1.1.4 | 79