3

I'm trying to get my smart home action certified but its been stuck in review for ages. I've realised that the documentation says to do the test suite so I'm trying that. I've also sent an email to support but no reply yet.

With regards to the test suite, I've entered the userAgentId and the json key correctly and it progresses fine. It's when I start the test where the problem arises. Each utterance is read out to my Google Home. The Google Home wakes up to the "Ok Google" but does nothing after that and all my tests fail.

Starting test...
  Utterance (setup): Ok Google. Turn on the Bedroom . . . . . . . . . . . . FAIL
  Utterance (1/1) Ok Google. Set the Bedroom to 30 degrees SKIP
Test Completed!
Starting test...
  Utterance (setup): Ok Google. Turn on the Bedroom . . . . . FAIL
  Utterance (setup): Ok Google. Change the Bedroom to cool mode . . . . . FAIL
  Utterance (1/1): Ok Google. Set the Bedroom to 30 degrees . . . . . FAIL
  Utterance (restore): Ok Google. Change the Bedroom to off mode . . . . . FAIL
Test Completed!

The errors aren't too helpful either and I get stuff like:

AssertionError: Expected state to include: {"thermostatTemperatureSetpoint":30}, actual state: {}: expected false to be true" 

I've checked my server and the fulfilment url isn't getting anything. If I say the exact same thing as what the test is doing to the Google Home, it works perfectly fine. What am I supposed to do? I dont know what I'm doing wrong. My project id is myhomie-smart-hvac

HappyXD
  • 61
  • 8
  • It's possible that the speech synthesis is triggering the local invocation but then gets invalidated on the second pass of the hotword. You may need the volume to be a bit louder, or put the browser closer to the Google Home. – Nick Felker Jun 11 '19 at 13:47
  • @NickFelker Thanks for the suggestion. I didn't mention that the commands by the speech synthesis SOMETIMES gets recognised but even then, the test fails. I took a video of what's happening and perhaps it provides some clarification? Why does it complain that the test fails even though it works. I'm pretty sure ReportState works since I can go into the google home app and tap on the thermostats and their respective properties comes up (mode, set temperature etc.) – HappyXD Jun 12 '19 at 02:40
  • 1
    Heres the video: https://youtu.be/VMgCkluW8wc – HappyXD Jun 12 '19 at 03:00
  • Does it have to do with your device name? Is it conflicting with some other device in your home? Would a more specific name have more success? – Nick Felker Jun 12 '19 at 14:06
  • 1
    @HappyXD does Google Home actually turn on/off devices? Or just reports that it does? I think I have the same issue like on your video, I can turn on/off devices, but tests fail and I never see any incoming reportState requests from HomeGraph, if I get it right how it should work – rightaway717 Jun 17 '19 at 11:42
  • @HappyXD Have you got a solution yet? – Trọng Nguyễn Công Jun 29 '19 at 02:54

2 Answers2

1

Report state is not a synchronous API, it is an asynchronous one. Home graph doesn't send you any request incase of event change, you should send the state change request to Home Graph since your device knows the state change first

Trọng Nguyễn Công
  • 1,207
  • 1
  • 10
  • 23
0

it turns out report state was implemented incorrectly which makes sense because the test kept showing actual state to be {} . this meant that the states on homegraph wasnt actually being updated. I also changed the name of the device from 'bedroom' to 'living room' and for some reason that seems to make more sense to google

HappyXD
  • 61
  • 8