Lorawan-stack: Jenis perangkat dokumen OTAA, ABP, dan Multicast

Dibuat pada 8 Jul 2019  ·  14Komentar  ·  Sumber: TheThingsNetwork/lorawan-stack

Ringkasan


PERTANYAAN

Apakah ada kemungkinan untuk mengirim pesan multicast dengan webhook?
Kami mengembangkan bootloader LoRaWAN (saat ini bekerja di Kelas A) dan itu sangat tidak efektif.
Seluruh transfer firmware (untuk satu node) membutuhkan waktu sekitar satu jam @80dBm untuk DR4 (~64kB).

Apakah ada kemungkinan untuk mengirim data downlink firmware sebagai pesan multicast ke banyak node (untuk aplikasi) menggunakan webhook?
Daripada setiap node dapat meminta paket yang terlewat satu per satu.
Saya pikir itu akan meminimalkan pemanfaatan "Waktu OTA".
Apakah ada beberapa dokumen/info untuk ini?

Perangkat Akhir adalah Telit LoRaWAN 1.0.2

documentation in progress

Komentar yang paling membantu

Perangkat multicast yang terdaftar di lorawan-stack dapat mewakili jumlah perangkat fisik yang berubah-ubah.
Jadi katakanlah Anda memiliki 5 perangkat yang ingin Anda operasikan dalam mode Multicast - maka Anda akan menyediakan semua 5 perangkat fisik Anda untuk digunakan:

  • DevAddr identik(misalnya 00E4304D )
  • kunci sesi yang identik (misalnya A0CAD5A30036DBE03096EB67CA975BAA dan A0CAD5A30036DBE03096EB67CA975BAA untuk AppSKey dan NwkSKey masing-masing).

Kemudian Anda akan mendaftarkan satu perangkat di lorawan-stack dengan DevAddr dan kunci sesi yang Anda pilih dan set flag multicast .
Katakanlah Anda memanggil perangkat yang baru saja Anda buat dev1 dan nama aplikasinya adalah app1 .
Katakanlah Anda kemudian melanjutkan untuk mendorong downlink untuk dev1 di app app1 (silakan lihat dokumentasi tentang berbagai cara untuk melakukannya), maka lorawan-stack akan menjadwalkan satu downlink untuk perangkat dengan DevAddr 00E4304D .
Downlink tunggal akan diterima oleh semua perangkat yang cocok dengan DevAddr 00E4304D , yaitu semua 5 (idealnya) perangkat yang Anda sediakan di atas.

Perhatikan, bahwa beberapa perangkat fisik dapat benar-benar berpartisipasi dalam beberapa sesi secara bersamaan.
Mari kita asumsikan Anda memiliki 5 perangkat tersebut dan Anda ingin mereka beroperasi sebagai OTAA, sementara juga menjadi bagian dari grup multicast:

  1. Anda akan mendaftarkan setiap perangkat sebagai perangkat OTAA terpisah dengan masing-masing ID perangkatnya sendiri. (jadi, daftarkan 5 perangkat - 1 per setiap perangkat fisik)
  2. Anda akan mendaftarkan satu perangkat sebagai perangkat multicast dengan ID perangkat yang berbeda. (jadi, daftarkan 1 perangkat - 1 per setiap grup multicast)

Kunci untuk dipahami di sini adalah bahwa perangkat multicast terdaftar dapat mewakili beberapa perangkat fisik, namun semua perangkat fisik ini harus berbagi DevAddr dan kunci sesi.

Semua 14 komentar

Menghapus bagian yang tidak relevan untuk masalah jenis "pertanyaan"

Referensi #890

T: Apakah ada kemungkinan untuk mengirim pesan multicast dengan webhook?

J: Ya, stack mendukung pendaftaran sesi multicast Kelas C seperti perangkat akhir lainnya dengan flag --multicast . Ini dijelaskan dalam Memulai kami: https://github.com/TheThingsNetwork/lorawan-stack/blob/master/doc/gettingstarted.md#creating -a-device

T: Apakah ada kemungkinan untuk mengirim data downlink firmware sebagai pesan multicast ke banyak node (untuk aplikasi) menggunakan webhook?

J: Ya, sesi multicast terdaftar sebagai perangkat lain, jadi Anda dapat menjadwalkan downlink ke sana dengan cara yang sama persis seperti yang Anda lakukan untuk perangkat normal.

T: Apakah ada beberapa dokumen/info untuk ini?

A: Tidak lebih dari saat ini dalam Memulai.

@rvolosatovs @adriansmares IIRC kalian melakukan pengujian dengan Kelas C dan dengan Multicast, kan? Haruskah kita menulis halaman dokumentasi yang bagus tentang itu?

Jika ya, maka mari kita tunggu #401 sebelum melakukannya.

@htdivsser - terima kasih atas balasannya. Saya melihatnya saat memulai.

Sintaks webhook (url) adalah:
'curl' http://localhost :1885/api/v3/as/applications/ap2/webhooks/fwup/devices/dv1/down/push -X POST -H 'Otorisasi: Pembawa NNSXS.CLCIYOYYEDPLJSSWRNMYS5KCDI45HOE6M3WZIDY.E6DXAAZ4 "downlinks":[{"frm_payload":"vu8=","f_port":15,"priority":"NORMAL"}]}'

Ada satu nama perangkat yang ditentukan untuk target downlink

Jadi apa sintaks webhook menegakkan pesan multicast ke beberapa perangkat?

Idenya adalah Anda mendaftarkan satu "perangkat semu" yang mewakili grup multicast yang berisi beberapa perangkat fisik. Saat menggunakan webhook untuk menjadwalkan downlink ke grup multicast, Anda menargetkannya di perangkat semu ini.

Seperti yang Anda lihat di Persiapan, pendaftaran perangkat semu tersebut pada dasarnya sama dengan perangkat ABP. DevAddr adalah alamat Multicast, NwkSKey adalah McNwkSKey dan AppSKey adalah McAppSKey.

Karena kami belum menerapkan Pengaturan Multicast Jarak Jauh, sesi multicast di sisi perangkat masih perlu diatur oleh lapisan aplikasi.

@htdvisser terima kasih.
Apakah perangkat pseudo multicast harus ABP?
Saya harap itu tidak bertabrakan dengan mengakses perangkat akhir yang sebenarnya secara langsung?

Saya tidak dapat menemukan apa pun tentang pembuatan perangkat semu dan menambahkan perangkat ke "grup" ini untuk memulai yang telah Anda sebutkan.

Saya juga sudah memeriksa:
ttn-lw-cli --help
ttn-lw-cli end-devs --help
ttn-lw-cli dev --help
dan tidak dapat melihat deskripsi "intuitif" untuk perangkat dan grup semu.

Bisakah Anda memberikan perintah, untuk mencapai ini?

@ecities Perangkat multicast harus ABP, karena tidak mengirim uplink dan karenanya tidak mendukung aliran OTAA menurut definisi
Daftarkan perangkat dengan cara yang sama seperti Anda mendaftarkan perangkat ABP, tetapi tambahkan flag multicast .

@rvolosatovs terima kasih
Multicast devices have to be ABP, since they do not send uplinks and hence do not support OTAA flow by definition
Jadi Kita harus memilih hanya satu dari ??:
-standar dev dengan otta (kelas A atau C)
-multicast dev dengan abp (kelas C) - flag dibuat saat pembuatan perangkat dan tidak dapat dihapus. Tidak bisa uplink data sama sekali.

Atau mungkin ada solusi misalnya: tambahkan perangkat ke 2 aplikasi berbeda?
1) untuk kerja normal (uplink/downlink) (ap1)
2) hanya untuk downlink multicast (ap2)
_Tapi sepertinya ada masalah dengan hak akses - kami telah melaporkan masalah di sini_

Register the device same way you would an ABP device, but add the multicast flag.

Mungkin contohnya:
Katakanlah saya memiliki 2 perangkat (dev1, dev2 dengan McNwkSKey, McAppSKey, dan mungkin dev-addr yang sama)
ttn-lw-cli perangkat akhir buat app1 dev1 \
--frequency-plan-id EU_863_870 \
--lorawan-versi 1.0.2 \
--lorawan-phy-versi 1.0.2-b \
--abp \
--session.dev-addr 00E4304D \
--session.keys.app-s-key.key A0CAD5A30036DBE03096EB67CA975BAA \
--session.keys.nwk-s-key.key B7F3E161BC9D4388E6C788A0C547F255 \
--multicast

ttn-lw-cli perangkat akhir buat app1 dev2 \
--frequency-plan-id EU_863_870 \
--lorawan-versi 1.0.2 \
--lorawan-phy-versi 1.0.2-b \
--abp \
--session.dev-addr 00E4304D \
--session.keys.app-s-key.key A0CAD5A30036DBE03096EB67CA975BAA \
--session.keys.nwk-s-key.key B7F3E161BC9D4388E6C788A0C547F255 \
--multicast

Apakah tepat?

dan ingin mengirim pesan multicast ke keduanya dengan webhook.
Masih belum jelas bagi saya apa yang akan menjadi URL untuk webhook?
http://localhost :1885/api/v3/as/applications/ap2/webhooks/fwup/devices/00E4304D/down/push

Apakah ini benar?

Atau mungkin:

http://localhost :1885/api/v3/as/applications/ap2/webhooks/fwup/devices/dev1/down/push

dan itu akan diterima oleh perangkat lain dengan pengaturan keamanan yang sama di mana
--session.keys.app-s-key.key A0CAD5A30036DBE03096EB67CA975BAA
--session.keys.nwk-s-key.key B7F3E161BC9D4388E6C788A0C547F255

??

Perangkat multicast yang terdaftar di lorawan-stack dapat mewakili jumlah perangkat fisik yang berubah-ubah.
Jadi katakanlah Anda memiliki 5 perangkat yang ingin Anda operasikan dalam mode Multicast - maka Anda akan menyediakan semua 5 perangkat fisik Anda untuk digunakan:

  • DevAddr identik(misalnya 00E4304D )
  • kunci sesi yang identik (misalnya A0CAD5A30036DBE03096EB67CA975BAA dan A0CAD5A30036DBE03096EB67CA975BAA untuk AppSKey dan NwkSKey masing-masing).

Kemudian Anda akan mendaftarkan satu perangkat di lorawan-stack dengan DevAddr dan kunci sesi yang Anda pilih dan set flag multicast .
Katakanlah Anda memanggil perangkat yang baru saja Anda buat dev1 dan nama aplikasinya adalah app1 .
Katakanlah Anda kemudian melanjutkan untuk mendorong downlink untuk dev1 di app app1 (silakan lihat dokumentasi tentang berbagai cara untuk melakukannya), maka lorawan-stack akan menjadwalkan satu downlink untuk perangkat dengan DevAddr 00E4304D .
Downlink tunggal akan diterima oleh semua perangkat yang cocok dengan DevAddr 00E4304D , yaitu semua 5 (idealnya) perangkat yang Anda sediakan di atas.

Perhatikan, bahwa beberapa perangkat fisik dapat benar-benar berpartisipasi dalam beberapa sesi secara bersamaan.
Mari kita asumsikan Anda memiliki 5 perangkat tersebut dan Anda ingin mereka beroperasi sebagai OTAA, sementara juga menjadi bagian dari grup multicast:

  1. Anda akan mendaftarkan setiap perangkat sebagai perangkat OTAA terpisah dengan masing-masing ID perangkatnya sendiri. (jadi, daftarkan 5 perangkat - 1 per setiap perangkat fisik)
  2. Anda akan mendaftarkan satu perangkat sebagai perangkat multicast dengan ID perangkat yang berbeda. (jadi, daftarkan 1 perangkat - 1 per setiap grup multicast)

Kunci untuk dipahami di sini adalah bahwa perangkat multicast terdaftar dapat mewakili beberapa perangkat fisik, namun semua perangkat fisik ini harus berbagi DevAddr dan kunci sesi.

@rvolosatovs terima kasih banyak atas penjelasan "langkah demi langkah" yang sangat bagus, yang menghilangkan sebagian besar asumsi

Saya pikir itu layak untuk disalin ke manual Memulai atau dokumentasi multicast karena ini tidak begitu jelas dalam praktiknya

Salam,

Robert

@ecities sama-sama, senang saya bisa membantu!
@adriansmares bisakah kamu mengambil ini?

@adriansmares menyarankan agar kami menjelaskan sedikit lebih detail apa itu perangkat OTAA, ABP, dan Multicast, terutama yang terakhir.

Saya mencoba membuat --multicast device (perintah disalin dari contoh memulai)

ttn-lw-cli perangkat akhir buat ap3 lldv3 \
--frequency-plan-id EU_863_870 \
--lorawan-versi 1.0.2 \
--lorawan-phy-versi 1.0.2-b \
--abp \
--session.dev-addr 11E4304D \
--session.keys.app-s-key.key A0CAD5A30036DBE03096EB67CA975BAA \
--session.keys.nwk-s-key.key B7F3E161BC9D4388E6C788A0C547F255 \
--multicast

dan mendapat pesan:
bendera tidak dikenal: --multicast

versi ttn-lw-cli
Antarmuka Baris Perintah Jaringan Things: ttn-lw-cli
Versi: 3.0.3
Pergi versi: go1.12.5
OS/Arch: linux/amd64

Harap tunggu v3.1.0 atau build master dari sumber, lihat DEVELOPMENT.md .

Apakah halaman ini membantu?
0 / 5 - 0 peringkat