We want to hear your thoughts on the Google Smart Home platform. Join a user study and receive a gift for your input. Click here to sign up.

Request to send a local device command over UDP datagram. Commands are sent to the device using DeviceManager.send.

Example UDP command:

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

const command = new DataFlow.UdpRequestData();
command.requestId = request.requestId;
command.deviceId = 'device-id';
command.port = 5555;
command.data = Buffer.from(payload).toString('hex');
command.expectedResponsePackets = 1;

Handle the response

If the command succeeds, DeviceManager.send returns a UdpResponseData result. For commands with UdpRequestData.expectedResponsePackets set, the result contains a UdpResponse.

const command = new DataFlow.UdpRequestData();
command.expectedResponsePackets = 1;

 .then((result: DataFlow.CommandSuccess) => {
   const udpResult = result as DataFlow.UdpResponseData;
   const packets = udpResult.udpResponse.responsePackets;
 .catch((err: IntentFlow.HandlerError) => {
   // Handle command error


Implemented by




data: string

Payload sent to the target device


deviceId: string

Device ID of the target device.

Optional expectedResponsePackets

expectedResponsePackets: undefined | number

Expected number of UDP response packets. Actual number of packets received in the UdpResponseData may not match expected value if timeout of 1 second is exceeded.


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.