[Release] [Closed] Google Assistant Relay V1 - Google Home Audio Notifications!

tl;dr - my bad on the dupe playback.

Just tested again and I believe I the routine I was using (w/IFTT integration and a virtual switch) was triggering the playback twice for some reason…

Running the command from a simple routine only plays once.

@ghesp - I added an issue on the github to update the instructions to note the lower case requirement for user name.

1 Like

I think it’s just because you have your user lowercase in the config file. If you had Danabw in there, you would have been ok.


I thought so as well, but tried it and it didn’t work:

  1. Stop relay
  2. Chage config.json user name to initial cap
  3. Change piston as well
  4. Start relay
  5. Run routine - no output

Change both back to lower case and it works.

In fact, what I’m finding (and would be interesting to see if this is for everyone else) is that if I use upper case in my name in the config.json file, the relay is not started. It says it’s starting on the pi, but the GH never confirms it verbally. Interesting.

Must be tied to some other location where my name is stored or referenced to, or for some other reason it’s a requirement to use lower case. Way beyond my pay grade.


This is AMAZING and what I was looking for… I have a quick maybe dumb question… I have a Chromecast audio device running my whole house audio system (speakers in every room). It seems that broadcast command only sends audio to google home devices and not Chromecast /Chromecast audio devices… My question is, any chance we can get the broadcast to send to a Chromecast device instead of the google home… Please dont think I am being critical, what you have done is amazing… Just wanted to know your thoughts…

For casting to Google Chromecast devices, that you would want this…

1 Like

This is fantastic development. Salute you all. Please help me with this error. I setup the node.js server in my windows machine. I am connected with GH with broadcast commands and I am good the first part of the setup. When I tried to add assistant-relay smartapp in ST app , the discovery process finds the assistant-relay fb5 but can’t save and come out of discovery. I am getting a " devicenetworkId must be unique" error when I tried to save it. I have setup the smartapp and DH in iDE from the repo. What I am doing wrong. Ghesp thanks once again. WAF will be great with this new automation setup. @ Big_Webstas I tried your method didn’t help. Thank you all.

Live Logging

21f0f29b-36eb-4706-8881-4ed74dd1e55b 1:55:27 AM: error grails.validation.ValidationException: Validation Error(s) occurred during save():

  • Field error in object ‘physicalgraph.device.Device’ on field ‘deviceNetworkId’: rejected value [D43D7EDB954B]; codes [physicalgraph.device.Device.deviceNetworkId.unique.error.physicalgraph.device.Device.deviceNetworkId,physicalgraph.device.Device.deviceNetworkId.unique.error.deviceNetworkId,physicalgraph.device.Device.deviceNetworkId.unique.error.java.lang.String,physicalgraph.device.Device.deviceNetworkId.unique.error,device.deviceNetworkId.unique.error.physicalgraph.device.Device.deviceNetworkId,device.deviceNetworkId.unique.error.deviceNetworkId,device.deviceNetworkId.unique.error.java.lang.String,device.deviceNetworkId.unique.error,physicalgraph.device.Device.deviceNetworkId.unique.physicalgraph.device.Device.deviceNetworkId,physicalgraph.device.Device.deviceNetworkId.unique.deviceNetworkId,physicalgraph.device.Device.deviceNetworkId.unique.java.lang.String,physicalgraph.device.Device.deviceNetworkId.unique,device.deviceNetworkId.unique.physicalgraph.device.Device.deviceNetworkId,device.deviceNetworkId.unique.deviceNetworkId,device.deviceNetworkId.unique.java.lang.String,device.deviceNetworkId.unique,unique.physicalgraph.device.Device.deviceNetworkId,unique.deviceNetworkId,unique.java.lang.String,unique]; arguments [deviceNetworkId,class physicalgraph.device.Device,D43D7EDB954B]; default message [{0} must be unique]
    @line 156 (doCall)

I’m having the same issue as a few people above, in that I have the notifier working perfectly via manual POST requests, but the ST Relay app just refuses to find it. I’ve rebooted the hub, opened port 3000 on my firewall (though not convinced this is needed), and even left it discovering overnight to no avail.

Is there some port other than 3000 that it’s doing the discovery on? Maybe it’s conflicting with another service running on that machine.

It’s frustrating that I’m so close but so far!

I think theres an issue with the SmartApp on its discovery phase if the IP changes. A bit annoying and I’m not entirely sure how to fix it at the moment.

You could use WebCore to send a POST request to the IP address of the relay manually

If the IP of what changes? The machine running the relay is on a fixed IP, but the phone I’m using and ST Hub are both using DHCP. Can’t imagine the IP of either would randomly change though.

Not a bad idea about posting a request manually. It’ll do as a workaround for now! Thanks for all your efforts so far. :slight_smile:

So I fought through the installation of this thing and I finally got to work and it’s worth it! I ran into the same error. I believe the issue to be that you have another device in smartthings with the same Network device ID which is a MAC address. Go to your IDE and look at your devices and search for your Mac address D43D7EDB954B and then decide if you can live with changing the network id for that device or getting rid of that device.

Or it would be a good idea if I could figure out how to do that!

Hmm, I can only assume that this isn’t working because I’m running node.js from the official Docker container. But on the flip side I’ve got the container set to use host networking, so it’s not like anything should be unintentionally blocked by the use of Docker.

I tried installing node directly on the server itself (a Synology NAS) using Synology’s own package, but there’s too many components missing to allow the npm install script to complete. Seems like it would be far too much extra work to get that working, when the Docker image appears to be working fine.

Any ideas of anything else I can try?

Edit: Possibly answering my own question: Turns out that Docker doesn’t pass multicast to containers so doesn’t work with SSDP, however, using host networking should apparently work around that, so I’m still at a loss. :confused:

Edit 2 (cos I can’t post more than 3 replies right now): Fixed it! The problem wasn’t Docker, but my ASUS router. Had to turn on “Enable multicast routing (IGMP Proxy)” and “Enable efficient multicast forwarding (IGMP Snooping)”, which is found under LAN/IPTV settings of all places.

If anyone else is having discovery issues, check your router for IGMP settings and enable them!


Great feedback, and great sleuthing.

If you still want POST commands they are on Greg’s GitHub…

Custom Broadcast
To send a Broadcast command, simply send a HTTP Post request:

with the following parameters:

text: hello world
The full request would be:

http://<ip_address>:3000/customBroadcast?text=hello+world&user=>user in config>
The Google Home device will now play an audio alert, and say Hello World

Will this work through this integration?

@rtikul8tim. Thanks a lot that worked. removed another network device(KODI) in ST running on the same windows PC as Node.js , I will not be using KODI anymore. :grinning:Back to less productive work again, creating pistons with webcore…oh boy this is addicting…:stuck_out_tongue_winking_eye:

1 Like

when google says please copy this code and paste it do I need to do anything? I am getting an unexpected error in smartthings app when trying to add it.

What step are you on in the process…are you copying code from Greg’s github to create the SmartApp and Device Type Handler (DTH)?

Make sure you copy SmartApp code to the SmartApp tab, and DTH code to the Device Handler tab in your IDE. If you paste SmartApp code into the Device Handler tab (or vice-versa) you will get an error.

I saw Docker mentioned several times in the thread. Has anyone gotten around to creating a Docker image for this yet?