JavaScript examples

Enqueue

The example below demonstrates:

  • Configuration of gRPC dial options including API token
  • Connect to a gRPC API
  • Define service client (in this case for the DeviceService)
  • Perform an API call for a service (in this case Enqueue)

enqueue_downlink.js

const grpc = require("@grpc/grpc-js");
const device_grpc = require("@chirpstack/chirpstack-api/api/device_grpc_pb");
const device_pb = require("@chirpstack/chirpstack-api/api/device_pb");

// This must point to the ChirpStack API interface.
const server = "localhost:8080";

// The DevEUI for which we want to enqueue the downlink.
const devEui = "0101010101010101";

// The API token (can be obtained through the ChirpStack web-interface).
const apiToken = "...";


// Create the client for the DeviceService.
const deviceService = new device_grpc.DeviceServiceClient(
  server,
  grpc.credentials.createInsecure(),
);

// Create the Metadata object.
const metadata = new grpc.Metadata();
metadata.set("authorization", "Bearer " + apiToken);

// Enqueue downlink.
const item = new device_pb.DeviceQueueItem();
item.setDevEui(devEui);
item.setFPort(10);
item.setConfirmed(false);
item.setData(new Uint8Array([1, 2, 3]));

const enqueueReq = new device_pb.EnqueueDeviceQueueItemRequest();
enqueueReq.setQueueItem(item);

deviceService.enqueue(enqueueReq, metadata, (err, resp) => {
  if (err !== null) {
    console.log(err);
    return;
  }

  console.log("Downlink has been enqueued with id: " + resp.getId());
});