mqtt-homeassistant 0.1.3 → 0.1.5
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/mqtt/home_assistant/version.rb +1 -1
- data/lib/mqtt/home_assistant.rb +27 -20
- 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: 96765202ae955e74f283eb348c22fed1c8bd4cd792aa9792ef071cc5f4bf68c3
|
4
|
+
data.tar.gz: bfd420db58ba339dd034c177b5352b9dee84063cd2800f7db21fbe5a125ee8ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb2f2bd2d70e208ad42a9420723088d16c33cb4607104f7b3edcaaf26a0c7a04211bd2ba04d9c31e26df84cdbd71b726ad1b995b2d34afb580648b6ee540d0fd
|
7
|
+
data.tar.gz: c1ee571c04ddeea59975ea544dddd1690607ae58fd4bd7c7e825879b8357bcaf405389cdb9c7154e6ce91a4f2a1562742676d5aba5d36acd21bcbbd74f7f5f17
|
data/lib/mqtt/home_assistant.rb
CHANGED
@@ -97,7 +97,7 @@ module MQTT
|
|
97
97
|
end
|
98
98
|
|
99
99
|
config = base_config(property.device,
|
100
|
-
property.
|
100
|
+
"#{property.node.name} #{property.name}",
|
101
101
|
device_class: device_class,
|
102
102
|
device: device,
|
103
103
|
entity_category: entity_category,
|
@@ -105,7 +105,7 @@ module MQTT
|
|
105
105
|
.merge({
|
106
106
|
payload_off: "false",
|
107
107
|
payload_on: "true",
|
108
|
-
|
108
|
+
object_id: "#{property.node.id}_#{property.id}",
|
109
109
|
state_topic: property.topic
|
110
110
|
})
|
111
111
|
config[:expire_after] = expire_after if expire_after
|
@@ -159,11 +159,12 @@ module MQTT
|
|
159
159
|
node = properties.first.last.node
|
160
160
|
|
161
161
|
config = base_config(node.device,
|
162
|
-
name || node.
|
162
|
+
name || node.name,
|
163
163
|
device: device,
|
164
164
|
entity_category: entity_category,
|
165
165
|
icon: icon)
|
166
|
-
|
166
|
+
|
167
|
+
config[:object_id] = id || node.id
|
167
168
|
read_only_props = %i[action current_temperature]
|
168
169
|
properties.each do |prefix, property|
|
169
170
|
add_property(config, property, prefix, templates: templates, read_only: read_only_props.include?(prefix))
|
@@ -210,7 +211,7 @@ module MQTT
|
|
210
211
|
icon: nil
|
211
212
|
)
|
212
213
|
config = base_config(property.device,
|
213
|
-
name || property.node.
|
214
|
+
name || property.node.name,
|
214
215
|
device: device,
|
215
216
|
device_class: device_class,
|
216
217
|
entity_category: entity_category,
|
@@ -248,7 +249,7 @@ module MQTT
|
|
248
249
|
end
|
249
250
|
|
250
251
|
config = base_config(property.device,
|
251
|
-
name || property.node.
|
252
|
+
name || property.node.name,
|
252
253
|
device: device,
|
253
254
|
device_class: device_class,
|
254
255
|
entity_category: entity_category,
|
@@ -258,7 +259,7 @@ module MQTT
|
|
258
259
|
target_humidity_command_topic: "#{target_property.topic}/set",
|
259
260
|
payload_off: "false",
|
260
261
|
payload_on: "true",
|
261
|
-
|
262
|
+
object_id: id || property.node.id
|
262
263
|
})
|
263
264
|
add_property(config, property)
|
264
265
|
add_property(config, target_property, :target_humidity)
|
@@ -302,11 +303,11 @@ module MQTT
|
|
302
303
|
end
|
303
304
|
|
304
305
|
config = base_config(property.device,
|
305
|
-
property.
|
306
|
+
"#{property.node.name} #{property.name}",
|
306
307
|
device: device,
|
307
308
|
entity_category: entity_category,
|
308
309
|
icon: icon)
|
309
|
-
config[:
|
310
|
+
config[:object_id] = "#{property.node.id}_#{property.id}"
|
310
311
|
add_property(config, property)
|
311
312
|
case property.datatype
|
312
313
|
when :boolean
|
@@ -350,11 +351,11 @@ module MQTT
|
|
350
351
|
float].include?(property.datatype)
|
351
352
|
|
352
353
|
config = base_config(property.device,
|
353
|
-
property.
|
354
|
+
"#{property.node.name} #{property.name}",
|
354
355
|
device: device,
|
355
356
|
entity_category: entity_category,
|
356
357
|
icon: icon)
|
357
|
-
config[:
|
358
|
+
config[:object_id] = "#{property.node.id}_#{property.id}"
|
358
359
|
add_property(config, property)
|
359
360
|
config[:unit_of_measurement] = property.unit if property.unit
|
360
361
|
if property.range
|
@@ -379,11 +380,11 @@ module MQTT
|
|
379
380
|
end
|
380
381
|
|
381
382
|
config = base_config(property.device,
|
382
|
-
property.
|
383
|
+
"#{property.node.name} #{property.name}",
|
383
384
|
device: device,
|
384
385
|
entity_category: entity_category,
|
385
386
|
icon: icon)
|
386
|
-
config[:
|
387
|
+
config[:object_id] = "#{property.node.id}_#{property.id}"
|
387
388
|
add_property(config, property)
|
388
389
|
config[:payload_on] = property.range.first
|
389
390
|
|
@@ -402,11 +403,11 @@ module MQTT
|
|
402
403
|
raise ArgumentError, "Homie property must be settable" unless property.settable?
|
403
404
|
|
404
405
|
config = base_config(property.device,
|
405
|
-
property.
|
406
|
+
"#{property.node.name} #{property.name}",
|
406
407
|
device: device,
|
407
408
|
entity_category: entity_category,
|
408
409
|
icon: icon)
|
409
|
-
config[:
|
410
|
+
config[:object_id] = "#{property.node.id}_#{property.id}"
|
410
411
|
add_property(config, property)
|
411
412
|
config[:options] = property.range
|
412
413
|
|
@@ -434,13 +435,13 @@ module MQTT
|
|
434
435
|
end
|
435
436
|
|
436
437
|
config = base_config(property.device,
|
437
|
-
property.
|
438
|
+
"#{property.node.name} #{property.name}",
|
438
439
|
device: device,
|
439
440
|
device_class: device_class,
|
440
441
|
entity_category: entity_category,
|
441
442
|
icon: icon)
|
442
443
|
.merge({
|
443
|
-
|
444
|
+
object_id: "#{property.node.id}_#{property.id}",
|
444
445
|
state_topic: property.topic
|
445
446
|
})
|
446
447
|
config[:state_class] = state_class if state_class
|
@@ -462,13 +463,13 @@ module MQTT
|
|
462
463
|
raise ArgumentError, "Homie property must be a boolean" unless property.datatype == :boolean
|
463
464
|
|
464
465
|
config = base_config(property.device,
|
465
|
-
property.
|
466
|
+
"#{property.node.name} #{property.name}",
|
466
467
|
device: device,
|
467
468
|
device_class: device_class,
|
468
469
|
entity_category: entity_category,
|
469
470
|
icon: icon)
|
470
471
|
.merge({
|
471
|
-
|
472
|
+
object_id: "#{property.node.id}_#{property.id}",
|
472
473
|
payload_off: "false",
|
473
474
|
payload_on: "true"
|
474
475
|
})
|
@@ -514,6 +515,7 @@ module MQTT
|
|
514
515
|
|
515
516
|
config = {
|
516
517
|
name: name,
|
518
|
+
node_id: homie_device.id,
|
517
519
|
availability_topic: "#{homie_device.topic}/$state",
|
518
520
|
payload_available: "ready",
|
519
521
|
payload_not_available: "lost",
|
@@ -533,7 +535,12 @@ module MQTT
|
|
533
535
|
end
|
534
536
|
|
535
537
|
def publish(mqtt, component, config, discovery_prefix:)
|
536
|
-
|
538
|
+
node_id, object_id = config.values_at(:node_id, :object_id)
|
539
|
+
config = config.dup
|
540
|
+
config[:unique_id] = "#{node_id}_#{object_id}"
|
541
|
+
config.delete(:node_id)
|
542
|
+
config.delete(:object_id)
|
543
|
+
mqtt.publish("#{discovery_prefix || "homeassistant"}/#{component}/#{node_id}/#{object_id}/config",
|
537
544
|
config.to_json,
|
538
545
|
retain: true,
|
539
546
|
qos: 1)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mqtt-homeassistant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cody Cutrer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: homie-mqtt
|
@@ -140,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: '0'
|
142
142
|
requirements: []
|
143
|
-
rubygems_version: 3.
|
143
|
+
rubygems_version: 3.3.7
|
144
144
|
signing_key:
|
145
145
|
specification_version: 4
|
146
146
|
summary: Library for publishing device auto-discovery configuration for Home Assistant
|