Welcome to the Google Home Developer Center, the new destination for learning how to develop smart home actions. Note: You'll continue building actions in the Actions console.

Callback registered with the App via App.onExecute to process requests to update device state.

To support local fulfillment, the local home platform must first establish a local fulfillment path. For more details, see the developer guide.

const executeHandler = (request: IntentFlow.ExecuteRequest):
  Promise<IntentFlow.ExecuteResponse> => {

    // Extract command(s) and device target(s) from request
    const command = request.inputs[0].payload.commands[0];
    const execution = command.execution[0];

    const response = new Execute.Response.Builder()

    const result = command.devices.map((device) => {
      // Construct a local device command
      const deviceCommand = new DataFlow.TcpRequestData();
      // ...

      // Send command to the local device
      return localHomeApp.getDeviceManager()
        .then((result) => {
          response.setSuccessState(result.deviceId, state);
        .catch((err: IntentFlow.HandlerError) => {
          // Please specify the right error code in setErrorState()
            device.id, IntentFlow.ExecuteErrorCode.HARD_ERROR);

    // Respond once all commands complete
    return Promise.all(result)
      .then(() => response.build());