openhab-scripting 2.27.1 → 3.0.0
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/entity_lookup.rb +4 -17
- data/lib/openhab/dsl/dsl.rb +1 -0
- data/lib/openhab/dsl/group.rb +3 -62
- data/lib/openhab/dsl/items/group_item.rb +132 -0
- data/lib/openhab/dsl/items/items.rb +1 -2
- data/lib/openhab/dsl/monkey_patch/items/items.rb +0 -1
- data/lib/openhab/dsl/monkey_patch/items/persistence.rb +5 -3
- data/lib/openhab/dsl/monkey_patch/types/open_closed_type.rb +7 -3
- data/lib/openhab/dsl/monkey_patch/types/up_down_type.rb +7 -3
- data/lib/openhab/dsl/rules/rule_config.rb +0 -2
- data/lib/openhab/dsl/rules/triggers/changed.rb +3 -2
- data/lib/openhab/dsl/rules/triggers/command.rb +2 -2
- data/lib/openhab/dsl/rules/triggers/trigger.rb +14 -0
- data/lib/openhab/dsl/rules/triggers/updated.rb +2 -2
- data/lib/openhab/dsl/states.rb +1 -2
- data/lib/openhab/version.rb +1 -1
- metadata +2 -2
- data/lib/openhab/dsl/monkey_patch/items/group_item.rb +0 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7eb19f2aa4bac30a6fb3b4f07953a9b78a54419795d4845c073432d803fa8629
|
4
|
+
data.tar.gz: 7528671d2c2db7a58ecdc46b33f9b94656ff2cfc878ab76bc2703fcff4c49a7b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ef8331db3b6985bcc1ebb3b3b16fb251b61a482e10fc586e1d6bb2f7460ca197ecf8e38492613effd7fe6ff3f62f3975b443879f698373083c0b6ec192542d5
|
7
|
+
data.tar.gz: 20451cc85edb7a50ad3d5f7d80415b6b769129d5ce5b9cd246f98d51f1c588036340a7c1c9211184c396b1919a44c8d49fa303b3637d6182964b28cf76ca6edb
|
@@ -9,9 +9,9 @@ require 'openhab/dsl/items/number_item'
|
|
9
9
|
require 'openhab/dsl/items/string_item'
|
10
10
|
require 'openhab/dsl/items/datetime_item'
|
11
11
|
require 'openhab/dsl/items/rollershutter_item'
|
12
|
+
require 'openhab/dsl/items/group_item'
|
12
13
|
|
13
14
|
# Automation lookup and injection of OpenHab entities
|
14
|
-
java_import org.openhab.core.items.GroupItem
|
15
15
|
|
16
16
|
module OpenHAB
|
17
17
|
module Core
|
@@ -88,10 +88,10 @@ module OpenHAB
|
|
88
88
|
#
|
89
89
|
# rubocop: disable Metrics/MethodLength
|
90
90
|
# Disabled line length and branch size - case dispatch pattern
|
91
|
-
|
91
|
+
def self.decorate_item(item)
|
92
92
|
case item
|
93
|
-
when GroupItem
|
94
|
-
|
93
|
+
when Java::OrgOpenhabCoreItems::GroupItem
|
94
|
+
OpenHAB::DSL::Items::GroupItem.new(item)
|
95
95
|
when Java::OrgOpenhabCoreLibraryItems::NumberItem
|
96
96
|
OpenHAB::DSL::Items::NumberItem.new(item)
|
97
97
|
when Java::OrgOpenhabCoreLibraryItems::StringItem
|
@@ -144,19 +144,6 @@ module OpenHAB
|
|
144
144
|
# rubocop: enable Style/GlobalVars
|
145
145
|
decorate_item(item)
|
146
146
|
end
|
147
|
-
|
148
|
-
#
|
149
|
-
# Decorate a group from an item base
|
150
|
-
#
|
151
|
-
# @param [OpenHAB item] item item to convert to a group item
|
152
|
-
#
|
153
|
-
# @return [OpenHAB::DSL::Groups::Group] Group created from supplied item
|
154
|
-
#
|
155
|
-
private_class_method def self.decorate_group(item)
|
156
|
-
group = OpenHAB::DSL::Groups::Group.new(Set.new(decorate_items(item.all_members.to_a)))
|
157
|
-
group.group = item
|
158
|
-
group
|
159
|
-
end
|
160
147
|
end
|
161
148
|
end
|
162
149
|
end
|
data/lib/openhab/dsl/dsl.rb
CHANGED
@@ -16,6 +16,7 @@ require 'openhab/dsl/items/items'
|
|
16
16
|
require 'openhab/dsl/items/datetime_item'
|
17
17
|
require 'openhab/dsl/items/number_item'
|
18
18
|
require 'openhab/dsl/items/player_item'
|
19
|
+
require 'openhab/dsl/items/group_item'
|
19
20
|
require 'openhab/dsl/time_of_day'
|
20
21
|
require 'openhab/dsl/gems'
|
21
22
|
require 'openhab/dsl/persistence'
|
data/lib/openhab/dsl/group.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'delegate'
|
4
4
|
require 'forwardable'
|
5
5
|
require 'openhab/core/entity_lookup'
|
6
|
+
require 'openhab/dsl/items/group_item'
|
6
7
|
|
7
8
|
module OpenHAB
|
8
9
|
module DSL
|
@@ -10,11 +11,6 @@ module OpenHAB
|
|
10
11
|
# Provides access to OpenHAB Groups
|
11
12
|
#
|
12
13
|
module Groups
|
13
|
-
#
|
14
|
-
# Indicator struct interpreted by rules to trigger based on items contained in a group
|
15
|
-
#
|
16
|
-
GroupItems = Struct.new(:group, keyword_init: true)
|
17
|
-
|
18
14
|
#
|
19
15
|
# Provide access to groups as a set
|
20
16
|
#
|
@@ -27,7 +23,7 @@ module OpenHAB
|
|
27
23
|
#
|
28
24
|
def[](name)
|
29
25
|
group = OpenHAB::Core::EntityLookup.lookup_item(name)
|
30
|
-
group.is_a?(
|
26
|
+
group.is_a?(OpenHAB::DSL::Items::GroupItem) ? group : nil
|
31
27
|
end
|
32
28
|
end
|
33
29
|
|
@@ -38,64 +34,9 @@ module OpenHAB
|
|
38
34
|
#
|
39
35
|
def groups
|
40
36
|
# rubocop: disable Style/GlobalVars
|
41
|
-
Groups.new(OpenHAB::Core::EntityLookup.decorate_items($ir.items.
|
37
|
+
Groups.new(OpenHAB::Core::EntityLookup.decorate_items($ir.items.grep(Java::OrgOpenhabCoreItems::GroupItem)))
|
42
38
|
# rubocop: enable Style/GlobalVars
|
43
39
|
end
|
44
|
-
|
45
|
-
# Group class that provides access to OpenHAB group object and delegates other methods to
|
46
|
-
# a set of group items
|
47
|
-
class Group < SimpleDelegator
|
48
|
-
extend Forwardable
|
49
|
-
|
50
|
-
java_import Java::OrgOpenhabCoreItems::GroupItem
|
51
|
-
|
52
|
-
# @return [org.openhab.core.items.GroupItem] OpenHAB Java Group Item
|
53
|
-
attr_accessor :group
|
54
|
-
|
55
|
-
# @!macro [attach] def_delegators
|
56
|
-
# @!method $2
|
57
|
-
# Forwards to org.openhab.core.items.GroupItem
|
58
|
-
# @see org::openhab::core::items::GroupItem
|
59
|
-
%i[name label << command].each do |method|
|
60
|
-
def_delegator :@group, method
|
61
|
-
end
|
62
|
-
|
63
|
-
#
|
64
|
-
# Gets members of this group that are themselves a group
|
65
|
-
#
|
66
|
-
# @return [Set] Set of members that are of type group
|
67
|
-
#
|
68
|
-
def groups
|
69
|
-
group.members.grep(GroupItem)
|
70
|
-
end
|
71
|
-
|
72
|
-
#
|
73
|
-
# Wraps the group in a struct, this method is intended to be called
|
74
|
-
# as an indicator to the rule method that the user wishes to trigger
|
75
|
-
# based on changes to group items
|
76
|
-
#
|
77
|
-
# @return [GroupItems] Indicator struct used by rules engine to trigger based on item changes
|
78
|
-
#
|
79
|
-
def items
|
80
|
-
GroupItems.new(group: group)
|
81
|
-
end
|
82
|
-
|
83
|
-
#
|
84
|
-
# @return [String] List of groups seperated by commas
|
85
|
-
#
|
86
|
-
def to_s
|
87
|
-
"[#{map(&:to_s).join(',')}]"
|
88
|
-
end
|
89
|
-
|
90
|
-
#
|
91
|
-
# Get an ID for the group, using the label if set, otherwise group name
|
92
|
-
#
|
93
|
-
# @return [String] label if set otherwise name
|
94
|
-
#
|
95
|
-
def id
|
96
|
-
label || name
|
97
|
-
end
|
98
|
-
end
|
99
40
|
end
|
100
41
|
end
|
101
42
|
end
|
@@ -0,0 +1,132 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'delegate'
|
4
|
+
require 'forwardable'
|
5
|
+
require 'java'
|
6
|
+
require 'openhab/dsl/items/item_command'
|
7
|
+
require 'openhab/dsl/items/item_delegate'
|
8
|
+
require 'openhab/core/entity_lookup'
|
9
|
+
|
10
|
+
module OpenHAB
|
11
|
+
module DSL
|
12
|
+
module Items
|
13
|
+
#
|
14
|
+
# Class for indicating to triggers that a group trigger should be used
|
15
|
+
#
|
16
|
+
class GroupMembers < SimpleDelegator
|
17
|
+
attr_reader :group
|
18
|
+
|
19
|
+
#
|
20
|
+
# Create a new GroupMembers instance from a GroupItem
|
21
|
+
#
|
22
|
+
# @param [GroupItem] group_item GroupItem to use as trigger
|
23
|
+
#
|
24
|
+
def initialize(group_item)
|
25
|
+
@group = group_item
|
26
|
+
super(OpenHAB::Core::EntityLookup.decorate_items(@group.members.to_a))
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
#
|
31
|
+
# Delegator to OpenHAB Group Item
|
32
|
+
#
|
33
|
+
class GroupItem
|
34
|
+
extend OpenHAB::DSL::Items::ItemCommand
|
35
|
+
extend OpenHAB::DSL::Items::ItemDelegate
|
36
|
+
include Enumerable
|
37
|
+
include Comparable
|
38
|
+
|
39
|
+
def_item_delegator :@group_item
|
40
|
+
|
41
|
+
#
|
42
|
+
# @return [Hash] A hash of lambdas with default filters for `all_members`
|
43
|
+
#
|
44
|
+
DEFAULT_FILTERS = {
|
45
|
+
groups: ->(item) { item.is_a?(Java::OrgOpenhabCoreItems::GroupItem) },
|
46
|
+
all: -> { true }
|
47
|
+
}.freeze
|
48
|
+
|
49
|
+
private_constant :DEFAULT_FILTERS
|
50
|
+
|
51
|
+
#
|
52
|
+
# Create a new GroupItem
|
53
|
+
#
|
54
|
+
# @param [Java::Org::openhab::core::items::GroupItem] group_item OpenHAB GroupItem to delegate to
|
55
|
+
#
|
56
|
+
def initialize(group_item)
|
57
|
+
@group_item = group_item
|
58
|
+
|
59
|
+
item_missing_delegate { @group_item }
|
60
|
+
item_missing_delegate { OpenHAB::Core::EntityLookup.decorate_item(base_item) }
|
61
|
+
end
|
62
|
+
|
63
|
+
#
|
64
|
+
# Create a GroupMembers object for use in triggers
|
65
|
+
#
|
66
|
+
# @return [GroupMembers] A GroupMembers object
|
67
|
+
#
|
68
|
+
def members
|
69
|
+
GroupMembers.new(@group_item)
|
70
|
+
end
|
71
|
+
|
72
|
+
#
|
73
|
+
# Iterates through the direct members of the Group
|
74
|
+
#
|
75
|
+
def each(&block)
|
76
|
+
OpenHAB::Core::EntityLookup.decorate_items(@group_item.members.to_a).each(&block)
|
77
|
+
end
|
78
|
+
|
79
|
+
#
|
80
|
+
# Get all members of the group recursively. Optionally filter the items to only return
|
81
|
+
# Groups or regular Items
|
82
|
+
#
|
83
|
+
# @param [Symbol] filter Either :groups or :items
|
84
|
+
#
|
85
|
+
# @return [Array] An Array containing all descendants of the Group, optionally filtered
|
86
|
+
#
|
87
|
+
def all_members(filter = nil, &block)
|
88
|
+
predicate = DEFAULT_FILTERS[filter] || block
|
89
|
+
|
90
|
+
return OpenHAB::Core::EntityLookup.decorate_items(@group_item.all_members.to_a) unless predicate
|
91
|
+
|
92
|
+
OpenHAB::Core::EntityLookup.decorate_items(@group_item.get_members(&predicate).to_a)
|
93
|
+
end
|
94
|
+
|
95
|
+
#
|
96
|
+
# Test for equality
|
97
|
+
#
|
98
|
+
# @param [Object] other Other object to compare against
|
99
|
+
#
|
100
|
+
# @return [Boolean] true if self and other can be considered equal, false otherwise
|
101
|
+
#
|
102
|
+
def ==(other)
|
103
|
+
if other.respond_to?(:java_class) && accepted_data_types.include?(other.java_class)
|
104
|
+
get_state_as(other.class) == other
|
105
|
+
elsif other.respond_to?(:state)
|
106
|
+
base_item ? OpenHAB::Core::EntityLookup.decorate_item(base_item) == other.state : self == other.state
|
107
|
+
else
|
108
|
+
super
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
#
|
113
|
+
# Compare GroupItem to supplied object
|
114
|
+
#
|
115
|
+
# @param [Object] other object to compare to
|
116
|
+
#
|
117
|
+
# @return [Integer] -1,0,1 or nil depending on value supplied,
|
118
|
+
# nil comparison to supplied object is not possible.
|
119
|
+
#
|
120
|
+
def <=>(other)
|
121
|
+
if base_item
|
122
|
+
OpenHAB::Core::EntityLookup.decorate_item(base_item) <=> other
|
123
|
+
elsif state?
|
124
|
+
-(other <=> state)
|
125
|
+
else
|
126
|
+
super
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
@@ -33,12 +33,11 @@ module OpenHAB
|
|
33
33
|
alias key? include?
|
34
34
|
end
|
35
35
|
|
36
|
-
java_import Java::OrgOpenhabCoreItems::GroupItem
|
37
36
|
# Fetches all non-group items from the item registry
|
38
37
|
# @return [OpenHAB::DSL::Items::Items]
|
39
38
|
def items
|
40
39
|
# rubocop: disable Style/GlobalVars
|
41
|
-
Items.new(OpenHAB::Core::EntityLookup.decorate_items($ir.items.
|
40
|
+
Items.new(OpenHAB::Core::EntityLookup.decorate_items($ir.items.grep_v(Java::OrgOpenhabCoreItems::GroupItem)))
|
42
41
|
# rubocop: enable Style/GlobalVars
|
43
42
|
end
|
44
43
|
end
|
@@ -10,7 +10,6 @@ require 'openhab/dsl/monkey_patch/items/persistence'
|
|
10
10
|
require 'openhab/dsl/monkey_patch/items/contact_item'
|
11
11
|
require 'openhab/dsl/monkey_patch/items/dimmer_item'
|
12
12
|
require 'openhab/dsl/monkey_patch/items/switch_item'
|
13
|
-
require 'openhab/dsl/monkey_patch/items/group_item'
|
14
13
|
|
15
14
|
module OpenHAB
|
16
15
|
module DSL
|
@@ -8,6 +8,7 @@ module OpenHAB
|
|
8
8
|
# Persistence extension for Items
|
9
9
|
#
|
10
10
|
module Persistence
|
11
|
+
java_import Java::OrgOpenhabCoreTypesUtil::UnitUtils
|
11
12
|
# All persistence methods that could return a Quantity
|
12
13
|
QUANTITY_METHODS = %i[average_since
|
13
14
|
delta_since
|
@@ -81,9 +82,10 @@ module OpenHAB
|
|
81
82
|
# @return [Object] Quantity or the original value
|
82
83
|
#
|
83
84
|
def quantify(value)
|
84
|
-
if value.is_a?(Java::OrgOpenhabCoreLibraryTypes::DecimalType) &&
|
85
|
-
|
86
|
-
|
85
|
+
if value.is_a?(Java::OrgOpenhabCoreLibraryTypes::DecimalType) && state_description&.pattern
|
86
|
+
item_unit = UnitUtils.parse_unit(state_description.pattern)
|
87
|
+
logger.trace("Unitizing #{value} with unit #{item_unit}")
|
88
|
+
Quantity.new(Java::OrgOpenhabCoreLibraryTypes::QuantityType.new(value.to_big_decimal, item_unit))
|
87
89
|
else
|
88
90
|
value
|
89
91
|
end
|
@@ -25,9 +25,13 @@ module OpenHAB
|
|
25
25
|
# @return [Boolean] True if the other object is a ContactItem and has the same state
|
26
26
|
#
|
27
27
|
def ===(other)
|
28
|
-
|
29
|
-
|
30
|
-
|
28
|
+
if other.respond_to?(:state)
|
29
|
+
self == other.state
|
30
|
+
elsif other.is_a? OpenClosedType
|
31
|
+
self == other
|
32
|
+
else
|
33
|
+
super
|
34
|
+
end
|
31
35
|
end
|
32
36
|
end
|
33
37
|
end
|
@@ -22,9 +22,13 @@ module OpenHAB
|
|
22
22
|
# @return [Boolean] True if the other object is a RollershutterItem and has the same state
|
23
23
|
#
|
24
24
|
def ===(other)
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
if other.respond_to?(:state)
|
26
|
+
self == other.state&.as(UpDownType)
|
27
|
+
elsif other.is_a? UpDownType
|
28
|
+
self == other
|
29
|
+
else
|
30
|
+
super
|
31
|
+
end
|
28
32
|
end
|
29
33
|
end
|
30
34
|
end
|
@@ -31,7 +31,7 @@ module OpenHAB
|
|
31
31
|
# @return [Trigger] OpenHAB trigger
|
32
32
|
#
|
33
33
|
def changed(*items, to: nil, from: nil, for: nil)
|
34
|
-
items.
|
34
|
+
separate_groups(items).each do |item|
|
35
35
|
logger.trace("Creating changed trigger for entity(#{item}), to(#{to}), from(#{from})")
|
36
36
|
# for is a reserved word in ruby, so use local_variable_get :for
|
37
37
|
if (wait_duration = binding.local_variable_get(:for))
|
@@ -73,7 +73,8 @@ module OpenHAB
|
|
73
73
|
#
|
74
74
|
def create_changed_trigger(item, from, to)
|
75
75
|
trigger, config = case item
|
76
|
-
when
|
76
|
+
when OpenHAB::DSL::Items::GroupItem::GroupMembers
|
77
|
+
create_group_changed_trigger(item, from, to)
|
77
78
|
when Thing then create_thing_changed_trigger(item, from, to)
|
78
79
|
else create_item_changed_trigger(item, from, to)
|
79
80
|
end
|
@@ -22,7 +22,7 @@ module OpenHAB
|
|
22
22
|
#
|
23
23
|
#
|
24
24
|
def received_command(*items, command: nil, commands: nil)
|
25
|
-
items.flatten.each do |item|
|
25
|
+
separate_groups(items).flatten.each do |item|
|
26
26
|
logger.trace("Creating received command trigger for item(#{item})"\
|
27
27
|
"command(#{command}) commands(#{commands})")
|
28
28
|
|
@@ -43,7 +43,7 @@ module OpenHAB
|
|
43
43
|
#
|
44
44
|
def create_received_trigger(commands, item)
|
45
45
|
commands.each do |command|
|
46
|
-
if item.is_a?
|
46
|
+
if item.is_a? OpenHAB::DSL::Items::GroupItem::GroupMembers
|
47
47
|
config, trigger = create_group_command_trigger(item)
|
48
48
|
else
|
49
49
|
config, trigger = create_item_command_trigger(item)
|
@@ -53,6 +53,20 @@ module OpenHAB
|
|
53
53
|
trigger
|
54
54
|
end
|
55
55
|
|
56
|
+
#
|
57
|
+
# Separates groups from items, and flattens any nested arrays of items
|
58
|
+
#
|
59
|
+
# @param [Array] item_array Array of items passed to a trigger
|
60
|
+
#
|
61
|
+
# @return [Array] A new flat array with any GroupMembers object left intact
|
62
|
+
#
|
63
|
+
def separate_groups(item_array)
|
64
|
+
return item_array if item_array.length <= 1 && item_array.grep(Array).length.zero?
|
65
|
+
|
66
|
+
groups, items = item_array.partition { |item| item.is_a? OpenHAB::DSL::Items::GroupItem::GroupMembers }
|
67
|
+
groups + separate_groups(items.flatten(1))
|
68
|
+
end
|
69
|
+
|
56
70
|
#
|
57
71
|
# Class for creating and managing triggers
|
58
72
|
#
|
@@ -20,7 +20,7 @@ module OpenHAB
|
|
20
20
|
# @return [Trigger] Trigger for updated entity
|
21
21
|
#
|
22
22
|
def updated(*items, to: nil)
|
23
|
-
items.flatten.each do |item|
|
23
|
+
separate_groups(items).flatten.each do |item|
|
24
24
|
logger.trace("Creating updated trigger for item(#{item}) to(#{to})")
|
25
25
|
[to].flatten.each do |to_state|
|
26
26
|
trigger, config = create_update_trigger(item, to_state)
|
@@ -42,7 +42,7 @@ module OpenHAB
|
|
42
42
|
#
|
43
43
|
def create_update_trigger(item, to_state)
|
44
44
|
case item
|
45
|
-
when
|
45
|
+
when OpenHAB::DSL::Items::GroupItem::GroupMembers then group_update(item, to_state)
|
46
46
|
when Thing then thing_update(item, to_state)
|
47
47
|
else item_update(item, to_state)
|
48
48
|
end
|
data/lib/openhab/dsl/states.rb
CHANGED
@@ -48,8 +48,7 @@ module OpenHAB
|
|
48
48
|
# @return [StateStorage] item states
|
49
49
|
#
|
50
50
|
def store_states(*items)
|
51
|
-
|
52
|
-
states = StateStorage.new(BusEvent.storeStates(*items).to_h)
|
51
|
+
states = StateStorage.new(BusEvent.storeStates(*items.flatten).to_h)
|
53
52
|
if block_given?
|
54
53
|
yield
|
55
54
|
states.restore
|
data/lib/openhab/version.rb
CHANGED
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:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian O'Connell
|
@@ -40,6 +40,7 @@ files:
|
|
40
40
|
- lib/openhab/dsl/gems.rb
|
41
41
|
- lib/openhab/dsl/group.rb
|
42
42
|
- lib/openhab/dsl/items/datetime_item.rb
|
43
|
+
- lib/openhab/dsl/items/group_item.rb
|
43
44
|
- lib/openhab/dsl/items/item_command.rb
|
44
45
|
- lib/openhab/dsl/items/item_delegate.rb
|
45
46
|
- lib/openhab/dsl/items/items.rb
|
@@ -57,7 +58,6 @@ files:
|
|
57
58
|
- lib/openhab/dsl/monkey_patch/events/thing_status_info.rb
|
58
59
|
- lib/openhab/dsl/monkey_patch/items/contact_item.rb
|
59
60
|
- lib/openhab/dsl/monkey_patch/items/dimmer_item.rb
|
60
|
-
- lib/openhab/dsl/monkey_patch/items/group_item.rb
|
61
61
|
- lib/openhab/dsl/monkey_patch/items/items.rb
|
62
62
|
- lib/openhab/dsl/monkey_patch/items/metadata.rb
|
63
63
|
- lib/openhab/dsl/monkey_patch/items/persistence.rb
|
@@ -1,37 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module OpenHAB
|
4
|
-
module DSL
|
5
|
-
module MonkeyPatch
|
6
|
-
#
|
7
|
-
# Patches OpenHAB items
|
8
|
-
#
|
9
|
-
module Items
|
10
|
-
java_import Java::OrgOpenhabCoreItems::GroupItem
|
11
|
-
|
12
|
-
#
|
13
|
-
# Monkey patch Group Item
|
14
|
-
#
|
15
|
-
class GroupItem
|
16
|
-
#
|
17
|
-
# Get all items in a group
|
18
|
-
#
|
19
|
-
# @return [Array] Array of items in the group
|
20
|
-
#
|
21
|
-
def items
|
22
|
-
to_a
|
23
|
-
end
|
24
|
-
|
25
|
-
#
|
26
|
-
# Get all items in the group as an Array
|
27
|
-
#
|
28
|
-
# @return [Array] All items in the group
|
29
|
-
#
|
30
|
-
def to_a
|
31
|
-
all_members.each_with_object([]) { |item, arr| arr << item }
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|