mqtt-homeassistant 0.1.3 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|