triggers

Namespace

triggers

Description:
  • Triggers namespace. This namespace allows creation of openHAB rule triggers.

    It is possible to skip parameter configuration in triggers by using undefined.

Source:

Methods

(static) ChannelEventTrigger(channel, event, triggerNameopt)

Description:
  • Creates a trigger that fires upon specific events in a channel.

Source:
Example
ChannelEventTrigger('astro:sun:local:rise#event', 'START');
Parameters:
Name Type Attributes Description
channel string

the name of the channel

event string

the name of the event to listen for

triggerName string <optional>

the optional name of the trigger to create

(static) DateTimeTrigger(itemOrName, timeOnlyopt, offsetopt, triggerNameopt)

Description:
  • Creates a trigger that fires at an (optional) date and time specified in a DateTime Item.

Source:
Example
DateTimeTrigger('MyDateTimeItem');
Parameters:
Name Type Attributes Default Description
itemOrName Item | string

the Item or the name of the Item to monitor for change

timeOnly boolean <optional>
false

Specifies whether only the time of the DateTime Item should be compared or the date and time.

offset number <optional>
0

The offset in seconds to add to the time of the DateTime Item

triggerName string <optional>

the optional name of the trigger to create

(static) GenericCronTrigger(expression, triggerNameopt)

Description:
  • Creates a trigger that fires on a cron schedule. The supplied cron expression defines when the trigger will fire.

Source:
Example
GenericCronTrigger('0 30 16 * * ? *');
Parameters:
Name Type Attributes Description
expression string

the cron expression defining the triggering schedule

triggerName string <optional>

the optional name of the trigger to create

(static) GenericEventTrigger(eventTopic, eventSource, eventTypes, triggerNameopt)

Description:
  • Creates a trigger that fires upon a matching event from the event bus.

    Please have a look at the Event Bus docs to learn about events.

Source:
Example
// Triggers when an Item is added or removed
GenericEventTrigger('openhab/items/**', '', ['ItemAddedEvent', 'ItemRemovedEvent'])
// Triggers when the Item "OutdoorLights" is commanded by expire
GenericEventTrigger('openhab/items/OutdoorLights/*', 'org.openhab.core.expire', 'ItemCommandEvent')
Parameters:
Name Type Attributes Description
eventTopic string

Specifies the event topic to match, asa file-system style glob (* and ** operators)

eventSource string

Specifies the event source such as org.openhab.core.expire,

eventTypes string | Array:.<string:>

Specifies the event type(s) to match, e.g. ItemAddedEvent, ItemRemovedEvent, ItemCommandEvent, etc.

triggerName string <optional>

the optional name of the trigger to create

(static) GroupCommandTrigger(groupOrName, commandopt, triggerNameopt)

Description:
  • Creates a trigger that fires upon a member of a group receiving a command. Note that the group Item does not need to change state.

Source:
Example
GroupCommandTrigger('my_group', 'OFF');
Parameters:
Name Type Attributes Description
groupOrName Item | string

the group Item or the name of the group to monitor for commands

command string <optional>

the command received

triggerName string <optional>

the optional name of the trigger to create

(static) GroupStateChangeTrigger(groupOrName, oldStateopt, newStateopt, triggerNameopt)

Description:
  • Creates a trigger that fires upon a member of a group changing state. Note that group Item does not need to change state.

Source:
Example
GroupStateChangeTrigger('my_group', 'OFF', 'ON');
Parameters:
Name Type Attributes Description
groupOrName Item | string

the group Item or the name of the group to monitor for change

oldState string <optional>

the previous state of the group

newState string <optional>

the new state of the group

triggerName string <optional>

the optional name of the trigger to create

(static) GroupStateUpdateTrigger(groupOrName, stateopt, triggerNameopt)

Description:
  • Creates a trigger that fires upon a member of a group receiving a state update. Note that group Item does not need to change state.

Source:
Example
GroupStateUpdateTrigger('my_group', 'OFF');
Parameters:
Name Type Attributes Description
groupOrName Item | string

the group Item or the name of the group to monitor for change

state string <optional>

the new state of the group

triggerName string <optional>

the optional name of the trigger to create

(static) ItemCommandTrigger(itemOrName, commandopt, triggerNameopt)

Description:
  • Creates a trigger that fires upon an Item receiving a command. Note that the Item does not need to change state.

Source:
Example
ItemCommandTrigger('my_item'); // received command
ItemCommandTrigger('my_item', 'OFF'); // received command OFF
Parameters:
Name Type Attributes Description
itemOrName Item | string

the Item or the name of the Item to monitor for change

command string <optional>

the command received

triggerName string <optional>

the optional name of the trigger to create

(static) ItemStateChangeTrigger(itemOrName, oldStateopt, newStateopt, triggerNameopt)

Description:
  • Creates a trigger that fires upon an Item changing state.

Source:
Example
ItemStateChangeTrigger('my_item'); // changed
ItemStateChangeTrigger('my_item', 'OFF', 'ON'); // changed from OFF to ON
ItemStateChangeTrigger('my_item', undefined, 'ON'); // changed to ON
ItemStateChangeTrigger('my_item', 'OFF', undefined); // changed from OFF
Parameters:
Name Type Attributes Description
itemOrName Item | string

the Item or the name of the Item to monitor for change

oldState string <optional>

the previous state of the Item

newState string <optional>

the new state of the Item

triggerName string <optional>

the optional name of the trigger to create

(static) ItemStateUpdateTrigger(itemOrName, stateopt, triggerNameopt)

Description:
  • Creates a trigger that fires upon an Item receiving a state update. Note that the Item does not need to change state.

Source:
Example
ItemStateUpdateTrigger('my_item'); // received update
ItemStateUpdateTrigger('my_item', 'OFF'); // received update OFF
Parameters:
Name Type Attributes Description
itemOrName Item | string

the Item or the name of the Item to monitor for change

state string <optional>

the new state of the Item

triggerName string <optional>

the optional name of the trigger to create

(static) PIDTrigger(inputItem, setpointItem, kp, ki, kd, kdTimeConstant, loopTime, commandItemopt, integralMinValueopt, integralMaxValueopt, pInspectorItemopt, iInspectorItemopt, dInspectorItemopt, errorInspectorItemopt, triggerNameopt)

Description:
Source:
Example
rules.JSRule({
  name: 'PID rule',
  triggers: [
    triggers.PIDTrigger('currentTemperature', 'targetTemperature', 1, 1, 1, 1, 10000, undefined, 1, 100);
  ],
  execute: (event) => {
    // Look out what the max value for your Item is!
    const command = parseInt(event.receivedCommand) > 100 ? '100' : event.receivedCommand;
    items.getItem('thermostat').sendCommand(command);
  }
});
Parameters:
Name Type Attributes Default Description
inputItem string

name of the input Item (e.g. temperature sensor value)

setpointItem string

name of the setpoint Item (e.g. desired room temperature)

kp number 1

P: Proportional Gain parameter

ki number 1

I: Integral Gain parameter

kd number 1

D: Deritative Gain parameter

kdTimeConstant number 1

D-T1: Derivative Gain Time Constant in sec

loopTime number 1000

The interval the output value will be updated in milliseconds. Note: the output will also be updated when the input value or the setpoint changes.

commandItem string <optional>

Name of the item to send a String "RESET" to reset the I- and the D-part to 0.

integralMinValue number <optional>

The I-part will be limited (min) to this value.

integralMaxValue number <optional>

The I-part will be limited (max) to this value.

pInspectorItem string <optional>

name of the debug Item for the current P-part

iInspectorItem string <optional>

name of the debug Item for the current I-part

dInspectorItem string <optional>

name of the debug Item for the current D-part

errorInspectorItem string <optional>

name of the debug Item for the current regulation difference (error)

triggerName string <optional>

the optional name of the trigger to create

(static) PWMTrigger(dutycycleItem, interval, minDutyCycleopt, maxDutyCycleopt, deadManSwitchopt, triggerNameopt)

Description:
Source:
Example
rules.JSRule({
  name: 'PWM rule',
  triggers: [
    triggers.PWMTrigger('pwm_dimmer', 10);
  ],
  execute: (event) => {
    items.getItem('pwm_switch').sendCommand(event.receivedCommand);
  }
});
Parameters:
Name Type Attributes Description
dutycycleItem string

Item (PercentType) to read the duty cycle from

interval number

constant interval in which the output is switch ON and OFF again (in sec)

minDutyCycle number <optional>

any duty cycle below this value will be increased to this value

maxDutyCycle number <optional>

any duty cycle above this value will be decreased to this value

deadManSwitch number <optional>

output will be switched off, when the duty cycle is not updated within this time (in ms)

triggerName string <optional>

the optional name of the trigger to create

(static) SystemStartlevelTrigger(startlevel, triggerNameopt)

Description:
  • Creates a trigger that fires if a given start level is reached by the system

Source:
Example
SystemStartlevelTrigger(40)  // Rules loaded
SystemStartlevelTrigger(50)  // Rule engine started
SystemStartlevelTrigger(70)  // User interfaces started
SystemStartlevelTrigger(80)  // Things initialized
SystemStartlevelTrigger(100) // Startup Complete
Parameters:
Name Type Attributes Description
startlevel string | number

the system start level to be triggered on

triggerName string <optional>

the optional name of the trigger to create

(static) ThingStatusChangeTrigger(thingUID, statusopt, previousStatusopt, triggerNameopt)

Description:
  • Creates a trigger that fires upon a Thing status changing.

Source:
Example
ThingStatusChangeTrigger('some:thing:uuid', 'ONLINE', 'OFFLINE');
Parameters:
Name Type Attributes Description
thingUID string

the name of the thing to monitor for a status change

status string <optional>

the optional status to monitor for

previousStatus string <optional>

the optional previous state to monitor from

triggerName string <optional>

the optional name of the trigger to create

(static) ThingStatusUpdateTrigger(thingUID, statusopt, triggerNameopt)

Description:
  • Creates a trigger that fires upon a Thing status updating.

Source:
Example
ThingStatusUpdateTrigger('some:thing:uuid', 'OFFLINE');
Parameters:
Name Type Attributes Description
thingUID string

the name of the thing to monitor for a status updating

status string <optional>

the optional status to monitor for

triggerName string <optional>

the optional name of the trigger to create

(static) TimeOfDayTrigger(time, triggerNameopt)

Description:
  • Creates a trigger that fires daily at a specific time. The supplied time defines when the trigger will fire.

Source:
Example
TimeOfDayTrigger('19:00');
Parameters:
Name Type Attributes Description
time string

the time expression (in HH:mm) defining the triggering schedule

triggerName string <optional>

the optional name of the trigger to create