CoAP Communication#

Get the Metering Data#

The Raspberry Pi gets CoAP metering data from the CoAP meter node using the libcoap client, if you have a node running Wi-SUN SoC CoAP Meter in the same network with the Linux Border Router. Follow the steps below to get CoAP metering data on your Raspberry Pi:

  1. Install the libcoap library.

     $sudo apt-get install libcoap-1-0
     $sudo apt-get install libcoap-1-0-bin
  2. From the node cli, make sure that you are connected to the network.

    > wisun get wisun.join_state
    wisun.connection_state = Operational (5)
  3. Get your node global address.

    > wisun get wisun.ip_address_global
    wisun.ip_address_global = fd12:3456::be33:acff:fef6:3161

Discover the Available Resources#

The CoAP protocol supports an interoperable discovery feature. A CoAP client can request the attributes hosted by a CoAP server. In the case of the CoAP Meter application, the available resources can be retrieved using the libcoap GET method with the standard discovery entry-point. The following command shows the sensor and LED resources.

$coap-client -m get -N coap://[fd12:3456::be33:acff:fef6:3161]:5683/.well-known/core


Get the CoAP Meter Sensor Data#

On your raspberry Pi, get the CoAP meter sensor data using libcoap with the following command:

$coap-client -m get -N coap://[fd12:3456::be33:acff:fef6:3161]:5683/sensor/all

    "id": 0,
    "temp": 28.18,
    "hum": 46.36,
    "lx": 512

Each sensor data value can be retrieved alone if you specify the corresponding resource in the libcoap command. To retrieve the humidity value, the user can use the following command:

$coap-client -m get -N coap://[fd12:3456::be33:acff:fef6:3161]:5683/sensor/humidity

46.59 %

Note that any machine that has a CoAP client and an IPv6 connectivity with the CoAP Meter node can get the metering data.

Toggle the LEDs#

The libcoap PUT method allows you to toggle the CoAP Meter node LEDs remotely. Use the following command to toggle the LED0.

$coap-client -t text -m put -N -B 1 coap://[fd12:3456::be33:acff:fef6:3161]:5683/gpio/led -e "LED0%00"

LED1 can also be toggled with changing the payload to “LED1%00”.