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

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

Implements

Implemented by

Index

Properties

Optional bytesToRead

bytesToRead: undefined | number

For read requests, number of expected bytes

data

data: string

Payload sent to the target device

deviceId

deviceId: string

Device ID of the target device.

Optional hostname

hostname: undefined | string

Hostname on the target device

operation

operation: TcpOperation

TCP operation to perform

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.