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
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:
00E4304D
)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:
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
.
Komentar yang paling membantu
Perangkat
multicast
yang terdaftar dilorawan-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:
00E4304D
)A0CAD5A30036DBE03096EB67CA975BAA
danA0CAD5A30036DBE03096EB67CA975BAA
untuk AppSKey dan NwkSKey masing-masing).Kemudian Anda akan mendaftarkan satu perangkat di
lorawan-stack
denganDevAddr
dan kunci sesi yang Anda pilih dan set flagmulticast
.Katakanlah Anda memanggil perangkat yang baru saja Anda buat
dev1
dan nama aplikasinya adalahapp1
.Katakanlah Anda kemudian melanjutkan untuk mendorong downlink untuk
dev1
di appapp1
(silakan lihat dokumentasi tentang berbagai cara untuk melakukannya), makalorawan-stack
akan menjadwalkan satu downlink untuk perangkat dengan DevAddr00E4304D
.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:
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.