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;
...

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

Implements

Implemented by

Index

Properties

data

data: string

Payload sent to the target device

deviceId

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

port: number

Port number on the target device

protocol

protocol: Protocol

Protocol to use when sending this command

requestId

requestId: string

Request ID from the associated EXECUTE intent.