Difference between revisions of "Functions"

From webCoRE Wiki - Web-enabled Community's own Rule Engine
Jump to: navigation, search
(Date)
(Datetime)
Line 86: Line 86:
 
::Returns the date portion of <code>value</code> by stripping off time information.
 
::Returns the date portion of <code>value</code> by stripping off time information.
  
= [[Variable_data_types#Date_and_Time|Datetime]] =
+
=[[Variable_data_types#Date_and_Time|Datetime]] functions=
;addDays(dateTime, days)
+
 
:returns the value as a Datetime type
+
==addDays==
;addHours(dateTime, hours)
+
:Syntax
:returns the value as a Datetime type
+
::<code>addDays(''datetime'' value, ''integer'' days)</code>
;addMinutes(dateTime, minutes)
+
:Returns
:returns the value as a Datetime type
+
::Returns a datetime that is <code>days</code> days after the <code>value</code>. For negative values of <code>days</code>, it returns a datetime that is <code>days</code> days before <code>value</code>.
;addSeconds(dateTime, seconds)
+
 
:returns the value as a Datetime type
+
==addHours==
;addWeeks(dateTime, weeks)
+
:Syntax
:returns the value as a Datetime type
+
::<code>addHours(''datetime'' value, ''integer'' hours)</code>
 +
:Returns
 +
::Returns a datetime that is <code>hours</code> hours after the <code>value</code>. For negative values of <code>hours</code>, it returns a datetime that is <code>hours</code> hours before <code>value</code>.
 +
 
 +
==addMinutes==
 +
:Syntax
 +
::<code>addMinutes(''datetime'' value, ''integer'' minutes)</code>
 +
:Returns
 +
::Returns a datetime that is <code>minutes</code> minutes after the <code>value</code>. For negative values of <code>minutes</code>, it returns a datetime that is <code>minutes</code> minutes before <code>value</code>.
 +
 
 +
==addSeconds==
 +
:Syntax
 +
::<code>addSeconds(''datetime'' value, ''integer'' seconds)</code>
 +
:Returns
 +
::Returns a datetime that is <code>seconds</code> seconds after the <code>value</code>. For negative values of <code>seconds</code>, it returns a datetime that is <code>seconds</code> seconds before <code>value</code>.
 +
 
 +
 
 +
==addWeeks==
 +
:Syntax
 +
::<code>addWeeks(''datetime'' value, ''integer'' weeks)</code>
 +
:Returns
 +
::Returns a datetime that is <code>weeks</code> weeks after the <code>value</code>. For negative values of <code>weeks</code>, it returns a datetime that is <code>weeks</code> weeks before <code>value</code>.
  
 
= [[Variable_data_types#Number_.28Decimal.29|Decimal]] =
 
= [[Variable_data_types#Number_.28Decimal.29|Decimal]] =

Revision as of 03:38, 6 May 2017

Functions are extensions to expressions that allow data processing and conversion. Here is a list of all defined functions

Boolean functions

bool

Syntax
bool(dynamic value)
Returns
Returns the truth value of the input. Accepts anything as input and will return true if value is either a non-zero number, a non-empty string (with some exceptions, see below), a non-empty device list, a non-empty date/time/datetime

boolean

This is an alias of bool

contains

Syntax
contains(string haystack, string needle)
Returns
Returns true if the needle is found anywhere in the haystack

endsWith

Syntax
endsWith(string haystack, string needle)
Returns
Returns true if haystack ends with the needle

eq

Syntax
eq(dynamic value1, dynamic value2)
Returns
Returns true if value1 is equivalent to value2

ge

Syntax
ge(dynamic value1, dynamic value2)
Returns
Returns true if value1 is greater than or equal to value2

gt

Syntax
gt(dynamic value1, dynamic value2)
Returns
Returns true if value1 is greater than value2

isBetween

Syntax
isBetween(dynamic value, dynamic startValue, dynamic startValue)
Returns
Returns true if value is greater then or equal to startValue and less than or equal to endValue

isEmpty

Syntax
isEmpty(dynamic value)
Returns
Returns true if value is not set, an empty string, or zero

le

Syntax
le(dynamic value1, dynamic value2)
Returns
Returns true if value1 is less than or equal to value2

lt

Syntax
lt(dynamic value1, dynamic value2)
Returns
Returns true if value1 is less than value2

not

Syntax
not(dynamic value)
Returns
Returns the negated truth state of value. This is the logical negation of bool(dynamic value).

startsWith

Syntax
startsWith(string haystack, string needle)
Returns
Returns true if haystack starts with the needle

Date functions

date

Syntax
date(datetime value)
Returns
Returns the date portion of value by stripping off time information.

Datetime functions

addDays

Syntax
addDays(datetime value, integer days)
Returns
Returns a datetime that is days days after the value. For negative values of days, it returns a datetime that is days days before value.

addHours

Syntax
addHours(datetime value, integer hours)
Returns
Returns a datetime that is hours hours after the value. For negative values of hours, it returns a datetime that is hours hours before value.

addMinutes

Syntax
addMinutes(datetime value, integer minutes)
Returns
Returns a datetime that is minutes minutes after the value. For negative values of minutes, it returns a datetime that is minutes minutes before value.

addSeconds

Syntax
addSeconds(datetime value, integer seconds)
Returns
Returns a datetime that is seconds seconds after the value. For negative values of seconds, it returns a datetime that is seconds seconds before value.


addWeeks

Syntax
addWeeks(datetime value, integer weeks)
Returns
Returns a datetime that is weeks weeks after the value. For negative values of weeks, it returns a datetime that is weeks weeks before value.

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