Quantcast
Channel: Configuration - Home Assistant Community
Viewing all articles
Browse latest Browse all 99036

Trying to create an automation to increase light brightness on a press and hold command and stop when released

$
0
0

@BennyB44 wrote:

Ok it’s time to ask for help. I have no coding experience so i apologize if i have made any obvious errors. I have spent weeks searching, reading the docs and learning as much as i can.

I am trying to create a multi press button for our bedside table lamps.
I have currently have a Nodemcu ESP32 with a push button that i have programed to send home assistant events for single click, double click, hold and release from EspHome.

The light is a bulb which i have setup as 3 entities, White, Colour and All (both white and colour for a warm white light) also from EspHome

That works as expected and i can receive all events.

I have single click toggling on the entity id from an input_select. that works fine.

i have Double click changing modes on the input_select and turning the light to that mode.

The problem i have is getting the press and hold to ramp the lights up to full brightness and stop at what ever point i release the button.

I have the hold activate an input_boolean which i use to trigger an automation to run a script to start the lights of a brightness of 5.

I then am trying to get the brightness attribute change to trigger an automation that will loop and run as long as the condition of the input boolean it on. once i release the button the input boolean turns off and so the automation loop should then stop.

I believe where I am having a problem is getting the brightness attribute to trigger the automation.

I have it all in a package which i have included below.

Thanks in advance for any assistance.

    bedroom_lamp:
      name: "Bedroom Lamp"
      initial: false

    bedroom_lamp_dimmer:
      name: "Bedroom Lamp Dimmer"
      initial: false

input_select:
    bedroom_lamp_mode:
      name: Bedroom Lamp Mode
      options:
        - All
        - Colour
        - White
      initial: All
      icon: mdi:lamp

script:
  bedroom_lamp_turn_on:
    alias: Bedroom Lamp Turn On
    sequence:
    - data: {}
      entity_id: light.bedroom_lamps
      service: light.turn_off
    - data_template:
        entity_id: >
            {% if is_state("input_select.bedroom_lamp_mode", "White") %}
              light.bedroom_lamps_white
            {%-elif is_state("input_select.bedroom_lamp_mode", "Colour") %}
              light.bedroom_lamps_colour
            {%-elif is_state("input_select.bedroom_lamp_mode", "All") %}
              light.bedroom_lamps
            {% endif %}
      service: light.turn_on

  bedroom_lamp_dimmer_start:
    alias: Bedroom Lamp Dimmer Start
    sequence:
    - data_template:
        entity_id: >
            {% if is_state("input_select.bedroom_lamp_mode", "White") %}
              light.bedroom_lamps_white
            {%-elif is_state("input_select.bedroom_lamp_mode", "Colour") %}
              light.bedroom_lamps_colour
            {%-elif is_state("input_select.bedroom_lamp", "All") %}
              light.bedroom_lamps
            {% endif %}
        brightness_step: 5
      service: light.turn_on

  bedroom_dimmer_loop:
    alias: Bedroom Lamp Dimmer 
    sequence:
    - condition: state
      entity_id: input_boolean.bedroom_lamp_dimmer
      state: 'on'
    - below: '251'
      condition: numeric_state
      entity_id: light.bedroom_lamps
      value_template: "{{ state.attributes.brightness}}"
    - data_template:
        entity_id: >
            {% if is_state("input_select.bedroom_lamp", "White") %}
              light.bedroom_lamps_white
            {%-elif is_state("input_select.bedroom_lamp", "Colour") %}
              light.bedroom_lamps_colour
            {%-elif is_state("input_select.bedroom_lamp", "All") %}
              light.bedroom_lamps
            {% endif %}
        brightness_step: 5
      service: light.turn_on

automation:

  - id: 'bedroom_lamp_input_boolean_toggle'
    alias: Bedroom Lamp Input Boolean Toggle
    description: ''
    trigger:
    - event_data:
        title: single_click
      event_type: esphome.test_esp_32
      platform: event
    condition: []
    action:
    - data: {}
      entity_id: input_boolean.bedroom_lamp
      service: input_boolean.toggle

  - id: 'bedroom_lamp_turn_on'
    alias: Bedroom Lamp Turn On
    description: ''
    trigger:
    - entity_id: input_boolean.bedroom_lamp
      from: 'off'
      platform: state
      to: 'on'
    condition: []
    action:
    - data: {}
      service: script.bedroom_lamp_turn_on

  - id: 'bedroom_lamp_turn_off'
    alias: Bedroom Lamp Turn off
    description: ''
    trigger:
    - entity_id: input_boolean.bedroom_lamp
      from: 'on'
      platform: state
      to: 'off'
    condition: []
    action:
    - data: {}
      entity_id: light.bedroom_lamps
      service: light.turn_off

  - id: 'bedroom_lamp_mode'
    alias: Bedroom Light Mode
    description: ''
    trigger:
    - event_data:
        title: dbl_click
      event_type: esphome.test_esp_32
      platform: event
    condition: []
    action:
    - data: {}
      entity_id: input_select.bedroom_lamp_mode
      service: input_select.select_next
    - data: {}
      service: script.bedroom_lamp_turn_on

  - id: 'bedroom_lamp_dimmer_input_boolean_turn_on'
    alias: 'Bedroom Lamp Dimmer Input Boolean Turn On'
    trigger:
    - event_data:
        title: hold
      event_type: esphome.test_esp_32
      platform: event
    action:
      - data: {}
        service: input_boolean.turn_on
        entity_id: input_boolean.bedroom_lamp_dimmer

  - id: 'Bedroom_lamp_dimmer_input_boolean_turn_off'
    alias: 'Bedroom Lamp Dimmer Input Boolean Turn Off'
    trigger:
    - event_data:
        title: release
      event_type: esphome.test_esp_32
      platform: event
    action:
      - data: {}
        service: input_boolean.turn_off
        entity_id: input_boolean.bedroom_lamp_dimmer

  - id: 'bedroom_lamp_dimmer_loop_start'
    alias: Bedroom Lamp Dimmer Loop Start
    description: ''
    trigger:
    - entity_id: input_boolean.bedroom_lamp_dimmer
      platform: state
      to: 'on'
    condition: []
    action:
    - data: {}
      service: script.bedroom_lamp_dimmer_start 

  - id: 'bedroom_lamp_dimmer_loop'
    alias: Bedroom Lamp Dimmer Loop
    description: ''
    trigger:
      platform: state
      entity_id: light.bedroom_lamps
    condition:
      - condition: template 
        value_template: >
          {{ trigger.to_state.attributes.brightness !=
            trigger.from_state.attributes.brightness }} 
      - condition: state
        entity_id: input_boolean.bedroom_lamp_dimmer
        state:  'on'
    action:
    - delay: 100ms
    - data: {}
      service: script.bedroom_lamp_dimmer_loop

group:
  bedroom_lamp:
    name: Bedroom Lamp
    entities:
      - input_boolean.bedroom_lamp
      - input_boolean.bedroom_lamp_dimmer
      - input_select.bedroom_lamp_mode
      - script.bedroom_lamp_turn_on
      - script.bedroom_lamp_dimmer_start
      - script.bedroom_dimmer_loop
      - automation.bedroom_lamp_input_boolean_toggle
      - automation.bedroom_lamp_turn_on
      - automation.bedroom_lamp_turn_off
      - automation.bedroom_lamp_mode
      - automation.bedroom_lamp_dimmer_input_boolean_turn_on
      - automation.bedroom_lamp_dimmer_input_boolean_turn_off
      - automation.bedroom_lamp_dimmer_loop_start
      - automation.bedroom_lamp_dimmer_loop

Posts: 1

Participants: 1

Read full topic


Viewing all articles
Browse latest Browse all 99036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>