Garage Door Open & Close With Voice Assist

Hello

I’ve managed to setup Google Assistant so that when I speak “Turn on garage door 1” a relay on an ESP32 board will trigger and cause the door to move - up or down depending on it’s position (if the door is closed it will open and if the door is open it will close). This is the only command that Google recognizes; it doesn’t recognize “Hey Google - Turn off garage door 1”. So only the voice command of “Hey Google - Turn on garage door 1” can operate the door up or down.

I have a reed switch on the door that indicates if it’s open or closed.

What I would like to happen is for me to say, “Hey Google - Open garage door 1” or “Hey Google - Closed garage door 1”. I would also like google to tell me if I can’t close garage door 1 if it is already closed (based on the reed switch).

Is this possible and how to I go about doing it?

Also can the current temperature be read out loud by Google Assistant from a BME280 sensor?

Here is my code:

# Garage Door Number 1 and 2
output:
  - platform: gpio
    pin: 16
    id: garage_door_1

  - platform: gpio
    pin: 17
    id: garage_door_2  

  - platform: gpio
    pin: GPIO23
    id: power_led

# Define a light component to control the power LED
light:
  - platform: binary
    name: "Power LED"
    output: power_led
    id: power_light

# Define the status LED
status_led:
  pin: GPIO22

button:
  - platform: output
    name: "Garage Door 1"
    icon: "mdi:garage"
    output: garage_door_1
    duration: 250ms

  - platform: output
    name: "Garage Door 2"
    icon: "mdi:garage"
    output: garage_door_2
    duration: 250ms

binary_sensor:
  - platform: gpio
    filters:
      - delayed_on_off: 1s
    pin:
      number: 25
      mode: INPUT_PULLDOWN
      inverted: True
    name: "Garage Door 1"
    device_class: garage_door 

  - platform: gpio
    filters:
      - delayed_on_off: 1s
    pin:
      number: 27
      mode: INPUT_PULLDOWN
      inverted: True
    name: "Garage Door 2"
    device_class: garage_door  

# Temperature / Humidity / Barometer - Pressure Sensor
i2c:
  id: my_i2c_bus
  sda: GPIO26
  scl: GPIO33
  scan: true

sensor:
  - platform: bme280_i2c
    i2c_id: my_i2c_bus
    temperature:
      name: "BME280 Temperature"
      oversampling: 16x
    pressure:
      name: "BME280 Pressure"
    humidity:
      name: "BME280 Humidity"
    address: 0x76
    update_interval: 8s

Thanks in advance for any help that can be provided.