ΠΠΎΠΊΠ°Π·Π°ΡΡ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΡΠ°ΡΠΈΠΊΠ° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ
ΠΠΎΠ»Π΅Π·Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° ΡΠΎΠ±ΡΡΠΈΡ Π² as.up.forward
Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΡΡΠΎΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
as.up.data.forward
ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ»Ρ frm_payload
(Π±Π°ΠΉΡΡ) ΠΈ decoded_payload
(ΠΎΠ±ΡΠ΅ΠΊΡ). Π― Ρ
ΠΎΡΠ΅Π» Π±Ρ Π²ΠΈΠ΄Π΅ΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠ°ΠΊ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΉ, Π° Π²ΡΠΎΡΠΎΠΉ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»ΡΡ/Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ); Π² ΡΡΠ΄Ρ. ΠΡΠ»ΠΈ Π²Ρ ΠΎΡΠΊΡΠΎΠ΅ΡΠ΅ ΡΡΡΠΎΠΊΡ, ΡΠ½ΠΎΠ²Π° ΠΏΠΎΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠΈΡΠ΅ ids.dev_addr
.
ΠΠ»Ρ as.up.join.forward
ΠΏΠΎΠΊΠ°ΠΆΠΈΡΠ΅ ids.join_eui
ΠΈ ids.dev_eui
Π² ΡΡΡΠΎΠΊΠ΅.
ΠΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΠΎΠΊΠ°ΠΆΠΈΡΠ΅ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ( message_format
Ρ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ) ΠΊΡΠ°ΡΠ½ΡΠΌ ΠΈΠ»ΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ. β 1967)
Π Π΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΠΌΠ°Π³ΠΈΡ
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠΎΠ³Π»Π°ΡΡΠΉΡΠ΅
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡΠΎ, ΡΡΠΎ "Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ"
ΠΡΠΎ Π±ΡΠ»Π° ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ
Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΎΡΠ΅Π½ΠΊΠ΅ Π²Π΅ΡΡΠΈΠΈ 3 Π½Π° ΡΡΠ½ΠΊΠ΅ AWS.
ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΠΏΡΠ°ΡΠΈΠ²Π°Ρ, Π΅ΡΡΡ ΠΈΠ΄Π΅ΠΈ, ΠΊΠΎΠ³Π΄Π°?
@industrialinternet ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΡΠΎΡΠ²Π»Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ. ΠΠ½ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² ΡΠ΅Π²ΡΠ°Π»ΡΡΠΊΠΎΠΌ ΡΡΠ±Π΅ΠΆΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΡΠ° ΡΠ΅Π»Ρ β Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ Π΅Π³ΠΎ Π² ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΡΠ΅. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠ΄ΠΏΠΈΡΠΈΡΠ΅ΡΡ Π½Π° ΡΡΠΎΡ Π²ΡΠΏΡΡΠΊ ΠΈ ΡΠ»Π΅Π΄ΠΈΡΠ΅ Π·Π° ΡΡΠΈΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π·Π° Π²ΡΠΏΡΡΠΊΠ°ΠΌΠΈ, Π½Π°ΠΆΠ°Π² Β«Π‘ΠΌΠΎΡΡΠ΅ΡΡΒ» Π²Π²Π΅ΡΡ Ρ, ΡΡΠΎΠ±Ρ Π²Ρ Π·Π½Π°Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²ΡΠΏΡΡΠΊ.
@johanstokking
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅Π»Π° ΡΠΎΠ±ΡΡΠΈΠΉ .up.forward:
Π― Π΄ΡΠΌΠ°Ρ, Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Ρ as.up.data.forward
Π·Π΄Π΅ΡΡ?
decoded_payload
? Π‘ΠΏΡΠ°ΡΠΈΠ²Π°Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ΅ΡΠ΅Π½ΠΎ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ.Π― Π΄ΡΠΌΠ°Ρ, Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Ρ
as.up.data.forward
Π·Π΄Π΅ΡΡ?
ΠΠ°, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌ ΠΈΡ
Π½Π° as.up.join.forward
ΠΈ as.up.data.forward
, ΠΈ Π²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ Π½ΠΈΡΡ
ΠΎΠ΄ΡΡΠ΅ΠΉ Π»ΠΈΠ½ΠΈΠΈ ΡΠ²ΡΠ·ΠΈ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ
Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π», Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°ΡΡΡΡ (ΠΏΠΎΠΊΠ°).
- ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ, ΡΡΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π²Π°ΠΌΠΈ ΠΏΠΎΠ»Ρ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ (Π΅ΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ) Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠΎΠ±ΡΡΠΈΡ?
frm_payload
Π²ΡΠ΅Π³Π΄Π° Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² as.up.data.forward
, Π½ΠΎ decoded_payload
Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ.as.up.join.forward
2. ΠΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° ΡΠΎΠ±ΡΡΠΈΠΉ (ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡΡΠ°Π½ΠΈΡ ΠΎΠ±Π·ΠΎΡΠ° ΡΡΡΠ½ΠΎΡΡΠΈ)?
Π ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ΅ΡΡΠ°, Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Ρ? Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π΄Π»Ρ Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅ΠΉ ΡΠ²ΡΠ·ΠΈ Π΄Π°Π½Π½ΡΡ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ°, Π° Π΄Π»Ρ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ DevEUI.
- ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ
decoded_payload
? Π‘ΠΏΡΠ°ΡΠΈΠ²Π°Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ΅ΡΠ΅Π½ΠΎ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ.
Π ΡΡΡΠΎΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π·Π°ΡΡ Π΅Π³ΠΎ. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π·Π²Π΅ΡΠ½Π΅ΡΠ΅ ΡΡΡΠΎΠΊΡ, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΊΠ°ΠΊ JSON. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ, ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅ {"temperature": 21.5, "humidity": 62, "x": -1, "y": 5}
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π·Π΄Π΅ΡΡ
ΠΡΠΈΠ²Π΅Ρ, ΠΠΎΡ Π°Π½ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅, ΠΏΡΠΈΡΠ°ΡΡΠ½ΡΠ΅ ΠΊ ΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ.
ΠΡΠΈΡΡΠ½ΠΎ ΡΠ»ΡΡΠ°ΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ, ΡΠ΅Π±ΡΡΠ°, Π΅ΡΡΡ "Π²Π΅Ρ
Π°" Π½Π° ΡΠ΅Π²ΡΠ°Π»Ρ.
ΠΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΠΎΡΠ΅Π½ΠΈΠ²Π°Ρ ΠΊΠΎΠ½ΡΠΎΠ»Ρ V3, ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π΄Π΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΡΡ
ΡΡΠ΅Π΄ΡΡΠ², ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠ΄Π°ΡΡΠΈΠΉΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΡ
1) ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π½ΠΈΡΡ
ΠΎΠ΄ΡΡΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ·Π΅Π» ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ
2) ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΈΠ΄Π΅ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π²ΠΎΡΡ
ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π° HEX ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅.
3) ΠΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡ Π΄Π»Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ fx. Π ΠΎΠ΄ΠΈΡΠ΅Π»Ρ/ΠΏΠΎΡΠΎΠΌΠΎΠΊ/ΡΠ·Π΅Π»
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ TTI, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΊ Π½Π°ΡΠΈΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ, ΡΡΠΎ ΡΡΠ°Π½Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΎΠΊ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°.
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ - ΠΏΠΎΠΊΠ° Ρ ΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°, ΠΏΠ°ΡΠ΅Π½Ρ :-)
BR
/Π
ΠΠΎΡΡΠ΄ΠΎΠΊ Π²Π°ΠΆΠ½ΠΎΡΡΠΈ;
ids.join_eui
, ids.dev_eui
ΠΈ ids.dev_addr
Π² Π·Π°ΠΏΡΠΎΡΠ°Ρ
Π½Π° ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ids.dev_addr
ΠΈ uplink_message.frm_payload
Π΄Π»Ρ ΠΈΡΡ
ΠΎΠ΄ΡΡΠΈΡ
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉΠΡΠΎΡΡΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΡΠ½ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ.
js.join.accept
ns.up.join.forward
ns.up.merge_metadata
as.up.join.receive
as.up.join.forward
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ²: join_eui
, dev_eui
ΠΈ dev_addr
ΠΠΎΡΡ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ns.up.merge_metadata
ns.up.data.forward
as.up.data.receive
as.up.data.forward
ΠΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ²: dev_addr
ΠΈ frm_payload
. Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ dev_addr
Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ
ΡΠΎΠ±ΡΡΠΈΠΉ Π² Π²ΠΎΡΡ
ΠΎΠ΄ΡΡΠ΅ΠΌ ΠΏΠΎΡΠΎΠΊΠ΅.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ Ρ Π·Π΄Π΅ΡΡ Π²ΠΈΠΆΡ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΡ as.up.join.forward
Π² ΠΏΠΎΡΠΎΠΊΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠΎΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ Π΄Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠΊ ( Dev Addr: ....
) ΠΎΡΡΠ°Π²ΠΈΡ Π΅ΡΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ΅ΡΡΠ°.
{
"namespace": "pkg/gatewayserver",
"name": "host_handle",
"message_format": "host `{host}` failed to handle message",
"attributes": {
"host": "cluster"
},
"cause": {
"namespace": "pkg/networkserver",
"name": "device_not_found",
"message_format": "device not found",
"correlation_id": "25407ee7f3cd4894aeeb23fecd4c4071",
"code": 5
},
"code": 5
}
ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ
ΠΈΠ»ΠΈ Π΄Π»Ρ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ( ns.up.join.drop
):
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π½Π΅ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΎΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
@johanstokking @kschiffer Π΅ΡΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ?
ΠΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ°Π³ΠΈ!
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ²:
join_eui
,dev_eui
ΠΈdev_addr
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²/Π²ΠΎΠΏΡΠΎΡΠΎΠ²:
dev_addr
ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π΅Π³ΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ
Π²ΠΎΡΡ
ΠΎΠ΄ΡΡΠΈΡ
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΡΡ?JoinEUI
ΠΈ DevEUI
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ
ΠΊΠ°ΠΊΠΎΠΉ.ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ²:
dev_addr
ΠΈfrm_payload
.
Π₯ΠΎΡΠΎΡΠΎ, Π·Π΄Π΅ΡΡ ΡΠΎΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ FRMPayload
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ
dev_addr
Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ Π² Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌ ΠΏΠΎΡΠΎΠΊΠ΅.
ΠΠ°, ΡΡΠΎ ΠΏΡΠ½ΠΊΡ 1 Π²ΡΡΠ΅. Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΡΡΠΈΠΌ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ Ρ Π·Π΄Π΅ΡΡ Π²ΠΈΠΆΡ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΡ
as.up.join.forward
Π² ΠΏΠΎΡΠΎΠΊΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠΎΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ Π΄Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠΊ (Dev Addr: ....
) ΠΎΡΡΠ°Π²ΠΈΡ Π΅ΡΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ΅ΡΡΠ°.
Π― Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅Π» ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΡΠ΅ΠΊΡΡ Β«ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅ΠΉ Π»ΠΈΠ½ΠΈΠΈ ΡΠ²ΡΠ·ΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Β» Π² Π·Π½Π°ΡΠΎΠΊ (ΠΈΠ»ΠΈ Π·Π½Π°ΡΠΊΠΈ; AS + Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ°Ρ Π»ΠΈΠ½ΠΈΡ ΡΠ²ΡΠ·ΠΈ + Π΄Π°Π½Π½ΡΠ΅), Π° Π½Π΅ ΡΠ΄Π°Π»ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡ ΡΠΎΠ±ΡΡΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ @pierrephz ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠΊΠΎΠ½ΠΊΠΈ, Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠΎΠ³Π»Π°ΡΠ½Ρ. ΠΊΠΎΠΏΠΈΡ @kschiffer
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π½Π΅ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΎΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
Π‘ΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ
ΠΠ°ΡΠ° ΠΌΡΡΠ»Π΅ΠΉ:
Entity ID
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π»ΠΈΡΠ½ΠΈΠΉ.Entity ID
link
Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ.receive uplinke data message
, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΡΠΎ Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎ receive uplink data
?<SafeInspector />
, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²ΡΡΠΎΡΠ° ΡΡΡΠΎΠΊ ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ.frm_payload
ΡΠ΅ΡΠ΅Π· ΡΠ΅ΠΊΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΠΎΠ³ΠΎ JSON (ΡΠΌ. Π΄ΠΈΠ·Π°ΠΉΠ½ ΡΠΊΡΠ°Π½Π°). ΠΠΎΠΊΠ° Ρ ΠΌΠΎΠ³Ρ ΡΡΠΈΡΠ°ΡΡ ΡΡΠΎ Π·ΠΎΠ»ΠΎΡΡΠΌ ΠΏΠΎΠΊΡΡΡΠΈΠ΅ΠΌ.ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΠΈΠΌΠ΅ΡΡ ΡΡΠΎΠ»Π±Π΅Ρ Π΄Π»Ρ dev_addr ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡ Π΅Π³ΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ?
ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΠΎ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΡΠΎΠ»Π±Π΅Ρ Data
.
Π― Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΠ΅ΡΠ΅Π΄ JoinEUI ΠΈ DevEUI Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ΅ΠΊΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, JoinEUI ΠΈ DevEUI, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠΉ.
Π΄Π°. @bafonins , Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Ρ ΠΈΠΌΠ΅Π» Π² Π²ΠΈΠ΄Ρ Π² slack. ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, ΡΡΠΎ Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠ½ΠΎ Π²ΡΡΠ°Π·ΠΈΠ»ΡΡ.
Π― Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅Π» ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΡΠ΅ΠΊΡΡ Β«ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅ΠΉ Π»ΠΈΠ½ΠΈΠΈ ΡΠ²ΡΠ·ΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Β» Π² Π·Π½Π°ΡΠΎΠΊ (ΠΈΠ»ΠΈ Π·Π½Π°ΡΠΊΠΈ; AS + Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ°Ρ Π»ΠΈΠ½ΠΈΡ ΡΠ²ΡΠ·ΠΈ + Π΄Π°Π½Π½ΡΠ΅).
Β«Π’Π΅ΠΊΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΡΡΡΡΠ° ΠΈΠΊΠΎΠ½ΠΎΠΊΒ» π . Π― Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΎΡΠ΅Π» Π±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΠΎΠ»Π±Π΅Ρ ΡΠΈΠΏΠ° ΡΠΎΠ±ΡΡΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΠΊΡΡΠ°. ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π½Π°ΡΠΊΠΎΠ².
ΠΠΎΡ Π΄Π²Π° Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΡΠΊΡΠ°Π½Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΎ, ΡΡΠΎ Ρ ΡΡΠΈΡΠ°Ρ ΠΆΠΈΠ·Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΡΠΎΠ²Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ².
Π ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ»ΡΠ·Ρ) ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΠΎΠ»Π±Π΅Ρ Entity ID, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΡΠΌ.
π ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»
ΠΠ°ΠΌ Π½ΡΠΆΠ½Ρ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π·Π½Π°ΡΠΊΠΈ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π·Π΄Π΅ΡΡ, ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
ΠΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ. ΠΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π·Π½Π°ΡΠΎΠΊ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ MAC ( ns.mac.*
).
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΡΠΎΠ±ΡΡΠΈΡ (Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΌΠΎΠ³Ρ ΡΡΠ΄ΠΈΡΡ) ΠΈΠ·Π»ΠΈΡΠ½Π΅ Π΄Π»ΠΈΠ½Π½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎ Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌΡ ΠΊΠ°Π½Π°Π»Ρ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΡΠΎ Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌΡ ΠΊΠ°Π½Π°Π»Ρ?
Π‘ΠΎΠ³Π»Π°ΡΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ receive uplink data
ΠΈΠ»ΠΈ receive uplink message
. @johanstokking , ΡΡΠΎ ΡΡ Π΄ΡΠΌΠ°Π΅ΡΡ?
ΠΡΠ»ΠΎ Π±Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ frm_payload ΡΠ΅ΡΠ΅Π· ΡΠ΅ΠΊΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΠΎΠ³ΠΎ JSON (ΡΠΌ. ΡΠΊΡΠΈΠ½ΡΠΎΡΡ).
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ²Π΅ΡΡΠΈ decoded_payload
Π½Π°ΠΏΡΡΠΌΡΡ, Π²Π΅ΡΠ½ΠΎ? Π‘ΡΡΡΠΊΡΡΡΠ° ApplicationUp
Π΄Π»Ρ Π²ΠΎΡΡ
ΠΎΠ΄ΡΡΠΈΡ
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ:
{
"uplink_message": {
...
"frm_payload": "AQ==",
"decoded_payload": {
"led": "ON"
}
...
}
Π― Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΠ΅ΡΠ΅Π΄ JoinEUI ΠΈ DevEUI Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ΅ΠΊΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, JoinEUI ΠΈ DevEUI, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠΉ.
Π΄Π°. @bafonins , Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Ρ ΠΈΠΌΠ΅Π» Π² Π²ΠΈΠ΄Ρ Π² slack. ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, ΡΡΠΎ Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠ½ΠΎ Π²ΡΡΠ°Π·ΠΈΠ»ΡΡ.
π
ΠΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ. ΠΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈΠΊΠΎΠ½ΠΊΡ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ MAC (ns.mac.*).
ΠΠ΅ΡΠ½ΠΎ.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ decoded_payload Π½Π°ΠΏΡΡΠΌΡΡ, Π²Π΅ΡΠ½ΠΎ? Π‘ΡΡΡΠΊΡΡΡΠ° ApplicationUp Π΄Π»Ρ Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ:
Π, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ π€¦ββ
- Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
receive uplinke data message
, ΡΠ°Π·Π²Π΅ ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎreceive uplink data
?
Π΄Π°. ΠΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠΎΠΊ Π΄Π»Ρ Β«ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΒ», Β«ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈΒ» ΠΈ Β«ΠΎΡΠΏΡΠ°Π²ΠΊΠΈΒ» ΠΈ Ρ. Π΄.?
Π― Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΎΡΠ΅Π» Π±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΠΎΠ»Π±Π΅Ρ ΡΠΈΠΏΠ° ΡΠΎΠ±ΡΡΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΠΊΡΡΠ°. ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π½Π°ΡΠΊΠΎΠ².
ΠΠ΅ ΡΠΎΠ»ΡΠΊΠΎ, Π½ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅ Π²Π΅ΡΠΈ Π·Π½Π°ΡΠΊΠ°ΠΌΠΈ, Π²Π΅ΡΠ½ΠΎ?
ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΠΈΠΌΠ΅ΡΡ ΡΡΠΎΠ»Π±Π΅Ρ Π΄Π»Ρ dev_addr ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡ Π΅Π³ΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ?
ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΠΎ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΡΠΎΠ»Π±Π΅Ρ
Data
.
ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΡΡΡ _ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ_ Π²ΠΎΡΡ
ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (Π³Π΄Π΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ DevAddr
). ΠΡΠ°ΠΊ, Π² Π²Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ DevAddr
Π½Π΅ Π²ΡΡΠΎΠ²Π½Π΅Π½Ρ (ΡΡΠΎ ΡΠΏΡΠ°Π²Π°), ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ, Ρ ΠΏΠΎΠ»Π°Π³Π°Ρ, ΠΎΠ½ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Ρ?
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Ρ Π²ΡΠ³Π»ΡΠ΄ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.
Π΄Π°. ΠΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠΎΠΊ Π΄Π»Ρ Β«ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΒ», Β«ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈΒ» ΠΈ Β«ΠΎΡΠΏΡΠ°Π²ΠΊΠΈΒ» ΠΈ Ρ. Π΄.?
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΌΡ Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ, Π»ΠΈΠ±ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ Π²ΠΎΠΎΠ±ΡΠ΅. Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π·Π°ΠΌΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²Π΅ΡΠ΅ΠΉ ΠΈΠΊΠΎΠ½ΠΊΠ°ΠΌΠΈ Π±ΡΠ»Π° Π±Ρ Π±ΠΎΠ»Π΅Π΅ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎΠΉ.
ΠΠ½Π΅ Π²ΡΠ΅ Π΅ΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ Π½Π°ΠΈΠ»ΡΡΡΠ΅ΠΌ ΡΠΏΠΎΡΠΎΠ±Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΡΠΎΠ±ΡΡΠΈΠΉ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ. ΠΠ· ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ Π²ΠΈΠΆΡ, Π΅ΡΡΡ ΡΡΠΈ ΡΡΠΎΠ²Π½Ρ: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΡΠ΅ΠΊΠ°, ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ»ΠΈ ΡΡΠ±ΡΠ΅ΠΊΡ(Ρ) ΠΈ ΡΠ°Π³ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ns.up.data.forward
).
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π²ΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΠΎΠ΄ΠΈΠ½ Π·Π½Π°ΡΠΎΠΊ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠΊΠΎΠ², Π»ΠΈΠ±ΠΎ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ»ΠΎΠ΅Π² ΡΠΈΠΏΠ° ΡΠΎΠ±ΡΡΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° ΡΠ΅ΠΌΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Ρ Π·Π½Π°ΡΠΊΠΎΠ² ΠΌΠΎΠ³Π»ΠΎ Π±Ρ Π±ΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, Π½ΠΎ ΠΎΠΏΡΡΡ ΠΆΠ΅, Ρ Π±Ρ Π½Π΅ Ρ ΠΎΡΠ΅Π» Π·Π°ΠΌΠ΅Π½ΡΡΡ ΡΠ΅ΠΊΡΡ ΡΠΈΠΏΠ° ΡΠΎΠ±ΡΡΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ Π±Ρ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ², Π½ΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΎΠ±Π»Π΅Π³ΡΠΈΠ»ΠΎ Π±Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠΎΠ±ΡΡΠΈΠΉ.
ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (Π³Π΄Π΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π½ΠΎΠ²ΡΠΉ DevAddr). ΠΡΠ°ΠΊ, Π² Π²Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ DevAddr Π½Π΅ Π²ΡΡΠΎΠ²Π½Π΅Π½ (ΠΎΠ½ ΡΠΏΡΠ°Π²Π°), ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½, Ρ ΠΏΠΎΠ»Π°Π³Π°Ρ?
ΠΠ΅ΡΠ½ΠΎ. ΠΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΡΡΠ°Π²ΠΈΡΡ Π°Π΄ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π²ΡΠ΅Π³Π΄Π° ΠΏΠ΅ΡΠ²ΡΠΌ ΠΏΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ, ΠΌΡ ΠΏΠΎΡΠ΅ΡΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π°Π΄ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΡΠ°ΠΊ, ΠΌΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²Π΅Π½Π½ΡΠΌ:
@bafonins Π΄Π°ΠΉΡΠ΅ ΠΌΠ½Π΅ Π·Π½Π°ΡΡ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΊΠ°ΠΊΠ°Ρ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ»ΠΈ ΡΠ°Π·ΡΡΡΠ½Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Ρ Π·Π½Π°ΡΠΊΠΎΠ² ΠΌΠΎΠ³Π»ΠΎ Π±Ρ Π±ΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, Π½ΠΎ ΠΎΠΏΡΡΡ ΠΆΠ΅, Ρ Π±Ρ Π½Π΅ Ρ ΠΎΡΠ΅Π» Π·Π°ΠΌΠ΅Π½ΡΡΡ ΡΠ΅ΠΊΡΡ ΡΠΈΠΏΠ° ΡΠΎΠ±ΡΡΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ Π±Ρ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ², Π½ΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΎΠ±Π»Π΅Π³ΡΠΈΠ»ΠΎ Π±Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠΎΠ±ΡΡΠΈΠΉ.
ΠΠ°, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ΅Π»Ρ.
ΠΠΎΠΊΠ° ΠΌΡ Π½Π° ΡΡΠΎΠΌ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΊΠΎΡΡΠ΅Π»ΡΡΠΈΠΈ. ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π΅Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π·Π½ΠΎΡΠ½ΡΠΌ (Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ), ΡΠ°ΠΊ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠΌ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
ΠΠ΅ΡΠ½ΠΎ. ΠΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Π³Π΄Π° ΡΡΠ°Π²ΠΈΡΡ Π°Π΄ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ΅ΡΠ²ΡΠΌ. ΠΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ, ΠΌΡ ΠΏΠΎΡΠ΅ΡΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π°Π΄ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Π ΠΠΠ Π―ΠΠΠ
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ:
Entity ID
Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ»ΡΠ·Π° ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ. Π’ΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ².decoded_payload
, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ . ΠΏΡΠΎΠΏΡΡΠΊΠ°Ρ Π»ΡΠ±ΡΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ (Ρ Π±ΡΠ΄Ρ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ²Π΅ΡΠ° ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ). ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ frm_payload
Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ:(ΠΏΡΠΎΡΠΌΠΎΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΡΡΡΠΎΠΉΡΡΠ²Π°)
frm_payload
Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ Π½ΠΈΡΡ
ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΊΠ°Π½Π°Π»Π° AS. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ, ΠΏΠ»Π°Π½ΠΈΡΡΡΡΠΈΡ
Π½ΠΈΡΡ
ΠΎΠ΄ΡΡΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΎΠ»Ρ:@johanstokking ΠΡΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π΅ΡΠ΅? ΠΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΠΈΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΠ»ΡΠ·Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ gs.up.receive
ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ frm_payload
f_cnt
f_port
)?
ΠΠ΄ΠΎΡΠΎΠ²ΠΎ!
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅Π»ΠΊΠΈΡ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠΉ/Π²ΠΎΠΏΡΠΎΡΠΎΠ²;
DevAddr
DevAddr
ΠΈ FRMPayload
{"temperature":21.5,"light":"on"}
ΠΈ Ρ. Π΄. ΠΡΠ»ΠΈ Π΅ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Ρ ΠΌΠΎΠ³Ρ Π΅Π³ΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ; Ρ.Π΅. {"nested":{...},"light":"on"}
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ GS;
raw_payload
, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ GS Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ (ΠΌΠ½ΠΎΠ³ΠΎ) ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ LoRaWAN. GS Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ LoRaWAN (EUI ΠΏΡΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ, DevAddr ΠΏΡΠΈ Π²ΠΎΡΡ
ΠΎΠ΄ΡΡΠ΅ΠΌ ΠΊΠ°Π½Π°Π»Π΅), ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π² ΡΡΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ:UplinkMessage
, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠ°ΡΡ ΡΠ΅ΠΌ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ DeviceUplinkMessage
, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ UplinkMessage
~gs.up.forward
ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ nil
. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΡΠΎ-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ
ΠΎΡΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ map[string]string{}
~ @htdvisser, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π΄Π°ΠΉΡΠ΅ ΡΠΎΠ²Π΅Ρ ΠΏΠΎ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΡ; ΡΡΠΎ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.~
@johanstokking
ΠΠ»Ρ Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ AS ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΠ΅ DevAddr.
ΠΡΠ°ΠΊ, Π΄Π»Ρ as.up.data.receive
as.up.data.forward
? Π ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ as.down.data.receive
ΠΈ as.down.data.forward
?
ΠΡΠΌΠ°Ρ, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Ρ
ΠΎΡΠΈΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π»Ρ ns.up.data.*
.
ΠΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΠ΅ΠΉΡΠ°Ρ?
ΠΠ΅Ρ, ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠ°ΠΊ ΡΠ΅ΠΉΡΠ°Ρ.
Π― Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠ΅ΡΠΌΠΈΠ½Ρ LoRaWAN DevAddr ΠΈ FRMPayload.
ΠΡ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Ρ Π²ΠΌΠ΅ΡΡΠΎ Device Address
ΠΈ Frame Payload
?
ΠΠ΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠ»ΠΎΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ; {"ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ°":21,5,"ΡΠ²Π΅Ρ":"Π²ΠΊΠ»"} ΠΈ Ρ. Π΄. ΠΡΠ»ΠΈ Π΅ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Ρ ΠΌΠΎΠ³Ρ Π΅Π³ΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ; Ρ.Π΅. {"Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ":{...},"ΡΠ²Π΅Ρ":"Π²ΠΊΠ»ΡΡΠ΅Π½"}
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ, ΠΌΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ°ΠΊ, Π΄Π»Ρ {"temperature":21.5,"light":"on"}
ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ [21.5, "on"]
. ΠΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ?
GS Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ LoRaWAN (EUI ΠΏΡΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ, DevAddr ΠΏΡΠΈ Π²ΠΎΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌ ΠΊΠ°Π½Π°Π»Π΅), ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π² ΡΡΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄Π»Ρ gs.up.receive
. ΠΠ»Ρ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ EUI ΠΈΠ·:
"payload": {
"join_request_payload": {
"join_eui": "...",
"dev_eui": "..."
}
}
Π ΠΏΠΎΠΊΠ°Π·Π°ΡΡ dev addr Π΄Π»Ρ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ ΡΡΡΠ»ΠΎΠΊ ΠΈΠ·:
"payload": {
"mac_payload": {
"f_hdr": {
"dev_addr": "...",
}
}
}
ΠΡΠ°ΠΊ, Π΄Π»Ρ
as.up.data.receive
as.up.data.forward
? Π ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρas.down.data.receive
ΠΈas.down.data.forward
?
ΠΡΠΌΠ°Ρ, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π»Ρns.up.data.*
.
ΠΠ°, Π΅ΡΠ»ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΅ΡΡΡ Π² ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅, ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΡ .
ΠΡ ΠΈΠΌΠ΅Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Ρ Π²ΠΌΠ΅ΡΡΠΎ
Device Address
ΠΈFrame Payload
?>
Π΄Π°
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ, ΠΌΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ°ΠΊ, Π΄Π»Ρ
{"temperature":21.5,"light":"on"}
ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ[21.5, "on"]
. ΠΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ?
ΠΠ΅Ρ, Ρ Π΄ΡΠΌΠ°Ρ, Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ ΠΊΠ»ΡΡΠΈ Π·Π΄Π΅ΡΡ. ΠΠ½ΠΎΠ³ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎ ΡΠ±ΠΈΠ²Π°Π΅Ρ Ρ ΡΠΎΠ»ΠΊΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΊΠ°ΡΡΠ°, Π·Π΄Π΅ΡΡ Π½Π΅Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° (Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π΅ ΠΎΡΡΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΈ Π½Π΅ Π²ΠΎΠ·ΡΠΌΠ΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ).
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄Π»Ρ
gs.up.receive
. ΠΠ»Ρ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ EUI ΠΈΠ·:
ΠΠ°, Π½ΠΎ Ρ Π½Π°Ρ ΠΈΡ Π½Π΅Ρ Π² ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅, Π²Π΅ΡΠ½ΠΎ? ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
{
"@type": "type.googleapis.com/ttn.lorawan.v3.UplinkMessage",
"raw_payload": "QOYAACeAws8CQ+4LarGLXmIEFQ==",
"settings": {
"data_rate": {
"lora": {
"bandwidth": 125000,
"spreading_factor": 7
}
},
"coding_rate": "4/5",
"frequency": "867900000",
"timestamp": 2986005427,
"time": "2020-04-29T07:57:06Z"
},
"rx_metadata": [
{
"gateway_ids": {
"gateway_id": "kerlink-ifemtocell",
"eui": "7276FF003903007D"
},
"time": "2020-04-29T07:57:06Z",
"timestamp": 2986005427,
"rssi": -28,
"channel_rssi": -28,
"snr": 8,
"uplink_token": "CiAKHgoSa2VybGluay1pZmVtdG9jZWxsEghydv8AOQMAfRCzp+uPCw==",
"channel_index": 4
}
],
"received_at": "2020-04-29T07:57:06.748570190Z",
"correlation_ids": [
"gs:conn:01E6VEV9V14WMAY1DW19BQQPMX",
"gs:uplink:01E72F0YSWJAKBYBJDBXG4CJ4G"
]
}
ΠΠ°, Π΅ΡΠ»ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΅ΡΡΡ Π² ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅, ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΡ
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΈΠ· ΠΏΠΎΠ»Ρ identifiers
ΡΠΎΠ±ΡΡΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΡΡΡΠ°:
"identifiers": [
{
"device_ids": {
"device_id": "...",
"application_ids": {
"application_id": "...",
},
"dev_eui": "...",
"join_eui": "...",
"dev_addr": "...",
},
},
],
ΠΠ΅Ρ, Ρ Π΄ΡΠΌΠ°Ρ, Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ ΠΊΠ»ΡΡΠΈ Π·Π΄Π΅ΡΡ. ΠΠ½ΠΎΠ³ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎ ΡΠ±ΠΈΠ²Π°Π΅Ρ Ρ ΡΠΎΠ»ΠΊΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΊΠ°ΡΡΠ°, Π·Π΄Π΅ΡΡ Π½Π΅Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° (Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π΅ ΠΎΡΡΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΈ Π½Π΅ Π²ΠΎΠ·ΡΠΌΠ΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ).
π
ΠΠ°, Π½ΠΎ Ρ Π½Π°Ρ ΠΈΡ Π½Π΅Ρ Π² ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅, Π²Π΅ΡΠ½ΠΎ? ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΡ ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π΄Π»Ρ receive uplink message
- gs.up.receive
:
{
"@type": "type.googleapis.com/ttn.lorawan.v3.UplinkMessage",
"raw_payload": "AAEAUAEAy6BYiiAcAAujBAB5X7wJxJ0=",
"payload": {
"m_hdr": {},
"mic": "vAnEnQ==",
"join_request_payload": {
"join_eui": "...",
"dev_eui": "...",
"dev_nonce": "..."
}
},
"settings": {
"data_rate": {
"lora": {
"bandwidth": 125000,
"spreading_factor": 7
}
},
"coding_rate": "4/5",
"frequency": "868300000",
"timestamp": 3115131027,
"time": "2020-04-29T08:13:09.690629005Z"
},
"rx_metadata": [
{
"gateway_ids": {
"gateway_id": "bafonins-ttig",
"eui": "58A0CBFFFE8010D6"
},
"time": "2020-04-29T08:13:09.690629005Z",
"timestamp": 3115131027,
"rssi": -35,
"channel_rssi": -35,
"snr": 8.25,
"uplink_token": "ChsKGQoNYmFmb25pbnMtdHRpZxIIWKDL//6AENYQk8G0zQs="
}
],
"received_at": "2020-04-29T08:13:09.450967669Z",
"correlation_ids": [
"gs:conn:01E7140GJKZ5BKHMC774RV4C11",
"gs:uplink:01E72FYAYB272T9X90MJEZNEAX"
]
}
Π₯ΠΎΡΠΎΡΠΎ, Π΄Π°, ΠΏΠΎΠΊΠ°ΠΆΠΈ ΠΈΠΌ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ nil
, ΡΠ°ΠΊ ΡΡΠΎ ΡΡΡΠΈΡΠ΅ ΡΡΠΎ, Π½ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ GS Π΄Π»Ρ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π΅ΡΠ΅ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ.
@johanstokking
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ ΠΏΠΎΡΠΎΠΊΡ Ρ eui, Π³Π΄Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ join_request_payload
:
ΠΠΎΡΡ
ΠΎΠ΄ΡΡΠΈΠΉ ΠΊΠ°Π½Π°Π» Ρ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ:
ΠΠ΅ΡΠ΄Π°Π²ΡΠ΅Π΅ΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅:
Π‘ΠΎΠ±ΡΡΠΈΡ Π²ΠΎΡΡ
ΠΎΠ΄ΡΡΠ΅ΠΉ/Π½ΠΈΡΡ
ΠΎΠ΄ΡΡΠ΅ΠΉ Π»ΠΈΠ½ΠΈΠΈ AS:
Π‘ΠΎΠ±ΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΊ ΡΠ»ΡΠ·Ρ:
ΠΠΎΡΡ
ΠΎΠ΄ΡΡΠΈΠΉ ΠΊΠ°Π½Π°Π» ΡΠ»ΡΠ·Π° Ρ mac_payload
:
ΠΠΎΡΡΡΡΠ°ΡΡΠΈΠΉ
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΏΡΠΎΡΡΠ±Π°; Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ FPort
ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π²Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ FRMPayload
ΠΠ°ΠΊΡΡΡΠΎ https://github.com/TheThingsNetwork/lorawan-stack/pull/2477
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠΎΡΡΠ΄ΠΎΠΊ Π²Π°ΠΆΠ½ΠΎΡΡΠΈ;
ids.join_eui
,ids.dev_eui
ΠΈids.dev_addr
Π² Π·Π°ΠΏΡΠΎΡΠ°Ρ Π½Π° ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅,ids.dev_addr
ΠΈuplink_message.frm_payload
Π΄Π»Ρ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ