Set Generic Thermostat to off after reaching set temperature

I am using the Generic Thermostate as a climate control.

I would like the Thermostat to go back to Off after reaching the desired temperature instead of Idle I believe Idle can be retrieved from attribute hvac_action per the docs.

I have the automation below triggered every 1min, but when I put my thermostat in Idle and wait many minutes, nothing happens. The automation doesn’t get executed automatically. If I manually click the Execute button from the automations page it turns the thermostat off regardless if it’s heating or in idle. What am I missing here?

- id: '1608148886861'
  alias: Test
  description: ''
  trigger:
  - platform: time_pattern
    minutes: "/1"
  condition:
  - condition: state
    entity_id: climate.hot_tub
    state: Idle
    attribute: hvac_action
  action:
  - service: climate.turn_off
    data: {}
    entity_id: climate.hot_tub
  mode: parallel
  max: 2

I found two solutions to this eventually. One is to trigger the device to OFF when it goes to state idle

- alias: Idle to Off
  trigger:
  - platform: state
    entity_id: climate.hot_tub
    attribute: hvac_action
    to: idle
  action:
  - service: climate.turn_off
    data:
      entity_id: climate.hot_tub

This solution works well, however it makes for a weird UX when you turn the hot tub ON but the temperature is set below the current temp as it goes to idle then immediately off. So below I wrote basically the same automation but it’s triggered every minute instead

- alias: Check Hot Tub Idle
  trigger:
  - platform: time_pattern
    minutes: /1
  condition:
  - condition: state
    entity_id: climate.hot_tub
    state: idle
    attribute: hvac_action
  action:
  - service: climate.turn_off
    data:
      entity_id: climate.hot_tub