cancel
Showing results for 
Search instead for 
Did you mean: 

Test Suite Request Sync Issues

pew666
Community Member
Currently, I am using Google Home's Cloud to Cloud integration for the test suite, 
but I am encountering some issues during the Request Sync phase.
 
I have implemented the API call in Node.js as follows:
 
const { onRequest } = require("firebase-functions/v2/https");
const { google } = require('googleapis');
const auth = new google.auth.GoogleAuth({
  keyFile: './smart-home-key.json',
})
const homegraph = google.homegraph({
  version: 'v1',
  auth: auth
})
 
exports.requestsync = onRequest(async (request, response) => {
  response.set('Access-Control-Allow-Origin', '*')
  console.info('Request SYNC for user 123')
  try {
    const res = await homegraph.devices.requestSync({
      requestBody: {
        agentUserId: '123',
async: false
      }
    })
    console.info('Request sync response:', res.status, res.data)
    response.json(res.data)
  } catch (err) {
    console.error(err)
    response.status(500).send(`Error requesting sync: ${err}`)
  }
})
 
The sync template as following:
 
  let template = {
    requestId: body.requestId,
    payload: {
      agentUserId: agentUserId,
      devices: [{
        id: defaultDeviceId,
        type: 'action.devices.types.HOOD',
        traits: [
          'action.devices.traits.OnOff',
          'action.devices.traits.Toggles',
          'action.devices.traits.FanSpeed',
          'action.devices.traits.Modes',
          'action.devices.traits.Timer'
        ],
        name: {
          defaultNames: ['Zephyr range hood'],
          name: 'RangeHood',
          nicknames: ['Zephyr']
        },
        willReportState: true,
        attributes: {
          availableToggles: [{
            name: 'CleanAir',
            name_values: [{
              name_synonym: ['clean air function', 'clean air', 'clean function'],
              lang: 'en'
            }]
          }, {
            name: 'Light',
            name_values: [{
              name_synonym: ['light', 'lights'],
              lang: 'en'
            }]
          }, {
            name: 'GreaseFilter',
            name_values: [{
              name_synonym: ['grease filter timer', 'grease filter'],
              lang: 'en'
            }]
          }, {
            name: 'CharcoalFilter',
            name_values: [{
              name_synonym: ['charcoal filter timer', 'charcoal filter'],
              lang: 'en'
            }]
          }],
          availableFanSpeeds: {
            speeds: [{
              speed_name: 'S1',
              speed_values: [{
                speed_synonym: ['speed 1', 'speed one', 'first speed'],
                lang: 'en'
              }, {
                speed_synonym: ['風速 1'],
                lang: 'zh'
              }]
            }, {
              speed_name: 'S2',
              speed_values: [{
                speed_synonym: ['speed 2', 'speed two', 'second speed', 'speed to'],
                lang: 'en'
              }, {
                speed_synonym: ['風速 2'],
                lang: 'zh'
              }]
            }, {
              speed_name: 'S3',
              speed_values: [{
                speed_synonym: ['speed 3', 'speed three', 'third speed'],
                lang: 'en'
              }, {
                speed_synonym: ['風速 3'],
                lang: 'zh'
              }]
            }, {
              speed_name: 'S4',
              speed_values: [{
                speed_synonym: ['speed 4', 'speed four', 'fourth speed', 'speed for'],
                lang: 'en'
              }, {
                speed_synonym: ['風速 4'],
                lang: 'zh'
              }]
            }, {
              speed_name: 'S5',
              speed_values: [{
                speed_synonym: ['speed 5', 'speed five', 'fifth speed', 'speed V'],
                lang: 'en'
              }, {
                speed_synonym: ['風速 5'],
                lang: 'zh'
              }]
            }, {
              speed_name: 'S6',
              speed_values: [{
                speed_synonym: ['speed 6', 'speed six', 'sixth speed'],
                lang: 'en'
              }, {
                speed_synonym: ['風速 6'],
                lang: 'zh'
              }]
            }, {
              speed_name: 'S7',
              speed_values: [{
                speed_synonym: ['speed 7', 'speed seven', 'seven speed'],
                lang: 'en'
              }, {
                speed_synonym: ['風速 7'],
                lang: 'zh'
              }]
            }, {
              speed_name: 'S8',
              speed_values: [{
                speed_synonym: ['speed 8', 'speed eight', 'eight speed'],
                lang: 'en'
              }, {
                speed_synonym: ['風速 8'],
                lang: 'zh'
              }]
            }, {
              speed_name: 'S9',
              speed_values: [{
                speed_synonym: ['speed 9', 'speed nine', 'nine speed'],
                lang: 'en'
              }, {
                speed_synonym: ['風速 9'],
                lang: 'zh'
              }]
            }, {
              speed_name: 'S10',
              speed_values: [{
                speed_synonym: ['speed 10', 'speed ten', 'ten speed'],
                lang: 'en'
              }, {
                speed_synonym: ['風速 10'],
                lang: 'zh'
              }]
            }, {
              speed_name: 'maximum',
              speed_values: [{
                speed_synonym: ['maximum speed', 'speed maximum', 'strong wind'],
                lang: 'en'
              }, {
                speed_synonym: ['最大風速'],
                lang: 'zh'
              }]
            }, {
              speed_name: 'minimum',
              speed_values: [{
                speed_synonym: ['minimum speed', 'speed minimum', 'light wind'],
                lang: 'en'
              }, {
                speed_synonym: ['最小風速'],
                lang: 'zh'
              }]
            }, {
              speed_name: 'increase',
              speed_values: [{
                speed_synonym: ['increase'],
                lang: 'en'
              }, {
                speed_synonym: ['增加風速'],
                lang: 'zh'
              }]
            }, {
              speed_name: 'decrease',
              speed_values: [{
                speed_synonym: ['decrease'],
                lang: 'en'
              }, {
                speed_synonym: ['降低風速'],
                lang: 'zh'
              }]
            }],
            ordered: true
          },
          availableModes: [{
            name: 'lightlevel',
            name_values: [{
              name_synonym: ['level', 'light', 'light level', 'lights', 'lights level'],
              lang: 'en'
            }],
            settings: [
              {
                setting_name: 'maximum',
                setting_values: [{
                  setting_synonym: ['maximum', 'high', 'bright'],
                  lang: 'en'
                }]
              }, {
                setting_name: 'minimum',
                setting_values: [{
                  setting_synonym: ['minimum', 'low', 'dim'],
                  lang: 'en'
                }]
              }, {
                setting_name: 'L1',
                setting_values: [{
                  setting_synonym: ['one', '1'],
                  lang: 'en'
                }]
              }, {
                setting_name: 'L2',
                setting_values: [{
                  setting_synonym: ['two', '2', 'to'],
                  lang: 'en'
                }]
              }, {
                setting_name: 'L3',
                setting_values: [{
                  setting_synonym: ['three', '3'],
                  lang: 'en'
                }]
              }, {
                setting_name: 'L4',
                setting_values: [{
                  setting_synonym: ['four', '4', 'for'],
                  lang: 'en'
                }]
              }, {
                setting_name: 'L5',
                setting_values: [{
                  setting_synonym: ['five', '5', 'V'],
                  lang: 'en'
                }]
              }, {
                setting_name: 'L6',
                setting_values: [{
                  setting_synonym: ['six', '6'],
                  lang: 'en'
                }]
              }, {
                setting_name: 'L7',
                setting_values: [{
                  setting_synonym: ['seven', '7'],
                  lang: 'en'
                }]
              }, {
                setting_name: 'L8',
                setting_values: [{
                  setting_synonym: ['eight', '8'],
                  lang: 'en'
                }]
              }, {
                setting_name: 'L9',
                setting_values: [{
                  setting_synonym: ['nine', '9'],
                  lang: 'en'
                }]
              }, {
                setting_name: 'L10',
                setting_values: [{
                  setting_synonym: ['ten', '10'],
                  lang: 'en'
                }]
              }],
            ordered: true
          }],
          maxTimerLimitSec: 600,
          commandOnlyTimer: false,
          reversible: true
        },
        deviceInfo: {
          manufacturer: 'Zephyr Co',
          model: 'zephyr-001',
          hwVersion: '1.0',
          swVersion: '1.0.1'
        },
        customData: {
        }
      }]
    }
  }
 
When the Test Suite reaches the 'Check HomeGraph devices after adding a device' and 'Check HomeGraph devices after updating a device' steps during the Request Sync, after performing the specified actions in the Google Home app and then click Continue to update in HomeGraph., the Request Sync does not work as expected and pass.
 
However, the 'Check HomeGraph devices after removing a device' step works fine when performing the removal action in the Google Home app.
 
Can you help check what part might be causing the issue? 
 
Or do you have any solutions to fix it, even if it requires re-modifying some code?
 
Where can I find the log information related to Request Sync?
 
This product is currently live for users, and we hope to have a solution as soon as possible.
 
 
Thanks.
1 Recommended Answer

GoogleDevForum
Solutions Expert
Solutions Expert

Thanks for reaching out. The team is currently looking at similar issue you reported via public issue tracker. Please provide the response to the last comment in the ticket and my colleague at Google will assist you further.

View Recommended Answer in original post

1 REPLY 1

GoogleDevForum
Solutions Expert
Solutions Expert

Thanks for reaching out. The team is currently looking at similar issue you reported via public issue tracker. Please provide the response to the last comment in the ticket and my colleague at Google will assist you further.