Customer to add LoRa devices to Gateway over a custom browser UI

Hi, has anyone tried this?

Raspberry Pi LoRaWAN Gateway (Chirpstack NS, AS)--------LAN--------Customer Local PC Browser url, purpose made dashboard UI.

The customer has the Gateway up and running and is monitoring device parameters locally on PC browser over custom made Dashboard User Interface.

We need to allow customer to add more LoRa devices to the Gateway over a custom browser UI.

Now as System Integrators we know that we can log into the AS and add devices with OTAA, devEUI and AppKey. But we want the customer to add new devices locally (without logging into Gateway AS) using purpose made Dashboard UI on browser by simply inserting Application name, devEUI, AppKey on a "Add Device"browser widget and simply clicking a button.

Is this possible? and if so, then want to know what is the path where Chirpstack saves the Application name, devEUI and AppKey on the Gateway?

Making a purpose made UI is not an issue, just want to know the path for saving Application name, devEUI, AppKey on the Gateway once the customer enters them on the purpose made UI, enters Application name, devEUI, AppKey for the new device and clicks “Add Application”, “Add Device”, “Delete Application”, “Delete Device”.

Sorry but I can not understand your issue. :upside_down_face:

please try to express it in a more clear way.

Maybe @brocaar can help you.

I’m not sure if I understand it fully either, but it sounds like you want to build something on top of the ChirpStack API?

@brocaar @NicolasUy

Allow me to expand my topic a little more.

I have a gateway with built-in Chirpstack API. I can add remove devices on it by logging in, no problem.

Now let us say if the gateway is not with me but with my customer (user) with some devices which are up and running. They would like to add a new device on the same gateway.

Raspberry Pi LoRaWAN Gateway (Chirpstack NS, AS)--------LAN--------Customer Local PC Browser url, purpose made dashboard UI Node-RED.

I also have Node-RED on the same gateway. I want my customer to add or remove devices by himself without using/logging into the resident Chirpstack API.

I can configure a dashboard using Node-RED which can be accessed by the customer over the browser http://IPAddress:1880/ui. Let us say if I make a purpose made Node-RED page on which I have widgets to allow my customer to input credentials for adding new application and device or deleting an existing application and/or device (without logging into the Chirpstack API).

In simple terms I want to add or remove devices using purpose made Node-Red UI by inputting Application name, devEUI, AppKey on the browser page and then click Save. Where does Chirpstack API save the Application name, devEUI, AppKey on the host Raspberry Pi (what is the file path)?

i think you are over complicating your life… It also sounds as if you have everything running on the pi?

You either need to:

  1. develop something against the API (your chirpstack ip/API)
  2. Use a excel to API → Lora App Server new device registration - #12 by fmgst
  3. Simply show the customer how to do it in the AS.

I would however not really look to run this all on a RPI… SD cards are not realy meant for this. You either need to get your own version of Chirpstack running in the cloud and then give him an account, or build a sull appliance install for him…

But running everything on an RPI is only going to cause you headaches…

Not sure if I have understood correctly from the reply and if I am on the right path??? Did a bit of study on the web to arrive at below:-

Should I use REST API, POST api/devices details using Node-RED http response and function node to send JSON object with Bearer =APIToken= authentication to the AS? Will it register a new device in this manner?

“device”: {
“applicationID”: “string”,
“description”: “string”,
“devEUI”: “string”,
“deviceProfileID”: “string”,
“name”: “string”,
“referenceAltitude”: 0,
“skipFCntCheck”: true,
“tags”: {},
“variables”: {}

Am I on the right path? A Node-RED flow example please would make it easier since I am not too familiar with such coding methods.