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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7a067f82919d4200a446e8200bb203182c9accabc4dd46c5571f0f479b05d8d
|
4
|
+
data.tar.gz: 4c6103167d5c02ae41759331edae2236ed3b5c640c5ce1b59f6fc8df33639abf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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]
|
32
|
+
config[:node_id] ||= id
|
24
33
|
config[:qos] = 1
|
25
34
|
end
|
26
35
|
end
|
27
36
|
end
|
28
|
-
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
|
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
|
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-
|
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.
|
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.
|
25
|
+
version: '1.7'
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: mqtt-homeassistant
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|