mqtt-homie-homeassistant 1.0.6 → 1.1.0

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: f074f72b825d7bd2a1ea3738c280ffeee0ba794e7c7a5018e4e5dac68a823da4
4
- data.tar.gz: 2dab1a161248b41aa76a3eb2a30a076e5aa4f6c64d7478244b94d3633625c25b
3
+ metadata.gz: f7a067f82919d4200a446e8200bb203182c9accabc4dd46c5571f0f479b05d8d
4
+ data.tar.gz: 4c6103167d5c02ae41759331edae2236ed3b5c640c5ce1b59f6fc8df33639abf
5
5
  SHA512:
6
- metadata.gz: 7b9ac095761dc5891d9c3f2809633b578dec8cbb78a6f3cd6f40a409d89550d6676a7834a711efcfa5e2b2e537a0319dd906b7217c5860df49b5946792d20139
7
- data.tar.gz: e1d68f4ba1d974212e0a034f49bfb28c638d6a6c900171c59c7f8133f15a0169e2aedc69ca656d43a2d592ab005d8d7a5b0cf8ece3f20ccff283e7417b6833ad
6
+ metadata.gz: 5a22217955039685036ec7810838128d73143b5c8656ea9e5ce7385bb74f741da1464e7d8331a33b9bd7eb3a85b0d8d753e4a4d0358e7fd906302bf543d0c8cb
7
+ data.tar.gz: d289686bca09dc679bc0050c7d21c3ecc2f283644c8cd6edd1c75c35085749b278d3db2a8b0d490fbf5b21ac027eb3db0b8356a5773669717f825eb878690b1a
@@ -4,11 +4,20 @@ module MQTT
4
4
  module Homie
5
5
  module HomeAssistant
6
6
  module Device
7
- def self.included(klass)
7
+ def self.prepended(klass)
8
8
  super
9
9
  klass.attr_accessor :home_assistant_device, :home_assistant_discovery_prefix
10
10
  end
11
11
 
12
+ def initialize(*args, home_assistant_discovery: true, **kwargs)
13
+ super(*args, **kwargs)
14
+ @home_assistant_discovery = home_assistant_discovery
15
+ end
16
+
17
+ def home_assistant_discovery?
18
+ @home_assistant_discovery
19
+ end
20
+
12
21
  # @!visibility private
13
22
  def base_hass_config(config)
14
23
  config[:availability] = [{
@@ -20,11 +29,11 @@ module MQTT
20
29
  config[:device][:name] ||= name
21
30
  config[:device][:identifiers] ||= id
22
31
  config[:device][:sw_version] ||= MQTT::Homie::Device::VERSION
23
- config[:node_id] = id
32
+ config[:node_id] ||= id
24
33
  config[:qos] = 1
25
34
  end
26
35
  end
27
36
  end
28
- Device.include(HomeAssistant::Device)
37
+ Device.prepend(HomeAssistant::Device)
29
38
  end
30
39
  end
@@ -184,6 +184,8 @@ module MQTT
184
184
  end
185
185
 
186
186
  def publish_hass_component(device: nil, discovery_prefix: nil, object_id: nil, **kwargs)
187
+ return unless self.device.home_assistant_discovery?
188
+
187
189
  discovery_prefix ||= self.device.home_assistant_discovery_prefix
188
190
  device = self.device.home_assistant_device.merge(device || {}) if self.device.home_assistant_device
189
191
 
@@ -193,6 +195,7 @@ module MQTT
193
195
  kwargs[:discovery_prefix] ||= discovery_prefix
194
196
  kwargs[:unique_id] ||= "#{self.device.id}_#{object_id}"
195
197
  self.device.base_hass_config(kwargs)
198
+
196
199
  if published?
197
200
  self.device.mqtt.publish_hass_component(object_id, **kwargs)
198
201
  else
@@ -132,6 +132,7 @@ module MQTT
132
132
  if !read_only && settable?
133
133
  config[:"#{prefix}command_topic"] = "#{topic}/set"
134
134
  config[:"#{prefix}command_template"] = "{{ value | round(0) }}" if datatype == :integer
135
+ config[:optimistic] = true if optimistic? && !config.key?(:optimistic)
135
136
  end
136
137
  config.merge!(templates.slice(:"#{prefix}template", :"#{prefix}command_template"))
137
138
  end
@@ -150,6 +151,8 @@ module MQTT
150
151
  private
151
152
 
152
153
  def publish_hass_component(device: nil, discovery_prefix: nil, object_id: nil, **kwargs)
154
+ return unless self.device.home_assistant_discovery?
155
+
153
156
  discovery_prefix ||= self.device.home_assistant_discovery_prefix
154
157
  device = self.device.home_assistant_device.merge(device || {}) if self.device.home_assistant_device
155
158
 
@@ -159,6 +162,7 @@ module MQTT
159
162
  kwargs[:discovery_prefix] ||= discovery_prefix
160
163
  kwargs[:unique_id] ||= "#{self.device.id}_#{object_id}"
161
164
  self.device.base_hass_config(kwargs)
165
+
162
166
  if published?
163
167
  self.device.mqtt.publish_hass_component(object_id, **kwargs)
164
168
  else
@@ -3,7 +3,7 @@
3
3
  module MQTT
4
4
  module Homie
5
5
  module HomeAssistant
6
- VERSION = "1.0.6"
6
+ VERSION = "1.1.0"
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mqtt-homie-homeassistant
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cody Cutrer
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-01-29 00:00:00.000000000 Z
10
+ date: 2025-05-13 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: homie-mqtt
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '1.6'
18
+ version: '1.7'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '1.6'
25
+ version: '1.7'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: mqtt-homeassistant
28
28
  requirement: !ruby/object:Gem::Requirement