«
Rule languages supports item update trigger
| type | name | group | state |
|---|---|---|---|
| Number | Alarm_Mode | AlarmModes | 7 |
| Number | Alarm_Mode_Other | AlarmModes | 7 |
rule 'Execute rule when item is updated to any value' do
updated Alarm_Mode
run { logger.info("Alarm Mode Updated") }
endrule 'Execute rule when item is updated to specific number' do
updated Alarm_Mode, to: 7
run { logger.info("Alarm Mode Updated") }
end| update | log | |
|---|---|---|
| 7 | should | |
| 14 | should not |
rule 'Execute rule when item is updated to one of many specific states' do
updated Alarm_Mode, to: [7,14]
run { logger.info("Alarm Mode Updated")}
end| update | log | |
|---|---|---|
| 7 | should | |
| 14 | should | |
| 10 | should not |
rule 'Execute rule when group is updated to any state' do
updated AlarmModes
triggered { |item| logger.info("Group #{item.id} updated")}
endrule 'Execute rule when member of group is changed to any state' do
updated AlarmModes.members
triggered { |item| logger.info("Group item #{item.id} updated")}
endrule 'Execute rule when member of group is changed to one of many states' do
updated AlarmModes.members, to: [7,14]
triggered { |item| logger.info("Group item #{item.id} updated")}
end| update | log | |
|---|---|---|
| 7 | should | |
| 14 | should | |
| 10 | should not |
| type | name | state |
|---|---|---|
| Number | Alarm_Mode | <initial> |
rule 'Execute rule with range conditions' do
updated Alarm_Mode, <conditions>
run { |event| logger.info("Alarm Mode: Updated to #{event.state}") }
end| initial | conditions | change | should | |
|---|---|---|---|---|
| 4 | to: 8..10 | 9 | should | |
| 11 | to: 4..12 | 14 | should not |
| type | name | state |
|---|---|---|
| Number | Alarm_Mode | <initial> |
rule 'Execute rule with proc conditions' do
updated Alarm_Mode, <conditions>
run { |event| logger.info("Alarm Mode: Updated to #{event.state}") }
end| initial | conditions | change | should | |
|---|---|---|---|---|
| 4 | to: ->t { (8..10).include? t } | 9 | should | |
| 11 | to: ->t { (4..12).include? t } | 14 | should not |
| initial | conditions | change | should | |
|---|---|---|---|---|
| 4 | to: proc { |t|(8..10).include? t } | 9 | should | |
| 11 | to: proc { |t|(4..12).include? t } | 14 | should not |