NOTE: I am aware that GH has integration for covers that is similar to my eg … but this request is to enable ANY device in GH … such as microwaves etc … I just did a garage door because it is a simple eg to demonstrate - this eg also supports things that cover does not - such as raising errors when an obstruction is detected.
In the documentation there is a heap of devices some of which I have in HA … but don’t have proper support for GH integration.
It would be nice if there was generic support so we could implement custom GH device integrations generically with HA based of the GH documentation… for e.g.:
google_assistant:
project_id: i00-home-assistant
api_key: !secret GoogleAssistantAPI
expose_by_default: true
exposed_domains: #<< this will be ignored because expose_by_default: true
- light
- camera
- sensor
custom_entities:
- type: 'GARAGE' #Type from https://developers.google.com/assistant/smarthome/guides
#Standard entity_config data (expose always defaults to true since you have a custom_entities ... but can be set to false to temp hide)
name: 'GarageDoor1'
aliases:
- 'Door 1'
room: 'Garage'
#Custom stuff that should allow for ANY future device type intergration with GH
traits:
- type: OpenClose
discreteOnlyOpenClose: false
openDirection:
- up
- down
openState:
openPercent: '{{ states.sensor.garage_door1.state }}'
openDirection: 'up'
execute:
- command: OpenClose #Documentation: https://developers.google.com/assistant/smarthome/traits/openclose.html
#OpenClose will be automatically triggered when a request is made with device id of 'GarageDoor1' in this eg
errors: #Errors that can be raised are defined in the Garage documentation
- type: 'obstructionDetected'
if: "{{ params.openPercent < states.sensor.garage_door1.state and states.sensor.garage_door1_beam.state == 'blocked' }}"
- type: 'lockedState'
if: '{{ states.sensor.garage_door1_locked.state }}'
action: #Standard action (like in automatons - but with template always supported - params is part of the request json)
- entity_id: states.sensor.garage_door1.state
service: input_number.set_value
value: '{{ params.openPercent }}'
entity_config:
...
Thanks,
Kris