Module: OpenHAB::Core::Items::Item
- Included in:
- GenericItem
- Defined in:
- lib/openhab/core/items/item.rb
Overview
The core features of an openHAB item.
Instance Attribute Summary collapse
-
#accepted_command_types ⇒ Array<Class>
readonly
An array of Commands that can be sent as commands to this item.
-
#accepted_data_types ⇒ Array<Class>
readonly
An array of States that can be sent as commands to this item.
-
#all_groups ⇒ Array<GroupItem>
readonly
Returns all groups that this item is a part of, as well as those groups' groups, recursively.
-
#groups ⇒ Array<GroupItem>
readonly
Returns all groups that this item is part of.
-
#metadata ⇒ Metadata::NamespaceHash
readonly
Access to the item's metadata.
-
#name ⇒ String
readonly
The item's name.
Instance Method Summary collapse
-
#color_item? ⇒ true, false
Check if the item is a color item.
-
#contact_item? ⇒ true, false
Check if the item is a contact item.
-
#date_time_item? ⇒ true, false
Check if the item is a date_time item.
-
#dimmer_item? ⇒ true, false
Check if the item is a dimmer item.
-
#group_item? ⇒ true, false
Check if the item is a group item.
-
#image_item? ⇒ true, false
Check if the item is a image item.
- #inspect ⇒ String
-
#links ⇒ Array<ItemChannelLink>
Returns all of the item's links (channels and link configurations).
-
#location_item? ⇒ true, false
Check if the item is a location item.
-
#member_of?(*groups) ⇒ true, false
Checks if this item is a member of at least one of the given groups.
-
#number_item? ⇒ true, false
Check if the item is a number item.
-
#player_item? ⇒ true, false
Check if the item is a player item.
- #provider ⇒ org.openhab.core.common.registry.Provider?
-
#rollershutter_item? ⇒ true, false
Check if the item is a rollershutter item.
-
#string_item? ⇒ true, false
Check if the item is a string item.
-
#switch_item? ⇒ true, false
Check if the item is a switch item.
-
#tagged?(*tags) ⇒ true, false
Checks if this item has at least one of the given tags.
-
#thing ⇒ Thing
(also: #linked_thing)
Return the item's thing if this item is linked with a thing.
-
#things ⇒ Array<Thing>
(also: #all_linked_things)
Returns all of the item's linked things.
- #to_s ⇒ String
Instance Attribute Details
#accepted_command_types ⇒ Array<Class> (readonly)
Returns An array of Commands that can be sent as commands to this item.
|
# File 'lib/openhab/core/items/item.rb', line 43
|
#accepted_data_types ⇒ Array<Class> (readonly)
Returns An array of States that can be sent as commands to this item.
|
# File 'lib/openhab/core/items/item.rb', line 46
|
#all_groups ⇒ Array<GroupItem> (readonly)
Returns all groups that this item is a part of, as well as those groups' groups, recursively
92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/openhab/core/items/item.rb', line 92 def all_groups result = [] new_groups = Set.new(groups) until new_groups.empty? result.concat(new_groups.to_a) new_groups.replace(new_groups.flat_map(&:groups)) # remove any groups we already have in the result to avoid loops new_groups.subtract(result) end result end |
#groups ⇒ Array<GroupItem> (readonly)
Returns all groups that this item is part of
65 66 67 |
# File 'lib/openhab/core/items/item.rb', line 65 def groups group_names.map { |name| EntityLookup.lookup_item(name) }.compact end |
#metadata ⇒ Metadata::NamespaceHash (readonly)
Access to the item's metadata.
Both the return value of this method as well as the individual namespaces can be treated as Hashes.
Examples assume the following items:
Switch Item1 { namespace1="value" [ config1="foo", config2="bar" ] }
String StringItem1
223 224 225 |
# File 'lib/openhab/core/items/item.rb', line 223 def metadata @metadata ||= Metadata::NamespaceHash.new(name) end |
#name ⇒ String (readonly)
The item's name.
|
# File 'lib/openhab/core/items/item.rb', line 39
|
Instance Method Details
#color_item? ⇒ true, false
If the item is a group item, it will also return true if the base item is a color item.
Check if the item is a color item.
311 |
# File 'lib/openhab/core/items/item.rb', line 311 def_type_predicate(:color) |
#contact_item? ⇒ true, false
If the item is a group item, it will also return true if the base item is a contact item.
Check if the item is a contact item.
312 |
# File 'lib/openhab/core/items/item.rb', line 312 def_type_predicate(:contact) |
#date_time_item? ⇒ true, false
If the item is a group item, it will also return true if the base item is a date_time item.
Check if the item is a date_time item.
313 |
# File 'lib/openhab/core/items/item.rb', line 313 def_type_predicate(:date_time) |
#dimmer_item? ⇒ true, false
Color items are also considered dimmer items.
If the item is a group item, it will also return true if the base item is a dimmer item.
Check if the item is a dimmer item.
315 |
# File 'lib/openhab/core/items/item.rb', line 315 def_type_predicate(:dimmer) |
#group_item? ⇒ true, false
If the item is a group item, it will also return true if the base item is a group item.
Check if the item is a group item.
316 |
# File 'lib/openhab/core/items/item.rb', line 316 def_type_predicate(:group) |
#image_item? ⇒ true, false
If the item is a group item, it will also return true if the base item is a image item.
Check if the item is a image item.
317 |
# File 'lib/openhab/core/items/item.rb', line 317 def_type_predicate(:image) |
#inspect ⇒ String
279 280 281 282 283 284 285 286 287 |
# File 'lib/openhab/core/items/item.rb', line 279 def inspect s = "#<OpenHAB::Core::Items::#{type}Item#{type_details} #{name} #{label.inspect} state=#{raw_state.inspect}" s += " category=#{category.inspect}" if category s += " tags=#{tags.to_a.inspect}" unless tags.empty? s += " groups=#{group_names}" unless group_names.empty? meta = metadata.to_h s += " metadata=#{meta.inspect}" unless meta.empty? "#{s}>" end |
#links ⇒ Array<ItemChannelLink>
Returns all of the item's links (channels and link configurations).
274 275 276 |
# File 'lib/openhab/core/items/item.rb', line 274 def links Things::Links::Provider.registry.get_links(name) end |
#location_item? ⇒ true, false
If the item is a group item, it will also return true if the base item is a location item.
Check if the item is a location item.
318 |
# File 'lib/openhab/core/items/item.rb', line 318 def_type_predicate(:location) |
#member_of?(*groups) ⇒ true, false
Checks if this item is a member of at least one of the given groups.
78 79 80 81 82 83 |
# File 'lib/openhab/core/items/item.rb', line 78 def member_of?(*groups) groups.map! do |group| group.is_a?(GroupItem) ? group.name : group end !(group_names & groups).empty? end |
#number_item? ⇒ true, false
If the item is a group item, it will also return true if the base item is a number item.
Check if the item is a number item.
319 |
# File 'lib/openhab/core/items/item.rb', line 319 def_type_predicate(:number) |
#player_item? ⇒ true, false
If the item is a group item, it will also return true if the base item is a player item.
Check if the item is a player item.
320 |
# File 'lib/openhab/core/items/item.rb', line 320 def_type_predicate(:player) |
#provider ⇒ org.openhab.core.common.registry.Provider?
290 291 292 |
# File 'lib/openhab/core/items/item.rb', line 290 def provider Provider.registry.provider_for(self) end |
#rollershutter_item? ⇒ true, false
If the item is a group item, it will also return true if the base item is a rollershutter item.
Check if the item is a rollershutter item.
321 |
# File 'lib/openhab/core/items/item.rb', line 321 def_type_predicate(:rollershutter) |
#string_item? ⇒ true, false
If the item is a group item, it will also return true if the base item is a string item.
Check if the item is a string item.
322 |
# File 'lib/openhab/core/items/item.rb', line 322 def_type_predicate(:string) |
#switch_item? ⇒ true, false
Color and dimmer items are also considered switch items.
If the item is a group item, it will also return true if the base item is a switch item.
Check if the item is a switch item.
324 |
# File 'lib/openhab/core/items/item.rb', line 324 def_type_predicate(:switch) |
#tagged?(*tags) ⇒ true, false
Checks if this item has at least one of the given tags.
240 241 242 243 244 245 246 247 248 249 250 251 252 |
# File 'lib/openhab/core/items/item.rb', line 240 def tagged?(*tags) tags.map! do |tag| # @deprecated OH3.4 if tag.is_a?(Module) tag.simple_name elsif defined?(Semantics::SemanticTag) && tag.is_a?(Semantics::SemanticTag) tag.name else tag end end !(self.tags.to_a & tags).empty? end |
#thing ⇒ Thing Also known as: linked_thing
Return the item's thing if this item is linked with a thing. If an item is linked to more than one thing, this method only returns the first thing.
258 259 260 |
# File 'lib/openhab/core/items/item.rb', line 258 def thing all_linked_things.first end |
#things ⇒ Array<Thing> Also known as: all_linked_things
Returns all of the item's linked things.
266 267 268 |
# File 'lib/openhab/core/items/item.rb', line 266 def things Things::Links::Provider.registry.get_bound_things(name).map { |thing| Things::Proxy.new(thing) } end |