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
         
     |