homie-mqtt 1.6.0 → 1.6.3

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: 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.