Downlink message using http integration

Hello,

I am trying to send downlink messages to some LoRaWAN nodes.
Is it possible to use the http integration in order to send a message?
I looked for the source code of lora app server and I found that the following function (defined in internal/integration/http/http.go) return null.

func (i *Integration) DataDownChan() chan integration.DataDownPayload {

return nil

}

is there a way to add a message in the device queue using this function?

Thanks in advance for the help.

Regards,

1 Like

Hope you find out, i were being stuck here for a months ^^

The Integrator is an interface which any real intergration must implement, such as mqtt intergration(internal/integration/mqtt/mqtt.go), but as it is http intergration, DataDownChan() is designed to be null because http intergration do notification job only, to use http to schedule a downlink queue, i think you can use POST device-queue RESTful.

Hi @brocaar,

I also need to send Downlink message towards end device from thingsboard to disable the alarm siren.
Can you please share some idea how this can be done using HTTP integration ?

This would really helpful.

Regards
Jayesh

If I understand correctly, you can use the loraserver api to send downlink . It will be a POST method of [DeviceQueueService].

Thanks it worked now. Did anyone used Thingsboard widget to send Downlink CMDs over http ?

3 Likes

Could you help me to send downlink from gateway sir?

Even, I am searching for the same thing. I already have downlink via MQTT Integration (through MQTT Broker).
Now I have implemented Uplink via Device Access Token (without MQTT), But I want to send Downlink command (Base 64 encoded) from thingsboard Dashboard over HTTP Integration to end-device (LoRa-Server > device Queue). For that we need to set HTTP Integration parameters such as Base URL or HTTP endpoint URL in Thingsboard > Integration. I think it should be set to Request URL of specific device queue in LoRa app Server i.e. http://localhost:8080/api/devices/deviceEUI/queue

Am I correct? Correct if I am wrong.

My objective:
Dashboard > Rule chain > HTTP Integration ( Downlink converter) > LoRa App server (device Queue) > Gateway > end-device

Any hints/ suggestions would be vey helpful & much appreciated!

Thanks in advance!

Best regards,
Thangz

curl -X POST --header ‘Content-Type: application/json’ --header ‘Accept: application/json’ --header ‘Grpc-Metadata-Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcGlfa2V5X2lkIjoiNDUwNWUxMTUtYzYxNC00NzdlLTg5YzMtNGQ1MWQ4ZjM0YzA1IiwiYXVkIjoiYXMiLCJpc3MiOiJhcyIsIm5iZiI6MTYwMTU5MzA4Niwic3ViIjoiYXBpX2tleSJ9.PfNHM6G32bXpoAwRf4QHKYoGbGbZM5S1C8dBGHtBXlc’ -d ‘{“deviceQueueItem”:{“confirmed”:false, “data”:“BwgJ”, “fPort”: 10 }}’ ‘http://localhost:8080/api/devices/60c5a8fffe781ee8/queue’

Hi @thangaraj_m.d , did you solve it? I’m in the same situation as your explanation. I can receive telemetry from end-device to thingsboard (my end device is RAK7431). However, I’m unable to send downlink msg through thingsboard. Can you share some insights? Thanks.