Operators

Arithmetic

Operator Description Example
+ Adds two operands. 10 + 20 = 30
Subtracts second operand from the first. 10 − 20 = -10
* Multiplies both operands. 10 * 20 = 200
/ Divides numerator by de-numerator.
10 / 20 = 2
10 / 3 = 3.333...
\ [1] Integer divides numerator by de-numerator. 10 \ 3 = 3
% Remainder after an integer division.
20 % 10 = 0
11 % 3 = 2
[1]

The backslash is also used as an escape character. So if you want to use the intdivide operator inside a rule you must write your rulses like this:

{
   "rules": {
      "rule": "IF 3 \\ 2 = 1 THEN switch DEVICE light TO on",
      "active": 1
   }
}

Relational

Operator Description Example
==
Checks if the first and second (nummeric)
operand are equal.
20 == 10 = false
10 == 10 = true
!=
Checks if the first and second (nummeric)
operand are unequal.
20 != 10 = true
10 != 10 = false
IS
Checks if the first and second (character)
operand are equal.
a IS b = false
a IS a = true
>=
Checks if the first operand is greater or
equal to the second operand.
20 >= 10 = true
10 >= 20 = false
10 >= 10 = true
>
Checks if the first operand is greater than
the second operand.
20 > 10 = true
10 > 20 = false
10 > 10 = false
<=
Checks if the first operand is smaller or
equal to the second operand.
20 <= 10 = false
10 <= 20 = true
10 <= 10 = true
<
Checks if the first operand is smaller than
the second operand.
20 < 10 = false
10 < 20 = true
10 < 10 = false

New in version 8.0: ISNOT operator added

Operator Description Example
ISNOT
Checks if the first and second (character)
operand are equal.
a ISNOT b = true
a ISNOT a = false

Logical

Operator Description Example
AND
Checks if the first and second operands are
true.
- values greater of smaller then 0 are true
- strings equals to 0 are false
- strings other than 0 are true
1 AND 1 = true
1 AND 0 = false
foo AND false = true
true AND true = true
false AND false = true
OR
Checks if the first or second operands are
true.
- values greater of smaller then 0 are true
- strings equals to 0 are false
- strings other than 0 are true
0 OR 0 = false
1 OR 0 = true
foo OR false = true
true OR true = true
false OR false = true