"Config Management" for Z-Wave Devices

I got really annoyed with configuring the same parameters on multiple nodes over and over again and because I couldn’t really find anything to automate this, I put a couple of scripts together to do that. Unfortunately, I am not a programer and it’s probably pretty ugly, but I was hoping that somebody might have a better solution :slight_smile:

script:

  slave_configure_aeotec_switch:
    alias: ZW Aeotec Switch
    sequence:

      - service: script.slave_configure_aeotec_switch_parameter_scheduled
        data:
          entity_id: zwave.example_node_1

      - service: script.slave_configure_aeotec_switch_parameter_scheduled
        data:
          entity_id: zwave.example_node_2

      - service: script.slave_configure_aeotec_switch_parameter_scheduled
        data:
          entity_id: zwave.psw_foyer_spot

      - service: script.slave_configure_aeotec_switch_parameter_scheduled
        data:
          entity_id: zwave.psw_living_column

      - service: script.slave_configure_aeotec_switch_parameter_threshold
        data:
          entity_id: zwave.psw_master_ac

      - service: script.slave_configure_aeotec_switch_parameter_threshold
        data:
          entity_id: zwave.psw_mini_ac_bathroom

      - service: script.slave_configure_aeotec_switch_parameter_threshold
        data:
          entity_id: zwave.psw_office_ac

      - service: script.slave_configure_aeotec_switch_parameter_scheduled
        data:
          entity_id: zwave.psw_office_desk

      - service: script.slave_configure_aeotec_switch_parameter_threshold
        data:
          entity_id: zwave.psw_tech_ac



  slave_configure_aeotec_switch_parameter_scheduled:
    alias: ZW Aeotec Switch Parameter to scheduled
    mode: queued
    max: 10
    fields:
      entity_id:
        description: 'Entity ID of node'
        example: 'zwave.sensor_bathroom'
    sequence:

      # Notification Type: Hail
      - service: zwave.set_config_parameter
        data_template:
          node_id: "{{ state_attr(entity_id,'node_id') }}"
          parameter: 80
          value: "Hail"
      - delay: 00:00:15

      ## Report on Thresholds
      # - service: zwave.set_config_parameter
      #   data_template:
      #     node_id: "{{ state_attr(entity_id,'node_id') }}"
      #     parameter: 90
      #     value: "False"
      # - delay: 00:00:15

      # Group 1 Report Type
      - service: zwave.set_config_parameter
        data_template:
          node_id: "{{ state_attr(entity_id,'node_id') }}"
          parameter: 101
          value: 12
      - delay: 00:00:15

      # Group 2 Report Type
      - service: zwave.set_config_parameter
        data_template:
          node_id: "{{ state_attr(entity_id,'node_id') }}"
          parameter: 102
          value: 0
      - delay: 00:00:15

      ## Group 3 Report Type
      - service: zwave.set_config_parameter
        data_template:
          node_id: "{{ state_attr(entity_id,'node_id') }}"
          parameter: 103
          value: 0
      - delay: 00:00:15

      ## Group 1 Report Interval
      - service: zwave.set_config_parameter
        data_template:
          node_id: "{{ state_attr(entity_id,'node_id') }}"
          parameter: 111
          value: 900
      - delay: 00:00:15

      ## Group 2 Report Interval
      - service: zwave.set_config_parameter
        data_template:
          node_id: "{{ state_attr(entity_id,'node_id') }}"
          parameter: 112
          value: 0
      - delay: 00:00:15

      ## Group 3 Report Interval
      - service: zwave.set_config_parameter
        data_template:
          node_id: "{{ state_attr(entity_id,'node_id') }}"
          parameter: 113
          value: 0
      - delay: 00:00:15

  slave_configure_aeotec_switch_parameter_threshold:
    alias: ZW Aeotec Switch Parameter to threshold
    mode: queued
    max: 10
    fields:
      entity_id:
        description: 'Entity ID of sensor'
        example: 'zwave.sensor_bathroom'
    sequence:

      # Notification Type: Hail
      - service: zwave.set_config_parameter
        data_template:
          node_id: "{{ state_attr(entity_id,'node_id') }}"
          parameter: 80
          value: "Hail"
      - delay: 00:00:15

      # - service: zwave.set_config_parameter
      #   data_template:
      #     node_id: "{{ state_attr(entity_id,'node_id') }}"
      #     parameter: 90
      #     value: "True"
      # - delay: 00:00:15

      # Threshold Watts
      - service: zwave.set_config_parameter
        data_template:
          node_id: "{{ state_attr(entity_id,'node_id') }}"
          parameter: 91
          value: 25
      - delay: 00:00:15

      # Threshold Percent
      # - service: zwave.set_config_parameter
      #   data_template:
      #     node_id: "{{ state_attr(entity_id,'node_id') }}"
      #     parameter: 92
      #     value: 10
      # - delay: 00:00:15

      # Group 1 Report Type
      - service: zwave.set_config_parameter
        data_template:
          node_id: "{{ state_attr(entity_id,'node_id') }}"
          parameter: 101
          value: 12
      - delay: 00:00:15

      # Group 2 Report Type
      - service: zwave.set_config_parameter
        data_template:
          node_id: "{{ state_attr(entity_id,'node_id') }}"
          parameter: 102
          value: 0
      - delay: 00:00:15

      ## Group 3 Report Type
      - service: zwave.set_config_parameter
        data_template:
          node_id: "{{ state_attr(entity_id,'node_id') }}"
          parameter: 103
          value: 0
      - delay: 00:00:15

      ## Group 1 Report Interval
      - service: zwave.set_config_parameter
        data_template:
          node_id: "{{ state_attr(entity_id,'node_id') }}"
          parameter: 111
          value: 900
      - delay: 00:00:15

      ## Group 2 Report Interval
      - service: zwave.set_config_parameter
        data_template:
          node_id: "{{ state_attr(entity_id,'node_id') }}"
          parameter: 112
          value: 0
      - delay: 00:00:15

      ## Group 3 Report Interval
      - service: zwave.set_config_parameter
        data_template:
          node_id: "{{ state_attr(entity_id,'node_id') }}"
          parameter: 113
          value: 0
      - delay: 00:00:15