A raspberry pi turned into a Google Home, and it works!

no you should not

no is not visible in the app.

It is strange. Does it answer to your questions? (Like what time is it?)

It seems to be hearing me but responding through the real GH - or the real GH is still hearing me. I will have to do more testing I guess.

do you have speakers connected to the rpi GH?

Yes, it worked when I tested it alone, before adding the physical GH.

Hi Corey.
If you remove the GH, does the Pi go back to functioning as itā€™s supposed to?

Iā€™ve just done some basic testing on this subject. It seems, in my situation, there is some prioritisation going on. My PiHome and GHome are in adjacent rooms. With the adjoining doors open, I can only ever get one to respond, and itā€™s usally (but not always) the GH. I expect itā€™s the better mics in the GH compared with my Ā£shop usb mic on the PH.

If i move closer to the PH, there is a point where the GH will not pick up the wake command, and so the PH becomes ā€˜primaryā€™. It does seem like the PH is only primary in that situation becuase the GH missed the command - it doesnā€™t base primary device on proximity as it wereā€¦

I will test later. For now I just unplugged the GH since the mic is so good. I really have not explored the GH capabilities. I have used Alexa for quite some time now and have them all throughout my home.

As anyone been able to change the wake work of either Google Home or Alexa Pi? Or is limited to Snowball?

Even better if you have a Sonos or distributed home audio system already just add a mic in every room. And use your audio system as the speakers.

This is what I am going to be working on. I currently use pulseaudio to multicast audio around my house to ceiling speakers which are driven by small openwrt based routers. My plan is to add some routers which have microphones connected to unicast stream audio back to a pi running Google Assistant and pulseaudio. If my plan works, Iā€™ll have Google Assistant output audio via multicast RTP (so all speakers get the output) and multiple inputs from microphones around the house. Iā€™ll update on progress soon - my microphones are on the way from Amazon while I build the pi - I will be trialling using these microphones: Amazon.com

1 Like

A bit quiet in this thread now, unfortunately. I have made some progress with my setup, which is working. The setup I have is to place one of these (nexx travel router) in each room, with a USB audio adapter and pulseaudio. It is set to listen on a TCP port for tunnel requests from the google home instances I am running.

The overall solution looks like this:

Iā€™m going to add in input booleans and sliders to allow HASS to control the zones and volumes throughout the house. From what I can see, thereā€™s not much more I can do right now without some custom development - I donā€™t intend to buy a physical Google Home as it wouldnā€™t fit my model, and it seems that emulated_hue isnā€™t going to integrate the current SDK without one.

Next step for me is to try out an API.AI integration with HASS. Looks like what I need to do is to create a project on the API.AI side, set up a voice interaction (such as turn off light), have it connect to the public side of my HASS instance (which is a shame but I understand the need) and then trigger an automation in HASS. Iā€™d rather it were local traffic but it doesnā€™t seem to be an option for now. Iā€™ll update once I have created an app which is able to fire a local automation.

Maybe the action are now avaible, isnā€™t it?

@anon35356645 this one looks like perfect solution for your DIY Google homeā€¦

https://m.seeedstudio.com/detail/2874

Maybe you can try it.

If possible, I plan to add some temperature/humidity and light sensors to it together with the built in Bluetooth in Pi Zero and use it as alternative to OpenMQTTGateway. One device instead of multiple devices in a room. What do you think?

1 Like

Good idea. I was looking for something similar: instead of the routers with microphones youā€™ve used, I would like to use the built in microphone of some Chinese ip cameras that I have on my house. Maybe the pulseaudio is the way to go. I appreciate if you have more information to share about pulseaudio configuration.

The problem with the actions API is how it is designed. Might work for some people but I find it really clunky. The idea is to give the app a name, and that name is global. It has to be unique. Then you can say something like ā€œOk Google, talk to Appy McAppfaceā€ (or whatever you called it) and then issue commands, or say ā€œOk Google, tell Appy to turn my lights onā€.

You can test apps by running them in test mode indefinitely, but if you just want to say ā€œOk Google, turn my lights onā€ without having a physical Google Home, no bueno. I think that itā€™s unintuitive - I am looking for a way to be able to craft commands without having to jump between voice apps.

I am very strongly leaning towards using MyCroft now - it allows you to directly plug in skills such as ā€œturn on the lightā€ which are evaluated locally. Using the HASS skill for example, you can directly interact with HASS elements. This is what the Google Assistant SDK really needs but due to the cloud processing performed, I guess itā€™s not as easy as it sounds.

1 Like

I donā€™t think you would need pulseaudio in your case, not for the microphone input anyway. The output would depend on how you intend to get the response from Google back.

Pulseaudio gives me a way to stream audio over the network, however if you are using IP cams that you have already, you can probably just use that as your transport. To do that, youā€™d need to add the camera(s) to the machine you are running Google Assistant on as an input device somehow - either via drivers or an application. I have a non-wireless webcam which just shows up as an input device when I connect it via USB, something like that would do what you need if you are able to configure it.

How will you be getting the response from Google? Do you have something like a bluetooth speaker to use? If so, pulseaudio has modules which allow you to pair with a bluetooth speaker. You could use multiple (as pulseaudio has the combined-sink module which allows you to create one single output sink or speaker which then outputs to multiple devices).

OK! But still no idea of how to do thatā€¦ :smile:
I can hear the audio from IP camera this way:]
fmpeg -i http://user:pass@camer_ip:port/videostream.asf -vn -f wav pipe:1 | aplay

I have a speaker connected on line out of my Raspberry Pi clone. It would be nice to find a way to pass the audio response to a speaker related to the request source, but for now having it always responding on the main speaker would be ok!

Whatā€™s the model of the camera? Iā€™ll do a quick search to see if thereā€™s any info out there. Not sure that I will know the answer, since Iā€™m working with sound cards and standalone microphones.

Itā€™s these cheap chinese ip cameras with pan/tilt that you can find all over the web.
Like this one: https://www.aliexpress.com/item/P2P-Foscam-FI9816P-Wireless-HD-720P-IP-Camera-H-264-SD-Storage-DDNS-Onvif-White-Security/32294494767.html

Thank you for the detailed explanation!

I think I will leave Google Assistant SDK and move to Mycroft or something similar!

You can do exactly that using ifttt.