openhab-scripting 3.4.2 → 3.6.2
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/dsl/items/item_delegate.rb +1 -0
- data/lib/openhab/dsl/items/number_item.rb +4 -4
- data/lib/openhab/dsl/monkey_patch/items/items.rb +2 -1
- data/lib/openhab/dsl/monkey_patch/types/decimal_type.rb +2 -1
- data/lib/openhab/dsl/states.rb +2 -1
- data/lib/openhab/dsl/types/quantity.rb +13 -8
- data/lib/openhab/dsl/units.rb +2 -3
- data/lib/openhab/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 32d2b52800d9262e6acafa9d34f52341ff864afdee914656244259172236c00f
|
4
|
+
data.tar.gz: a0bffdf4bc45e3e76054fd3664803bde6a8614eb3fee91572dc5054aeb0e2748
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c6f6cff7d8416cc278ec6ce2553018e3e420e5c02641d37fa1ffe4f6aede13f92a98041c65e1a607aff5e219eaef6e7ab90e9472a308096b4807617c7ab9046f
|
7
|
+
data.tar.gz: abbc99702d523b507c327cd1f77f52e73d8ae1d2ed63be0e3ac06112f6a6287d4a4a65f2ba8fe77f8d71339ce374cdc55fd1db30d95a57415b7c116696c77dac
|
@@ -23,8 +23,8 @@ module OpenHAB
|
|
23
23
|
|
24
24
|
java_import org.openhab.core.library.types.DecimalType
|
25
25
|
java_import org.openhab.core.library.types.QuantityType
|
26
|
-
java_import
|
27
|
-
java_import
|
26
|
+
java_import org.openhab.core.types.util.UnitUtils
|
27
|
+
java_import org.openhab.core.library.unit.Units
|
28
28
|
|
29
29
|
item_type Java::OrgOpenhabCoreLibraryItems::NumberItem
|
30
30
|
|
@@ -93,7 +93,7 @@ module OpenHAB
|
|
93
93
|
# @return [OpenHAB::DSL::Types::Quantity] NumberItem converted to supplied Unit
|
94
94
|
#
|
95
95
|
def |(other)
|
96
|
-
other =
|
96
|
+
other = UnitUtils.parse_unit(other) if other.is_a? String
|
97
97
|
|
98
98
|
if dimension
|
99
99
|
to_qt | other
|
@@ -111,7 +111,7 @@ module OpenHAB
|
|
111
111
|
if dimension
|
112
112
|
Quantity.new(@number_item.get_state_as(QuantityType))
|
113
113
|
else
|
114
|
-
Quantity.new(QuantityType.new(to_d.to_java,
|
114
|
+
Quantity.new(QuantityType.new(to_d.to_java, Units::ONE))
|
115
115
|
end
|
116
116
|
end
|
117
117
|
|
@@ -33,7 +33,7 @@ module OpenHAB
|
|
33
33
|
#
|
34
34
|
#
|
35
35
|
def command(command)
|
36
|
-
command = command.to_java.strip_trailing_zeros if command.is_a? BigDecimal
|
36
|
+
command = command.to_java.strip_trailing_zeros.to_plain_string if command.is_a? BigDecimal
|
37
37
|
logger.trace "Sending Command #{command} to #{id}"
|
38
38
|
BusEvent.sendCommand(self, command.to_s)
|
39
39
|
end
|
@@ -47,6 +47,7 @@ module OpenHAB
|
|
47
47
|
#
|
48
48
|
#
|
49
49
|
def update(update)
|
50
|
+
update = update.to_java.strip_trailing_zeros.to_plain_string if update.is_a? BigDecimal
|
50
51
|
logger.trace "Sending Update #{update} to #{id}"
|
51
52
|
BusEvent.postUpdate(self, update.to_s)
|
52
53
|
end
|
@@ -10,6 +10,7 @@ module OpenHAB
|
|
10
10
|
#
|
11
11
|
module Types
|
12
12
|
java_import Java::OrgOpenhabCoreLibraryTypes::DecimalType
|
13
|
+
java_import org.openhab.core.types.util.UnitUtils
|
13
14
|
|
14
15
|
#
|
15
16
|
# MonkeyPatching Decimal Type
|
@@ -72,7 +73,7 @@ module OpenHAB
|
|
72
73
|
# @return [OpenHAB::Core::DSL::Types::Quantity] NumberItem converted to supplied Unit
|
73
74
|
#
|
74
75
|
def |(other)
|
75
|
-
other =
|
76
|
+
other = UnitUtils.parse_unit(other) if other.is_a? String
|
76
77
|
Quantity.new(QuantityType.new(to_big_decimal, other))
|
77
78
|
end
|
78
79
|
|
data/lib/openhab/dsl/states.rb
CHANGED
@@ -48,7 +48,8 @@ module OpenHAB
|
|
48
48
|
# @return [StateStorage] item states
|
49
49
|
#
|
50
50
|
def store_states(*items)
|
51
|
-
|
51
|
+
items = items.flatten.map { |item| item.respond_to?(:oh_item) ? item.oh_item : item }
|
52
|
+
states = StateStorage.new(BusEvent.storeStates(*items).to_h)
|
52
53
|
if block_given?
|
53
54
|
yield
|
54
55
|
states.restore
|
@@ -23,8 +23,8 @@ module OpenHAB
|
|
23
23
|
|
24
24
|
java_import org.openhab.core.library.types.QuantityType
|
25
25
|
java_import org.openhab.core.library.types.DecimalType
|
26
|
-
java_import
|
27
|
-
java_import
|
26
|
+
java_import org.openhab.core.types.util.UnitUtils
|
27
|
+
java_import org.openhab.core.library.unit.Units
|
28
28
|
|
29
29
|
# @return [Hash] Mapping of operation symbols to BigDecimal methods
|
30
30
|
OPERATIONS = {
|
@@ -48,7 +48,7 @@ module OpenHAB
|
|
48
48
|
@quantity = case quantity
|
49
49
|
when String then QuantityType.new(quantity)
|
50
50
|
when QuantityType then quantity
|
51
|
-
when NumberItem, Numeric then QuantityType.new(quantity.to_d.to_java,
|
51
|
+
when NumberItem, Numeric then QuantityType.new(quantity.to_d.to_java, Units::ONE)
|
52
52
|
else raise ArgumentError, "Unexpected type #{quantity.class} provided to Quantity initializer"
|
53
53
|
end
|
54
54
|
super()
|
@@ -62,7 +62,7 @@ module OpenHAB
|
|
62
62
|
# @return [Quantity] This quantity converted to another unit
|
63
63
|
#
|
64
64
|
def |(other)
|
65
|
-
other =
|
65
|
+
other = UnitUtils.parse_unit(other) if other.is_a? String
|
66
66
|
|
67
67
|
Quantity.new(quantity.to_unit(other))
|
68
68
|
end
|
@@ -164,7 +164,7 @@ module OpenHAB
|
|
164
164
|
# @return [String] Representing details about the quantity object
|
165
165
|
#
|
166
166
|
def inspect
|
167
|
-
if @quantity.unit ==
|
167
|
+
if @quantity.unit == Units::ONE
|
168
168
|
"unit=#{@quantity.unit}, value=#{@quantity.to_string}"
|
169
169
|
else
|
170
170
|
@quantity.to_string
|
@@ -198,7 +198,7 @@ module OpenHAB
|
|
198
198
|
# @return [Boolean] True if the quantity should be unitzed based on the unit and operation, false otherwise
|
199
199
|
#
|
200
200
|
def unitize?(quantity, operation)
|
201
|
-
!(quantity.unit ==
|
201
|
+
!(quantity.unit == Units::ONE && DIMENSIONLESS_NON_UNITIZED_OPERATIONS.include?(operation))
|
202
202
|
end
|
203
203
|
|
204
204
|
#
|
@@ -214,7 +214,7 @@ module OpenHAB
|
|
214
214
|
case quantity.unit
|
215
215
|
when unit
|
216
216
|
quantity
|
217
|
-
when
|
217
|
+
when Units::ONE
|
218
218
|
convert_unit_from_dimensionless(quantity, unit)
|
219
219
|
else
|
220
220
|
convert_unit_from_dimensioned(quantity, unit)
|
@@ -263,7 +263,12 @@ module OpenHAB
|
|
263
263
|
def unitize(quantity_a, quantity_b, operation = nil)
|
264
264
|
logger.trace("Unitizing (#{quantity_a}) and (#{quantity_b})")
|
265
265
|
quantity_a, quantity_b = [quantity_a, quantity_b].map do |qt|
|
266
|
-
unitize?(qt, operation) ? convert_unit(qt) : qt
|
266
|
+
unitize?(qt, operation) ? convert_unit(qt) : qt.to_big_decimal
|
267
|
+
end
|
268
|
+
|
269
|
+
# Make sure the operation is called on the QuantityType
|
270
|
+
if quantity_a.is_a?(Java::JavaMath::BigDecimal) && quantity_b.is_a?(QuantityType) && operation == '*'
|
271
|
+
quantity_a, quantity_b = [quantity_b, quantity_a]
|
267
272
|
end
|
268
273
|
return yield quantity_a, quantity_b if block_given?
|
269
274
|
|
data/lib/openhab/dsl/units.rb
CHANGED
@@ -10,6 +10,7 @@ end
|
|
10
10
|
|
11
11
|
Object.send(:remove_const, :QuantityType)
|
12
12
|
java_import org.openhab.core.library.types.QuantityType
|
13
|
+
java_import org.openhab.core.types.util.UnitUtils
|
13
14
|
|
14
15
|
module OpenHAB
|
15
16
|
module DSL
|
@@ -17,8 +18,6 @@ module OpenHAB
|
|
17
18
|
# Provides support for interacting with OpenHAB Units of Measurement
|
18
19
|
#
|
19
20
|
module Units
|
20
|
-
java_import 'tec.uom.se.format.SimpleUnitFormat'
|
21
|
-
|
22
21
|
#
|
23
22
|
# Sets a thread local variable to the supplied unit such that classes operating inside the block
|
24
23
|
# can perform automatic conversions to the supplied unit for NumberItems
|
@@ -28,7 +27,7 @@ module OpenHAB
|
|
28
27
|
#
|
29
28
|
#
|
30
29
|
def unit(unit)
|
31
|
-
unit =
|
30
|
+
unit = UnitUtils.parse_unit(unit) if unit.is_a? String
|
32
31
|
Thread.current.thread_variable_set(:unit, unit)
|
33
32
|
yield
|
34
33
|
ensure
|
data/lib/openhab/version.rb
CHANGED
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: 3.
|
4
|
+
version: 3.6.2
|
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-
|
11
|
+
date: 2021-06-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -133,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
133
133
|
version: '0'
|
134
134
|
requirements: []
|
135
135
|
rubyforge_project:
|
136
|
-
rubygems_version: 2.7.6.
|
136
|
+
rubygems_version: 2.7.6.3
|
137
137
|
signing_key:
|
138
138
|
specification_version: 4
|
139
139
|
summary: JRuby Helper Libraries for OpenHAB Scripting
|