homie-mqtt 1.6.0 → 1.6.3

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: ac2d4aeded4ffe715b8de38705b648c3aa2c80d378f57435f7e5bd854f8eac22
4
- data.tar.gz: d4503b114004ebed3cd4987ecc1466ff0c3e6637d474477fb8f9e43eaf4e91b0
3
+ metadata.gz: eb087a1fa491f77b56c7231be4578549e946f243546544d26eb02b729ff0f1e0
4
+ data.tar.gz: 21aeb256936a4425c10262bfbb695712708c607358391ff8c7cc886aa9d5cbbf
5
5
  SHA512:
6
- metadata.gz: 02f74510916e8fb1d0ef8d40b3aea41320e9e12973175fb41b004598ab84038f16df3b171bf0c88e22e8fa894096871de17add5ca5aa37194bbda27e1cadecae
7
- data.tar.gz: ffe27a55cf9e3e561a9469b17931b989e589a319b3e9e1aa976641640510bcbabe7f71988688922bd7ce77077f79f50ccf85f742a08d34bd73667bfc93eca5fc
6
+ metadata.gz: ad9843d1d1d2210050dd0e1149bd77ac83213bab6916e168514f632c809f1609192d3d4091f5bac6f1801441d6ba7c95e129b33f6a9f6e32df310ce8e671d1e8
7
+ data.tar.gz: 933767440a03109805b509d9486a3b299c94b713652c4910310d02275a97309a764f98372dbbcd9c6d8c4be0ecd77f26a74161897e9861b2eb2dde145e0cc8d2
@@ -19,8 +19,10 @@ module MQTT
19
19
  @nodes = {}
20
20
  @published = false
21
21
  @out_of_band_topic_proc = block
22
- mqtt = MQTT::Client.new(mqtt) if mqtt.is_a?(String)
23
- @mqtt = mqtt || MQTT::Client.new
22
+ # retry forever
23
+ mqtt = MQTT::Client.new(mqtt, reconnect_limit: nil) if mqtt.is_a?(String)
24
+ mqtt = MQTT::Client.new(reconnect_limit: nil, **mqtt) if mqtt.is_a?(Hash)
25
+ @mqtt = mqtt || MQTT::Client.new(reconnect_limit: nil)
24
26
  @mqtt.set_will("#{topic}/$state", "lost", retain: true, qos: 1)
25
27
 
26
28
  @mqtt.on_reconnect do
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "time"
4
+
3
5
  module MQTT
4
6
  module Homie
5
7
  class Property < Base
@@ -80,7 +82,7 @@ module MQTT
80
82
  return if @value == value
81
83
 
82
84
  @value = value if retained?
83
- publish_value if published?
85
+ publish_value(value) if published?
84
86
  end
85
87
 
86
88
  def unit=(unit)
@@ -158,7 +160,9 @@ module MQTT
158
160
  end
159
161
  end
160
162
  case datatype
161
- when :integer, :float, :enum
163
+ when :integer, :float
164
+ casted_value = nil if format && !range.cover?(casted_value)
165
+ when :enum
162
166
  casted_value = nil if format && !range.include?(casted_value)
163
167
  when :color
164
168
  casted_value = nil if (format == "rgb" && value.max > 255) ||
@@ -189,7 +193,7 @@ module MQTT
189
193
  mqtt.publish("#{topic}/$settable", "true", retain: true, qos: 1) if settable?
190
194
  mqtt.publish("#{topic}/$retained", "false", retain: true, qos: 1) unless retained?
191
195
  mqtt.publish("#{topic}/$unit", unit, retain: true, qos: 1) if unit
192
- publish_value unless value.nil?
196
+ publish_value(value) unless value.nil?
193
197
  subscribe
194
198
  end
195
199
 
@@ -217,7 +221,7 @@ module MQTT
217
221
 
218
222
  private
219
223
 
220
- def publish_value
224
+ def publish_value(value)
221
225
  serialized = value
222
226
  serialized = serialized&.iso8601 if %i[datetime duration].include?(datatype)
223
227
  serialized = serialized.to_s
@@ -2,6 +2,6 @@
2
2
 
3
3
  module MQTT
4
4
  module Homie
5
- VERSION = "1.6.0"
5
+ VERSION = "1.6.3"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: homie-mqtt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cody Cutrer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-09 00:00:00.000000000 Z
11
+ date: 2022-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mqtt-ccutrer
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '1.0'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 1.0.1
22
+ version: 1.0.3
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '1.0'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 1.0.1
32
+ version: 1.0.3
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: ruby2_keywords
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -147,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
147
  - !ruby/object:Gem::Version
148
148
  version: '0'
149
149
  requirements: []
150
- rubygems_version: 3.1.2
150
+ rubygems_version: 3.3.5
151
151
  signing_key:
152
152
  specification_version: 4
153
153
  summary: Library for publishing devices that conform to the Homie spec.