How to get a generic cover named as "Garage Door" working with Google Assistant

Hi,
Is there anything special required to get a Garage Door defined as a cover working with Google Assistant?
My device is shown in the Google Home app as a “blinds” icon with a “gear” setup sub icon. Clicking on the blinds icon gives me device settings. with no “controllable” elements to open or close or status feedback (unlike a light which lets me control it). When I say “OK Google open the garage door”, it responds with “OK opening garage”, but then nothing happens.
I can open and close the garage door fine from the web interface. The one light I have exposed works as expected from the Google Home interface.
I have read a few things in the documentation and forums regarding having to say “Switch on/off” instead of “open/close” and setting up a pin - but these don’t seem to be my issue. I haven’t done anything special to define this as a garage door which would require a pin other than its name, and am not asked for any pin.
Thanks.

(A duplicate of this message was posted in the #cloud discord channel, but there were no answers forthcoming - hopefully somebody can help here.)

From the docs it sounds like secure_devices_pin is required (at least for opening):

Certain devices are considered secure, including anything in the lock domain, and covers with device types garage and door .

By default these cannot be opened by Google Assistant unless a secure_devices_pin is set up. To allow opening, set the secure_devices_pin to something and you will be prompted to speak the pin when opening the device. Closing and locking these devices does not require a pin.

1 Like

As mentioned - I have not done anything to assign it a device type which would require security (the physical interface is a Sonoff SV running Tasmota - connected to HA via MQTT). So unless just the name of “Garage door” is sufficient to assign that device type, neither Google Assistant nor HA should know it is a garage door. Additionally if it requires a PIN, I would expect that to be requested somewher - either verbally from Google Assistant, or at least in the HA logs which it is not. In fact Google Assistant responds with “OK opening garage”.
A request to “Close the garage door” also does not work - so I do not think it is anything to do with the PIN.

Garage door cover devices are automatically exposed to Google Assistant as a garage door type. Since this is an access control like a lock, it requires a PIN to be set in order to operate via the Assistant no exceptions.

You didn’t mention in your OP that you were using a binary switch.
You may want to provide some more relevant details; such as your switch configuration.

Below is the configuration for my cover (not a switch):

cover:
  - platform: mqtt
    name: "Garage Door"
    command_topic: "cmnd/sonoff-garage/EVENT"
    state_topic: "stat/GarageDoor/STATE"
    availability_topic: "tele/sonoff-garage/LWT"
    qos: 0
    retain: false  
    payload_open: "OPEN"
    payload_close: "CLOSE"
    payload_stop: "STOP"
    state_open: "OPEN"
    state_closed: "CLOSE"
    payload_available: "Online"
    payload_not_available: "Offline"

And here is my cloud configuration:

google_actions:
  filter:
    include_entities:
      - cover.garage_door
      - light.yeelight_color2_7c49eb157036 #Dining Table
      - switch.aeon_labs_zw116_nano_switch_switch #Front Door
      - switch.aeon_labs_zw111_nano_dimmer_switch #Media Room

  entity_config:
    cover.garage_door:
      name: Garage Door
      room: Garage   

Been doing some more testing. It seems to be related to the fact that the name is “Garage Door” that it does not work. I tried explicitly setting the device class to “shutter” but the behaviour is still the same for the “Garage Door” cover - Google assistant says “OK opening / closing garage door” but nothing happens.
I tried creating a new identical cover called “Garage Blinds” - this works properly with the only issue being Google Assistant responds with “OK opening / closing 2 things”.
I have 2 questions:

  1. Is anybody able to provide any insight as to why this doesn’t work for “Garage Door” which is defined as a “shutter”?
  2. Why does Google responds to with “2 things” for the “Garage Blinds”?

Below is my config:

garage.yaml (package)

 cover:
  - platform: mqtt
    name: "Garage Door"
    command_topic: "cmnd/sonoff-garage/EVENT"
    state_topic: "stat/GarageDoor/STATE"
    availability_topic: "tele/sonoff-garage/LWT"
    qos: 0
    retain: false   #make sure this is false - otherwise command may be sent on restart of MQTT
    payload_open: "OPEN"
    payload_close: "CLOSE"
    payload_stop: "STOP"
    state_open: "OPEN"
    state_closed: "CLOSE"
    payload_available: "Online"
    payload_not_available: "Offline"
  - platform: mqtt
    name: "Garage Blinds"
    command_topic: "cmnd/sonoff-garage/EVENT"
    state_topic: "stat/GarageDoor/STATE"
    availability_topic: "tele/sonoff-garage/LWT"
    qos: 0
    retain: false   #make sure this is false - otherwise command may be sent on restart of MQTT
    payload_open: "OPEN"
    payload_close: "CLOSE"
    payload_stop: "STOP"
    state_open: "OPEN"
    state_closed: "CLOSE"
    payload_available: "Online"
    payload_not_available: "Offline"

group:
  garage:
    name: Garage
    control: hidden
    entities:
      - cover.garage_door
      - sensor.garage_door_state
      - switch.garage_door_activate
      - sensor.garage_temperature
      - sensor.garage_humidity

customize.yaml

cover.garage_door:
  device_class: shutter
cover.garage_blinds:
  device_class: shutter

cloud.yaml

google_actions:
  filter:
    include_entities:
      - cover.garage_door
      - cover.garage_blinds
      - switch.aeon_labs_zw116_nano_switch_switch #Front Door

  entity_config:
    cover.garage_door:
      name: Garage Door
      room: Garage     

    cover.garage_blinds:
      name: Garage Blinds
      room: Garage

I have the exact same issue. MQTT garage w/ garage PI with binary sensors for the door state.
The garage door covers show up as BLINDS in Ghome. Doesnt requre secure pin to open.
Don’t requre the invocation name to open either. I can just say ‘hey google open garage’
My toddler son loves to screw around w/ the voice assistants so would prefer if the secure pin worked properly.

Set the device_class to garage

Example:

cover:
  - platform: mqtt
    name: "Garage Door"
    device_class: garage
    command_topic: "OpenZWave/1/command/setvalue/"
    state_topic: "OpenZWave/1/node/6/instance/1/commandclass/102/value/281475083239444/"
    qos: 0
    retain: true
    payload_open: '{"ValueIDKey" : 281475083239444, "Value": 4}'
    payload_close: '{"ValueIDKey" : 281475083239444, "Value": 0}'
    state_open: "Opened"
    state_opening: "Opening"
    state_closed: "Closed"
    state_closing: "Closing"
    optimistic: false
    value_template: "{{ value_json.Value.Selected }}"
1 Like

ah had the device class in the binary sensor but the mqtt didnt have it.
Working now as is the secure pin. Thanks!

1 Like