openhab-scripting 2.19.0 → 2.20.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 64cbcfa58ba3a4d63a88514b61fdbe811a317e3902c61e16119e0d97a89a3523
4
- data.tar.gz: 075ca2dbc459da17c0c2f13b6a05bf6c8ffb829b5d0f96965b449820db59b216
3
+ metadata.gz: c8d7de90fee54798d88e51a4ea9f7ac6437852d7c4eb5da2b847700f0dedd5de
4
+ data.tar.gz: 9a91e9a2ee0d977f4e2a0dd9b0ba50b1db89c71554596bfd8ca86bd9ec168d68
5
5
  SHA512:
6
- metadata.gz: 4ae006b45842d227600eaaeb094285800bddf16935388d6c686112c31bd596ddc8d7fa53eebc6d1b83c0e4053c379662fbfcebab441794bdc183143c27004f92
7
- data.tar.gz: 0506ac926852a72f400d8c47d701205e27a22b3514878a366eba39812b5226358c1a5e11a95bce3376b03fef2adceac9ccc1f76e5d3dca0a079b2883d565e8ea
6
+ metadata.gz: 1d956f08c8884347de414eb9de04a69184c9d95a39c35bd0ff8685ceefb28efe64945a944a87efd11da16f5dceda77be453693b84cc816a7541e3e923b218479
7
+ data.tar.gz: ab3fd69c22c115a03848b112922f9b489d69c35a1bac3040ef40c9a73ffa8540e73318011768647fe0793a197973239e028949126a83ed233340efbeb667f490
@@ -101,10 +101,10 @@ module OpenHAB
101
101
  #
102
102
  # Get the string representation of the state of the item
103
103
  #
104
- # @return [String] State of the item as a string if not UNDEF or NULL, nil otherwise
104
+ # @return [String] State of the item as a string
105
105
  #
106
106
  def to_s
107
- state&.to_s
107
+ method(:state).super_method.call.to_s # call the super state to include UNDEF/NULL
108
108
  end
109
109
 
110
110
  #
@@ -134,6 +134,18 @@ module OpenHAB
134
134
  end
135
135
  end
136
136
 
137
+ #
138
+ # Implements Hash#dig-like functionaity to metadata
139
+ #
140
+ # @param [String] key The first key
141
+ # @param [Array<String, Symbol>] keys More keys to dig deeper
142
+ #
143
+ # @return [OpenHAB::DSL::MonkeyPatch::Items::MetadataItem], or nil if the namespace doesn't exist
144
+ #
145
+ def dig(key, *keys)
146
+ keys.empty? ? self[key]&.value : self[key]&.dig(*keys)
147
+ end
148
+
137
149
  #
138
150
  # Enumerates through all the namespaces
139
151
  #
@@ -70,7 +70,7 @@ module OpenHAB
70
70
  def create_queue(inputs)
71
71
  case check_guards(event: inputs&.dig('event'))
72
72
  when true
73
- @run_queue.dup
73
+ @run_queue.dup.grep_v(RuleConfig::Otherwise)
74
74
  when false
75
75
  @run_queue.dup.grep(RuleConfig::Otherwise)
76
76
  end
@@ -145,16 +145,14 @@ module OpenHAB
145
145
  #
146
146
  #
147
147
  def process_trigger_delay(trigger_delay, mod, inputs)
148
- if check_trigger_guards(trigger_delay, inputs)
148
+ if trigger_delay.timer_active?
149
+ process_active_timer(inputs, mod, trigger_delay)
150
+ elsif check_trigger_guards(trigger_delay, inputs)
149
151
  logger.trace("Trigger Guards Matched for #{trigger_delay}, delaying rule execution")
150
152
  # Add timer and attach timer to delay object, and also state being tracked to so timer can be cancelled if
151
153
  # state changes
152
154
  # Also another timer should not be created if changed to same value again but instead rescheduled
153
- if trigger_delay.timer_active?
154
- process_active_timer(inputs, mod, trigger_delay)
155
- else
156
- create_trigger_delay_timer(inputs, mod, trigger_delay)
157
- end
155
+ create_trigger_delay_timer(inputs, mod, trigger_delay)
158
156
  else
159
157
  logger.trace("Trigger Guards did not match for #{trigger_delay}, ignoring trigger.")
160
158
  end
@@ -173,7 +171,8 @@ module OpenHAB
173
171
  trigger_delay.timer = after(trigger_delay.duration) do
174
172
  logger.trace("Delay Complete for #{trigger_delay}, executing rule")
175
173
  trigger_delay.timer = nil
176
- process_queue(@run_queue.dup, mod, inputs)
174
+ queue = create_queue(inputs)
175
+ process_queue(queue, mod, inputs)
177
176
  end
178
177
  trigger_delay.tracking_to = inputs['newState']
179
178
  end
@@ -5,5 +5,5 @@
5
5
  #
6
6
  module OpenHAB
7
7
  # @return [String] Version of OpenHAB helper libraries
8
- VERSION = '2.19.0'
8
+ VERSION = '2.20.1'
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openhab-scripting
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.19.0
4
+ version: 2.20.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian O'Connell
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-15 00:00:00.000000000 Z
11
+ date: 2021-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler