[Alpha] Community-maintained Google Home integration

My issue was that the instructions show /{number or letter}/ so I put exactly that. When it should have been /number or letter/.
Check your settings and inputs as you may have a similar issues.

No, I definitely put the right things in...otherwise I doubt I would have gotten the prompt to select my devices. Plus, I'm seeing the sync request in my logs, which @mbudnek says should show that the actions console is set up correctly.

@Ryan780 Showing the full list of all of your devices in the Google Home app while linking is normal. The same ones should be selected that you selected in the app in Hubitat.

In the logs, after that SYNC line you should get something like this:

[requestId:SAME_LONG_NUMBER, payload:[devices:[one or more device definitions here]]]

Can you post that that here as well?

@bptworld That shows that your device has no traits. Did you define any on the device type? If not, try defining at least one trait before linking.

That's what I thought, as I had the same but that's what it was for me.

The device selection UI will work fine as long as you have the OAuth settings configured correctly. It will fail when sending the SYNC command if the problem is in the Fulfillment URL.

I did. Low, Med and high. and then On/Off. Now that I go in to get a screenshot, they are gone.

Will try to add them again.

EDIT: that did it! Re-entered the traits and now it works. Thank you very much.

1 Like

Huh, very strange that the traits disappeared like that. Glad you got it working though.

1 Like

I see no devices in the Google Home App after first trying to link it to the community app. But with no device types defined in the Community app, isn't that normal? I don't have any types defined when I have first installed the app.

But I haven't selected anything in the Community app in Hubitat yet if I am following your directions. You don't have the definition of devices in the Community app until after linking google home to the community app. This was one of my questions. How can I see the selected devices when linking if i haven't selected any yet?

Ah, that's likely the problem. You need to have at least one device selected for the initial link to work, so you'll need to define a device type before linking with Google Home. I have a couple of notes in the setup instructions, but I should probably re-organize them so that the "Configuring Devices" section comes before the instructions on how to link.

Great thanks!

I was able to get the PIN's working. I had to remove the extra on/off trait and change from switch to garage door. I can type in the pin number on my home hubs and it works But when I try to do it by voice, it asks for the security code but when I respond with the code it does a search instead of taking the code. Do I have to respond a certain way?

Hmm, PIN codes should work for any trait. If you're using the OnOff trait, then you should be able to say "Hey Google, turn on garage door". If you're using OpenClose, say "Hey Google, open the garage door". Either way, the assistant should respond "Can I have your security code?" to which you respond with just your code, i.e. "123456"

"Open" and "On" are separate actions though, so make sure you have both selected if you have the device configured with both traits. i.e.

Also note that the Google Home phone app does not support pin codes or confirmation.

If you have debug logging enabled, you should see something like this in the log when everything goes right.:

app:6502020-03-16 06:28:32.965 pm debug [requestId:5909116582818158168, payload:[commands:[[status:SUCCESS, ids:[548], states:[online:true, on:true, openPercent:100]]]]]
app:6502020-03-16 06:28:32.917 pm debug Checking MFA for On command
app:6502020-03-16 06:28:32.895 pm debug {inputs=[{context={locale_country=US, locale_language=en}, intent=action.devices.EXECUTE, payload={commands=[{devices=[{id=548}], execution=[{challenge={pin=123456}, command=action.devices.commands.OnOff, params={on=true}}]}]}}], requestId=5909116582818158168}
app:6502020-03-16 06:28:26.326 pm debug [requestId:13003417361525925497, payload:[commands:[[status:ERROR, challengeNeeded:[type:pinNeeded], errorCode:challengeNeeded, ids:[548]]]]]
app:6502020-03-16 06:28:26.323 pm debug Error executing command OnOff on device Virtual Garage Door: {"errorCode":"challengeNeeded","challengeNeeded":{"type":"pinNeeded"}}
app:6502020-03-16 06:28:26.318 pm debug Checking MFA for On command
app:6502020-03-16 06:28:26.297 pm debug {inputs=[{context={locale_country=US, locale_language=en}, intent=action.devices.EXECUTE, payload={commands=[{devices=[{id=548}], execution=[{command=action.devices.commands.OnOff, params={on=true}}]}]}}], requestId=13003417361525925497}

Note that the PIN code is in the log in plain text, so you'll probably want to turn debug logging off for normal use if you're using this feature.

@mbudnek, had a little time to move a few devices over to this app vs HE app. Easy layout and everything is working as expected (or better). For an 'alpha' this is very nicely done!

A few notes:

  • Setup a few 'different' devices like humidifier to see what would happen. Pretty cool to see a humidifier graphic in GH. lol
  • How do we setup color bulbs? In Google home I noticed that my Hue lights (through HE) show up as a light but have a color button under the bulb. So I set them up in this app as a light but not seeing any color options. Hopefully this can be added.
  • After adding in my ceiling fans, I noticed I can not change the speed via the google home app but I can 'tell' google to do it and it works perfect. So not a big deal but wondering if this can be added?
  • Looking forward to trying out the locks with security code when available!

Thanks

Only replying to this because I know he doesn't have a google/Nest hub. Google needs to work on their consistency across platforms. The home app doesn't support this (yet I hope) but the controls are available on the google home hub and hub max. Same is true with garage doors, heaters and locks as well.

2 Likes

There's a ColorSetting trait for color bulbs like Hue. I'll add that one to my backlog (or if you're up to it, I would welcome a pull request implementing it).

For the fan thing, there's nothing I can do; the FanSpeed trait just doesn't have touch controls. Sadly the range of device types and traits supported by the Google Home app is fairly limited. You can see the list of what's currently supported in Google's documentation here. Most fan controller drivers implement the Hubitat SwitchLevel capability though, so you could add the Brightness trait to your fan device type to get a %-slider.

1 Like

One of the big benefits of moving over to this was for fans though. Rather than control them as lights, it would be easier to control them as fans.

Yeah. You can still voice-control them using the level names, i.e. "Hey Google, set the fan to medium", but I agree it's a bit disappointing that the app can't set specific levels.

I guess as a workaround I could maybe create virtual switch devices for each level. I'm not sure how that would interact with voice-control though. I'll play around with it when I have some time.

1 Like

For me I the only time I use the GH app is when I'm away from the house. The rest of the time I just talk to it. Much easier and faster. For that the fan speeds work great!

Thanks, just checked and it' true. The controls show up on my hubs/hub max. Would be nice if the experience was the same on all Google devices... :roll_eyes:

So, I tried again this morning. I created the community app in Hubitat and created one device type and selected only 1 device. Updated the fullfillment URL in the actions Console. Went into my phone, selected the test action and it listed all of my Hubitat devcies, just like the native Google Home integration does. I tried to select just that one device that I had configured but still got the error "Could Not Update Setting. Check connection."

So, is this just not going to work because I had the native Hubiatt Google Home integration installed? At this point I can't get either one of them to install again so now I'm really screwed.

I was able to get it to sync once but the only thing that synced across were Modes. But now all I get in Hubitat is an error 500 when I try to open the Google Home app. So, I don't know what to do at this point to try to get this working.

In general, I have to say, not the easiest integration to get going.

UPDATE: FINALLY GOT IT!!!! I tried changing my "invocation" and somehow then went back in and then it started syncing. Good lord...only took 6 hours of trying. :-\

Question: RGBW and CT lights....are there plans to add those capabilities at some point?

I might have spoken too soon. Now i can't get any additional devices to sync except that first one. I have tried pulling down to refresh on every single screen in the Google Home app on my phone but they won't sync. How long should I wait before I can safely say that it still isn't working right? The native integration forced an update when you added/removed devices so they synced across right away.

UPDATE: Tried removing from Google Home and removing the linked account at myaccount.google.com. Went back in and got the same error I was getting before and nothing synced again.

At this point I'm just going to go back to the native integration. It didn't handle every device correctly but at least it works.