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.
Stay organized with collections Save and categorize content based on your preferences.

Request to send a local device command over TCP sockets. Commands are sent to the device using DeviceManager.send.

Example TCP command:

const payload = new Uint8Array([0x00, 0xFF, 0x00, 0xFF]);

const command = new DataFlow.TcpRequestData();
command.requestId = request.requestId;
command.deviceId = 'device-id';
command.port = 5555;
command.operation = Constants.TcpOperation.WRITE;
command.data = Buffer.from(payload).toString('hex');

Handle the response

If the command succeeds, DeviceManager.send returns a TcpResponseData result. For TcpOperation.READ commands, the result contains a TcpResponse.

const command = new DataFlow.TcpRequestData();
command.operation = Constants.TcpOperation.READ;

 .then((result: DataFlow.CommandSuccess) => {
   const tcpResult = result as DataFlow.TcpResponseData;
   const response = tcpResult.tcpResponse.data;
 .catch((err: IntentFlow.HandlerError) => {
   // Handle command error


Implemented by



Optional bytesToRead

bytesToRead: undefined | number

For read requests, number of expected bytes


data: string

Payload sent to the target device


deviceId: string

Device ID of the target device.

Optional hostname

hostname: undefined | string

Hostname on the target device


operation: TcpOperation

TCP operation to perform


port: number

Port number on the target device


protocol: Protocol

Protocol to use when sending this command


requestId: string

Request ID from the associated EXECUTE intent.