MLopezJ / nRF-Asset-Tracker-through-Coiote-flow

Module and data flow of the nRF Asset Tracker by its integration with Coiote from AVSystem
0 stars 0 forks source link

Coiote POST request with Device Simulator #8

Open MLopezJ opened 1 year ago

MLopezJ commented 1 year ago

Is desired to make a POST request with the Asset Tracker objects and their respective values to Coiote using node-coap.

So far is possible to make the post request and it is received in Coiote but is not possible to send LwM2M objets in the request.

MLopezJ commented 1 year ago

Request description

Query params

MLopezJ commented 1 year ago

TODO

...
const req = coap.request(creationRequest)
req.write("</3/0>, </6/0>")
...

Result: no objects on data model view in Coiote

MLopezJ commented 1 year ago

Questions

  1. What are the query params Coiote is expecting in a post reqiest?
  2. What is the content format coiote is expecting in a post request?
  3. What is the payload format of a post request?
  4. Where can I found the documentation of Coiote in order to know what else is required to send and update LwM2M objects to Coiote?
MLopezJ commented 1 year ago

Question asked to AVSystem: Link: https://helpcenter.avsystem.com/plugins/servlet/desk/portal/17/CDM-303


Hello, 

I'm building a solution to use CoAP and LwM2M in nRF Asset Tracker. To do that I'm using Coiote and its integration with Thingy:91 and Azure.

For testing proposal now I'm building a device simulator https://github.com/MLopezJ/LwM2M-device-simulator , which pretend to emulate the Thingy:91 in its functionality but with the main advantage of beeing easy to manipulate and update the values of the LwM2M objects. (for example, beeing able to update Location data without the necessity to take a walk with the device)

This device simulator is builded using node-coap https://github.com/coapjs/node-coap . And I'm able to connect to Coiote (send a post request to the device endpoint and see the "Registration status" as "Registered"). But I have been having some problem when I tried to send LwM2M objects on this post request. For that reason I would like to ask the following questions:

1. What are the query params Coiote is expecting in a post request?
2. What is the content format coiote is expecting in a post request?
3. What is the payload format of a post request?
4. Where can I found the documentation of Coiote in order to know what else is required to send and update LwM2M objects to Coiote?

Here are some details about the request.

## Request description

- Security mode: NoSec
- port: 5683
- method: POST
- pathname: /rd
- host: eu.iot.avsystem.cloud

## Query params

- ep = urn:imei:000000000000004
- lt = 300
- lwm2m = 1.2
- b = U
MLopezJ commented 1 year ago

.. while waiting the answer from AV System

How to send payload in CoAP?

using req.write(payload) more info: https://github.com/MLopezJ/LwM2M-device-simulator/tree/saga/src/test

MLopezJ commented 1 year ago

Coiote answer these questions https://github.com/MLopezJ/nRF-Asset-Tracker-through-Coiote-flow/issues/8#issuecomment-1488481442 with the following message:

We fully support everything that is in the LwM2M standard. The best option would be to check the specification directly:

Transport Bindings: https://www.openmobilealliance.org/release/LightweightM2M/V1_2-20201110-A/OMA-TS-LightweightM2M_Transport-V1_2-20201110-A.pdf

Core: https://www.openmobilealliance.org/release/LightweightM2M/V1_2-20201110-A/OMA-TS-LightweightM2M_Core-V1_2-20201110-A.pdf

Also, you can connect to Coiote our LwM2M client "Anjay", and collect its packets with Wireshark to use it as a reference: https://github.com/AVSystem/Anjay

I hope that helps. Please let me know if you have additional questions.

About the links, those are not really helpful because I already read them and I think I have been follow the standard. But I will take a look again and see if I can get something new.

About the Wireshark solution, it is a good option, I thought about it before but the problem is that the packets are going to be encrypted even when there is used the nosec mode. I will try it juts to confirm or discard.

MLopezJ commented 1 year ago

About the Wireshark solution, it is a good option, I thought about it before but the problem is that the packets are going to be encrypted even when there is used the nosec mode. I will try it juts to confirm or discard.

work in progress: https://github.com/MLopezJ/trace-anjay