esphome:
  name: light-control-action-test
host:
api:  # Port will be automatically injected
logger:
  level: DEBUG

globals:
  - id: test_brightness
    type: float
    initial_value: "0.75"

output:
  - platform: template
    id: test_red
    type: float
    write_action:
      - lambda: ""
  - platform: template
    id: test_green
    type: float
    write_action:
      - lambda: ""
  - platform: template
    id: test_blue
    type: float
    write_action:
      - lambda: ""
  - platform: template
    id: test_cold_white
    type: float
    write_action:
      - lambda: ""
  - platform: template
    id: test_warm_white
    type: float
    write_action:
      - lambda: ""

light:
  - platform: rgbww
    name: "Test Light"
    id: test_light
    red: test_red
    green: test_green
    blue: test_blue
    cold_white: test_cold_white
    warm_white: test_warm_white
    cold_white_color_temperature: 6536 K
    warm_white_color_temperature: 2000 K
    effects:
      - random:
          name: "Test Effect"
          transition_length: 10ms
          update_interval: 10ms

button:
  # Test 1: light.turn_on with RGB constants
  - platform: template
    id: btn_turn_on_rgb
    name: "Turn On RGB"
    on_press:
      - light.turn_on:
          id: test_light
          brightness: 1.0
          red: 0.0
          green: 0.0
          blue: 1.0

  # Test 2: light.turn_off
  - platform: template
    id: btn_turn_off
    name: "Turn Off"
    on_press:
      - light.turn_off:
          id: test_light

  # Test 3: light.turn_on with color_temperature
  - platform: template
    id: btn_turn_on_ct
    name: "Turn On CT"
    on_press:
      - light.turn_on:
          id: test_light
          color_temperature: 4000 K
          brightness: 0.8

  # Test 4: light.turn_on with effect
  - platform: template
    id: btn_turn_on_effect
    name: "Turn On Effect"
    on_press:
      - light.turn_on:
          id: test_light
          effect: "Test Effect"

  # Test 5: light.turn_on with effect none to clear it
  - platform: template
    id: btn_clear_effect
    name: "Clear Effect"
    on_press:
      - light.turn_on:
          id: test_light
          effect: "None"

  # Test 6: light.control with cold/warm white
  - platform: template
    id: btn_control_cw
    name: "Control CW"
    on_press:
      - light.control:
          id: test_light
          cold_white: 0.9
          warm_white: 0.1

  # Test 7: light.turn_on with lambda brightness (tests lambda path)
  - platform: template
    id: btn_lambda_brightness
    name: "Lambda Brightness"
    on_press:
      - light.turn_on:
          id: test_light
          brightness: !lambda "return id(test_brightness);"
          red: 1.0
          green: 0.0
          blue: 0.0

  # Test 8: light.turn_on with transition_length
  - platform: template
    id: btn_turn_on_transition
    name: "Turn On Transition"
    on_press:
      - light.turn_on:
          id: test_light
          brightness: 0.5
          transition_length: 0s
          red: 0.5
          green: 0.5
          blue: 0.0
