openhab-scripting 5.5.0 → 5.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/openhab/core/actions/audio.rb +5 -2
- data/lib/openhab/core/configuration.rb +70 -0
- data/lib/openhab/core/emulate_hash.rb +241 -0
- data/lib/openhab/core/events/abstract_event.rb +11 -0
- data/lib/openhab/core/events/timer_event.rb +48 -0
- data/lib/openhab/core/items/group_function.rb +37 -0
- data/lib/openhab/core/items/group_item.rb +10 -4
- data/lib/openhab/core/items/item.rb +31 -0
- data/lib/openhab/core/items/metadata/hash.rb +9 -179
- data/lib/openhab/core/items/metadata/namespace_hash.rb +38 -141
- data/lib/openhab/core/items/semantics/semantic_tag.rb +5 -0
- data/lib/openhab/core/items/semantics/tag_class_methods.rb +9 -0
- data/lib/openhab/core/items/semantics.rb +7 -3
- data/lib/openhab/core/rules/rule.rb +17 -4
- data/lib/openhab/core/things/links/provider.rb +1 -1
- data/lib/openhab/core/things/proxy.rb +2 -1
- data/lib/openhab/core/things/thing.rb +23 -0
- data/lib/openhab/core/types/date_time_type.rb +2 -1
- data/lib/openhab/core/types/open_closed_type.rb +2 -1
- data/lib/openhab/core/types/string_type.rb +1 -1
- data/lib/openhab/core/types/up_down_type.rb +2 -1
- data/lib/openhab/core/value_cache.rb +6 -5
- data/lib/openhab/core_ext/java/duration.rb +2 -1
- data/lib/openhab/core_ext/java/local_time.rb +8 -6
- data/lib/openhab/core_ext/java/month_day.rb +2 -1
- data/lib/openhab/core_ext/java/period.rb +1 -1
- data/lib/openhab/core_ext/ruby/numeric.rb +1 -0
- data/lib/openhab/dsl/items/builder.rb +13 -6
- data/lib/openhab/dsl/rules/automation_rule.rb +29 -5
- data/lib/openhab/dsl/rules/builder.rb +47 -22
- data/lib/openhab/dsl/rules/rule_triggers.rb +1 -1
- data/lib/openhab/dsl/rules/triggers/conditions/generic.rb +1 -1
- data/lib/openhab/dsl/rules/triggers/cron/cron.rb +43 -16
- data/lib/openhab/dsl/rules/triggers/cron/cron_handler.rb +101 -96
- data/lib/openhab/dsl/things/builder.rb +8 -6
- data/lib/openhab/dsl/thread_local.rb +1 -0
- data/lib/openhab/dsl/timer_manager.rb +4 -4
- data/lib/openhab/dsl/version.rb +1 -1
- data/lib/openhab/dsl.rb +23 -4
- data/lib/openhab/osgi.rb +1 -1
- data/lib/openhab/rspec/karaf.rb +7 -4
- data/lib/openhab/rspec/openhab/core/actions.rb +0 -3
- metadata +13 -23
@@ -1,115 +1,120 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require_relative "cron"
|
6
|
-
|
7
|
-
module OpenHAB
|
8
|
-
module DSL
|
9
|
-
module Rules
|
10
|
-
module Triggers
|
11
|
-
# @!visibility private
|
12
|
-
#
|
13
|
-
# Cron trigger handler that provides trigger ID
|
14
|
-
#
|
15
|
-
module CronHandler
|
16
|
-
# Cron Trigger Handler that provides trigger IDs
|
17
|
-
# Unfortunatly because the CronTriggerHandler in openHAB core is marked internal
|
18
|
-
# the entire thing must be recreated here
|
19
|
-
class CronTriggerHandler < org.openhab.core.automation.handler.BaseTriggerModuleHandler
|
20
|
-
include org.openhab.core.scheduler.SchedulerRunnable
|
21
|
-
include org.openhab.core.automation.handler.TimeBasedTriggerHandler
|
22
|
-
|
23
|
-
# Provides access to protected fields
|
24
|
-
field_accessor :callback
|
25
|
-
|
26
|
-
# Creates a new CronTriggerHandler
|
27
|
-
# @param [org.openhab.core.automation.Trigger] trigger openHAB trigger associated with handler
|
28
|
-
#
|
29
|
-
def initialize(trigger)
|
30
|
-
@trigger = trigger
|
31
|
-
@scheduler = OSGi.service("org.openhab.core.scheduler.CronScheduler")
|
32
|
-
@schedule = nil
|
33
|
-
@expression = trigger.configuration.get("cronExpression")
|
34
|
-
super(trigger)
|
35
|
-
end
|
3
|
+
# @deprecated OH3.4 this module is not needed in OH4+
|
4
|
+
if Gem::Version.new(OpenHAB::Core::VERSION) < Gem::Version.new("4.0.0")
|
36
5
|
|
37
|
-
|
38
|
-
# Set the callback to execute when cron trigger fires
|
39
|
-
# @param [Object] callback to run
|
40
|
-
#
|
41
|
-
def setCallback(callback) # rubocop:disable Naming/MethodName
|
42
|
-
synchronized do
|
43
|
-
super(callback)
|
44
|
-
@schedule = @scheduler.schedule(self, @expression)
|
45
|
-
logger.trace("Scheduled cron job '#{@expression}' for trigger '#{@trigger.id}'.")
|
46
|
-
end
|
47
|
-
end
|
6
|
+
require "singleton"
|
48
7
|
|
49
|
-
|
50
|
-
# Get the temporal adjuster
|
51
|
-
# @return [CronAdjuster]
|
52
|
-
#
|
53
|
-
def getTemporalAdjuster # rubocop:disable Naming/MethodName
|
54
|
-
org.openhab.core.scheduler.CronAdjuster.new(@expression)
|
55
|
-
end
|
8
|
+
require_relative "cron"
|
56
9
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
10
|
+
module OpenHAB
|
11
|
+
module DSL
|
12
|
+
module Rules
|
13
|
+
module Triggers
|
14
|
+
# @!visibility private
|
15
|
+
#
|
16
|
+
# Cron trigger handler that provides trigger ID
|
17
|
+
#
|
18
|
+
module CronHandler
|
19
|
+
# Cron Trigger Handler that provides trigger IDs
|
20
|
+
# Unfortunatly because the CronTriggerHandler in openHAB core is marked internal
|
21
|
+
# the entire thing must be recreated here
|
22
|
+
class CronTriggerHandler < org.openhab.core.automation.handler.BaseTriggerModuleHandler
|
23
|
+
include org.openhab.core.scheduler.SchedulerRunnable
|
24
|
+
include org.openhab.core.automation.handler.TimeBasedTriggerHandler
|
63
25
|
|
64
|
-
|
65
|
-
|
66
|
-
# cancel the cron scheduled task
|
67
|
-
#
|
68
|
-
def dispose
|
69
|
-
synchronized do
|
70
|
-
super
|
71
|
-
return unless @schedule
|
26
|
+
# Provides access to protected fields
|
27
|
+
field_accessor :callback
|
72
28
|
|
73
|
-
|
29
|
+
# Creates a new CronTriggerHandler
|
30
|
+
# @param [org.openhab.core.automation.Trigger] trigger openHAB trigger associated with handler
|
31
|
+
#
|
32
|
+
def initialize(trigger)
|
33
|
+
@trigger = trigger
|
34
|
+
@scheduler = OSGi.service("org.openhab.core.scheduler.CronScheduler")
|
74
35
|
@schedule = nil
|
36
|
+
@expression = trigger.configuration.get("cronExpression")
|
37
|
+
super(trigger)
|
38
|
+
end
|
39
|
+
|
40
|
+
#
|
41
|
+
# Set the callback to execute when cron trigger fires
|
42
|
+
# @param [Object] callback to run
|
43
|
+
#
|
44
|
+
def setCallback(callback) # rubocop:disable Naming/MethodName
|
45
|
+
synchronized do
|
46
|
+
super(callback)
|
47
|
+
@schedule = @scheduler.schedule(self, @expression)
|
48
|
+
logger.trace("Scheduled cron job '#{@expression}' for trigger '#{@trigger.id}'.")
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
#
|
53
|
+
# Get the temporal adjuster
|
54
|
+
# @return [CronAdjuster]
|
55
|
+
#
|
56
|
+
def getTemporalAdjuster # rubocop:disable Naming/MethodName
|
57
|
+
org.openhab.core.scheduler.CronAdjuster.new(@expression)
|
75
58
|
end
|
76
|
-
logger.trace("cancelled job for trigger '#{@trigger.id}'.")
|
77
|
-
end
|
78
|
-
end
|
79
59
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
60
|
+
#
|
61
|
+
# Execute the callback
|
62
|
+
#
|
63
|
+
def run
|
64
|
+
callback&.triggered(@trigger, { "module" => @trigger.id })
|
65
|
+
end
|
66
|
+
|
67
|
+
#
|
68
|
+
# Dispose of the handler
|
69
|
+
# cancel the cron scheduled task
|
70
|
+
#
|
71
|
+
def dispose
|
72
|
+
synchronized do
|
73
|
+
super
|
74
|
+
return unless @schedule
|
75
|
+
|
76
|
+
@schedule.cancel(true)
|
77
|
+
@schedule = nil
|
78
|
+
end
|
79
|
+
logger.trace("cancelled job for trigger '#{@trigger.id}'.")
|
80
|
+
end
|
101
81
|
end
|
102
82
|
|
103
|
-
#
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
83
|
+
# Implements the ScriptedTriggerHandlerFactory interface to create a new Cron Trigger Handler
|
84
|
+
class CronTriggerHandlerFactory
|
85
|
+
include Singleton
|
86
|
+
include org.openhab.core.automation.module.script.rulesupport.shared.factories.ScriptedTriggerHandlerFactory # rubocop:disable Layout/LineLength
|
87
|
+
|
88
|
+
def initialize
|
89
|
+
Core.automation_manager.add_trigger_handler(
|
90
|
+
Cron::CRON_TRIGGER_MODULE_ID,
|
91
|
+
self
|
92
|
+
)
|
93
|
+
|
94
|
+
Core.automation_manager.add_trigger_type(org.openhab.core.automation.type.TriggerType.new(
|
95
|
+
Cron::CRON_TRIGGER_MODULE_ID,
|
96
|
+
nil,
|
97
|
+
"A specific instant occurs",
|
98
|
+
"Triggers when the specified instant occurs",
|
99
|
+
nil,
|
100
|
+
org.openhab.core.automation.Visibility::VISIBLE,
|
101
|
+
nil
|
102
|
+
))
|
103
|
+
logger.trace("Added script cron trigger handler")
|
104
|
+
end
|
105
|
+
|
106
|
+
# Invoked by openHAB core to get a trigger handler for the supplied trigger
|
107
|
+
# @param [org.openhab.core.automation.Trigger] trigger
|
108
|
+
#
|
109
|
+
# @return [WatchTriggerHandler] trigger handler for supplied trigger
|
110
|
+
def get(trigger)
|
111
|
+
CronTriggerHandler.new(trigger)
|
112
|
+
end
|
109
113
|
end
|
110
114
|
end
|
111
115
|
end
|
112
116
|
end
|
113
117
|
end
|
114
118
|
end
|
119
|
+
|
115
120
|
end
|
@@ -24,10 +24,10 @@ module OpenHAB
|
|
24
24
|
# things.build do
|
25
25
|
# thing("mqtt:topic:my-switch", "My Switch", bridge: "mqtt:bridge:mosquitto", config: thing_config) do
|
26
26
|
# channel("switch1", "switch", config: {
|
27
|
-
# stateTopic: "stat/my-switch/switch1/state", commandTopic
|
27
|
+
# stateTopic: "stat/my-switch/switch1/state", commandTopic: "cmnd/my-switch/switch1/command"
|
28
28
|
# })
|
29
29
|
# channel("button1", "string", config: {
|
30
|
-
# stateTopic: "stat/my-switch/button1/state", commandTopic
|
30
|
+
# stateTopic: "stat/my-switch/button1/state", commandTopic: "cmnd/my-switch/button1/command"
|
31
31
|
# })
|
32
32
|
# end
|
33
33
|
# end
|
@@ -184,10 +184,11 @@ module OpenHAB
|
|
184
184
|
|
185
185
|
# @!visibility private
|
186
186
|
def build
|
187
|
-
configuration =
|
187
|
+
configuration = Core::Configuration.new(config)
|
188
188
|
if thing_type
|
189
189
|
self.class.thing_factory_helper.apply_default_configuration(
|
190
|
-
configuration,
|
190
|
+
configuration,
|
191
|
+
thing_type,
|
191
192
|
self.class.config_description_registry
|
192
193
|
)
|
193
194
|
end
|
@@ -200,7 +201,8 @@ module OpenHAB
|
|
200
201
|
|
201
202
|
if thing_type
|
202
203
|
# can't use with_channels, or it will wipe out custom channels from above
|
203
|
-
self.class.thing_factory_helper.create_channels(thing_type,
|
204
|
+
self.class.thing_factory_helper.create_channels(thing_type,
|
205
|
+
uid,
|
204
206
|
self.class.config_description_registry).each do |channel|
|
205
207
|
builder.with_channel(channel)
|
206
208
|
end
|
@@ -280,7 +282,7 @@ module OpenHAB
|
|
280
282
|
org.openhab.core.thing.binding.builder.ChannelBuilder.create(uid)
|
281
283
|
.with_kind(kind)
|
282
284
|
.with_type(type)
|
283
|
-
.with_configuration(
|
285
|
+
.with_configuration(Core::Configuration.new(config))
|
284
286
|
.build
|
285
287
|
end
|
286
288
|
|
@@ -89,7 +89,7 @@ module OpenHAB
|
|
89
89
|
# @param [Object] id
|
90
90
|
# @param [java.time.temporal.TemporalAmount, #to_zoned_date_time, Proc, nil] duration
|
91
91
|
# When to reschedule the timer for. `nil` to retain its current interval.
|
92
|
-
# @return [Timer, nil] the timer if it was rescheduled, otherwise `nil`
|
92
|
+
# @return [Core::Timer, nil] the timer if it was rescheduled, otherwise `nil`
|
93
93
|
#
|
94
94
|
def reschedule(id, duration = nil)
|
95
95
|
@timers_by_id.compute_if_present(id) do |_key, timer|
|
@@ -105,10 +105,10 @@ module OpenHAB
|
|
105
105
|
# state. The timer is created in a thread-safe manner.
|
106
106
|
#
|
107
107
|
# @param [Object] id
|
108
|
-
# @yieldparam [Timer, nil] timer The existing timer with this id, if one exists.
|
109
|
-
# @yieldreturn [Timer, nil] A new timer to associate with this id, the existing
|
108
|
+
# @yieldparam [Core::Timer, nil] timer The existing timer with this id, if one exists.
|
109
|
+
# @yieldreturn [Core::Timer, nil] A new timer to associate with this id, the existing
|
110
110
|
# timer, or nil. If nil, any existing timer will be cancelled.
|
111
|
-
# @return [Timer, nil]
|
111
|
+
# @return [Core::Timer, nil]
|
112
112
|
#
|
113
113
|
# @example Extend an existing timer, or schedule a new one
|
114
114
|
# # This is technically the same functionality as just calling `after()` with an `id`,
|
data/lib/openhab/dsl/version.rb
CHANGED
data/lib/openhab/dsl.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require "java"
|
4
4
|
require "method_source"
|
5
|
+
require "ruby2_keywords"
|
5
6
|
|
6
7
|
require "bundler/inline"
|
7
8
|
|
@@ -77,16 +78,16 @@ module OpenHAB
|
|
77
78
|
# Defines a new profile that can be applied to item channel links.
|
78
79
|
#
|
79
80
|
# @param [String, Symbol] id The id for the profile.
|
80
|
-
# @yield [event, command: nil, state: nil, link:, item:, channel_uid:, configuration:, context:]
|
81
|
+
# @yield [event, command: nil, state: nil, callback:, link:, item:, channel_uid:, configuration:, context:]
|
81
82
|
# All keyword params are optional. Any that aren't defined won't be passed.
|
82
|
-
# @yieldparam [Core::Things::ProfileCallback] callback
|
83
|
-
# The callback to be used to customize the action taken.
|
84
83
|
# @yieldparam [:command_from_item, :state_from_item, :command_from_handler, :state_from_handler] event
|
85
84
|
# The event that needs to be processed.
|
86
85
|
# @yieldparam [Command, nil] command
|
87
86
|
# The command being sent for `:command_from_item` and `:command_from_handler` events.
|
88
87
|
# @yieldparam [State, nil] state
|
89
88
|
# The state being sent for `:state_from_item` and `:state_from_handler` events.
|
89
|
+
# @yieldparam [Core::Things::ProfileCallback] callback
|
90
|
+
# The callback to be used to customize the action taken.
|
90
91
|
# @yieldparam [Core::Things::ItemChannelLink] link
|
91
92
|
# The link between the item and the channel, including its configuration.
|
92
93
|
# @yieldparam [Item] item The linked item.
|
@@ -115,7 +116,7 @@ module OpenHAB
|
|
115
116
|
# # Rollershutter MyShade { channel="thing:rollershutter"[profile="ruby:veto_closing_shades"] }
|
116
117
|
#
|
117
118
|
# @example Overriding units from a binding
|
118
|
-
# profile(:set_uom) do |event, configuration:, state:, command:|
|
119
|
+
# profile(:set_uom) do |event, callback:, configuration:, state:, command:|
|
119
120
|
# unless configuration["unit"]
|
120
121
|
# logger.warn("Unit configuration not provided for set_uom profile")
|
121
122
|
# next true
|
@@ -970,6 +971,24 @@ module OpenHAB
|
|
970
971
|
|
971
972
|
raise exception
|
972
973
|
end
|
974
|
+
|
975
|
+
#
|
976
|
+
# Provide access to the script context / variables
|
977
|
+
# see OpenHAB::DSL::Rules::AutomationRule#execute!
|
978
|
+
#
|
979
|
+
# @!visibility private
|
980
|
+
ruby2_keywords def method_missing(method, *args)
|
981
|
+
return super unless args.empty? && !block_given?
|
982
|
+
return super unless (context = Thread.current[:openhab_context]) && context.key?(method)
|
983
|
+
|
984
|
+
logger.trace("DSL#method_missing found context variable: '#{method}'")
|
985
|
+
context[method]
|
986
|
+
end
|
987
|
+
|
988
|
+
# @!visibility private
|
989
|
+
def respond_to_missing?(method, include_private = false)
|
990
|
+
Thread.current[:openhab_context]&.key?(method) || super
|
991
|
+
end
|
973
992
|
end
|
974
993
|
end
|
975
994
|
|
data/lib/openhab/osgi.rb
CHANGED
@@ -46,7 +46,7 @@ module OpenHAB
|
|
46
46
|
|
47
47
|
bundle = org.osgi.framework.FrameworkUtil.get_bundle(interfaces.first.java_class)
|
48
48
|
bundle.bundle_context.register_service(
|
49
|
-
interfaces.map
|
49
|
+
interfaces.map { |i| i.java_class.name }.to_java(java.lang.String),
|
50
50
|
instance,
|
51
51
|
java.util.Hashtable.new(properties)
|
52
52
|
)
|
data/lib/openhab/rspec/karaf.rb
CHANGED
@@ -154,7 +154,9 @@ module OpenHAB
|
|
154
154
|
klass.field_accessor :classLoader, :activatorManager
|
155
155
|
klass.field_writer :framework
|
156
156
|
klass.field_reader :LOG
|
157
|
-
org.apache.karaf.main.ConfigProperties.field_reader :props,
|
157
|
+
org.apache.karaf.main.ConfigProperties.field_reader :props,
|
158
|
+
:defaultBundleStartlevel,
|
159
|
+
:karafEtc,
|
158
160
|
:defaultStartLevel
|
159
161
|
klass.class_eval do
|
160
162
|
def send_private(method_name, *args)
|
@@ -472,7 +474,8 @@ module OpenHAB
|
|
472
474
|
thf = Mocks::ThingHandlerFactory.instance
|
473
475
|
bundle = org.osgi.framework.FrameworkUtil.get_bundle(org.openhab.core.thing.Thing.java_class)
|
474
476
|
Mocks::BundleResolver.instance.register_class(thf.class, bundle)
|
475
|
-
bundle.bundle_context.register_service(org.openhab.core.thing.binding.ThingHandlerFactory.java_class,
|
477
|
+
bundle.bundle_context.register_service(org.openhab.core.thing.binding.ThingHandlerFactory.java_class,
|
478
|
+
thf,
|
476
479
|
nil)
|
477
480
|
end
|
478
481
|
end
|
@@ -574,7 +577,7 @@ module OpenHAB
|
|
574
577
|
bundle.fragment?
|
575
578
|
end
|
576
579
|
|
577
|
-
def wait
|
580
|
+
def wait(timeout: 30)
|
578
581
|
mutex = Mutex.new
|
579
582
|
cond = ConditionVariable.new
|
580
583
|
skip_wait = false
|
@@ -587,7 +590,7 @@ module OpenHAB
|
|
587
590
|
end
|
588
591
|
mutex.synchronize do
|
589
592
|
yield continue
|
590
|
-
cond.wait(mutex) unless skip_wait
|
593
|
+
cond.wait(mutex, timeout) unless skip_wait
|
591
594
|
end
|
592
595
|
end
|
593
596
|
|
@@ -3,7 +3,6 @@
|
|
3
3
|
module OpenHAB
|
4
4
|
module Core
|
5
5
|
module Actions
|
6
|
-
# rubocop:disable Lint/UnusedMethodArgument
|
7
6
|
# redefine these to do nothing so that rules won't fail
|
8
7
|
|
9
8
|
module_function
|
@@ -31,8 +30,6 @@ module OpenHAB
|
|
31
30
|
end
|
32
31
|
end
|
33
32
|
end
|
34
|
-
|
35
|
-
# rubocop:enable Lint/UnusedMethodArgument
|
36
33
|
end
|
37
34
|
end
|
38
35
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openhab-scripting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian O'Connell
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-
|
13
|
+
date: 2023-09-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -214,14 +214,14 @@ dependencies:
|
|
214
214
|
requirements:
|
215
215
|
- - "~>"
|
216
216
|
- !ruby/object:Gem::Version
|
217
|
-
version: 1.13
|
217
|
+
version: '1.13'
|
218
218
|
type: :development
|
219
219
|
prerelease: false
|
220
220
|
version_requirements: !ruby/object:Gem::Requirement
|
221
221
|
requirements:
|
222
222
|
- - "~>"
|
223
223
|
- !ruby/object:Gem::Version
|
224
|
-
version: 1.13
|
224
|
+
version: '1.13'
|
225
225
|
- !ruby/object:Gem::Dependency
|
226
226
|
name: persistent_httparty
|
227
227
|
requirement: !ruby/object:Gem::Requirement
|
@@ -279,33 +279,19 @@ dependencies:
|
|
279
279
|
- !ruby/object:Gem::Version
|
280
280
|
version: '3.11'
|
281
281
|
- !ruby/object:Gem::Dependency
|
282
|
-
name: rubocop
|
282
|
+
name: rubocop-inst
|
283
283
|
requirement: !ruby/object:Gem::Requirement
|
284
284
|
requirements:
|
285
|
-
- - "
|
285
|
+
- - ">="
|
286
286
|
- !ruby/object:Gem::Version
|
287
|
-
version: '
|
287
|
+
version: '0'
|
288
288
|
type: :development
|
289
289
|
prerelease: false
|
290
290
|
version_requirements: !ruby/object:Gem::Requirement
|
291
291
|
requirements:
|
292
|
-
- - "
|
293
|
-
- !ruby/object:Gem::Version
|
294
|
-
version: '1.8'
|
295
|
-
- !ruby/object:Gem::Dependency
|
296
|
-
name: rubocop-performance
|
297
|
-
requirement: !ruby/object:Gem::Requirement
|
298
|
-
requirements:
|
299
|
-
- - "~>"
|
300
|
-
- !ruby/object:Gem::Version
|
301
|
-
version: '1.11'
|
302
|
-
type: :development
|
303
|
-
prerelease: false
|
304
|
-
version_requirements: !ruby/object:Gem::Requirement
|
305
|
-
requirements:
|
306
|
-
- - "~>"
|
292
|
+
- - ">="
|
307
293
|
- !ruby/object:Gem::Version
|
308
|
-
version: '
|
294
|
+
version: '0'
|
309
295
|
- !ruby/object:Gem::Dependency
|
310
296
|
name: rubocop-rake
|
311
297
|
requirement: !ruby/object:Gem::Requirement
|
@@ -394,10 +380,12 @@ files:
|
|
394
380
|
- lib/openhab/core/actions/ping.rb
|
395
381
|
- lib/openhab/core/actions/transformation.rb
|
396
382
|
- lib/openhab/core/actions/voice.rb
|
383
|
+
- lib/openhab/core/configuration.rb
|
397
384
|
- lib/openhab/core/dependency_tracking.rb
|
398
385
|
- lib/openhab/core/dto.rb
|
399
386
|
- lib/openhab/core/dto/item_channel_link.rb
|
400
387
|
- lib/openhab/core/dto/thing.rb
|
388
|
+
- lib/openhab/core/emulate_hash.rb
|
401
389
|
- lib/openhab/core/entity_lookup.rb
|
402
390
|
- lib/openhab/core/events.rb
|
403
391
|
- lib/openhab/core/events/abstract_event.rb
|
@@ -409,6 +397,7 @@ files:
|
|
409
397
|
- lib/openhab/core/events/item_state_event.rb
|
410
398
|
- lib/openhab/core/events/item_state_updated_event.rb
|
411
399
|
- lib/openhab/core/events/thing_status_info_event.rb
|
400
|
+
- lib/openhab/core/events/timer_event.rb
|
412
401
|
- lib/openhab/core/items.rb
|
413
402
|
- lib/openhab/core/items/accepted_data_types.rb
|
414
403
|
- lib/openhab/core/items/color_item.rb
|
@@ -416,6 +405,7 @@ files:
|
|
416
405
|
- lib/openhab/core/items/date_time_item.rb
|
417
406
|
- lib/openhab/core/items/dimmer_item.rb
|
418
407
|
- lib/openhab/core/items/generic_item.rb
|
408
|
+
- lib/openhab/core/items/group_function.rb
|
419
409
|
- lib/openhab/core/items/group_item.rb
|
420
410
|
- lib/openhab/core/items/image_item.rb
|
421
411
|
- lib/openhab/core/items/item.rb
|