openhab-scripting 5.19.1 → 5.21.0

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: 509b0ee1752d832802d1193b4291ccf2d1a8f28d38452d900b7b8bf5862917d8
4
- data.tar.gz: c26c325f46def04c214d611ac85977b065eb4fed3f326de075431d93ec9baca5
3
+ metadata.gz: 756e126e160f646932df226702f4174537f335211766d9eba33c2d44cf1c1c70
4
+ data.tar.gz: 6afda8cddcc7a0fd916fe061a2eb2dab4621d46cdcef75138b4c524db05b669d
5
5
  SHA512:
6
- metadata.gz: 612d74470204eaef6f6e2f80c42220a3a111b3b2a65b86d727f4990627ea1f734605fd50f25640dda8dad11cc22771ba73ef299e419c7e7e3e10fdb53b760d2d
7
- data.tar.gz: 82bbfccf67b8895b3781504cd217b84928bca4e675223885d861865b41addbfe7259f036748d764bfec78212e01339cac26d7eb9ea908765d51a5af28fab7972
6
+ metadata.gz: c57f40667e47bacb3c2a2cc62f6fce829413cf832502e1f743cb82fbbc0e5a962800907b27261bea5513020612a8f7652378a7817aa6b0d924c88220ccca7328
7
+ data.tar.gz: 769878c8db809e0ed1815605551fc964de147329209e89517cab012a782b84e8a21e46fa445f3167723eea4f2454bd290a767991e39cfdb6495c742c874d295e
@@ -51,31 +51,85 @@ module OpenHAB
51
51
  module_function
52
52
 
53
53
  #
54
- # Send a notification.
54
+ # Send a notification using
55
+ # {https://next.openhab.org/addons/integrations/openhabcloud/#cloud-notification-actions
56
+ # openHAB Cloud Notification Action}.
55
57
  #
56
58
  # @param msg [String] The message to send.
57
- # @param email [String, nil] The email address to send to. If `nil`,
58
- # the message will be broadcast.
59
- # @param icon [String, Symbol, nil]
60
- # @param severity [String, Symbol, nil]
59
+ # @param email [String, nil] The email address to send to. If `nil`, the message will be broadcast.
60
+ # @param icon [String, Symbol, nil] The icon name
61
+ # (as described in {https://next.openhab.org/docs/configuration/items.html#icons Items}).
62
+ # @param severity [String, Symbol, nil] A description of the severity of the incident.
63
+ # @param title [String, nil] The title of the notification.
64
+ # When `nil`, it defaults to `openHAB` inside the Android and iOS apps.
65
+ # @param on_click [String, nil] The action to be performed when the user clicks on the notification.
66
+ # Specified using the {https://next.openhab.org/addons/integrations/openhabcloud/#action-syntax action syntax}.
67
+ # @param attachment [String, nil] The URL of the media attachment to be displayed with the notification.
68
+ # This URL must be reachable by the push notification client.
69
+ # @param buttons [Array<String>, Hash<String, String>, nil] Buttons to include in the notification.
70
+ # - In array form, each element is specified as `Title=$action`, where `$action` follows the
71
+ # {https://next.openhab.org/addons/integrations/openhabcloud/#action-syntax action syntax}.
72
+ # - In hash form, the keys are the button titles and the values are the actions.
73
+ #
74
+ # The maximum number of buttons is 3.
61
75
  # @return [void]
62
76
  #
77
+ # @note The parameters `title`, `on_click`, `attachment`, and `buttons` were added in openHAB 4.2.
78
+ #
79
+ # @see https://www.openhab.org/addons/integrations/openhabcloud/
80
+ #
63
81
  # @example Send a broadcast notification via openHAB Cloud
64
- # rule 'Send an alert' do
82
+ # rule "Send an alert" do
65
83
  # changed Alarm_Triggered, to: ON
66
- # run { notify 'Red Alert!' }
84
+ # run { notify "Red Alert!" }
85
+ # end
86
+ #
87
+ # @example Provide action buttons in a notification
88
+ # rule "Doorbell" do
89
+ # changed Doorbell, to: ON
90
+ # run do
91
+ # notify "Someone pressed the doorbell!",
92
+ # title: "Doorbell",
93
+ # attachment: "http://myserver.local/cameras/frontdoor.jpg",
94
+ # buttons: {
95
+ # "Show Camera" => "ui:/basicui/app?w=0001&sitemap=cameras",
96
+ # "Unlock Door" => "command:FrontDoor_Lock:OFF"
97
+ # }
98
+ # end
67
99
  # end
68
100
  #
69
- def notify(msg, email: nil, icon: nil, severity: nil)
101
+ def notify(
102
+ msg,
103
+ email: nil,
104
+ icon: nil,
105
+ severity: nil,
106
+ title: nil,
107
+ on_click: nil,
108
+ attachment: nil,
109
+ buttons: nil
110
+ )
70
111
  unless Actions.const_defined?(:NotificationAction)
71
112
  raise NotImplementedError, "NotificationAction is not available. Please install the openHAB Cloud addon."
72
113
  end
73
114
 
115
+ args = []
74
116
  if email
75
- NotificationAction.send_notification(email.to_s, msg.to_s, icon&.to_s, severity&.to_s)
117
+ args.push(:send_notification, email)
76
118
  else
77
- NotificationAction.send_broadcast_notification(msg.to_s, icon&.to_s, severity&.to_s)
119
+ args.push(:send_broadcast_notification)
78
120
  end
121
+ args.push(msg.to_s, icon&.to_s, severity&.to_s)
122
+
123
+ # @!deprecated OH 4.1
124
+ if Core.version >= Core::V4_2
125
+ buttons ||= []
126
+ buttons = buttons.map { |title, action| "#{title}=#{action}" } if buttons.is_a?(Hash)
127
+ raise ArgumentError, "buttons must contain (0..3) elements." unless (0..3).cover?(buttons.size)
128
+
129
+ args.push(title&.to_s, on_click&.to_s, attachment&.to_s, buttons[0]&.to_s, buttons[1]&.to_s, buttons[2]&.to_s)
130
+ end
131
+
132
+ NotificationAction.__send__(*args)
79
133
  end
80
134
  end
81
135
  end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "generic_item"
4
+
5
+ module OpenHAB
6
+ module Core
7
+ module Items
8
+ java_import org.openhab.core.library.items.CallItem
9
+
10
+ #
11
+ # A {CallItem} identifies a telephone call by its origin and destination.
12
+ #
13
+ # @!attribute [r] state
14
+ # @return [StringListType, nil]
15
+ #
16
+ class CallItem < GenericItem
17
+ # @!visibility private
18
+ def format_type(command)
19
+ return command if command.is_a?(Types::StringListType)
20
+ return Types::StringListType.new(command.to_ary.map(&:to_s)) if command.respond_to?(:to_ary)
21
+
22
+ super
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+
29
+ # @!parse CallItem = OpenHAB::Core::Items::CallItem
@@ -134,7 +134,9 @@ module OpenHAB
134
134
  #
135
135
  # The similar method `command!`, however, will always send the command regardless of the item's state.
136
136
  #
137
- # @param [Command] command command to send to the item
137
+ # @param [Command, #to_s] command command to send to the item.
138
+ # When given a {Command} argument, it will be passed directly.
139
+ # Otherwise, the result of `#to_s` will be parsed into a {Command}.
138
140
  # @return [self, nil] nil when `ensure` is in effect and the item was already in the same state,
139
141
  # otherwise the item.
140
142
  #
@@ -143,6 +145,17 @@ module OpenHAB
143
145
  # @see OpenHAB::DSL.ensure_states! ensure_states!
144
146
  # @see DSL::Items::Ensure::Ensurable#ensure ensure
145
147
  #
148
+ # @example Sending a {Command} to an item
149
+ # MySwitch.command(ON) # The preferred method is `MySwitch.on`
150
+ # Garage_Door.command(DOWN) # The preferred method is `Garage_Door.down`
151
+ # SetTemperature.command 20 | "°C"
152
+ #
153
+ # @example Sending a plain number to a {NumberItem}
154
+ # SetTemperature.command(22.5) # if it accepts a DecimalType
155
+ #
156
+ # @example Sending a string to a dimensioned {NumberItem}
157
+ # SetTemperature.command("22.5 °C") # The string will be parsed and converted to a QuantityType
158
+ #
146
159
  def command(command)
147
160
  command = format_command(command)
148
161
  logger.trace "Sending Command #{command} to #{name}"
@@ -165,10 +178,27 @@ module OpenHAB
165
178
  #
166
179
  # Send an update to this item
167
180
  #
168
- # @param [State] state
181
+ # @param [State, #to_s, nil] state the state to update the item.
182
+ # When given a {State} argument, it will be passed directly.
183
+ # Otherwise, the result of `#to_s` will be parsed into a {State} first.
184
+ # If `nil` is passed, the item will be updated to {NULL}.
169
185
  # @return [self, nil] nil when `ensure` is in effect and the item was already in the same state,
170
186
  # otherwise the item.
171
187
  #
188
+ # @example Updating to a {State}
189
+ # DoorStatus.update(OPEN)
190
+ # InsideTemperature.update 20 | "°C"
191
+ #
192
+ # @example Updating to {NULL}, the two following are equivalent:
193
+ # DoorStatus.update(nil)
194
+ # DoorStatus.update(NULL)
195
+ #
196
+ # @example Updating with a plain number
197
+ # PeopleCount.update(5) # A plain NumberItem
198
+ #
199
+ # @example Updating with a string to a dimensioned {NumberItem}
200
+ # InsideTemperature.update("22.5 °C") # The string will be parsed and converted to a QuantityType
201
+ #
172
202
  def update(state)
173
203
  state = format_update(state)
174
204
  logger.trace "Sending Update #{state} to #{name}"
@@ -427,6 +427,7 @@ module OpenHAB
427
427
  end
428
428
  end
429
429
 
430
+ def_type_predicate(:call)
430
431
  def_type_predicate(:color)
431
432
  def_type_predicate(:contact)
432
433
  def_type_predicate(:date_time)
@@ -27,8 +27,7 @@ module OpenHAB
27
27
  #
28
28
  # @example Comparison using Quantity
29
29
  # # Because Power_Usage has a unit, the return value
30
- # # from average_since is a QuantityType which can be
31
- # # compared against a string with quantity
30
+ # # from average_since is a QuantityType
32
31
  # if Power_Usage.average_since(15.minutes.ago) > 5 | "kW"
33
32
  # logger.info("The power usage exceeded its 15 min average)
34
33
  # end
@@ -429,7 +428,7 @@ module OpenHAB
429
428
  # @overload persist(timestamp, state, service = nil)
430
429
  # Persists a state at a given timestamp
431
430
  # @param [#to_zoned_date_time] timestamp The timestamp for the given state to be stored
432
- # @param [Types::State] state The state to be stored
431
+ # @param [Types::State, #to_s] state The state to be stored
433
432
  # @param [Symbol, String] service An optional persistence id instead of the default persistence service.
434
433
  # @return [void]
435
434
  # @since openHAB 4.2
@@ -508,7 +507,20 @@ module OpenHAB
508
507
  # @see last_update
509
508
  # @since openHAB 4.2
510
509
 
511
- %i[last_update next_update].each do |method|
510
+ # @!method last_change(service = nil)
511
+ # Returns the time the item was last changed.
512
+ # @param [Symbol, String] service An optional persistence id instead of the default persistence service.
513
+ # @return [ZonedDateTime, nil] The timestamp of the last update
514
+ # @since openHAB 4.2
515
+
516
+ # @!method next_change(service = nil)
517
+ # Returns the first future change time of the item.
518
+ # @param [Symbol, String] service An optional persistence id instead of the default persistence service.
519
+ # @return [ZonedDateTime, nil] The timestamp of the next update
520
+ # @see last_update
521
+ # @since openHAB 4.2
522
+
523
+ %i[last_update next_update last_change next_change].each do |method|
512
524
  # @deprecated OH 4.1 remove this guard when dropping OH 4.1
513
525
  next unless Actions::PersistenceExtensions.respond_to?(method)
514
526
 
@@ -80,7 +80,10 @@ module OpenHAB
80
80
  # @param value [#to_zoned_date_time, #to_time, #to_str, #to_d, nil]
81
81
  #
82
82
  def initialize(value = nil)
83
- if value.respond_to?(:to_zoned_date_time)
83
+ if value.nil?
84
+ super()
85
+ return
86
+ elsif value.respond_to?(:to_zoned_date_time)
84
87
  super(value.to_zoned_date_time)
85
88
  return
86
89
  elsif value.respond_to?(:to_time)
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "forwardable"
4
+
5
+ require_relative "type"
6
+
7
+ module OpenHAB
8
+ module Core
9
+ module Types
10
+ StringListType = org.openhab.core.library.types.StringListType
11
+
12
+ # {StringListType} can be used for items that are dealing with telephony functionality.
13
+ #
14
+ # The entries can be accessed like an array.
15
+ #
16
+ # @example
17
+ # string_list = StringListType.new("a", "b", "c")
18
+ # logger.info "first entry: #{string_list.first}" # => "a"
19
+ # logger.info "second entry: #{string_list[1]}" # => "b"
20
+ # logger.info "last entry: #{string_list.last}" # => "c"
21
+ # logger.info "length: #{string_list.size}" # => 3
22
+ #
23
+ class StringListType
24
+ extend Forwardable
25
+
26
+ field_reader :typeDetails
27
+
28
+ # @!parse include Command, State
29
+
30
+ # @!visibility private
31
+ def inspect
32
+ "#<OpenHAB::Core::Types::StringListType #{to_a.inspect}>"
33
+ end
34
+
35
+ # @return [Array<String>] the values as an array
36
+ def to_a
37
+ typeDetails.to_a
38
+ end
39
+
40
+ # @!visibility private
41
+ def ==(other)
42
+ return super if other.is_a?(StringListType)
43
+ return to_a == other.to_a if other.respond_to?(:to_a)
44
+
45
+ super
46
+ end
47
+
48
+ # any method that exists on Array gets forwarded to states
49
+ delegate (Array.instance_methods - instance_methods) => :to_a
50
+ end
51
+ end
52
+ end
53
+ end
54
+
55
+ # @!parse StringListType = OpenHAB::Core::Types::StringListType
@@ -56,8 +56,7 @@ module OpenHAB
56
56
  #
57
57
  # Coerce object to a StringType
58
58
  #
59
- # @param [String] other object to coerce to a
60
- # DateTimeType
59
+ # @param [String] other object to coerce to a StringType
61
60
  #
62
61
  # @return [[StringType, StringType], nil]
63
62
  #
@@ -18,7 +18,7 @@ module OpenHAB
18
18
  # @since openHAB 4.1
19
19
  #
20
20
  # @example
21
- # time_series = TimeSeries.new # defaults to :add policy
21
+ # time_series = TimeSeries.new # defaults to :replace policy
22
22
  # .add(Time.at(2), DecimalType.new(2))
23
23
  # .add(Time.at(1), DecimalType.new(1))
24
24
  # .add(Time.at(3), DecimalType.new(3))
@@ -92,6 +92,11 @@ class Time
92
92
  to_java(java.time.ZonedDateTime)
93
93
  end
94
94
 
95
+ # @return [java.time.Instant]
96
+ def to_instant
97
+ to_java(java.time.Instant)
98
+ end
99
+
95
100
  #
96
101
  # Converts to a {ZonedDateTime} if `other`
97
102
  # is also convertible to a ZonedDateTime.
@@ -55,6 +55,8 @@ module OpenHAB
55
55
  end
56
56
  end
57
57
 
58
+ # @return [CallItem]
59
+ def_item_method(:call)
58
60
  # @return [ColorItem]
59
61
  def_item_method(:color)
60
62
  # @return [ContactItem]
@@ -1283,6 +1283,8 @@ module OpenHAB
1283
1283
  # @param [Object] attach Object to be attached to the trigger
1284
1284
  # @return [void]
1285
1285
  #
1286
+ # @see at
1287
+ #
1286
1288
  # @example
1287
1289
  # rule "Daily" do
1288
1290
  # every :day, at: '5:15'
@@ -1297,7 +1299,13 @@ module OpenHAB
1297
1299
  # run { Light.on }
1298
1300
  # end
1299
1301
  #
1300
- # @example
1302
+ # @example Trigger at the time portion of a DateTime Item
1303
+ # rule "Every day at sunset" do
1304
+ # every :day, at: Sunset_Time
1305
+ # run { logger.info "It's getting dark" }
1306
+ # end
1307
+ #
1308
+ # @example Specific day of the week
1301
1309
  # rule "Weekly" do
1302
1310
  # every :monday, at: '5:15'
1303
1311
  # run do
@@ -1305,7 +1313,7 @@ module OpenHAB
1305
1313
  # end
1306
1314
  # end
1307
1315
  #
1308
- # @example
1316
+ # @example Symbolic interval
1309
1317
  # rule "Often" do
1310
1318
  # every :minute
1311
1319
  # run do
@@ -1321,7 +1329,7 @@ module OpenHAB
1321
1329
  # end
1322
1330
  # end
1323
1331
  #
1324
- # @example
1332
+ # @example Duration interval
1325
1333
  # rule "Often" do
1326
1334
  # every 5.minutes
1327
1335
  # run do
@@ -1329,18 +1337,12 @@ module OpenHAB
1329
1337
  # end
1330
1338
  # end
1331
1339
  #
1332
- # @example
1340
+ # @example MonthDay
1333
1341
  # rule 'Every 14th of Feb at 2pm' do
1334
1342
  # every '02-14', at: '2pm'
1335
1343
  # run { logger.info "Happy Valentine's Day!" }
1336
1344
  # end
1337
1345
  #
1338
- # @example
1339
- # rule "Every day at sunset" do
1340
- # every :day, at: Sunset_Time
1341
- # run { logger.info "It's getting dark" }
1342
- # end
1343
- #
1344
1346
  def every(value, at: nil, attach: nil)
1345
1347
  return every(java.time.MonthDay.parse(value), at: at, attach: attach) if value.is_a?(String)
1346
1348
 
@@ -1735,6 +1737,8 @@ module OpenHAB
1735
1737
  # @param [Item, String, Symbol] item The item (or its name)
1736
1738
  # @return [void]
1737
1739
  #
1740
+ # @see every
1741
+ #
1738
1742
  # @example
1739
1743
  # rule "say hello when the kids get home from school" do
1740
1744
  # at HomeFromSchool_Time
@@ -288,7 +288,8 @@ module OpenHAB
288
288
  # If an array is given:
289
289
  # - Scalar elements define the command, and the label is the same as the command.
290
290
  # - Array elements contain the command, label, and optional third element for the icon.
291
- # - Hash elements contain the command, label, and optional icon defined by the corresponding keys.
291
+ # - Hash elements contain the `command`, `release` (optional), `label`, and `icon` (optional)
292
+ # defined by the corresponding keys.
292
293
  #
293
294
  # @since openHAB 4.1 added support for icons
294
295
  #
@@ -314,6 +315,12 @@ module OpenHAB
314
315
  # {command: "auto", label: "Auto"} # no icon
315
316
  # ]
316
317
  #
318
+ # @example Since openHAB 4.2, `release` is also supported in the array of hashes
319
+ # # when `release` is specified, `command` will be sent on press and `release` on release
320
+ # switch mappings: [
321
+ # {label: "On", command: ON, release: OFF, icon: "f7:power"}
322
+ # ]
323
+ #
317
324
  # @return [Hash, Array, nil]
318
325
  # @see LinkableWidgetBuilder#switch
319
326
  # @see https://www.openhab.org/docs/ui/sitemaps.html#mappings
@@ -334,8 +341,9 @@ module OpenHAB
334
341
  widget = super
335
342
  mappings&.each do |cmd, label, icon|
336
343
  mapping = SitemapBuilder.factory.create_mapping
337
- cmd, label, icon = cmd.values_at(:command, :label, :icon) if cmd.is_a?(Hash)
344
+ cmd, release_cmd, label, icon = cmd.values_at(:command, :release, :label, :icon) if cmd.is_a?(Hash)
338
345
  mapping.cmd = cmd.to_s
346
+ mapping.release_cmd = release_cmd.to_s unless release_cmd.nil?
339
347
  mapping.label = label&.to_s || cmd.to_s
340
348
  # @deprecated OH 4.1 the if check is not needed in OH4.1+
341
349
  mapping.icon = icon if icon
@@ -395,32 +403,44 @@ module OpenHAB
395
403
  # @return [true, false, nil]
396
404
  # @note This parameter only works on Android
397
405
  attr_writer :switch
406
+ # Only send the command when the slider is released
407
+ # @return [true, false, nil]
408
+ attr_writer :release_only
398
409
 
399
410
  # (see SetpointBuilder#initialize)
400
- # @!method initialize(item: nil, label: nil, icon: nil, static_icon: nil, range: nil, step: nil, switch: nil, frequency: nil, label_color: nil, value_color: nil, icon_color: nil, visibility: nil)
411
+ # @!method initialize(item: nil, label: nil, icon: nil, static_icon: nil, range: nil, step: nil, switch: nil, frequency: nil, release_only: nil, label_color: nil, value_color: nil, icon_color: nil, visibility: nil)
401
412
  # @param switch [true, false, nil]
402
413
  # A short press on the item toggles the item on or off (see {SliderBuilder#switch=})
403
414
  # @param frequency [Numeric, nil]
404
415
  # How often to send requests (in seconds) (see {SliderBuilder#frequency})
416
+ # @param release_only [true, false, nil]
417
+ # Only send the command when the slider is released (see {SliderBuilder#release_only=})
405
418
  # @!visibility private
406
- def initialize(type, builder_proxy, switch: nil, frequency: nil, **kwargs, &block)
419
+ def initialize(type, builder_proxy, switch: nil, frequency: nil, release_only: nil, **kwargs, &block)
407
420
  super(type, builder_proxy, **kwargs, &block)
408
421
 
409
422
  @switch = switch
410
423
  @frequency = frequency
411
- @switch_enabled = nil
424
+ @release_only = release_only
412
425
  end
413
426
 
414
427
  # (see #switch=)
415
428
  def switch?
416
- @switch_enabled
429
+ @switch
430
+ end
431
+
432
+ # (see #release_only=)
433
+ def release_only?
434
+ @release_only
417
435
  end
418
436
 
419
437
  # @!visibility private
420
438
  def build
421
439
  widget = super
422
- widget.switch_enabled = switch?
440
+ widget.switch_enabled = switch? unless @switch.nil?
423
441
  widget.send_frequency = (frequency * 1000).to_i if frequency
442
+ # @deprecated OH 4.1 remove the version check when dropping OH 4.1 support
443
+ widget.release_only = release_only? if OpenHAB::Core.version >= OpenHAB::Core::V4_2 && !@release_only.nil?
424
444
  widget
425
445
  end
426
446
  end
@@ -936,6 +956,7 @@ module OpenHAB
936
956
  # step: nil,
937
957
  # switch: nil,
938
958
  # frequency: nil,
959
+ # release_only: nil,
939
960
  # label_color: nil,
940
961
  # value_color: nil,
941
962
  # icon_color: nil,
@@ -4,6 +4,6 @@ module OpenHAB
4
4
  module DSL
5
5
  # Version of openHAB helper libraries
6
6
  # @return [String]
7
- VERSION = "5.19.1"
7
+ VERSION = "5.21.0"
8
8
  end
9
9
  end
@@ -5,10 +5,37 @@ module OpenHAB
5
5
  module Actions
6
6
  # redefine these to do nothing so that rules won't fail
7
7
 
8
- module_function
8
+ class NotificationAction
9
+ class << self
10
+ def send_notification(
11
+ email,
12
+ msg,
13
+ icon,
14
+ severity,
15
+ title = nil,
16
+ on_click = nil,
17
+ attachment = nil,
18
+ button1 = nil,
19
+ button2 = nil,
20
+ button3 = nil
21
+ )
22
+ logger.debug("send_notification: #{email}, #{msg}, #{icon}, #{severity}, #{title}, #{on_click}, #{attachment}, #{button1}, #{button2}, #{button3}") # rubocop:disable Layout/LineLength
23
+ end
9
24
 
10
- def notify(msg, email: nil)
11
- logger.debug("notify: #{msg}")
25
+ def send_broadcast_notification(
26
+ msg,
27
+ icon,
28
+ severity,
29
+ title = nil,
30
+ on_click = nil,
31
+ attachment = nil,
32
+ button1 = nil,
33
+ button2 = nil,
34
+ button3 = nil
35
+ )
36
+ logger.debug("send_broadcast_notification: #{msg}, #{icon}, #{severity}, #{title}, #{on_click}, #{attachment}, #{button1}, #{button2}, #{button3}") # rubocop:disable Layout/LineLength
37
+ end
38
+ end
12
39
  end
13
40
 
14
41
  class Voice
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.19.1
4
+ version: 5.21.0
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: 2024-05-21 00:00:00.000000000 Z
13
+ date: 2024-06-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -263,6 +263,7 @@ files:
263
263
  - lib/openhab/core/events/timer_event.rb
264
264
  - lib/openhab/core/items.rb
265
265
  - lib/openhab/core/items/accepted_data_types.rb
266
+ - lib/openhab/core/items/call_item.rb
266
267
  - lib/openhab/core/items/color_item.rb
267
268
  - lib/openhab/core/items/contact_item.rb
268
269
  - lib/openhab/core/items/date_time_item.rb
@@ -348,6 +349,7 @@ files:
348
349
  - lib/openhab/core/types/refresh_type.rb
349
350
  - lib/openhab/core/types/rewind_fastforward_type.rb
350
351
  - lib/openhab/core/types/stop_move_type.rb
352
+ - lib/openhab/core/types/string_list_type.rb
351
353
  - lib/openhab/core/types/string_type.rb
352
354
  - lib/openhab/core/types/time_series.rb
353
355
  - lib/openhab/core/types/type.rb
@@ -485,7 +487,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
485
487
  - !ruby/object:Gem::Version
486
488
  version: '0'
487
489
  requirements: []
488
- rubygems_version: 3.5.10
490
+ rubygems_version: 3.5.14
489
491
  signing_key:
490
492
  specification_version: 4
491
493
  summary: JRuby Helper Libraries for openHAB Scripting