MQTT Automations firing twice when MQTT discovery is enabled

I’m working on tracking down a bug in my HASP project and I’ve narrowed it down to behavior I’m seeing in Hass where MQTT messages incoming under the homeassistant namespace trigger automations twice, but only if discovery is enabled.

I’ve deployed a clean installation of Hass 0.67.1 on a VM named hasstest running a new installation of Ubuntu 16.04. I have added the following lines to the stock config (link to full configuration.yaml):

mqtt:
  discovery: true

I’ve then created two simple automations in automations.yaml as shown below:

- alias: TestAutomation1
  trigger:
  - platform: mqtt
    topic: 'homeassistant/test1'
    payload: 'trigger'
  action:
  - service: mqtt.publish
    data:
      topic: 'homeassistant'
      payload: 'TestAutomation1 response'

- alias: TestAutomation2
  trigger:
  - platform: mqtt
    topic: 'test2/test2'
    payload: 'trigger'
  action:
  - service: mqtt.publish
    data:
      topic: 'homeassistant'
      payload: 'TestAutomation2 response'

When I send the following command, I receive two responses: mosquitto_pub -t homeassistant/test1 -m trigger -h hasstest -V mqttv311

2018-04-22 09:22:10.906 homeassistant/test1 trigger
2018-04-22 09:22:10.947 homeassistant TestAutomation1 response
2018-04-22 09:22:10.984 homeassistant TestAutomation1 response

When I send the following command, I only receive one response: mosquitto_pub -t test2/test2 -m trigger -h hasstest -V mqttv311

2018-04-22 09:22:13.508 test2/test2 trigger
2018-04-22 09:22:13.548 homeassistant TestAutomation2 response

If I comment out discovery: true from configuration.yaml, the behavior reverts to what I would expect - one trigger == one action.

Figured this might be worth a bug report, so here it is: https://github.com/home-assistant/home-assistant/issues/14047

1 Like

Looks like this is expected behavior. I’ll have to make some changes to the HASP project to accommodate.