ã³ã³ãœãŒã«ãã©ãã£ãã¯ãã¥ãŒã«çã®ãã€ããŒããšãã³ãŒãããããã€ããŒãã衚瀺ãã
as.up.forward
ã®ã€ãã³ããã€ããŒãã¯ãã³ã³ãœãŒã«ã§è¡ãéããšãã«äœ¿çšã§ããŸãã
as.up.data.forward
ã«ã¯ããã£ãŒã«ãfrm_payload
ïŒãã€ãïŒãšdecoded_payload
ïŒãªããžã§ã¯ãïŒããããŸãã åè
ã16é²æ°ãšããŠãåŸè
ãããŒ/å€ãªããžã§ã¯ããšããŠè¡šç€ºããããšæããŸãïŒæ³š;ããã¯ãã¹ãã§ããŸãïŒã è¡ã§ã è¡ãéãããããã€ããŒããããäžåºŠè¡šç€ºããŸãã ids.dev_addr
ã衚瀺ããŸãã
as.up.join.forward
ã®å Žåã ids.join_eui
ãšids.dev_eui
ãè¡ã«è¡šç€ºããŸãã
ãšã©ãŒãçºçããå Žåã¯ããã©ãŒãããããããšã©ãŒïŒå±æ§ä»ãã®message_format
ïŒãèµ€ãŸãã¯åŒ·èª¿è¡šç€ºããŠè¡šç€ºããŸãã åç
§ïŒ1967ïŒ
éæ³ã«åå¿ãã
ã¬ãã¥ãŒã§ããŸã
ã³ãŒãã£ããŒãããŠãã ãã
ãããè¿œå ããŠãããŠããããšãããã¯ãå¿
éåãã§ã
ããã¯ãAWSåžå Žã§v3ãè©äŸ¡ãããšãã«æåã«æ°ã¥ããããšã®1ã€ã§ããã
ç³ãèš³ãããŸãããããã€ã¢ã€ãã¢ã¯ãããŸããïŒ
@industrialinternetãé¢å¿ããå¯ãããã ãããããšãããããŸãã 2æã®ãã€ã«ã¹ããŒã³ã«èšå®ãããŠããã®ã§ãä»æçµäºããããšãç®æããŠããŸãã ãã®åé¡ããµãã¹ã¯ã©ã€ãããäžéšã®[ç£èŠ]ãã¯ãªãã¯ããŠãå°ãªããšããªãªãŒã¹ã«ã€ããŠã¯ãã®ãªããžããªãç£èŠããŠãã ãããããã«ãããã©ã®ãªãªãŒã¹ã«ãã€å°éããããããããŸãã
@johanstokking
as.up.forwardã€ãã³ãæ¬äœãæ€èšããŠãã ããã
ããã§as.up.data.forward
ãšããæå³ã§ããïŒ
decoded_payload
ãªããžã§ã¯ãã®å€§ããã¯ã©ããããã§ããïŒ ã€ãã³ãuiã§åãæšãŠãããå¯èœæ§ãããããã質åããŸããããã§
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.ã€ãã³ããŠã£ãžã§ããã³ã³ããŒãã³ãïŒãšã³ãã£ãã£ã®æŠèŠããŒãžã®1ã€ïŒã«å«ããå¿ èŠã®ãããã£ãŒã«ãã¯äœã§ããïŒ
ã¹ããŒã¹ãå°ãªãå Žåã¯ã©ãããæå³ã§ããïŒ ããŒã¿ã¢ãããªã³ã¯ã®å Žåã¯ãã³ãŒãããããã€ããŒããåå ã®å Žåã¯DevEUIãåãå ¥ããŸãã
decoded_payload
ãªããžã§ã¯ãã®å€§ããã¯ã©ããããã§ããïŒ ã€ãã³ãuiã§åãæšãŠãããå¯èœæ§ãããããã質åããŸãã
è¡ã§ã¯ããããåãæšãŠãŠãåé¡ãããŸããã è¡ãå±éãããšãJSONãšããŠè¡šç€ºãããŸãã å®éã«ã¯ããªã倧ãããªãå¯èœæ§ããããŸããããã€ã¹ã¡ãŒã«ãŒãŸãã¯ã¢ããªã±ãŒã·ã§ã³éçºè 次第ã§ãã
ããããã»ãšãã©ã¯{"temperature": 21.5, "humidity": 62, "x": -1, "y": 5}
ã®ãããªãã®ã§ã
ããã§å ã®ã³ã¡ã³ããæŽæ°ããŸãã
ããã«ã¡ã¯ãšãã³ãšãã®åé¡ã«é¢ä¿ããä»ã®äºº
ããªããã¡ã2æã®ããã«ã¹ããŒã³ããæã£ãŠãããšèããŠããããã§ãã
V3ã³ã³ãœãŒã«ãè©äŸ¡ããŠããã®ã§ãããã§ã¯å€ãã®ããšãã§ããŸããéçºè
åãã®åªãã補åãäœæããããã®ç°¡åãªæ¹æ³ã ãšæããŸãã ãšç®¡ç
1ïŒã¢ããªã±ãŒã·ã§ã³å
šäœãŸãã¯ããŒãã«åå¥ã«ããŠã³ãªã³ã¯ãéä¿¡ããå¯èœæ§
2ïŒã¢ãããªã³ã¯ãã€ããŒãHEXã衚瀺ããå¥ã®ãŠã£ã³ããŠã§ãã³ãŒãã§ãã
3ïŒã¢ããªã±ãŒã·ã§ã³ãã£ã¬ã¯ããªfxã®ããçš®ã®éå±€ã 芪/å/ããŒã
èªç€Ÿã®ãµãŒããŒã«æ¥ç¶ãããTTIã䜿çšããããšãèšç»ããŠããå Žåã§ããããã¯RïŒDãšç£èŠã®ããã®åªããè¿œå ã«ãªããŸãã
ãšã«ãã-ãããŸã§ã®ãšããçŽ æŽãããä»äºã§ã:-)
BR
/ A
éèŠåºŠã®é åº;
ids.join_eui
ã ids.dev_eui
ã ids.dev_addr
$ãã¢ãããªã³ã¯ã¡ãã»ãŒãžã§ã¯ids.dev_addr
ã uplink_message.frm_payload
ã®16é²è¡šç€ºç©äºãæ確ã«ããããã ãã«ã
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ã«ã¢ã€ã³ã³ã®ãã¶ã€ã³ãäŸé Œã§ããŸãã cc @kschiffer
å ã®ãã©ãŒããããããŠããªããšã©ãŒããã€ããŒãã€ã³ã¹ãã¯ã¿ãŒã«ä¿æããããšã«æ³šæããŠãã ããã ããã¯ãããã°ã«åœ¹ç«ã€å ŽåããããŸãã
ãšã©ãŒã«ã€ããŠåæ
ããã€ãã®èãïŒ
Entity ID
åãåé€ã§ããŸããEntity ID
åãããå°ãçž®å°ããŸãããlink
ã¢ã€ã³ã³ã䜿çšã§ããŸãreceive uplinke data message
ã®ããã«ã receive uplink data
ã ãã§ã¯ãªãã§ããããã<SafeInspector />
ã®ããã«çãããŒãžã§ã³ã䜿çšããŠãã®è¡ã®é«ããäžå®ã«ä¿ãããããã«ããŸãfrm_payload
ãçŸåšã®ãã€ããŒã圢åŒé¢æ°ã«ãã€ãããŠçµæã1è¡ã®JSONãšããŠè¡šç€ºããã®ã¯çŽ æŽãããããšã§ãïŒscreendesignsãåç
§ïŒã ãšãããããããéã¡ãããšèããŠã倧äžå€«ã§ããdev_addrã®åãäœæããããããã¹ãŠã®ã¢ãããªã³ã¯ã¡ãã»ãŒãžã«å ¥åããŠãçºçããåå åãå ¥ããè¡ãããšã¯ã§ããŸããïŒ
ãããData
åã®ç·©ãèŠçŽ ãšããŠè¿œå ããŸãããã
JoinEUIãšDevEUIã®åã«ãJoinEUIãšDevEUIã®ãããªå°ããªããã¹ããè¿œå ããŠããŠãŒã¶ãŒãã©ã¡ããã©ã¡ãã§ãããããããããã«ããŸãã
ã¯ãã @bafonins ãããã¯å®éã«ç§ãããã¿ã§æå³ããããšã§ãã ããã«ååã«æ確ã§ã¯ãªãããšããè©«ã³ç³ãäžããŸãã
ã転éããŒã¿ã¢ãããªã³ã¯ã¡ãã»ãŒãžãã®ããã¹ããã¢ã€ã³ã³ïŒãŸãã¯ã¢ã€ã³ã³; AS +ã¢ãããªã³ã¯+ããŒã¿ïŒã«å€æããããšæããŸãã
ãããã¹ãã«ã¯10ââ00以äžã®ã¢ã€ã³ã³ãæžãããŠããŸããð ã ã€ãã³ãã¿ã€ãã®åãããã¹ãã®ãŸãŸã«ããŠããããã®ã§ããã ã¢ã€ã³ã³ã ãã§ã³ã³ãã³ããäŒããããšã¯ã§ããŸããã
ããã¯ãã¢ããªã±ãŒã·ã§ã³ãšããã€ã¹ã¬ã€ã€ãŒã®å®è¡å¯èœãªãœãªã¥ãŒã·ã§ã³ã§ãããšç§ãèãããã®ã瀺ã2ã€ã®ç»é¢ãã¶ã€ã³ã§ãã
åäžã®ãšã³ãã£ãã£ïŒãšã³ãããã€ã¹ãã²ãŒããŠã§ã€ïŒã®ããŒã¿ãã¥ãŒã§ã¯ãåé·ã§ããããã[ãšã³ãã£ãã£ID]åãåé€ã§ããŸã
ðã¯çã«ããªã£ãŠããŸã
ããŸããŸãªã€ãã³ããç¹ã«ããã§ã¯ãåå æé ã«é¢é£ããã€ãã³ãã«å¯ŸããŠããããã现ããã¢ã€ã³ã³ãå¿ èŠã§ãã
çµåãããŒã ãã§ã¯ãããŸããã MACã³ãã³ãçšã®ã«ã¹ã¿ã ã¢ã€ã³ã³ïŒ ns.mac.*
ïŒããããšäŸ¿å©ã§ãã
äžéšã®ã€ãã³ãã¿ã€ãã®ã¡ãã»ãŒãžã¯ïŒç§ãç¥ãéãïŒäžå¿ èŠã«é·ããªããŸããããšãã°ãã¢ãããªã³ã¯ããŒã¿ã¡ãã»ãŒãžãåä¿¡ããã ãã§ã¯ãã¢ãããªã³ã¯ããŒã¿ãåä¿¡ããã ãã§ã¯ãªãã§ããããã
åæããŸããããã€ãã®ãšã©ãŒã®èª¬æã®ååãå€æŽããã ãã§ãã receive uplink data
ãŸãã¯receive uplink message
ã®å ŽåããããŸãã @johanstokkingã©ãæããŸããïŒ
frm_payloadãçŸåšã®ãã€ããŒã圢åŒé¢æ°ã«ãã€ãåŠçããçµæã1è¡ã®JSONãšããŠè¡šç€ºããã®ã¯çŽ æŽãããããšã§ãïŒscreendesignsãåç §ïŒã
decoded_payload
ãçŽæ¥è¡šç€ºã§ããŸãããïŒ ã¢ãããªã³ã¯ã¡ãã»ãŒãžã®ApplicationUp
ã®æ§é ã¯æ¬¡ã®ãšããã§ãã
{
"uplink_message": {
...
"frm_payload": "AQ==",
"decoded_payload": {
"led": "ON"
}
...
}
JoinEUIãšDevEUIã®åã«ãJoinEUIãšDevEUIã®ãããªå°ããªããã¹ããè¿œå ããŠããŠãŒã¶ãŒãã©ã¡ããã©ã¡ãã§ãããããããããã«ããŸãã
ã¯ãã @bafonins ãããã¯å®éã«ç§ãããã¿ã§æå³ããããšã§ãã ããã«ååã«æ確ã§ã¯ãªãããšããè©«ã³ç³ãäžããŸãã
ð
çµåãããŒã ãã§ã¯ãããŸããã MACã³ãã³ãçšã®ã«ã¹ã¿ã ã¢ã€ã³ã³ïŒns.macã*ïŒããããšäŸ¿å©ã§ãã
ããã¯ããã
decode_payloadãçŽæ¥è¡šç€ºã§ããŸãããïŒ ã¢ãããªã³ã¯ã¡ãã»ãŒãžã®ApplicationUpã®æ§é ã¯æ¬¡ã®ãšããã§ãã
ããããã¡ããð€Šââ
- äŸïŒ
receive uplinke data message
ãreceive uplink data
ã ãã§ã¯ãªãã§ããããïŒ
ã¯ãã ãããããåä¿¡ããã転éãããéä¿¡ããªã©ã®ã¢ã€ã³ã³ãèšå®ã§ããŸããïŒ
ã€ãã³ãã¿ã€ãã®åãããã¹ãã®ãŸãŸã«ããŠããããã®ã§ããã ã¢ã€ã³ã³ã ãã§ã³ã³ãã³ããäŒããããšã¯ã§ããŸããã
ã ãã§ãªããããªããææ¡ããããã«ãç§ãã¡ã¯ããã€ãã®æçœãªãã®ãã¢ã€ã³ã³ã«çœ®ãæããããšãã§ããŸãããïŒ
dev_addrã®åãäœæããããããã¹ãŠã®ã¢ãããªã³ã¯ã¡ãã»ãŒãžã«å ¥åããŠãçºçããåå åãå ¥ããè¡ãããšã¯ã§ããŸããïŒ
ããã
Data
åã®ç·©ãèŠçŽ ãšããŠè¿œå ããŸãããã
ããã¯ãããã€ã¹ã®ã¢ã¯ãã£ãåïŒæ°ããDevAddr
ã衚瀺ã§ããïŒãå«ãã_every_ã¢ããã¹ããªãŒã ã¡ãã»ãŒãžã®äžéšã§ãããšããããšã§ãã ãããã£ãŠãæåã®ãã¶ã€ã³ã§ã¯ã DevAddr
ã¯äœçœ®åãããããŠããŸããïŒå³åŽã«ãããŸãïŒãç·©ãããã ãšæããŸããïŒ
ãã以å€ã¯ããããã®ãã¶ã€ã³ã¯æ¬åœã«è¯ããŠåœ¹ç«ã€ããã«èŠããŸã
ã¯ãã ãããããåä¿¡ããã転éãããéä¿¡ããªã©ã®ã¢ã€ã³ã³ãèšå®ã§ããŸããïŒ
ç§ãã¡ã¯ããããã£ãšãããªããã°ãªããªããããŸã£ãããããªããŠã¯ãªããªããšæããŸãã äžéšã®ãã®ã ããã¢ã€ã³ã³ã«çœ®ãæãããšããã£ãšæ··ä¹±ããã ãããšæããŸãã
ã€ãã³ãã¿ã€ããã¢ã€ãã ã§è¡šãããã®æè¯ã®æ¹æ³ãèããå¿
èŠããããŸãã ç§ãèŠããšãããã¹ã¿ãã¯ã³ã³ããŒãã³ããããã»ã¹ãŸãã¯ãµããžã§ã¯ããããã³ã¹ãããïŒ ns.up.data.forward
ãªã©ïŒã®3ã€ã®ã¬ã€ã€ãŒããããŸãã
ãã®ãã¹ãŠã®æ
å ±ã1ã€ã®ã¢ã€ã³ã³ã«å€æããããšã¯å®éã«ã¯äžå¯èœã§ãããããè€æ°ã®ã¢ã€ã³ã³ã䜿çšãããã件åãªã©ã®ã€ãã³ãã¿ã€ãã¬ã€ã€ãŒã®1ã€ã«åžžã«çŠç¹ãåœãŠãå¿
èŠããããŸãã
3ã€ã®ã¢ã€ã³ã³ã䜿çšããããšãã§ããŸãããã€ãã³ãã¿ã€ãã®ããã¹ãã眮ãæããããªãã®ã§ãééã®åé¡ã«ã¯ããŸã圹ç«ã¡ãŸããããå°ãªããšãã€ãã³ããšã³ããªã®ã¹ãã£ã³ã容æã«ãªããŸãã
ããã¯ãããã€ã¹ã®ã¢ã¯ãã£ãåïŒæ°ããDevAddrã衚瀺ã§ããå ŽæïŒãå«ããã¹ãŠã®ã¢ããã¹ããªãŒã ã¡ãã»ãŒãžã®äžéšã§ãããšããããšã§ãã ãããã£ãŠãæåã®èšèšã§ã¯ãDevAddrã¯äœçœ®åãããããŠããŸããïŒå³åŽã«ãããŸãïŒãç·©ãããã ãšæããŸããïŒ
ããã¯ããã ãã ããæ £äŸãšããŠãããã€ã¹ã¢ãã¬ã¹ãåžžã«æåã«çœ®ãããšãã§ããŸãã å°çšã®åãããå Žåãããã€ã¹ã¢ãã¬ã¹ã衚瀺ããå¿ èŠã®ãªãä»ã®ãã¹ãŠã®ã€ãã³ãã®ããã®ã¹ããŒã¹ã倱ãããŸãã
ãããã£ãŠããããå®è¡å¯èœã«ä¿ã€ããã®ç§ã®ææ¡ïŒ
@bafoninsã¯ããã®åé¡ãç¶è¡ããããã«ä»ã®æ å ±ã説æãå¿ èŠãªå Žåã¯ãç¥ãããã ããã
3ã€ã®ã¢ã€ã³ã³ã䜿çšããããšãã§ããŸãããã€ãã³ãã¿ã€ãã®ããã¹ãã眮ãæããããªãã®ã§ãééã®åé¡ã«ã¯ããŸã圹ç«ã¡ãŸããããå°ãªããšãã€ãã³ããšã³ããªã®ã¹ãã£ã³ã容æã«ãªããŸãã
ããããããäž»ãªç®çã§ãã
ãã®éãçžé¢IDã«ããã°ã«ãŒãåãæ€èšããããšããå§ãããŸãã ããã«ãããäž¡æ¹ã®ééïŒåçŽïŒã®ã¹ãã£ã³ã容æã«ãªããŸãã
ããã¯ããã ãã ããæ £äŸãšããŠãããã€ã¹ã¢ãã¬ã¹ãåžžã«æåã«çœ®ãããšãã§ããŸãã å°çšã®åãããå Žåãããã€ã¹ã¢ãã¬ã¹ã衚瀺ããå¿ èŠã®ãªãä»ã®ãã¹ãŠã®ã€ãã³ãã®ããã®ã¹ããŒã¹ã倱ãããŸãã
ããã£ã
ããã€ãã®æŽæ°ïŒ
Entity ID
åã¯è¡šç€ºãããŸããã ã¢ããªã±ãŒã·ã§ã³ã®ã¿ã ããã¯ãç¹ã«ããã€ã¹ã®å Žåãäœåãªã¹ããŒã¹ãç¯çŽããã®ã«åœ¹ç«ã¡ãŸããdecoded_payload
ã衚瀺ããŸãã é
åããªããžã§ã¯ããªã©ã®ãã¹ãããããšã³ããªãã¹ãããããŸãïŒãã€ããŒãå€ã«è²ãè¿œå ããå®è£
ããã©ããŒã¢ããããŸãïŒã ãŸããå©çšå¯èœãªå Žåã¯ã frm_payload
ã16é²æ°ãšããŠè¡šç€ºããŸããïŒããã€ã¹ã€ãã³ããã¥ãŒïŒ
frm_payload
ã衚瀺ããŸãã ããã¯ãã³ã³ãœãŒã«ãä»ããŠããŠã³ãªã³ã¯ãã¹ã±ãžã¥ãŒã«ãã人ã«åœ¹ç«ã€å¯èœæ§ããããŸãã@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èå¥åïŒåå æã®EUIãã¢ãããªã³ã¯æã®DevAddrïŒããã³ãŒãããŸããããã¯ããã£ã«ã¿ãªã³ã°ã®ããã«ãã®ã¹ããªãŒã ã«è¡šç€ºããã®ã«èå³æ·±ãå ŽåããããŸãã èãããã解決çïŒUplinkMessage
ãå
¬ââéããŠããŸããããã¯ã UplinkMessage
DeviceUplinkMessage
ã®ãããªãã®ã«ãªãã¯ãã§ãã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
ã®ä»£ããã«ïŒ
ãã³ãŒãããããã€ããŒãã¯éåžžããã©ãããªããžã§ã¯ãã§ãã {"temperature"ïŒ21.5ã "light"ïŒ "on"}ãªã©ããã¹ããããå€ãããå Žåã¯ãã¹ãããããŠãåé¡ãããŸããã ããªãã¡{"nested"ïŒ{...}ã "light"ïŒ "on"}
ãã¶ã€ã³ã«ãããšãå€ã®ã¿ã衚瀺ããŸãã ãããã£ãŠã {"temperature":21.5,"light":"on"}
ã®å Žåã [21.5, "on"]
ã衚瀺ããŸãã ããã§ããã§ããïŒ
GSã¯LoRaWANèå¥åïŒåå æã®EUIãã¢ãããªã³ã¯æã®DevAddrïŒããã³ãŒãããŸããããã¯ããã£ã«ã¿ãªã³ã°ã®ããã«ãã®ã¹ããªãŒã ã«è¡šç€ºããã®ãèå³æ·±ãå ŽåããããŸã
gs.up.receive
ã®èå¥åã衚瀺ã§ããŸãã åå ãªã¯ãšã¹ãã®å ŽåãEUIã次ã®å Žæãã衚瀺ã§ããŸãã
"payload": {
"join_request_payload": {
"join_eui": "...",
"dev_eui": "..."
}
}
ãããŠã次ã®ã¢ãããªã³ã¯ã®devaddrã衚瀺ããŸãã
"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
join_request_payload
ãå©çšå¯èœãªeuiã®ãããŒã«åå ããŸãã
ãã³ãŒãããããã€ããŒããšã®ã¢ãããªã³ã¯ïŒ
倱æããã€ãã³ãïŒ
ASã¢ãããªã³ã¯/ããŠã³ãªã³ã¯ã€ãã³ãïŒ
ã²ãŒããŠã§ã€åå èŠæ±ã€ãã³ãïŒ
mac_payload
ã®ã²ãŒããŠã§ã€ã¢ãããªã³ã¯ïŒ
çŽ æŽããã
ãã1ã€ã®ãªã¯ãšã¹ãã FRMPayload
ãçºçãããã³ã«ã FPort
ãè¿œå ããŠãã ãã
https://github.com/TheThingsNetwork/lorawan-stack/pull/2477ã«ãã£ãŠéããããŸãã
æãåèã«ãªãã³ã¡ã³ã
éèŠåºŠã®é åº;
ids.join_eui
ãids.dev_eui
ãids.dev_addr
$ãã¢ãããªã³ã¯ã¡ãã»ãŒãžã§ã¯ids.dev_addr
ãuplink_message.frm_payload
ã®16é²è¡šç€º