openhab-scripting 5.12.0 → 5.12.1
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d3cc7138b6a4b42066a80ec926d31c2b6f1dc9538ae4498d1b6014be8d8aa1d
|
4
|
+
data.tar.gz: eae0f6ddcde8c3a2b8b6b747554e73dc3b86b63f599f9afe2e50676e4cc8c4f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5fb2a8142e739424fabd68595923588066edc753f62467c6cd1e4b3ab38b9d2b1717d7d24dbfcd96533000fa1adcef1e8470790167d7b5f031dc24ce34c25f82
|
7
|
+
data.tar.gz: 5ea1f6bd0c4926ae9126f388af80c2d69bd643f14495226cad3388150b971080705bea645e52b76308a7c96a48026c5be02ae6ba6408973eba73d22b6bee3626
|
@@ -32,6 +32,36 @@ module OpenHAB
|
|
32
32
|
# end
|
33
33
|
# end
|
34
34
|
#
|
35
|
+
# @example Create a Thing within a Bridge
|
36
|
+
# things.build do
|
37
|
+
# bridge "mqtt:broker:mosquitto", config: { host: "127.0.0.1", enableDiscovery: false } do
|
38
|
+
# thing "mqtt:topic:window1", "My Window Sensor" do
|
39
|
+
# channel "contact1", "contact", config: {
|
40
|
+
# stateTopic: "zigbee2mqtt/window1/contact",
|
41
|
+
# on: "false",
|
42
|
+
# off: "true"
|
43
|
+
# }
|
44
|
+
# end
|
45
|
+
# end
|
46
|
+
# end
|
47
|
+
#
|
48
|
+
# items.build do
|
49
|
+
# contact_item Window1_Contact, channel: "mqtt:topic:window1:contact1"
|
50
|
+
# end
|
51
|
+
#
|
52
|
+
# @example Create a Thing separately from the Bridge
|
53
|
+
# things.build do
|
54
|
+
# bridge = bridge "mqtt:broker:mosquitto", config: { host: "127.0.0.1", enableDiscovery: false }
|
55
|
+
#
|
56
|
+
# thing "mqtt:topic:window1", "My Window Sensor", bridge: bridge do
|
57
|
+
# channel "contact1", "contact", config: {
|
58
|
+
# stateTopic: "zigbee2mqtt/window1/contact",
|
59
|
+
# on: "false",
|
60
|
+
# off: "true"
|
61
|
+
# }
|
62
|
+
# end
|
63
|
+
# end
|
64
|
+
#
|
35
65
|
# @see ThingBuilder#initialize ThingBuilder#initialize for #thing's parameters
|
36
66
|
# @see ChannelBuilder#initialize ChannelBuilder#initialize for #channel's parameters
|
37
67
|
# @see Items::Builder
|
@@ -61,6 +91,7 @@ module OpenHAB
|
|
61
91
|
|
62
92
|
def build(klass, *args, **kwargs, &block)
|
63
93
|
builder = klass.new(*args, **kwargs)
|
94
|
+
builder.parent_builder = self if builder.respond_to?(:parent_builder=)
|
64
95
|
builder.instance_eval(&block) if block
|
65
96
|
thing = builder.build
|
66
97
|
|
@@ -190,6 +221,7 @@ module OpenHAB
|
|
190
221
|
@location = location.label if location.is_a?(Item)
|
191
222
|
@config = config.transform_keys(&:to_s)
|
192
223
|
@enabled = enabled
|
224
|
+
@builder = org.openhab.core.thing.binding.builder.ThingBuilder unless instance_variable_defined?(:@builder)
|
193
225
|
end
|
194
226
|
|
195
227
|
# Add an explicitly configured channel to this item
|
@@ -222,13 +254,12 @@ module OpenHAB
|
|
222
254
|
@channels = merged_channels.values
|
223
255
|
end
|
224
256
|
|
225
|
-
builder =
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
.with_channels(channels)
|
257
|
+
builder = @builder.create(thing_type_uid, uid)
|
258
|
+
.with_label(label)
|
259
|
+
.with_location(location)
|
260
|
+
.with_configuration(configuration)
|
261
|
+
.with_bridge(bridge_uid)
|
262
|
+
.with_channels(channels)
|
232
263
|
|
233
264
|
builder.with_properties(thing_type.properties) if thing_type
|
234
265
|
|
@@ -244,16 +275,26 @@ module OpenHAB
|
|
244
275
|
|
245
276
|
# The BridgeBuilder DSL allows you to customize a thing
|
246
277
|
class BridgeBuilder < ThingBuilder
|
278
|
+
# @!visibility private
|
279
|
+
attr_accessor :parent_builder
|
280
|
+
|
281
|
+
# Constructor for BridgeBuilder
|
282
|
+
# @see ThingBuilder#initialize
|
283
|
+
def initialize(uid, label = nil, binding: nil, type: nil, bridge: nil, location: nil, config: {}, enabled: nil)
|
284
|
+
@builder = org.openhab.core.thing.binding.builder.BridgeBuilder
|
285
|
+
super
|
286
|
+
end
|
287
|
+
|
247
288
|
# Create a new Bridge with this Bridge as its Bridge
|
248
289
|
# @see BridgeBuilder#initialize
|
249
290
|
def bridge(*args, **kwargs, &block)
|
250
|
-
|
291
|
+
parent_builder.bridge(*args, bridge: self, **kwargs, &block)
|
251
292
|
end
|
252
293
|
|
253
294
|
# Create a new Thing with this Bridge as its Bridge
|
254
295
|
# @see ThingBuilder#initialize
|
255
296
|
def thing(*args, **kwargs, &block)
|
256
|
-
|
297
|
+
parent_builder.thing(*args, bridge: self, **kwargs, &block)
|
257
298
|
end
|
258
299
|
end
|
259
300
|
|
@@ -283,7 +324,7 @@ module OpenHAB
|
|
283
324
|
# @param [String] uid The channel's ID.
|
284
325
|
# @param [String, ChannelTypeUID, :trigger] type The concrete type of the channel.
|
285
326
|
# @param [String] label The channel label.
|
286
|
-
# @param [
|
327
|
+
# @param [Thing] thing The thing associated with this channel.
|
287
328
|
# This parameter is not needed for the {ThingBuilder#channel} method.
|
288
329
|
# @param [String] description The channel description.
|
289
330
|
# @param [String] group The group name.
|
data/lib/openhab/dsl/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: 5.12.
|
4
|
+
version: 5.12.1
|
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: 2023-12-
|
13
|
+
date: 2023-12-29 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|