New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Document device types OTAA, ABP and Multicast #953
Comments
Removed irrelevant sections for issue of type "question" Ref #890 |
A: Yes, the stack supports registering Class C multicast sessions as any other end device with the
A: Yes, the multicast session is registered as any other device, so you can schedule downlink to it in the exact same way as you would for a normal device.
A: Not more than is currently in the Getting Started. |
@rvolosatovs @adriansmares IIRC you guys did testing with Class C and with Multicast, right? Should we write a nice documentation page about that? If yes, then let's wait for #401 before doing it. |
@htdivsser - thanks for reply. I saw it on getting started. The syntax of webhook (url) is : There is single device name specified for downlink target So what is the syntax of webhook enforcing multicast message to multiple devices? |
The idea is that you register a single "pseudo-device" representing a multicast group that contains multiple physical devices. When using the webhook to schedule downlink to the multicast group, you target it at this pseudo-device. As you can see in the Getting Started, the registration of such a pseudo-device is essentially the same as for an ABP device. The DevAddr is the Multicast address, the NwkSKey is the McNwkSKey and the AppSKey is the McAppSKey. Since we haven't implemented Remote Multicast Setup yet, the multicast session on the device side still needs to be set up by the application layer. |
@htdvisser thanks. I can't find anything about creation pseudo-device and add devices to this "group" in getting started you've mentioned. I've also checked: Can you supply commands, to achieve this? |
@ecities Multicast devices have to be ABP, since they do not send uplinks and hence do not support OTAA flow by definition |
@rvolosatovs thanks Or maybe there is workaround eg: add devices to 2 different apps?
Maybe an example: ttn-lw-cli end-devices create app1 dev2 Is it right? and want to send multicast message to both of them with webhook. Is this correct? Or maybe: http://localhost:1885/api/v3/as/applications/ap2/webhooks/fwup/devices/dev1/down/push and it will be received by other devices with the same security settings where ?? |
A
Then you'd register a single device in Note, that some physical devices are able to actually participate in multiple sessions simultaneously.
The key to understand here is that registered multicast device may represent multiple physical devices, however all of these physical devices have to share the DevAddr and session keys. |
@rvolosatovs thanks a lot for very good "step-by-step" explanation, which eliminates most of assumptions I think it's worth to be copied to Getting started manual or multicast documentation as this is not so obvious in practice Regards, Robert |
@ecities you're welcome, glad I could help! |
@adriansmares suggesting that we explain a bit in more detail what OTAA, ABP and Multicast devices are, especially the latter. |
I'm trying to create --multicast device (command copied from getting started example) ttn-lw-cli end-devices create ap3 lldv3 and got a message: ttn-lw-cli version |
Please wait for |
Summary
QUESTION
Is there a possibility to send multicast messages with webhook?
We develop LoRaWAN bootloader (currently working in Class A) and it's very ineffective.
Whole firmware transfer (for one node) takes about an hour @80dBm for DR4 (~64kB).
Is there a possibility to send firmware downlink data as multicast messages to many nodes (for the application) using webhooks?
Than each node may query for missed packages individually.
I think it would minimize utilization of "OTA Time".
Is there some docs/info for this?
End Device is Telit LoRaWAN 1.0.2
The text was updated successfully, but these errors were encountered: