Automation works but YAML is ugly

Cannot test it but something like this looks a bit better

- alias: OMG Pilight Elro demultiplexer
  id: 1a9a1234b34641c09824f583c33fd9f5
  trigger:
    platform: mqtt
    topic: home/OpenMQTTGateway_ESP8266_RF/PilighttoMQTT
  condition:
    condition: template
    value_template: "{{ trigger.payload_json.protocol=='elro_800_contac'}}"
  action:
  - service: mqtt.publish
    data_template:
      topic: >
        {% set data = trigger.payload_json %}
        {{ 'homeassistant/binary_sensor/{}{}{}/state'.format(data.protocol, data.message.systemcode, data.message.unitcode) }}
      payload: 'ON'
  - service: mqtt.publish
    data_template:
      topic: >
        {% set data = trigger.payload_json %}
        {{ 'homeassistant/binary_sensor/{}{}{}/config'.format(data.protocol, data.message.systemcode, data.message.unitcode) }}
      payload: >
        {% set data = trigger.payload_json %}
        {% set name = data.protocol ~ data.message.systemcode ~data.message.unitcode %}
        {% set state_topic = 'homeassistant/binary_sensor/{}{}{}/state'.format(data.protocol, data.message.systemcode, data.message.unitcode) %}
        {"name":"{{name}}", "device_class": "motion", "state_topic": "state_topic"}

Details - in templating/Jinja docs.
Cannot comment on the algorithm improvements but it looks a bit repetitive… have you seen this?

HA configs are not the prettiest as YAML and its HA implementation is rather restrictive.

1 Like