Difference between revisions of "Functions"
From webCoRE Wiki - Web-enabled Community's own Rule Engine
(→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== |
− | + | :Syntax | |
− | : | + | ::<code>addDays(''datetime'' value, ''integer'' days)</code> |
− | + | :Returns | |
− | : | + | ::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>. |
− | + | ||
− | : | + | ==addHours== |
− | + | :Syntax | |
− | : | + | ::<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
Contents
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
- Returns the truth value of the input. Accepts anything as input and will return true if
boolean
- This is an alias of bool
contains
- Syntax
contains(string haystack, string needle)
- Returns
- Returns true if the
needle
is found anywhere in thehaystack
- Returns true if the
endsWith
- Syntax
endsWith(string haystack, string needle)
- Returns
- Returns true if
haystack
ends with theneedle
- Returns true if
eq
- Syntax
eq(dynamic value1, dynamic value2)
- Returns
- Returns true if
value1
is equivalent tovalue2
- Returns true if
ge
- Syntax
ge(dynamic value1, dynamic value2)
- Returns
- Returns true if
value1
is greater than or equal tovalue2
- Returns true if
gt
- Syntax
gt(dynamic value1, dynamic value2)
- Returns
- Returns true if
value1
is greater thanvalue2
- Returns true if
isBetween
- Syntax
isBetween(dynamic value, dynamic startValue, dynamic startValue)
- Returns
- Returns true if
value
is greater then or equal tostartValue
and less than or equal toendValue
- Returns true if
isEmpty
- Syntax
isEmpty(dynamic value)
- Returns
- Returns true if
value
is not set, an empty string, or zero
- Returns true if
le
- Syntax
le(dynamic value1, dynamic value2)
- Returns
- Returns true if
value1
is less than or equal tovalue2
- Returns true if
lt
- Syntax
lt(dynamic value1, dynamic value2)
- Returns
- Returns true if
value1
is less thanvalue2
- Returns true if
not
- Syntax
not(dynamic value)
- Returns
- Returns the negated truth state of
value
. This is the logical negation ofbool(dynamic value)
.
- Returns the negated truth state of
startsWith
- Syntax
startsWith(string haystack, string needle)
- Returns
- Returns true if
haystack
starts with theneedle
- Returns true if
Date functions
date
- Syntax
date(datetime value)
- Returns
- Returns the date portion of
value
by stripping off time information.
- Returns the date portion of
Datetime functions
addDays
- Syntax
addDays(datetime value, integer days)
- Returns
- Returns a datetime that is
days
days after thevalue
. For negative values ofdays
, it returns a datetime that isdays
days beforevalue
.
- Returns a datetime that is
addHours
- Syntax
addHours(datetime value, integer hours)
- Returns
- Returns a datetime that is
hours
hours after thevalue
. For negative values ofhours
, it returns a datetime that ishours
hours beforevalue
.
- Returns a datetime that is
addMinutes
- Syntax
addMinutes(datetime value, integer minutes)
- Returns
- Returns a datetime that is
minutes
minutes after thevalue
. For negative values ofminutes
, it returns a datetime that isminutes
minutes beforevalue
.
- Returns a datetime that is
addSeconds
- Syntax
addSeconds(datetime value, integer seconds)
- Returns
- Returns a datetime that is
seconds
seconds after thevalue
. For negative values ofseconds
, it returns a datetime that isseconds
seconds beforevalue
.
- Returns a datetime that is
addWeeks
- Syntax
addWeeks(datetime value, integer weeks)
- Returns
- Returns a datetime that is
weeks
weeks after thevalue
. For negative values ofweeks
, it returns a datetime that isweeks
weeks beforevalue
.
- Returns a datetime that is
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")
orconcat("hello", " ", "world")
outputshello 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])
outputsThe 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)
outputshel
- Example2:
left("hello world", 7)
outputshello w
- lower(string)
- returns a lower case value of a string
- Example:
lower("HELLO WORLD")
outputshello 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)
returnslo w
- Example2:
mid("hello world", 6, 3)
returnswor
- replace(string, search, replace[, [..], search, replace])
- replaces a search text inside of a value
- Example1:
replace("hello world", "world", "earth")
returnshello 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