The Google Home device is a standalone device that runs Google Assistant and allows you to do many things just using your voice. It has a growing base of smart home components it can integrate with and someone has created a Home Assistant component called Emulated Hue Bridge that allows Home Assistant to masquerade as a Philips Hue Bridge. What’s all that jargon mean? It means that you can set up Home Assistant to pretend it’s a Philips Hue Bridge. Devices that can interact with a Philips Hue Bridge will see it and be able to communicate with it as if it’s the real deal.
Google Home requires that the Philips Hue Bridge should be available on port 80. In Linux this means that you either have to a) run Home Assistant as root (not advised in most cases) or b) set up an iptables rule that will allow the user that runs Home Assistant to bind to one end of a forwarding pipe. Confused? Don’t be! It’s a relatively simple process. https://www.cyberciti.biz/faq/linux-port-redirection-with-iptables/
After you’ve got that figured out all that’s left to do is configure Home Assistant
emulated_hue: type: google listen_port: advertise_port: 80
By default the Emulated Hue component will expose things within your Home Assistant configuration and you’ll be able to control them by name. Once you’ve restarted Home Assistant make sure it’s working by going to http://<your_ip>/description.xml and if all goes well you’ll see something similar to this:
<root xmlns="urn:schemas-upnp-org:device-1-0"> <specversion> <major>1</major> <minor>0</minor> </specversion> <urlbase>http://<Your IP>:80/</urlbase> <device> <devicetype>urn:schemas-upnp-org:device:Basic:1</devicetype> <friendlyname>HASS Bridge (<Your IP>)</friendlyname> <manufacturer>Royal Philips Electronics</manufacturer> <manufacturerurl>http://www.philips.com</manufacturerurl> <modeldescription>Philips hue Personal Wireless Lighting</modeldescription> <modelname>Philips hue bridge 2015</modelname> <modelnumber>BSB002</modelnumber> <modelurl>http://www.meethue.com</modelurl> <serialnumber>1234</serialnumber> <udn>uuid:2f402f80-da50-11e1-9b23-001788255acc</udn> </device> </root>
The easiest way I’ve found to do more complicated things using Google Home is to use a template switch platform component but this is limited to on/off commands. Google Home can control media player components but it’s not really reliable so I decided to write a template light platform. This expands what you can do by allowing you to issue commands to set the level of devices as well as turn them on and off. It should be available in the 0.46 release version. Check out a preview of the functionality below!