You must create a profile before using Big6 for processing incoming information or sending out information to external devices.
Here is the starting point
Select the type of the profile that you are creating (HTTP is shown in the screenshot above). Choose one of the 6 protocols that are supported (MQTT, HTTP, TCP, Serial, Chat) at the top menu bar.
The round buttons in the body are self explanatory when you hoover over with the mouse. Click “+” to add a profile.
The profile “tells” Big6
(a) how to establish a connection with the remote site and
(b) how to process the incoming information
The horizontal line in the middle separates the two parts of the profile.
(a) Setup the communication protocol’s details in the upper part. It allows Big6 to properly connect with your remote device(s). The upper part can not be empty.
(b) Setup the processing rules for the incoming information in the lower part. Lower part can be empty completely or partially depending on what you want to do with the incoming information from your device(s).
Part (a) is specific for each profile and is presented in details for each profile on a dedicated page. Click on the profile of interest here HTTP , MQTT, TCP, UDP, Serial, Chat .
Part (b) is the same for all profiles and described here. This is what you see at the bottom half of each profile under the horizontal line in the middle of the profile page.
Device Name / Value expressions
HS4 uses Root/Feature structure for devices. Hence Big6 has two boxes for “Device Name Expression”. The top one is for the root and the bottom one is for the features.
As a rule of thumb always use &&& separator to separate root devices and && to separate features within the root device. Please note separators do separate expressions but are not part of the expression. If you want to test your expressions in the sand box of Big6 than do that one by one expression and do not include the separators &&& or &&.
The name expressions of the root devices go in a separate box and they are separated by &&&
Important ! Do not use spaces before or after the separators &&& and &&.
Example: “Sensor1″&&&”Sensor2″&&&”Sensor3”
The names are fixed in the above example, however as it always has been the case with Big6 the names of the root devices can be retrieved from the incoming message like that
Example: JSON(input,”sensor[0].name”)&&&JSON(input,”sensor[1].name”)&&&JSON(input,”sensor[2].name”)
The name and value expressions for the “features” of a root device are separated with && and they are separated by &&& for different root devices
Example: JSON(input,”sensor[0].temp”)&&JSON(input,”sensor[0].hum”)&&JSON(input,”sensor[0].light”)&&&JSON(input,”sensor[1].temp”)&&JSON(input,”sensor[1].hum”)&&JSON(input,”sensor[1].light”)&&&JSON(input,”sensor[2].temp”)&&JSON(input,”sensor[2].hum”)&&JSON(input,”sensor[2].light”)
In this example 3 features will be created and values imported in HS4 for each root device . Please note the &&& separator.
Above examples are designed around this JSON input
{
“sensors”: [{
“name”: “test1”,
“temp”: “77.45”,
“hum”: “25.25”,
“light”: “70”
},
{
“name”: “test2”,
“temp”: “71.25”,
“hum”: “39.10”,
“light”: “20”
},
{
“name”: “test3”,
“temp”: “70.12”,
“hum”: “34.32”,
“light”: “95”
}
]
}
Locked – if checked than Big6 will update exiting HS4 devices that Big6 created earlier but will not create new devices. It is applicable to both root and features.
Num as a string – If checked than Big6 will create string values out of numerical fields. Pls. note that strings in HS4 are referred to as “status”
Device affect expression – It must be an expression that returns a logical result “true” or “false”. If “true” than Big6 will create and update HS4 devices from the input received. If “false” than Big6 will NOT create/update HS4 devices.
Example: All responses by Pentair pool start with !00. If you use this expression in the “Device affect expression” box
StartsWith(input,”!00)
than Big6 will not create/update devices by messages that don’t start with !00
Training: Go to the sandbox at the bottom of Big6–>Configuration and enter the above Expression. Also enter this string in the input field
!00 pump=1
and see the result. Must be true. Now enter this string as an input
“Error. Interface Busy.”
The result will be false.
This example shows you how Big6 creates/updates real HS4 devices based on useful information and ignores other information that may not be useful to you.
Both “Locked” and “Device affect expression” are designed to prevent a glut of HS4 devices being created by “noise” and “gibberish” that sometimes happen over communication lines.
Device name expression – This optional box contains Expression used to determine the name(s) of HS4 devices that Big6 creates. If left blank than Big6 will create only one HS4 device upon receiving input information
Floor: Big6 Room: “profile type here” Device name: “profile name here”
In the above example if our pool however has several pumps and features than one HS4 device won’t do it. This is when device name expression comes handy.
Example: Let’s assume that the pool has Pump and SPA that report their status 1 (on) or 0 (off) by sending this info over the MQTT interface
!00 pump=1
!00 spa=0
The Expression that will retrieve the names pump and spa respectively will look like this
Split(Split(input, “=”)[0],” “)[1]
Full list of expressions is available here .
IMPORTANT !
Always test your expressions in the sandbox available at Big6 –> Documentation
Wrap expressions in this wrap ${…} to test in the sandbox and everywhere else throughout Big6 excluding the profiles. Do not use ${…} wrap in the profiles please.
Please note that the counting always start from 0 at Expressions. So if you need the first part than you specify [0].
Training: Try the above Expression with the above two input data in the sandbox at the bottom of Big6–>Documentation page.
Device value expression – This optional box can be left empty. If it is left empty Big6 will still create a single HS4 device (see above) and the received information will be put as a device string in the same HS4 device. If it happens to be a number it will show also as the device value in HS4. If the input information is of more complex nature and contains letters and numbers and if only specific numbers are of interest than you use “device value expression”.
Example: Let’s get the values for the devices we’ve created in the above example.
We will use this expression
Numbers( Split(input, “=”)[1] )[0]
for getting the numerical values from these inputs and put them as values in the HS3 devices
!00 pump=1
!00 spa=0
The Expression splits along the “=” and takes the second part and than the first number of this second part.
As a result of such operation Big6 will put values 1 and 0 in the devices named Pool-pump and Pool-spa respectively. Each time the pool controller sends updated input the values will change within the HS4 devices automatically. No action needed no HS4 events are needed.
Enable log – This checkbox is just above the line (not shown on the image above). It is common for all profiles and has the same purpose. If the enable log box is checked than you may selectively collect log entries for this profile ONLY. This is important because it’s easy to get lost in the log of in large deployments of Big6. As far as troubleshooting is typically one profile at a time than this feature may prove precious in some cases. In order to take advantage of it you need to select the option “Show errors and debug for specific (selected) profiles” in Utilities. You’ll find it in
HS4–>Plug-ins–>Installed–>Big6–>Profiles Configuration–>Utilities–>Debug Outputs
Useful Hint ! Use the button “i” in the profiles menu for helpful information on the fly. Read the documentation if nothing else helps.