Difference between revisions of "Functions"

From webCoRE Wiki - Web-enabled Community's own Rule Engine
Jump to: navigation, search
(Add description for format())
m (Correct return time for add…() Datetime functions)
Line 33: Line 33:
 
= [[Variable_data_types#Date_and_Time|Datetime]] =
 
= [[Variable_data_types#Date_and_Time|Datetime]] =
 
;addDays(dateTime, days)
 
;addDays(dateTime, days)
:returns the value as a time type
+
:returns the value as a Datetime type
 
;addHours(dateTime, hours)
 
;addHours(dateTime, hours)
:returns the value as a time type
+
:returns the value as a Datetime type
 
;addMinutes(dateTime, minutes)
 
;addMinutes(dateTime, minutes)
:returns the value as a time type
+
:returns the value as a Datetime type
 
;addSeconds(dateTime, seconds)
 
;addSeconds(dateTime, seconds)
:returns the value as a time type
+
:returns the value as a Datetime type
 
;addWeeks(dateTime, weeks)
 
;addWeeks(dateTime, weeks)
:returns the value as a time type
+
:returns the value as a Datetime type
  
 
= [[Variable_data_types#Number_.28Decimal.29|Decimal]] =
 
= [[Variable_data_types#Number_.28Decimal.29|Decimal]] =

Revision as of 22:20, 5 May 2017

Boolean

bool()
//todo
boolean(anything)
converts a value to it's boolean value
contains(string, substring)
returns true if a string contains a substring
endsWith(string, substring)
returns true if a string ends with a substring
eq(value1, value2)
returns true if two values are equal
ge(value1, value2)
returns true if value1 >= value2
gt(value1, value2)
returns true if value1 > value2
isBetween(value, startValue, endValue)
returns true if value >= startValue and value <= endValue
isEmpty(value)
returns true if the value is empty
le(value1, value2)
returns true if value1 <= value2
lt(value1, value2)
returns true if value1 < value2
not(value)
returns the negative boolean value
startsWith(string, substring)
returns true if a string starts with a substring

Date

date(value)
returns the value as a date type

Datetime

addDays(dateTime, days)
returns the value as a Datetime type
addHours(dateTime, hours)
returns the value as a Datetime type
addMinutes(dateTime, minutes)
returns the value as a Datetime type
addSeconds(dateTime, seconds)
returns the value as a Datetime type
addWeeks(dateTime, weeks)
returns the value as a Datetime type

Decimal

avg(values)
calculates the average of a series of numeric values
ceil()
//todo
ceiling(decimal or string)
converts a decimal value to it's closest higher integer value
celsius(temperature)
converts temperature from Fahrenheit to Celsius
decimal(integer or string)
converts an integer value to it's decimal value
dewPoint(temperature, relativeHumidity[, scale])
returns the calculated dew point temperature
fahrenheit([Sensor;temperature])
converts temperature from Celsius to Fahrenheit
float()
//todo
floor(decimal or string)
converts a decimal value to it's closest lower integer value
max(values)
calculates the maximum of a series of numeric values
median(values)
returns the value in the middle of a sorted array
min(values)
calculates the minimum of a series of numeric values
number()
//todo
power(integer or decimal or string, power)
converts a decimal value to it's power decimal value
round(decimal or string, [precision])
converts a decimal value to it's rounded value
sqr(integer or decimal or string)
converts a decimal value to it's square decimal value
sqrt(integer or decimal or string)
converts a decimal value to it's square root decimal value
stdev(values)
calculates the standard deviation of a series of numeric values
sum(values)
calculates the sum of a series of numeric values
variance(values)
calculates the standard deviation of a series of numeric values

Dynamic

if(condition, valueIfTrue, valueIfFalse)
evaluates a boolean and returns value1 if true, or value2 otherwise
least(values)
returns the value that is least found a series of numeric values
most(values)
returns the value that is most found a series of numeric values
previousValue([device;attribute])
returns the previous value of the attribute

Integers

age([device;attribute])
returns the number of milliseconds an attribute had the current value
count(values)
calculates the number of true/non-zero/non-empty items in a series of numeric values
int()
//todo
integer(decimal or string)
converts a decimal value to it's integer value
newer([device;attribute],[...], [device;attribute], threshold)
returns the number of devices whose attribute had the current value for less than the specified number of milliseconds
older([device;attribute],[...], [device;attribute], threshold)
returns the number of devices whose attribute had the current value for more than the specified number of milliseconds
previousAge([device;attribute])
returns the number of milliseconds an attribute had the previous value

String

concat(string1, string2)
returns two strings appended together
Example: concat("hello ", "world") or concat("hello", " ", "world") outputs hello world
format(format string, values)
Usage:
formatString is a Java printf() type format string (see Reference)
values is a dynamic length list of values (one entry for each % in the format string)
returns a string with the placeholders replaced with the appropriately formatted values
Example: format('The temperature outside is %.2f degrees Fahrenheit', [Temp sensor:temperature]) outputs The temperature outside is 71.26 degrees Fahrenheit
formatDuration(value[, friendly = false[, granularity = 's'[, showAdverbs = false]]])
Usage:
value is a number of milliseconds
friendly = true/false (false >>> 0d 00:00:00.000, true >>> so many days, so many hours, etc)
granularity = one of ms, s, m, h, d (smallest part displayed)
showAdverbs = true/false, true adds the in .... or .... ago to friendly times
returns a nicely formatted string of time
eg: formatDuration(12029) - 00:00:12 | formatDuration(12029, true) - 12 seconds | formatDuration(12029, true, "m") - 0 minutes | formatDuration(12029, true, "ms", true) - in 12 seconds and 29 milliseconds
left(string, count)
returns a substring of a value
Example1: left("hello world", 3) outputs hel
Example2: left("hello world", 7) outputs hello w
lower(string)
returns a lower case value of a string
Example: lower("HELLO WORLD") outputs hello world
mid(string, start, count)
returns a substring of a value
returns characters (including spaces) specified by count after start position from string
Example1: mid("hello world", 3, 4) returns lo w
Example2: mid("hello world", 6, 3) returns wor
replace(string, search, replace[, [..], search, replace])
replaces a search text inside of a value
Example1: replace("hello world", "world", "earth") returns hello earth
Example2: replace(replace("[hello world]", "\[", "("),"\]",")") returns (hello world)
Note: There are special characters in regular expressions that needs to be escaped or the script will return an error, in the above example [ and ] are special characters.
right(string, count)
returns a substring of a value
sprintf(format, arguments)
formats a series of values into a string
string(anything)
converts a value to it's string value
substring(string, start, count)
returns a substring of a value
text()
//todo
title(string)
returns a title case value of a string
upper(string)
returns an upper case value of a string

Time

time(value)
returns the value as a time type
addSeconds(dateTime, seconds)
adds seconds to time, returns the value as a time type
addMinutes(dateTime, minutes)
adds minutes to time, returns the value as a time type
addHours(dateTime, hours)
adds hours to time, returns the value as a time type
addDays(dateTime, days)
adds days to time, returns the value as a time type
addWeeks(dateTime, weeks)
adds weeks to time, returns the value as a time type