openhab-scripting 4.32.4 → 4.32.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/lib/openhab/core/entity_lookup.rb +0 -4
  3. data/lib/openhab/core/openhab_setup.rb +1 -2
  4. data/lib/openhab/core/thread_local.rb +12 -2
  5. data/lib/openhab/dsl/actions.rb +2 -0
  6. data/lib/openhab/dsl/between.rb +2 -0
  7. data/lib/openhab/dsl/dsl.rb +2 -2
  8. data/lib/openhab/dsl/group.rb +15 -11
  9. data/lib/openhab/dsl/items/ensure.rb +71 -71
  10. data/lib/openhab/dsl/items/generic_item.rb +1 -1
  11. data/lib/openhab/dsl/items/item_registry.rb +11 -6
  12. data/lib/openhab/dsl/items/items.rb +2 -2
  13. data/lib/openhab/dsl/items/metadata.rb +1 -2
  14. data/lib/openhab/dsl/items/timed_command.rb +11 -9
  15. data/lib/openhab/dsl/monkey_patch/ruby/number.rb +0 -2
  16. data/lib/openhab/dsl/openhab.rb +2 -0
  17. data/lib/openhab/dsl/persistence.rb +2 -0
  18. data/lib/openhab/dsl/rules/automation_rule.rb +4 -5
  19. data/lib/openhab/dsl/rules/rule.rb +104 -98
  20. data/lib/openhab/dsl/rules/rule_config.rb +1 -2
  21. data/lib/openhab/dsl/rules/rule_triggers.rb +1 -3
  22. data/lib/openhab/dsl/rules/terse.rb +1 -1
  23. data/lib/openhab/dsl/rules/triggers/changed.rb +6 -5
  24. data/lib/openhab/dsl/rules/triggers/channel.rb +2 -0
  25. data/lib/openhab/dsl/rules/triggers/command.rb +6 -5
  26. data/lib/openhab/dsl/rules/triggers/conditions/duration.rb +2 -2
  27. data/lib/openhab/dsl/rules/triggers/conditions/proc.rb +2 -2
  28. data/lib/openhab/dsl/rules/triggers/cron/cron.rb +4 -2
  29. data/lib/openhab/dsl/rules/triggers/cron/cron_handler.rb +2 -2
  30. data/lib/openhab/dsl/rules/triggers/generic.rb +3 -2
  31. data/lib/openhab/dsl/rules/triggers/trigger.rb +2 -2
  32. data/lib/openhab/dsl/rules/triggers/updated.rb +9 -8
  33. data/lib/openhab/dsl/rules/triggers/watch/watch.rb +8 -3
  34. data/lib/openhab/dsl/rules/triggers/watch/watch_handler.rb +3 -3
  35. data/lib/openhab/dsl/states.rb +34 -20
  36. data/lib/openhab/dsl/things.rb +2 -0
  37. data/lib/openhab/dsl/time/month_day.rb +2 -2
  38. data/lib/openhab/dsl/timers/manager.rb +4 -3
  39. data/lib/openhab/dsl/timers/reentrant_timer.rb +22 -27
  40. data/lib/openhab/dsl/timers/timer.rb +2 -3
  41. data/lib/openhab/dsl/timers.rb +4 -2
  42. data/lib/openhab/dsl/types/decimal_type.rb +3 -2
  43. data/lib/openhab/dsl/types/point_type.rb +4 -3
  44. data/lib/openhab/dsl/types/quantity_type.rb +0 -4
  45. data/lib/openhab/dsl/types/types.rb +24 -24
  46. data/lib/openhab/dsl/units.rb +2 -0
  47. data/lib/openhab/log/logger.rb +11 -26
  48. data/lib/openhab/version.rb +1 -1
  49. data/lib/openhab.rb +2 -8
  50. metadata +2 -2
@@ -16,118 +16,124 @@ module OpenHAB
16
16
  # Creates and manages OpenHAB Rules
17
17
  #
18
18
  module Rules
19
- include OpenHAB::Core::ThreadLocal
20
- include OpenHAB::Log
19
+ #
20
+ # The main rule DSL method
21
+ #
22
+ module Rule
23
+ include OpenHAB::Log
21
24
 
22
- @script_rules = []
25
+ @script_rules = []
23
26
 
24
- @automation_manager = OpenHAB::Core.automation_manager
25
- @registry = OpenHAB::Core.rule_registry
26
- class << self
27
- attr_reader :script_rules, :automation_manager, :registry
28
- end
27
+ @automation_manager = OpenHAB::Core.automation_manager
28
+ @registry = OpenHAB::Core.rule_registry
29
+ class << self
30
+ attr_reader :script_rules, :automation_manager, :registry
31
+ end
29
32
 
30
- #
31
- # Create a new rule
32
- #
33
- # @param [String] rule_name <description>
34
- # @yield [] Block executed in context of a RuleConfig
35
- #
36
- #
37
- # rubocop: disable Metrics/MethodLength
38
- def rule(rule_name, &block)
39
- thread_local(RULE_NAME: rule_name) do
40
- @rule_name = rule_name
41
- config = RuleConfig.new(rule_name, block.binding)
42
- config.instance_exec(config, &block)
43
- config.guard = Guard::Guard.new(run_context: config.caller, only_if: config.only_if, not_if: config.not_if)
44
- logger.trace { config.inspect }
45
- process_rule_config(config)
46
- nil # Must return something other than the rule object. See https://github.com/boc-tothefuture/openhab-jruby/issues/438
33
+ module_function
34
+
35
+ #
36
+ # Create a new rule
37
+ #
38
+ # @param [String] rule_name <description>
39
+ # @yield [] Block executed in context of a RuleConfig
40
+ #
41
+ #
42
+ # rubocop:disable Metrics/MethodLength
43
+ def rule(rule_name, &block)
44
+ OpenHAB::Core::ThreadLocal.thread_local(RULE_NAME: rule_name) do
45
+ @rule_name = rule_name
46
+ config = RuleConfig.new(rule_name, block.binding)
47
+ config.instance_exec(config, &block)
48
+ config.guard = Guard::Guard.new(run_context: config.caller, only_if: config.only_if,
49
+ not_if: config.not_if)
50
+ logger.trace { config.inspect }
51
+ process_rule_config(config)
52
+ end
53
+ rescue StandardError => e
54
+ logger.log_exception(e, @rule_name)
47
55
  end
48
- rescue StandardError => e
49
- logger.log_exception(e, @rule_name)
50
- end
51
- # rubocop: enable Metrics/MethodLength
56
+ # rubocop:enable Metrics/MethodLength
52
57
 
53
- #
54
- # Cleanup rules in this script file
55
- #
56
- def self.cleanup_rules
57
- @script_rules.each(&:cleanup)
58
- end
59
- Core::ScriptHandling.script_unloaded { cleanup_rules }
58
+ #
59
+ # Cleanup rules in this script file
60
+ #
61
+ def self.cleanup_rules
62
+ @script_rules.each(&:cleanup)
63
+ end
64
+ Core::ScriptHandling.script_unloaded { cleanup_rules }
60
65
 
61
- private
66
+ private
62
67
 
63
- #
64
- # Process a rule based on the supplied configuration
65
- #
66
- # @param [RuleConfig] config for rule
67
- #
68
- #
69
- def process_rule_config(config)
70
- return unless create_rule?(config)
68
+ #
69
+ # Process a rule based on the supplied configuration
70
+ #
71
+ # @param [RuleConfig] config for rule
72
+ #
73
+ #
74
+ def process_rule_config(config)
75
+ return unless create_rule?(config)
71
76
 
72
- rule = AutomationRule.new(config: config)
73
- Rules.script_rules << rule
74
- add_rule(rule)
77
+ rule = AutomationRule.new(config: config)
78
+ Rule.script_rules << rule
79
+ added_rule = add_rule(rule)
75
80
 
76
- rule.execute(nil, { 'event' => Struct.new(:attachment).new(config.start_attachment) }) if config.on_start?
77
- rule
78
- end
81
+ rule.execute(nil, { 'event' => Struct.new(:attachment).new(config.start_attachment) }) if config.on_start?
82
+ added_rule
83
+ end
79
84
 
80
- #
81
- # Should a rule be created based on rule configuration
82
- #
83
- # @param [RuleConfig] config to check
84
- #
85
- # @return [Boolean] true if it should be created, false otherwise
86
- #
87
- def create_rule?(config)
88
- if !triggers?(config)
89
- logger.warn "Rule '#{config.name}' has no triggers, not creating rule"
90
- elsif !execution_blocks?(config)
91
- logger.warn "Rule '#{config.name}' has no execution blocks, not creating rule"
92
- elsif !config.enabled
93
- logger.trace "Rule '#{config.name}' marked as disabled, not creating rule."
94
- else
95
- return true
85
+ #
86
+ # Should a rule be created based on rule configuration
87
+ #
88
+ # @param [RuleConfig] config to check
89
+ #
90
+ # @return [Boolean] true if it should be created, false otherwise
91
+ #
92
+ def create_rule?(config)
93
+ if !triggers?(config)
94
+ logger.warn "Rule '#{config.name}' has no triggers, not creating rule"
95
+ elsif !execution_blocks?(config)
96
+ logger.warn "Rule '#{config.name}' has no execution blocks, not creating rule"
97
+ elsif !config.enabled
98
+ logger.trace "Rule '#{config.name}' marked as disabled, not creating rule."
99
+ else
100
+ return true
101
+ end
102
+ false
96
103
  end
97
- false
98
- end
99
104
 
100
- #
101
- # Check if the rule has any triggers
102
- #
103
- # @param [RuleConfig] config to check for triggers
104
- #
105
- # @return [Boolean] True if rule has triggers, false otherwise
106
- #
107
- def triggers?(config)
108
- config.on_start? || config.triggers.length.positive?
109
- end
105
+ #
106
+ # Check if the rule has any triggers
107
+ #
108
+ # @param [RuleConfig] config to check for triggers
109
+ #
110
+ # @return [Boolean] True if rule has triggers, false otherwise
111
+ #
112
+ def triggers?(config)
113
+ config.on_start? || config.triggers.length.positive?
114
+ end
110
115
 
111
- #
112
- # Check if the rule has any execution blocks
113
- #
114
- # @param [RuleConfig] config to check for triggers
115
- #
116
- # @return [Boolean] True if rule has execution blocks, false otherwise
117
- #
118
- def execution_blocks?(config)
119
- (config.run || []).length.positive?
120
- end
116
+ #
117
+ # Check if the rule has any execution blocks
118
+ #
119
+ # @param [RuleConfig] config to check for triggers
120
+ #
121
+ # @return [Boolean] True if rule has execution blocks, false otherwise
122
+ #
123
+ def execution_blocks?(config)
124
+ (config.run || []).length.positive?
125
+ end
121
126
 
122
- #
123
- # Add a rule to the automation managed
124
- #
125
- # @param [Java::OrgOpenhabCoreAutomationModuleScriptRulesupportSharedSimple::SimpleRule] rule to add
126
- #
127
- #
128
- def add_rule(rule)
129
- logger.trace("Adding rule: #{rule.inspect}")
130
- Rules.automation_manager.addRule(rule)
127
+ #
128
+ # Add a rule to the automation managed
129
+ #
130
+ # @param [Java::OrgOpenhabCoreAutomationModuleScriptRulesupportSharedSimple::SimpleRule] rule to add
131
+ #
132
+ #
133
+ def add_rule(rule)
134
+ logger.trace("Adding rule: #{rule.inspect}")
135
+ Rule.automation_manager.addRule(rule)
136
+ end
131
137
  end
132
138
  end
133
139
  end
@@ -26,7 +26,6 @@ module OpenHAB
26
26
  prepend OpenHAB::DSL::Rules::Triggers
27
27
  include OpenHAB::DSL::Rules::Guard
28
28
  include OpenHAB::DSL::Rules::Property
29
- extend OpenHAB::DSL
30
29
  extend Forwardable
31
30
 
32
31
  # Provide backwards compatibility for these fields
@@ -86,7 +85,7 @@ module OpenHAB
86
85
  # Start this rule on system startup
87
86
  #
88
87
  # @param [Boolean] run_on_start Run this rule on start, defaults to True
89
- #
88
+ # @param [Object] attach object to be attached to the trigger
90
89
  #
91
90
  # rubocop: disable Style/OptionalBooleanParameter
92
91
  # Disabled cop due to use in a DSL
@@ -33,9 +33,6 @@ module OpenHAB
33
33
  #
34
34
  # Create a new RuleTrigger
35
35
  #
36
- # @param [Object] caller_binding The object initializing this configuration.
37
- # Used to execute within the object's context
38
- #
39
36
  def initialize
40
37
  @triggers = []
41
38
  @trigger_conditions = Hash.new(OpenHAB::DSL::Rules::Triggers::Conditions::Proc::ANY)
@@ -47,6 +44,7 @@ module OpenHAB
47
44
  #
48
45
  # @param [String] type of trigger to create
49
46
  # @param [Map] config map describing trigger configuration
47
+ # @param [Object] attach object to be attached to the trigger
50
48
  #
51
49
  # @return [Trigger] OpenHAB trigger
52
50
  #
@@ -4,7 +4,7 @@ module OpenHAB
4
4
  module DSL
5
5
  module Rules
6
6
  # Module containing terse rule stubs
7
- module Terse
7
+ module TerseRule
8
8
  %i[changed channel cron every updated received_command].each do |trigger|
9
9
  class_eval(<<~RUBY, __FILE__, __LINE__ + 1)
10
10
  def #{trigger}(*args, name: nil, **kwargs, &block) # def changed(*args, name: nil, **kwargs, &block)
@@ -22,6 +22,7 @@ module OpenHAB
22
22
  # @param [to] to state for object to change for
23
23
  # @param [from] from <description>
24
24
  # @param [OpenHAB::Core::Duration] for Duration to delay trigger until to state is met
25
+ # @param [Object] attach object to be attached to the trigger
25
26
  #
26
27
  # @return [Trigger] OpenHAB trigger
27
28
  #
@@ -69,7 +70,7 @@ module OpenHAB
69
70
  # @param [Item State] from state to restrict trigger to
70
71
  # @param [Item State] to state to restrict trigger to
71
72
  # @param [OpenHAB::Core::Duration, nil] duration ruration to delay trigger until to state is met
72
- # @param attach attachment
73
+ # @param [Object] attach object to be attached to the trigger
73
74
  #
74
75
  # @return [Trigger] OpenHAB triggers
75
76
  #
@@ -103,7 +104,7 @@ module OpenHAB
103
104
  # @param [OpenHAB::Core::Duration] duration to delay trigger for until condition is met
104
105
  # @param [Item State] to OpenHAB Item State item or group needs to change to
105
106
  # @param [Item State] from OpenHAB Item State item or group needs to be coming from
106
- # @param [Object] attach to trigger
107
+ # @param [Object] attach object to be attached to the trigger
107
108
  #
108
109
  # @return [Trigger] OpenHAB trigger
109
110
  #
@@ -120,7 +121,7 @@ module OpenHAB
120
121
  # @param [Object] item to create changed trigger on
121
122
  # @param [Object] from state to restrict trigger to
122
123
  # @param [Object] to state restrict trigger to
123
- # @param [Object] attach to trigger
124
+ # @param [Object] attach object to be attached to the trigger
124
125
  # @return [Trigger] OpenHAB trigger
125
126
  #
126
127
  def range_trigger(item:, from:, to:, attach:)
@@ -133,7 +134,7 @@ module OpenHAB
133
134
  # @param [Object] item to create changed trigger on
134
135
  # @param [Object] from state to restrict trigger to
135
136
  # @param [Object] to state restrict trigger to
136
- # @param [Object] attach to trigger
137
+ # @param [Object] attach object to be attached to the trigger
137
138
  # @return [Trigger] OpenHAB trigger
138
139
  #
139
140
  def proc_trigger(item:, from:, to:, attach:)
@@ -152,7 +153,7 @@ module OpenHAB
152
153
  # @param [Object] item to create changed trigger on
153
154
  # @param [Object] from state to restrict trigger to
154
155
  # @param [Object] to state restrict trigger to
155
- #
156
+ # @param [Object] attach object to be attached to the trigger
156
157
  #
157
158
  def changed_trigger(item:, from:, to:, attach: nil, conditions: nil)
158
159
  type, config = case item
@@ -22,6 +22,7 @@ module OpenHAB
22
22
  # @param [String, Thing, ThingUID, Array<String, Thing, ThingUID>] thing
23
23
  # thing(s) to create trigger for if not specified with the channel
24
24
  # @param [String, Array<String>] triggered specific triggering condition(s) to match for trigger
25
+ # @param [Object] attach object to be attached to the trigger
25
26
  #
26
27
  def channel(*channels, thing: nil, triggered: nil, attach: nil)
27
28
  channel_trigger = Channel.new(rule_triggers: @rule_triggers)
@@ -68,6 +69,7 @@ module OpenHAB
68
69
  #
69
70
  # @param [String] channel to look for triggers
70
71
  # @param [String] trigger specific channel trigger to match
72
+ # @param [Object] attach object to be attached to the trigger
71
73
  #
72
74
  #
73
75
  def trigger(channel:, trigger:, attach:)
@@ -20,6 +20,7 @@ module OpenHAB
20
20
  # @param [Array] items Array of items to create trigger for
21
21
  # @param [Array] command commands to match for trigger
22
22
  # @param [Array] commands commands to match for trigger
23
+ # @param [Object] attach object to be attached to the trigger
23
24
  #
24
25
  #
25
26
  def received_command(*items, command: nil, commands: nil, attach: nil)
@@ -63,7 +64,7 @@ module OpenHAB
63
64
  #
64
65
  # @param [Object] item item to create trigger for
65
66
  # @param [Object] command to check against
66
- # @param [Object] attach attachment
67
+ # @param [Object] attach object to be attached to the trigger
67
68
  #
68
69
  # @return [Trigger] OpenHAB triggers
69
70
  #
@@ -79,7 +80,7 @@ module OpenHAB
79
80
  # Creates a trigger with a range condition on the 'command' field
80
81
  # @param [Object] item to create changed trigger on
81
82
  # @param [Object] command to restrict trigger to
82
- # @param [Object] attach to trigger
83
+ # @param [Object] attach object to be attached to the trigger
83
84
  # @return [Trigger] OpenHAB trigger
84
85
  #
85
86
  def range_trigger(item:, command:, attach:)
@@ -91,7 +92,7 @@ module OpenHAB
91
92
  # Creates a trigger with a proc condition on the 'command' field
92
93
  # @param [Object] item to create changed trigger on
93
94
  # @param [Object] command to restrict trigger to
94
- # @param [Object] attach to trigger
95
+ # @param [Object] attach object to be attached to the trigger
95
96
  # @return [Trigger] OpenHAB trigger
96
97
  #
97
98
  def proc_trigger(item:, command:, attach:)
@@ -102,9 +103,9 @@ module OpenHAB
102
103
  #
103
104
  # Create a received trigger based on item type
104
105
  #
105
- # @param [Array] commands to create trigger for
106
106
  # @param [Object] item to create trigger for
107
- #
107
+ # @param [String] command to create trigger for
108
+ # @param [Object] attach object to be attached to the trigger
108
109
  #
109
110
  def command_trigger(item:, command:, attach: nil, conditions: nil)
110
111
  type, config = if item.is_a? OpenHAB::DSL::Items::GroupItem::GroupMembers
@@ -28,7 +28,7 @@ module OpenHAB
28
28
  # Create a new duration condition
29
29
  # @param [Object] to optional condition on to state
30
30
  # @param [Object] from optional condition on from state
31
- # @param [Duration] Duration to state must stay at specific value before triggering
31
+ # @param [Duration] duration to state must stay at specific value before triggering
32
32
  #
33
33
  def initialize(to:, from:, duration:)
34
34
  to = Conditions::Proc.from_value(to)
@@ -118,7 +118,7 @@ module OpenHAB
118
118
  # Creates a timer for trigger delays
119
119
  #
120
120
  # @param [Hash] inputs rule trigger inputs
121
- # @param [Hash] mod rule trigger mods
121
+ # @param [Hash] _mod rule trigger mods
122
122
  #
123
123
  #
124
124
  def create_trigger_delay_timer(inputs, _mod)
@@ -45,8 +45,8 @@ module OpenHAB
45
45
  end
46
46
 
47
47
  #
48
- # Create a range proc for the supplied range object
49
- # @param [Range] range to build proc for
48
+ # Create an equality proc for the supplied range object
49
+ # @param [State] value to build proc for
50
50
  #
51
51
  def self.equality_proc(value)
52
52
  logger.trace("Creating equality proc for #{value}")
@@ -15,6 +15,7 @@ module OpenHAB
15
15
  #
16
16
  # @param [Object] value Symbol or Duration to execute this rule
17
17
  # @param [Object] at TimeOfDay or String representing TimeOfDay in which to execute rule
18
+ # @param [Object] attach object to be attached to the trigger
18
19
  #
19
20
  #
20
21
  def every(value, at: nil, attach: nil)
@@ -30,6 +31,7 @@ module OpenHAB
30
31
  # Create a OpenHAB Cron trigger
31
32
  #
32
33
  # @param [String] expression OpenHAB style cron expression
34
+ # @param [Object] attach object to be attached to the trigger
33
35
  #
34
36
  def cron(expression, attach: nil)
35
37
  cron = Cron.new(rule_triggers: @rule_triggers)
@@ -171,8 +173,8 @@ module OpenHAB
171
173
  #
172
174
  # Create a cron trigger based on item type
173
175
  #
174
- # @param [Array] commands to create trigger for
175
- # @param [Object] item to create trigger for
176
+ # @param [Config] config Rule configuration
177
+ # @param [Object] attach object to be attached to the trigger
176
178
  #
177
179
  #
178
180
  def trigger(config:, attach:)
@@ -57,7 +57,7 @@ module OpenHAB
57
57
  field_accessor :callback
58
58
 
59
59
  # Creates a new CronTriggerHandler
60
- # @param [Trigger] OpenHAB trigger associated with handler
60
+ # @param [Trigger] trigger OpenHAB trigger associated with handler
61
61
  #
62
62
  def initialize(trigger)
63
63
  @trigger = trigger
@@ -113,7 +113,7 @@ module OpenHAB
113
113
  include org.openhab.core.automation.module.script.rulesupport.shared.factories.ScriptedTriggerHandlerFactory
114
114
 
115
115
  # Invoked by the OpenHAB core to get a trigger handler for the supllied trigger
116
- # @param [Trigger] OpenHAB trigger
116
+ # @param [Trigger] trigger OpenHAB trigger
117
117
  #
118
118
  # @return [WatchTriggerHandler] trigger handler for supplied trigger
119
119
  def get(trigger)
@@ -15,8 +15,9 @@ module OpenHAB
15
15
  #
16
16
  # Create a generic trigger given the trigger type uid and a configuration hash
17
17
  #
18
- # @param [Type] Trigger type UID
19
- # @param [Configuration] A hash containing the trigger configuration entries
18
+ # @param [Type] type Trigger type UID
19
+ # @param [Object] attach object to be attached to the trigger
20
+ # @param [Configuration] configuration A hash containing the trigger configuration entries
20
21
  #
21
22
  # @return [Trigger] Trigger object
22
23
  #
@@ -38,7 +38,7 @@ module OpenHAB
38
38
 
39
39
  #
40
40
  # Creates a new Trigger
41
- # @param [RuleTrigger] rule trigger information
41
+ # @param [RuleTrigger] rule_triggers rule trigger information
42
42
  def initialize(rule_triggers:)
43
43
  @rule_triggers = rule_triggers
44
44
  end
@@ -47,7 +47,7 @@ module OpenHAB
47
47
  # Create a trigger for a thing
48
48
  #
49
49
  # @param [Thing] thing to create trigger for
50
- # @param [Trigger] trigger to map with thing
50
+ # @param [Trigger] type trigger to map with thing
51
51
  # @param [State] to for thing
52
52
  # @param [State] from state of thing
53
53
  #
@@ -17,6 +17,7 @@ module OpenHAB
17
17
  #
18
18
  # @param [Array] items array to trigger on updated
19
19
  # @param [State] to to match for tigger
20
+ # @param [Object] attach object to be attached to the trigger
20
21
  #
21
22
  # @return [Trigger] Trigger for updated entity
22
23
  #
@@ -40,9 +41,8 @@ module OpenHAB
40
41
  # Create the trigger
41
42
  #
42
43
  # @param [Object] item item to create trigger for
43
- # @param [Item State] from state to restrict trigger to
44
44
  # @param [Item State] to state to restrict trigger to
45
- # @param attach attachment
45
+ # @param [Object] attach object to be attached to the trigger
46
46
  #
47
47
  # @return [Trigger] OpenHAB triggers
48
48
  #
@@ -69,7 +69,7 @@ module OpenHAB
69
69
  # Creates a trigger with a range condition on the 'to' field
70
70
  # @param [Object] item to create changed trigger on
71
71
  # @param [Object] to state restrict trigger to
72
- # @param [Object] attach to trigger
72
+ # @param [Object] attach object to be attached to the trigger
73
73
  # @return [Trigger] OpenHAB trigger
74
74
  #
75
75
  def range_trigger(item:, to:, attach:)
@@ -81,7 +81,7 @@ module OpenHAB
81
81
  # Creates a trigger with a proc condition on the 'to' field
82
82
  # @param [Object] item to create changed trigger on
83
83
  # @param [Object] to state restrict trigger to
84
- # @param [Object] attach to trigger
84
+ # @param [Object] attach object to be attached to the trigger
85
85
  # @return [Trigger] OpenHAB trigger
86
86
  #
87
87
  def proc_trigger(item:, to:, attach:)
@@ -93,7 +93,8 @@ module OpenHAB
93
93
  # Create a trigger for updates
94
94
  #
95
95
  # @param [Object] item Type of item [Group,Thing,Item] to create update trigger for
96
- # @param [State] to_state state restriction on trigger
96
+ # @param [State] to state restriction on trigger
97
+ # @param [Object] attach object to be attached to the trigger
97
98
  #
98
99
  # @return [Trigger] OpenHAB triggers
99
100
  #
@@ -110,7 +111,7 @@ module OpenHAB
110
111
  # Create an update trigger for an item
111
112
  #
112
113
  # @param [Item] item to create trigger for
113
- # @param [State] to_state optional state restriction for target
114
+ # @param [State] to optional state restriction for target
114
115
  #
115
116
  # @return [Array<Hash,String>] first element is a String specifying trigger type
116
117
  # second element is a Hash configuring trigger
@@ -125,7 +126,7 @@ module OpenHAB
125
126
  # Create an update trigger for a group
126
127
  #
127
128
  # @param [Item] item to create trigger for
128
- # @param [State] to_state optional state restriction for target
129
+ # @param [State] to optional state restriction for target
129
130
  #
130
131
  # @return [Array<Hash,String>] first element is a String specifying trigger type
131
132
  # second element is a Hash configuring trigger
@@ -140,7 +141,7 @@ module OpenHAB
140
141
  # Create an update trigger for a thing
141
142
  #
142
143
  # @param [Thing] thing to create trigger for
143
- # @param [State] to_state optional state restriction for target
144
+ # @param [State] to optional state restriction for target
144
145
  #
145
146
  # @return [Array<Hash,String>] first element is a String specifying trigger type
146
147
  # second element is a Hash configuring trigger
@@ -18,6 +18,9 @@ module OpenHAB
18
18
  # Create a trigger to watch a path
19
19
  #
20
20
  # @param [String] path to watch
21
+ # @param [String] glob
22
+ # @param [Array, Symbol] for types of changes to watch: +:created+, +:deleted+, +:modified+
23
+ # @param [Object] attach object to be attached to the trigger
21
24
  #
22
25
  # @return [Trigger] Trigger object
23
26
  #
@@ -40,10 +43,12 @@ module OpenHAB
40
43
 
41
44
  #
42
45
  # Automatically creates globs for supplied paths if necessary
46
+ #
43
47
  # @param [Pathname] path to check
44
- # @param [String] specified glob
48
+ # @param [String] glob
45
49
  #
46
50
  # @return [Pathname,String] Pathname to watch and glob to match
51
+ #
47
52
  def self.glob_for_path(path, glob)
48
53
  # Checks if the supplied pathname last element contains a glob char
49
54
  if GLOB_CHARS.any? { |char| path.basename.to_s.include? char }
@@ -60,8 +65,8 @@ module OpenHAB
60
65
  #
61
66
  # Create a watch trigger based on item type
62
67
  #
63
- # @param [Array] commands to create trigger for
64
- # @param [Object] item to create trigger for
68
+ # @param [Config] config Rule configuration
69
+ # @param [Object] attach object to be attached to the trigger
65
70
  #
66
71
  #
67
72
  def trigger(config:, attach:)
@@ -79,7 +79,7 @@ module OpenHAB
79
79
  # Invoked by java super class when an watch event occurs
80
80
  # @param [String] _event ignored
81
81
  # @param [StandardWatchEventKind] kind NIO watch event kind
82
- # @param [java.nio.Path] Path that had an event
82
+ # @param [java.nio.Path] path that had an event
83
83
  def processWatchEvent(_event, kind, path)
84
84
  @block.call(WatchEvent.new(EVENT_TO_SYMBOL[kind], Pathname.new(path.to_s)))
85
85
  end
@@ -92,7 +92,7 @@ module OpenHAB
92
92
  include org.openhab.core.automation.handler.TriggerHandler
93
93
 
94
94
  # Creates a new WatchTriggerHandler
95
- # @param [Trigger] OpenHAB trigger associated with handler
95
+ # @param [Trigger] trigger OpenHAB trigger associated with handler
96
96
  #
97
97
  def initialize(trigger)
98
98
  @trigger = trigger
@@ -139,7 +139,7 @@ module OpenHAB
139
139
  include org.openhab.core.automation.module.script.rulesupport.shared.factories.ScriptedTriggerHandlerFactory
140
140
 
141
141
  # Invoked by the OpenHAB core to get a trigger handler for the supllied trigger
142
- # @param [Trigger] OpenHAB trigger
142
+ # @param [Trigger] trigger OpenHAB trigger
143
143
  #
144
144
  # @return [WatchTriggerHandler] trigger handler for supplied trigger
145
145
  def get(trigger)