openhab-scripting 4.46.2 → 5.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/actions/audio.rb +47 -0
- data/lib/openhab/core/actions/ephemeris.rb +39 -0
- data/lib/openhab/core/actions/exec.rb +51 -0
- data/lib/openhab/core/actions/http.rb +80 -0
- data/lib/openhab/core/actions/ping.rb +30 -0
- data/lib/openhab/core/actions/transformation.rb +32 -0
- data/lib/openhab/core/actions/voice.rb +36 -0
- data/lib/openhab/core/actions.rb +82 -0
- data/lib/openhab/core/dependency_tracking.rb +34 -0
- data/lib/openhab/core/dto/item_channel_link.rb +33 -0
- data/lib/openhab/core/dto/thing.rb +27 -0
- data/lib/openhab/core/dto.rb +11 -0
- data/lib/openhab/core/entity_lookup.rb +152 -70
- data/lib/openhab/core/events/abstract_event.rb +18 -0
- data/lib/openhab/core/events/abstract_item_registry_event.rb +36 -0
- data/lib/openhab/core/events/abstract_thing_registry_event.rb +40 -0
- data/lib/openhab/core/events/item_command_event.rb +78 -0
- data/lib/openhab/core/events/item_event.rb +22 -0
- data/lib/openhab/core/events/item_state_changed_event.rb +75 -0
- data/lib/openhab/core/events/item_state_event.rb +79 -0
- data/lib/openhab/core/events/thing_status_info_event.rb +55 -0
- data/lib/openhab/core/events.rb +10 -0
- data/lib/openhab/core/items/accepted_data_types.rb +29 -0
- data/lib/openhab/core/items/color_item.rb +52 -0
- data/lib/openhab/core/items/contact_item.rb +52 -0
- data/lib/openhab/core/items/date_time_item.rb +59 -0
- data/lib/openhab/core/items/dimmer_item.rb +148 -0
- data/lib/openhab/core/items/generic_item.rb +292 -0
- data/lib/openhab/core/items/group_item.rb +176 -0
- data/lib/openhab/{dsl → core}/items/image_item.rb +35 -29
- data/lib/openhab/core/items/item.rb +273 -0
- data/lib/openhab/core/items/location_item.rb +34 -0
- data/lib/openhab/core/items/metadata/hash.rb +433 -0
- data/lib/openhab/core/items/metadata/namespace_hash.rb +475 -0
- data/lib/openhab/core/items/metadata/provider.rb +48 -0
- data/lib/openhab/core/items/metadata.rb +11 -0
- data/lib/openhab/core/items/number_item.rb +62 -0
- data/lib/openhab/core/items/numeric_item.rb +22 -0
- data/lib/openhab/core/items/persistence.rb +416 -0
- data/lib/openhab/core/items/player_item.rb +66 -0
- data/lib/openhab/core/items/provider.rb +44 -0
- data/lib/openhab/core/items/proxy.rb +136 -0
- data/lib/openhab/core/items/registry.rb +86 -0
- data/lib/openhab/core/items/rollershutter_item.rb +68 -0
- data/lib/openhab/core/items/semantics/enumerable.rb +177 -0
- data/lib/openhab/core/items/semantics.rb +473 -0
- data/lib/openhab/core/items/state_storage.rb +53 -0
- data/lib/openhab/core/items/string_item.rb +28 -0
- data/lib/openhab/core/items/switch_item.rb +78 -0
- data/lib/openhab/core/items.rb +108 -0
- data/lib/openhab/{dsl → core}/lazy_array.rb +9 -3
- data/lib/openhab/core/profile_factory.rb +132 -0
- data/lib/openhab/core/provider.rb +230 -0
- data/lib/openhab/core/proxy.rb +130 -0
- data/lib/openhab/core/registry.rb +40 -0
- data/lib/openhab/core/rules/module.rb +26 -0
- data/lib/openhab/core/rules/provider.rb +25 -0
- data/lib/openhab/core/rules/registry.rb +76 -0
- data/lib/openhab/core/rules/rule.rb +150 -0
- data/lib/openhab/core/rules.rb +25 -0
- data/lib/openhab/core/script_handling.rb +78 -20
- data/lib/openhab/core/things/channel.rb +48 -0
- data/lib/openhab/core/things/channel_uid.rb +51 -0
- data/lib/openhab/core/things/item_channel_link.rb +33 -0
- data/lib/openhab/core/things/links/provider.rb +78 -0
- data/lib/openhab/core/things/profile_callback.rb +52 -0
- data/lib/openhab/core/things/provider.rb +29 -0
- data/lib/openhab/core/things/proxy.rb +87 -0
- data/lib/openhab/core/things/registry.rb +73 -0
- data/lib/openhab/core/things/thing.rb +194 -0
- data/lib/openhab/core/things.rb +22 -0
- data/lib/openhab/core/timer.rb +148 -0
- data/lib/openhab/{dsl → core}/types/comparable_type.rb +5 -3
- data/lib/openhab/{dsl → core}/types/date_time_type.rb +55 -127
- data/lib/openhab/{dsl → core}/types/decimal_type.rb +50 -48
- data/lib/openhab/{dsl → core}/types/hsb_type.rb +35 -83
- data/lib/openhab/core/types/increase_decrease_type.rb +34 -0
- data/lib/openhab/core/types/next_previous_type.rb +34 -0
- data/lib/openhab/{dsl → core}/types/numeric_type.rb +20 -7
- data/lib/openhab/core/types/on_off_type.rb +46 -0
- data/lib/openhab/core/types/open_closed_type.rb +41 -0
- data/lib/openhab/{dsl → core}/types/percent_type.rb +19 -20
- data/lib/openhab/core/types/play_pause_type.rb +38 -0
- data/lib/openhab/core/types/point_type.rb +117 -0
- data/lib/openhab/core/types/quantity_type.rb +325 -0
- data/lib/openhab/core/types/raw_type.rb +26 -0
- data/lib/openhab/core/types/refresh_type.rb +27 -0
- data/lib/openhab/core/types/rewind_fastforward_type.rb +38 -0
- data/lib/openhab/core/types/stop_move_type.rb +34 -0
- data/lib/openhab/{dsl → core}/types/string_type.rb +17 -28
- data/lib/openhab/{dsl → core}/types/type.rb +42 -40
- data/lib/openhab/core/types/un_def_type.rb +38 -0
- data/lib/openhab/core/types/up_down_type.rb +50 -0
- data/lib/openhab/core/types.rb +82 -0
- data/lib/openhab/{dsl → core}/uid.rb +4 -23
- data/lib/openhab/core/value_cache.rb +188 -0
- data/lib/openhab/core.rb +98 -0
- data/lib/openhab/core_ext/between.rb +32 -0
- data/lib/openhab/core_ext/ephemeris.rb +53 -0
- data/lib/openhab/core_ext/java/class.rb +34 -0
- data/lib/openhab/core_ext/java/duration.rb +142 -0
- data/lib/openhab/core_ext/java/list.rb +436 -0
- data/lib/openhab/core_ext/java/local_date.rb +104 -0
- data/lib/openhab/core_ext/java/local_time.rb +118 -0
- data/lib/openhab/core_ext/java/map.rb +66 -0
- data/lib/openhab/core_ext/java/month.rb +71 -0
- data/lib/openhab/core_ext/java/month_day.rb +119 -0
- data/lib/openhab/core_ext/java/period.rb +103 -0
- data/lib/openhab/core_ext/java/temporal_amount.rb +34 -0
- data/lib/openhab/core_ext/java/time.rb +62 -0
- data/lib/openhab/core_ext/java/unit.rb +15 -0
- data/lib/openhab/core_ext/java/zoned_date_time.rb +213 -0
- data/lib/openhab/core_ext/ruby/array.rb +21 -0
- data/lib/openhab/core_ext/ruby/date.rb +96 -0
- data/lib/openhab/core_ext/ruby/date_time.rb +55 -0
- data/lib/openhab/core_ext/ruby/module.rb +15 -0
- data/lib/openhab/core_ext/ruby/numeric.rb +195 -0
- data/lib/openhab/core_ext/ruby/range.rb +70 -0
- data/lib/openhab/core_ext/ruby/symbol.rb +7 -0
- data/lib/openhab/core_ext/ruby/time.rb +108 -0
- data/lib/openhab/core_ext.rb +18 -0
- data/lib/openhab/dsl/debouncer.rb +259 -0
- data/lib/openhab/dsl/events/watch_event.rb +18 -0
- data/lib/openhab/dsl/events.rb +9 -0
- data/lib/openhab/dsl/gems.rb +1 -1
- data/lib/openhab/dsl/items/builder.rb +578 -0
- data/lib/openhab/dsl/items/ensure.rb +73 -82
- data/lib/openhab/dsl/items/timed_command.rb +214 -159
- data/lib/openhab/dsl/rules/automation_rule.rb +126 -115
- data/lib/openhab/dsl/rules/builder.rb +1935 -0
- data/lib/openhab/dsl/rules/guard.rb +51 -114
- data/lib/openhab/dsl/rules/name_inference.rb +66 -25
- data/lib/openhab/dsl/rules/property.rb +48 -75
- data/lib/openhab/dsl/rules/rule_triggers.rb +22 -27
- data/lib/openhab/dsl/rules/terse.rb +58 -14
- data/lib/openhab/dsl/rules/triggers/changed.rb +48 -94
- data/lib/openhab/dsl/rules/triggers/channel.rb +9 -40
- data/lib/openhab/dsl/rules/triggers/command.rb +14 -63
- data/lib/openhab/dsl/rules/triggers/conditions/duration.rb +34 -69
- data/lib/openhab/dsl/rules/triggers/conditions/proc.rb +6 -14
- data/lib/openhab/dsl/rules/triggers/cron/cron.rb +48 -82
- data/lib/openhab/dsl/rules/triggers/cron/cron_handler.rb +30 -47
- data/lib/openhab/dsl/rules/triggers/trigger.rb +7 -28
- data/lib/openhab/dsl/rules/triggers/updated.rb +21 -45
- data/lib/openhab/dsl/rules/triggers/watch/watch_handler.rb +257 -102
- data/lib/openhab/dsl/rules/triggers.rb +12 -0
- data/lib/openhab/dsl/rules.rb +8 -0
- data/lib/openhab/dsl/things/builder.rb +299 -0
- data/lib/openhab/{core → dsl}/thread_local.rb +27 -17
- data/lib/openhab/dsl/timer_manager.rb +204 -0
- data/lib/openhab/dsl/version.rb +9 -0
- data/lib/openhab/dsl.rb +979 -0
- data/lib/openhab/log.rb +355 -0
- data/lib/openhab/osgi.rb +68 -0
- data/lib/openhab/rspec/configuration.rb +56 -0
- data/lib/openhab/rspec/example_group.rb +132 -0
- data/lib/openhab/rspec/helpers.rb +458 -0
- data/lib/openhab/rspec/hooks.rb +113 -0
- data/lib/openhab/rspec/jruby.rb +46 -0
- data/lib/openhab/rspec/karaf.rb +851 -0
- data/lib/openhab/rspec/mocks/bundle_install_support.rb +25 -0
- data/lib/openhab/rspec/mocks/bundle_resolver.rb +30 -0
- data/lib/openhab/rspec/mocks/event_admin.rb +146 -0
- data/lib/openhab/rspec/mocks/instance_method_stasher.rb +22 -0
- data/lib/openhab/rspec/mocks/persistence_service.rb +155 -0
- data/lib/openhab/rspec/mocks/safe_caller.rb +40 -0
- data/lib/openhab/rspec/mocks/space.rb +23 -0
- data/lib/openhab/rspec/mocks/synchronous_executor.rb +63 -0
- data/lib/openhab/rspec/mocks/thing_handler.rb +76 -0
- data/lib/openhab/rspec/mocks/timer.rb +134 -0
- data/lib/openhab/rspec/openhab/core/actions.rb +38 -0
- data/lib/openhab/rspec/openhab/core/items/proxy.rb +15 -0
- data/lib/openhab/rspec/openhab/core/things/proxy.rb +27 -0
- data/lib/openhab/rspec/shell.rb +31 -0
- data/lib/openhab/rspec/suspend_rules.rb +50 -0
- data/lib/openhab/rspec.rb +26 -0
- data/lib/openhab/yard/base_helper.rb +19 -0
- data/lib/openhab/yard/cli/stats.rb +23 -0
- data/lib/openhab/yard/code_objects/group_object.rb +23 -0
- data/lib/openhab/yard/code_objects/java/base.rb +31 -0
- data/lib/openhab/yard/code_objects/java/class_object.rb +11 -0
- data/lib/openhab/yard/code_objects/java/field_object.rb +15 -0
- data/lib/openhab/yard/code_objects/java/interface_object.rb +15 -0
- data/lib/openhab/yard/code_objects/java/package_object.rb +11 -0
- data/lib/openhab/yard/code_objects/java/proxy.rb +23 -0
- data/lib/openhab/yard/coderay.rb +17 -0
- data/lib/openhab/yard/handlers/jruby/base.rb +58 -0
- data/lib/openhab/yard/handlers/jruby/class_handler.rb +18 -0
- data/lib/openhab/yard/handlers/jruby/constant_handler.rb +18 -0
- data/lib/openhab/yard/handlers/jruby/java_import_handler.rb +30 -0
- data/lib/openhab/yard/handlers/jruby/mixin_handler.rb +23 -0
- data/lib/openhab/yard/html_helper.rb +78 -0
- data/lib/openhab/yard/markdown_helper.rb +148 -0
- data/lib/openhab/yard/tags/constant_directive.rb +20 -0
- data/lib/openhab/yard/tags/group_directive.rb +24 -0
- data/lib/openhab/yard/tags/library.rb +3 -0
- data/lib/openhab/yard.rb +38 -0
- metadata +475 -106
- data/lib/openhab/core/item_proxy.rb +0 -29
- data/lib/openhab/core/load_path.rb +0 -19
- data/lib/openhab/core/openhab_setup.rb +0 -29
- data/lib/openhab/core/osgi.rb +0 -58
- data/lib/openhab/core/services.rb +0 -24
- data/lib/openhab/dsl/actions.rb +0 -114
- data/lib/openhab/dsl/between.rb +0 -25
- data/lib/openhab/dsl/channel.rb +0 -43
- data/lib/openhab/dsl/dsl.rb +0 -59
- data/lib/openhab/dsl/group.rb +0 -54
- data/lib/openhab/dsl/imports.rb +0 -21
- data/lib/openhab/dsl/items/color_item.rb +0 -76
- data/lib/openhab/dsl/items/comparable_item.rb +0 -62
- data/lib/openhab/dsl/items/contact_item.rb +0 -41
- data/lib/openhab/dsl/items/date_time_item.rb +0 -65
- data/lib/openhab/dsl/items/dimmer_item.rb +0 -65
- data/lib/openhab/dsl/items/generic_item.rb +0 -229
- data/lib/openhab/dsl/items/group_item.rb +0 -127
- data/lib/openhab/dsl/items/item_equality.rb +0 -59
- data/lib/openhab/dsl/items/item_registry.rb +0 -54
- data/lib/openhab/dsl/items/items.rb +0 -109
- data/lib/openhab/dsl/items/location_item.rb +0 -59
- data/lib/openhab/dsl/items/metadata.rb +0 -326
- data/lib/openhab/dsl/items/number_item.rb +0 -17
- data/lib/openhab/dsl/items/numeric_item.rb +0 -87
- data/lib/openhab/dsl/items/persistence.rb +0 -307
- data/lib/openhab/dsl/items/player_item.rb +0 -58
- data/lib/openhab/dsl/items/rollershutter_item.rb +0 -51
- data/lib/openhab/dsl/items/semantics/enumerable.rb +0 -91
- data/lib/openhab/dsl/items/semantics.rb +0 -227
- data/lib/openhab/dsl/items/string_item.rb +0 -51
- data/lib/openhab/dsl/items/switch_item.rb +0 -70
- data/lib/openhab/dsl/monkey_patch/actions/actions.rb +0 -4
- data/lib/openhab/dsl/monkey_patch/actions/script_thing_actions.rb +0 -39
- data/lib/openhab/dsl/monkey_patch/events/events.rb +0 -7
- data/lib/openhab/dsl/monkey_patch/events/item_command.rb +0 -85
- data/lib/openhab/dsl/monkey_patch/events/item_event.rb +0 -28
- data/lib/openhab/dsl/monkey_patch/events/item_state.rb +0 -61
- data/lib/openhab/dsl/monkey_patch/events/item_state_changed.rb +0 -60
- data/lib/openhab/dsl/monkey_patch/events/thing_status_info.rb +0 -33
- data/lib/openhab/dsl/monkey_patch/java/java.rb +0 -4
- data/lib/openhab/dsl/monkey_patch/java/local_time.rb +0 -44
- data/lib/openhab/dsl/monkey_patch/java/time_extensions.rb +0 -50
- data/lib/openhab/dsl/monkey_patch/java/zoned_date_time.rb +0 -45
- data/lib/openhab/dsl/monkey_patch/ruby/number.rb +0 -104
- data/lib/openhab/dsl/monkey_patch/ruby/ruby.rb +0 -6
- data/lib/openhab/dsl/monkey_patch/ruby/string.rb +0 -47
- data/lib/openhab/dsl/monkey_patch/ruby/time.rb +0 -61
- data/lib/openhab/dsl/openhab.rb +0 -30
- data/lib/openhab/dsl/persistence.rb +0 -27
- data/lib/openhab/dsl/rules/item_event.rb +0 -19
- data/lib/openhab/dsl/rules/rule.rb +0 -160
- data/lib/openhab/dsl/rules/rule_config.rb +0 -147
- data/lib/openhab/dsl/rules/triggers/generic.rb +0 -31
- data/lib/openhab/dsl/rules/triggers/triggers.rb +0 -11
- data/lib/openhab/dsl/rules/triggers/watch/watch.rb +0 -81
- data/lib/openhab/dsl/states.rb +0 -89
- data/lib/openhab/dsl/things.rb +0 -147
- data/lib/openhab/dsl/time/month_day.rb +0 -180
- data/lib/openhab/dsl/time/time_of_day.rb +0 -235
- data/lib/openhab/dsl/timers/manager.rb +0 -119
- data/lib/openhab/dsl/timers/reentrant_timer.rb +0 -38
- data/lib/openhab/dsl/timers/timer.rb +0 -132
- data/lib/openhab/dsl/timers.rb +0 -77
- data/lib/openhab/dsl/types/increase_decrease_type.rb +0 -23
- data/lib/openhab/dsl/types/next_previous_type.rb +0 -23
- data/lib/openhab/dsl/types/on_off_type.rb +0 -28
- data/lib/openhab/dsl/types/open_closed_type.rb +0 -29
- data/lib/openhab/dsl/types/play_pause_type.rb +0 -27
- data/lib/openhab/dsl/types/point_type.rb +0 -180
- data/lib/openhab/dsl/types/quantity_type.rb +0 -265
- data/lib/openhab/dsl/types/refresh_type.rb +0 -18
- data/lib/openhab/dsl/types/rewind_fastforward_type.rb +0 -33
- data/lib/openhab/dsl/types/stop_move_type.rb +0 -23
- data/lib/openhab/dsl/types/types.rb +0 -83
- data/lib/openhab/dsl/types/un_def_type.rb +0 -22
- data/lib/openhab/dsl/types/up_down_type.rb +0 -32
- data/lib/openhab/dsl/units.rb +0 -45
- data/lib/openhab/log/configuration.rb +0 -21
- data/lib/openhab/log/logger.rb +0 -282
- data/lib/openhab/version.rb +0 -9
- data/lib/openhab.rb +0 -36
|
@@ -1,105 +1,187 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require_relative 'item_proxy'
|
|
5
|
-
|
|
6
|
-
# Automation lookup and injection of OpenHab entities
|
|
3
|
+
require "ruby2_keywords"
|
|
7
4
|
|
|
8
5
|
module OpenHAB
|
|
9
6
|
module Core
|
|
10
7
|
#
|
|
11
|
-
# Manages access to
|
|
8
|
+
# Manages access to openHAB entities
|
|
9
|
+
#
|
|
10
|
+
# You can access openHAB items and things directly using their name, anywhere `EntityLookup` is available.
|
|
11
|
+
#
|
|
12
|
+
# @note Thing UIDs are separated by a colon `:`. Since it is not a valid symbol for an identifier,
|
|
13
|
+
# it must be replaced with an underscore `_`. So to access `astro:sun:home`, use `astro_sun_home`
|
|
14
|
+
# as an alternative to `things["astro:sun:home"]`
|
|
15
|
+
#
|
|
16
|
+
# @see OpenHAB::DSL.items items[]
|
|
17
|
+
# @see OpenHAB::DSL.things things[]
|
|
18
|
+
#
|
|
19
|
+
# @example Accessing Items and Groups
|
|
20
|
+
# gAll_Lights # Access the gAll_Lights group. It is the same as items["gAll_Lights"]
|
|
21
|
+
# Kitchen_Light.on # The openHAB object for the Kitchen_Light item and send an ON command
|
|
22
|
+
#
|
|
23
|
+
# @example Accessing Things
|
|
24
|
+
# smtp_mail_local.send_mail('me@example.com', 'Subject', 'Dear Person, ...')
|
|
25
|
+
# # Is equivalent to:
|
|
26
|
+
# things['smtp:mail:local'].send_mail('me@example.com', 'Subject', 'Dear Person, ...')
|
|
12
27
|
#
|
|
13
28
|
module EntityLookup
|
|
14
|
-
|
|
29
|
+
# @!visibility private
|
|
30
|
+
module ClassMethods
|
|
31
|
+
# @!attribute [w] create_dummy_items
|
|
32
|
+
# @return [true,false]
|
|
33
|
+
def create_dummy_items=(value)
|
|
34
|
+
@create_dummy_items = value
|
|
35
|
+
end
|
|
15
36
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
# @param [<Type>] args method arguments
|
|
21
|
-
# @param [<Type>] block supplied to missing method
|
|
22
|
-
#
|
|
23
|
-
# @return [Object] Item or Thing if found in registry
|
|
24
|
-
#
|
|
25
|
-
def method_missing(method, *args, &block)
|
|
26
|
-
logger.trace("method missing, performing OpenHab Lookup for: #{method}")
|
|
27
|
-
EntityLookup.lookup_entity(method) || super
|
|
28
|
-
end
|
|
37
|
+
# @return [Boolean] if dummy items should be created in this context
|
|
38
|
+
def create_dummy_items?
|
|
39
|
+
defined?(@create_dummy_items) && @create_dummy_items
|
|
40
|
+
end
|
|
29
41
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
# @return [Boolean] true if this object will respond to the supplied method, false otherwise
|
|
37
|
-
#
|
|
38
|
-
def respond_to_missing?(method_name, _include_private = false)
|
|
39
|
-
logger.trace("Checking if OpenHAB entites exist for #{method_name}")
|
|
40
|
-
method_name = method_name.to_s if method_name.is_a? Symbol
|
|
42
|
+
# @!visibility private
|
|
43
|
+
def inherited(klass)
|
|
44
|
+
super
|
|
45
|
+
|
|
46
|
+
EntityLookup.included(klass)
|
|
47
|
+
end
|
|
41
48
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
EntityLookup.lookup_entity(method_name) ||
|
|
49
|
+
# @!visibility private
|
|
50
|
+
def included(klass)
|
|
45
51
|
super
|
|
52
|
+
|
|
53
|
+
EntityLookup.included(klass)
|
|
54
|
+
end
|
|
46
55
|
end
|
|
47
56
|
|
|
48
|
-
#
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
# @!visibility private
|
|
58
|
+
def self.included(klass)
|
|
59
|
+
klass.singleton_class.prepend(ClassMethods)
|
|
60
|
+
klass.ancestors.each do |ancestor|
|
|
61
|
+
next unless ancestor.singleton_class.ancestors.include?(ClassMethods)
|
|
62
|
+
next if ancestor.create_dummy_items?.nil?
|
|
63
|
+
|
|
64
|
+
klass.create_dummy_items = ancestor.create_dummy_items?
|
|
65
|
+
break
|
|
66
|
+
end
|
|
58
67
|
end
|
|
59
68
|
|
|
60
69
|
#
|
|
61
|
-
#
|
|
62
|
-
#
|
|
63
|
-
# @param [String] name of Thing to lookup in Thing registry
|
|
70
|
+
# Automatically looks up openHAB items and things in appropriate registries
|
|
64
71
|
#
|
|
65
|
-
# @return [Thing
|
|
72
|
+
# @return [Item, Things::Thing, nil]
|
|
66
73
|
#
|
|
67
|
-
def
|
|
68
|
-
|
|
69
|
-
# Convert from : syntax to underscore
|
|
70
|
-
name = name.to_s if name.is_a? Symbol
|
|
74
|
+
ruby2_keywords def method_missing(method, *args)
|
|
75
|
+
return super unless args.empty? && !block_given?
|
|
71
76
|
|
|
72
|
-
|
|
73
|
-
|
|
77
|
+
logger.trace("method missing, performing openHAB Lookup for: #{method}")
|
|
78
|
+
EntityLookup.lookup_entity(method,
|
|
79
|
+
create_dummy_items: self.class.respond_to?(:create_dummy_items?) &&
|
|
80
|
+
self.class.create_dummy_items?) || super
|
|
81
|
+
end
|
|
74
82
|
|
|
75
|
-
|
|
76
|
-
|
|
83
|
+
# @!visibility private
|
|
84
|
+
def respond_to_missing?(method, *)
|
|
85
|
+
logger.trace("Checking if openHAB entities exist for #{method}")
|
|
86
|
+
EntityLookup.lookup_entity(method) || super
|
|
77
87
|
end
|
|
78
88
|
|
|
79
|
-
#
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
89
|
+
# @!visibility private
|
|
90
|
+
def instance_eval_with_dummy_items(&block)
|
|
91
|
+
DSL::ThreadLocal.thread_local(openhab_create_dummy_items: self.class.create_dummy_items?) do
|
|
92
|
+
instance_eval(&block)
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
class << self
|
|
97
|
+
#
|
|
98
|
+
# Looks up an openHAB entity
|
|
99
|
+
# items are checked first, then things
|
|
100
|
+
#
|
|
101
|
+
# @!visibility private
|
|
102
|
+
#
|
|
103
|
+
# @param [String] name of entity to lookup in item or thing registry
|
|
104
|
+
# @param [true, false] create_dummy_items If a dummy {Item} should be created if an actual item can't be found
|
|
105
|
+
#
|
|
106
|
+
# @return [Item, Things::Thing, nil]
|
|
107
|
+
#
|
|
108
|
+
def lookup_entity(name, create_dummy_items: false)
|
|
109
|
+
# make sure we have a nil return
|
|
110
|
+
create_dummy_items = nil if create_dummy_items == false
|
|
111
|
+
lookup_item(name) || lookup_thing_const(name) || (create_dummy_items && Items::Proxy.new(name.to_sym))
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
#
|
|
115
|
+
# Looks up a Thing in the openHAB registry
|
|
116
|
+
#
|
|
117
|
+
# @!visibility private
|
|
118
|
+
#
|
|
119
|
+
# @param [String] uid name of Thing to lookup in Thing registry
|
|
120
|
+
#
|
|
121
|
+
# @return [Things::Thing, nil]
|
|
122
|
+
#
|
|
123
|
+
def lookup_thing(uid)
|
|
124
|
+
logger.trace("Looking up thing '#{uid}'")
|
|
125
|
+
uid = uid.to_s if uid.is_a?(Symbol)
|
|
126
|
+
|
|
127
|
+
uid = Things::ThingUID.new(uid) unless uid.is_a?(Things::ThingUID)
|
|
128
|
+
thing = $things.get(uid)
|
|
129
|
+
return unless thing
|
|
130
|
+
|
|
131
|
+
logger.trace("Retrieved Thing(#{thing}) from registry for uid: #{uid}")
|
|
132
|
+
Things::Proxy.new(thing)
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
#
|
|
136
|
+
# Looks up a Thing in the openHAB registry replacing `_` with `:`
|
|
137
|
+
#
|
|
138
|
+
# @!visibility private
|
|
139
|
+
#
|
|
140
|
+
# @param [String] name of Thing to lookup in Thing registry
|
|
141
|
+
#
|
|
142
|
+
# @return [Things::Thing, nil]
|
|
143
|
+
#
|
|
144
|
+
def lookup_thing_const(name)
|
|
145
|
+
name = name.to_s if name.is_a?(Symbol)
|
|
146
|
+
|
|
147
|
+
if name.is_a?(String)
|
|
148
|
+
# Thing UIDs have at least 3 segments, separated by `_`
|
|
149
|
+
return if name.count("_") < 2
|
|
150
|
+
|
|
151
|
+
# Convert from _ syntax to :
|
|
152
|
+
name = name.tr("_", ":")
|
|
153
|
+
end
|
|
154
|
+
lookup_thing(name)
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
#
|
|
158
|
+
# Lookup openHAB items in item registry
|
|
159
|
+
#
|
|
160
|
+
# @!visibility private
|
|
161
|
+
#
|
|
162
|
+
# @param [String] name of item to lookup
|
|
163
|
+
#
|
|
164
|
+
# @return [Item, nil]
|
|
165
|
+
#
|
|
166
|
+
def lookup_item(name)
|
|
167
|
+
logger.trace("Looking up item '#{name}'")
|
|
168
|
+
name = name.to_s if name.is_a?(Symbol)
|
|
169
|
+
item = $ir.get(name)
|
|
170
|
+
Items::Proxy.new(item) unless item.nil?
|
|
171
|
+
end
|
|
91
172
|
end
|
|
92
173
|
end
|
|
93
174
|
end
|
|
94
175
|
end
|
|
95
176
|
|
|
96
177
|
#
|
|
97
|
-
# Implements const_missing to return
|
|
178
|
+
# Implements const_missing to return openHAB items or things if mapping to missing name if they exist
|
|
98
179
|
#
|
|
99
180
|
# @param [String] name Capital string that was not set as a constant and to be looked up
|
|
100
181
|
#
|
|
101
|
-
# @return [Object]
|
|
182
|
+
# @return [Object] openHAB Item or Thing if their name exist in openHAB item and thing regestries
|
|
102
183
|
#
|
|
103
184
|
def Object.const_missing(name)
|
|
104
|
-
OpenHAB::Core::EntityLookup.lookup_entity(name
|
|
185
|
+
OpenHAB::Core::EntityLookup.lookup_entity(name,
|
|
186
|
+
create_dummy_items: Thread.current[:openhab_create_dummy_items]) || super
|
|
105
187
|
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenHAB
|
|
4
|
+
module Core
|
|
5
|
+
module Events
|
|
6
|
+
java_import org.openhab.core.events.AbstractEvent
|
|
7
|
+
|
|
8
|
+
# Add attachments event data.
|
|
9
|
+
class AbstractEvent
|
|
10
|
+
# @return [Object]
|
|
11
|
+
attr_accessor :attachment
|
|
12
|
+
|
|
13
|
+
# @return [String]
|
|
14
|
+
alias_method :inspect, :to_s
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenHAB
|
|
4
|
+
module Core
|
|
5
|
+
module Events
|
|
6
|
+
java_import org.openhab.core.items.events.AbstractItemRegistryEvent,
|
|
7
|
+
org.openhab.core.items.events.ItemAddedEvent,
|
|
8
|
+
org.openhab.core.items.events.ItemUpdatedEvent,
|
|
9
|
+
org.openhab.core.items.events.ItemRemovedEvent
|
|
10
|
+
|
|
11
|
+
#
|
|
12
|
+
# The {AbstractEvent} sent when an {Item} is added, updated, or removed
|
|
13
|
+
# from its registry.
|
|
14
|
+
#
|
|
15
|
+
# @!attribute [r] item
|
|
16
|
+
# @return [DTO::ItemDTO] The item that triggered this event.
|
|
17
|
+
#
|
|
18
|
+
class AbstractItemRegistryEvent < AbstractEvent; end
|
|
19
|
+
|
|
20
|
+
#
|
|
21
|
+
# The {AbstractEvent} sent with an `item_added` trigger.
|
|
22
|
+
#
|
|
23
|
+
class ItemAddedEvent < AbstractItemRegistryEvent; end
|
|
24
|
+
|
|
25
|
+
#
|
|
26
|
+
# The {AbstractEvent} sent with an `item_updated` trigger.
|
|
27
|
+
#
|
|
28
|
+
class ItemUpdatedEvent < AbstractItemRegistryEvent; end
|
|
29
|
+
|
|
30
|
+
#
|
|
31
|
+
# The {AbstractEvent} sent with an `item_removed` trigger.
|
|
32
|
+
#
|
|
33
|
+
class ItemRemovedEvent < AbstractItemRegistryEvent; end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenHAB
|
|
4
|
+
module Core
|
|
5
|
+
module Events
|
|
6
|
+
java_import org.openhab.core.thing.events.AbstractThingRegistryEvent,
|
|
7
|
+
org.openhab.core.thing.events.ThingAddedEvent,
|
|
8
|
+
org.openhab.core.thing.events.ThingUpdatedEvent,
|
|
9
|
+
org.openhab.core.thing.events.ThingRemovedEvent
|
|
10
|
+
|
|
11
|
+
#
|
|
12
|
+
# The {AbstractEvent} sent when a {Things::Thing Thing} is added,
|
|
13
|
+
# updated, or removed from its registry.
|
|
14
|
+
#
|
|
15
|
+
#
|
|
16
|
+
# @!attribute [r] thing
|
|
17
|
+
# @return [DTO::AbstractThingDTO] The thing that triggered this event.
|
|
18
|
+
#
|
|
19
|
+
class AbstractThingRegistryEvent < AbstractEvent; end
|
|
20
|
+
|
|
21
|
+
#
|
|
22
|
+
# The {AbstractEvent} sent with a
|
|
23
|
+
# {DSL::Rules::BuilderDSL#thing_added thing_added trigger}.
|
|
24
|
+
#
|
|
25
|
+
class ThingAddedEvent < AbstractThingRegistryEvent; end
|
|
26
|
+
|
|
27
|
+
#
|
|
28
|
+
# The {AbstractEvent} sent with a
|
|
29
|
+
# {DSL::Rules::BuilderDSL#thing_updated thing_updated trigger}.
|
|
30
|
+
#
|
|
31
|
+
class ThingUpdatedEvent < AbstractThingRegistryEvent; end
|
|
32
|
+
|
|
33
|
+
#
|
|
34
|
+
# The {AbstractEvent} sent with a
|
|
35
|
+
# {DSL::Rules::BuilderDSL#thing_removed thing_removed trigger}.
|
|
36
|
+
#
|
|
37
|
+
class ThingRemovedEvent < AbstractThingRegistryEvent; end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "item_event"
|
|
4
|
+
|
|
5
|
+
module OpenHAB
|
|
6
|
+
module Core
|
|
7
|
+
module Events
|
|
8
|
+
java_import org.openhab.core.items.events.ItemCommandEvent
|
|
9
|
+
|
|
10
|
+
# {AbstractEvent} sent when an item receives a command.
|
|
11
|
+
class ItemCommandEvent < ItemEvent
|
|
12
|
+
# @!attribute [r] command
|
|
13
|
+
# @return [Command] The command sent to the item.
|
|
14
|
+
alias_method :command, :item_command
|
|
15
|
+
|
|
16
|
+
# @!method refresh?
|
|
17
|
+
# Check if {#command} is {REFRESH}
|
|
18
|
+
# @return [true, false]
|
|
19
|
+
|
|
20
|
+
# @!method on?
|
|
21
|
+
# Check if {#command} is (implicitly convertible to) {ON}
|
|
22
|
+
# @return [true, false]
|
|
23
|
+
|
|
24
|
+
# @!method off?
|
|
25
|
+
# Check if {#command} is (implicitly convertible to) {OFF}
|
|
26
|
+
# @return [true, false]
|
|
27
|
+
|
|
28
|
+
# @!method up?
|
|
29
|
+
# Check if {#command} is (implicitly convertible to) {UP}
|
|
30
|
+
# @return [true, false]
|
|
31
|
+
|
|
32
|
+
# @!method down?
|
|
33
|
+
# Check if {#command} is (implicitly convertible to) {DOWN}
|
|
34
|
+
# @return [true, false]
|
|
35
|
+
|
|
36
|
+
# @!method stop?
|
|
37
|
+
# Check if {#command} is {STOP}
|
|
38
|
+
# @return [true, false]
|
|
39
|
+
|
|
40
|
+
# @!method move?
|
|
41
|
+
# Check if {#command} is {MOVE}
|
|
42
|
+
# @return [true, false]
|
|
43
|
+
|
|
44
|
+
# @!method increase?
|
|
45
|
+
# Check if {#command} is {INCREASE}
|
|
46
|
+
# @return [true, false]
|
|
47
|
+
|
|
48
|
+
# @!method decrease?
|
|
49
|
+
# Check if {#command} is {DECREASE}
|
|
50
|
+
# @return [true, false]
|
|
51
|
+
|
|
52
|
+
# @!method play?
|
|
53
|
+
# Check if {#command} is {PLAY}
|
|
54
|
+
# @return [true, false]
|
|
55
|
+
|
|
56
|
+
# @!method pause?
|
|
57
|
+
# Check if {#command} is {PAUSE}
|
|
58
|
+
# @return [true, false]
|
|
59
|
+
|
|
60
|
+
# @!method rewind?
|
|
61
|
+
# Check if {#command} is {REWIND}
|
|
62
|
+
# @return [true, false]
|
|
63
|
+
|
|
64
|
+
# @!method fast_forward?
|
|
65
|
+
# Check if {#command} is {FASTFORWARD}
|
|
66
|
+
# @return [true, false]
|
|
67
|
+
|
|
68
|
+
# @!method next?
|
|
69
|
+
# Check if {#command} is {NEXT}
|
|
70
|
+
# @return [true, false]
|
|
71
|
+
|
|
72
|
+
# @!method previous?
|
|
73
|
+
# Check if {#command} is {PREVIOUS}
|
|
74
|
+
# @return [true, false]
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenHAB
|
|
4
|
+
module Core
|
|
5
|
+
module Events
|
|
6
|
+
java_import org.openhab.core.items.events.ItemEvent
|
|
7
|
+
|
|
8
|
+
#
|
|
9
|
+
# Adds methods to core openHAB ItemEvent to make it more natural in Ruby
|
|
10
|
+
#
|
|
11
|
+
class ItemEvent < AbstractEvent
|
|
12
|
+
#
|
|
13
|
+
# @!attribute [r] item
|
|
14
|
+
# @return [Item] The item that triggered this event.
|
|
15
|
+
#
|
|
16
|
+
def item
|
|
17
|
+
EntityLookup.lookup_item(item_name)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "item_state_event"
|
|
4
|
+
|
|
5
|
+
module OpenHAB
|
|
6
|
+
module Core
|
|
7
|
+
module Events
|
|
8
|
+
java_import org.openhab.core.items.events.ItemStateChangedEvent
|
|
9
|
+
|
|
10
|
+
#
|
|
11
|
+
# {AbstractEvent} sent when an item's state has changed.
|
|
12
|
+
#
|
|
13
|
+
class ItemStateChangedEvent < ItemEvent
|
|
14
|
+
include ItemState
|
|
15
|
+
|
|
16
|
+
# @!method was_undef?
|
|
17
|
+
# Check if {#was} is {UNDEF}
|
|
18
|
+
# @return [true, false]
|
|
19
|
+
|
|
20
|
+
# @!method was_null?
|
|
21
|
+
# Check if {#was} is {NULL}
|
|
22
|
+
# @return [true, false]
|
|
23
|
+
|
|
24
|
+
# @!method was_on?
|
|
25
|
+
# Check if {#was} is (implicitly convertible to) {ON}
|
|
26
|
+
# @return [true, false]
|
|
27
|
+
|
|
28
|
+
# @!method was_off?
|
|
29
|
+
# Check if {#was} is (implicitly convertible to) {OFF}
|
|
30
|
+
# @return [true, false]
|
|
31
|
+
|
|
32
|
+
# @!method was_up?
|
|
33
|
+
# Check if {#was} is (implicitly convertible to) {UP}
|
|
34
|
+
# @return [true, false]
|
|
35
|
+
|
|
36
|
+
# @!method was_down?
|
|
37
|
+
# Check if {#was} is (implicitly convertible to) {DOWN}
|
|
38
|
+
# @return [true, false]
|
|
39
|
+
|
|
40
|
+
# @!method was_open?
|
|
41
|
+
# Check if {#was} is (implicitly convertible to) {OPEN}
|
|
42
|
+
# @return [true, false]
|
|
43
|
+
|
|
44
|
+
# @!method was_closed?
|
|
45
|
+
# Check if {#was} is (implicitly convertible to) {CLOSED}
|
|
46
|
+
# @return [true, false]
|
|
47
|
+
|
|
48
|
+
# @!method was_playing?
|
|
49
|
+
# Check if {#was} is {PLAY}
|
|
50
|
+
# @return [true, false]
|
|
51
|
+
|
|
52
|
+
# @!method was_paused?
|
|
53
|
+
# Check if {#was} is {PAUSE}
|
|
54
|
+
# @return [true, false]
|
|
55
|
+
|
|
56
|
+
#
|
|
57
|
+
# Check if state was defined (not {UNDEF} or {NULL})
|
|
58
|
+
#
|
|
59
|
+
# @return [true,false]
|
|
60
|
+
#
|
|
61
|
+
def was?
|
|
62
|
+
!old_item_state.is_a?(UnDefType)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
#
|
|
66
|
+
# @!attribute [r] was
|
|
67
|
+
# @return [State, nil] the prior state of the item if it was not {UNDEF} or {NULL}, `nil` otherwise.
|
|
68
|
+
#
|
|
69
|
+
def was
|
|
70
|
+
old_item_state if was?
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenHAB
|
|
4
|
+
module Core
|
|
5
|
+
module Events
|
|
6
|
+
java_import org.openhab.core.items.events.ItemStateEvent
|
|
7
|
+
|
|
8
|
+
#
|
|
9
|
+
# Helpers common to {ItemStateEvent} and {ItemStateChangedEvent}.
|
|
10
|
+
#
|
|
11
|
+
# Methods that refer to implicit conversion mean that for example
|
|
12
|
+
# a PercentType of 100% will be `true` for {#on?}, etc.
|
|
13
|
+
#
|
|
14
|
+
module ItemState
|
|
15
|
+
# @!method undef?
|
|
16
|
+
# Check if {#state} is {UNDEF}
|
|
17
|
+
# @return [true, false]
|
|
18
|
+
|
|
19
|
+
# @!method null?
|
|
20
|
+
# Check if {#state} is {NULL}
|
|
21
|
+
# @return [true, false]
|
|
22
|
+
|
|
23
|
+
# @!method on?
|
|
24
|
+
# Check if {#state} is (implicitly convertible to) {ON}
|
|
25
|
+
# @return [true, false]
|
|
26
|
+
|
|
27
|
+
# @!method off?
|
|
28
|
+
# Check if {#state} is (implicitly convertible to) {OFF}
|
|
29
|
+
# @return [true, false]
|
|
30
|
+
|
|
31
|
+
# @!method up?
|
|
32
|
+
# Check if {#state} is (implicitly convertible to) {UP}
|
|
33
|
+
# @return [true, false]
|
|
34
|
+
|
|
35
|
+
# @!method down?
|
|
36
|
+
# Check if {#state} is (implicitly convertible to) {DOWN}
|
|
37
|
+
# @return [true, false]
|
|
38
|
+
|
|
39
|
+
# @!method open?
|
|
40
|
+
# Check if {#state} is (implicitly convertible to) {OPEN}
|
|
41
|
+
# @return [true, false]
|
|
42
|
+
|
|
43
|
+
# @!method closed?
|
|
44
|
+
# Check if {#state} is (implicitly convertible to) {CLOSED}
|
|
45
|
+
# @return [true, false]
|
|
46
|
+
|
|
47
|
+
# @!method playing?
|
|
48
|
+
# Check if {#state} is {PLAY}
|
|
49
|
+
# @return [true, false]
|
|
50
|
+
|
|
51
|
+
# @!method paused?
|
|
52
|
+
# Check if {#state} is {PAUSE}
|
|
53
|
+
# @return [true, false]
|
|
54
|
+
|
|
55
|
+
#
|
|
56
|
+
# Check if {#state} is defined (not {UNDEF} or {NULL})
|
|
57
|
+
#
|
|
58
|
+
# @return [true, false]
|
|
59
|
+
#
|
|
60
|
+
def state?
|
|
61
|
+
!item_state.is_a?(UnDefType)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
#
|
|
65
|
+
# @!attribute [r] state
|
|
66
|
+
# @return [State, nil] the state of the item if it is not {UNDEF} or {NULL}, `nil` otherwise.
|
|
67
|
+
#
|
|
68
|
+
def state
|
|
69
|
+
item_state if state?
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# {AbstractEvent} sent when an item's state is updated (regardless of if it changed or not).
|
|
74
|
+
class ItemStateEvent < ItemEvent
|
|
75
|
+
include ItemState
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module OpenHAB
|
|
4
|
+
module Core
|
|
5
|
+
module Events
|
|
6
|
+
java_import org.openhab.core.thing.events.ThingStatusInfoChangedEvent,
|
|
7
|
+
org.openhab.core.thing.events.ThingStatusInfoEvent
|
|
8
|
+
|
|
9
|
+
#
|
|
10
|
+
# The {AbstractEvent} sent when a {Things::Thing Thing's} status has changed.
|
|
11
|
+
#
|
|
12
|
+
class ThingStatusInfoChangedEvent < AbstractEvent
|
|
13
|
+
# @!attribute [r] uid
|
|
14
|
+
# @return [Things::ThingUID] The UID of the {Things::Thing Thing} that triggered this event.
|
|
15
|
+
alias_method :uid, :get_thing_uid
|
|
16
|
+
# @!attribute [r] was
|
|
17
|
+
# @return [org.openhab.core.thing.ThingStatusInfo] The thing's prior status.
|
|
18
|
+
alias_method :was, :get_old_status_info
|
|
19
|
+
# @!attribute [r] status
|
|
20
|
+
# @return [org.openhab.core.thing.ThingStatusInfo] The thing's status.
|
|
21
|
+
alias_method :status, :status_info
|
|
22
|
+
|
|
23
|
+
#
|
|
24
|
+
# @!attribute [r] thing
|
|
25
|
+
# @return [Things::Thing] The thing that triggered this event.
|
|
26
|
+
#
|
|
27
|
+
def thing
|
|
28
|
+
EntityLookup.lookup_thing(uid)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# The {AbstractEvent} sent when a {Things::Thing}'s status is set.
|
|
33
|
+
class ThingStatusInfoEvent < AbstractEvent
|
|
34
|
+
#
|
|
35
|
+
# @!attribute [r] uid
|
|
36
|
+
# @return [Things::ThingUID] The UID of the {Things::Thing Thing} that triggered this event.
|
|
37
|
+
#
|
|
38
|
+
alias_method :uid, :get_thing_uid
|
|
39
|
+
#
|
|
40
|
+
# @!attribute [r] status
|
|
41
|
+
# @return [org.openhab.core.thing.ThingStatusInfo] The thing's status.
|
|
42
|
+
#
|
|
43
|
+
alias_method :status, :status_info
|
|
44
|
+
|
|
45
|
+
#
|
|
46
|
+
# @!attribute [r] thing
|
|
47
|
+
# @return [Things::Thing] The thing that triggered this event.
|
|
48
|
+
#
|
|
49
|
+
def thing
|
|
50
|
+
EntityLookup.lookup_thing(uid)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|