前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >The Things Network LoRaWAN Stack V3 笔记 2.3 使用 CLI 在 Stack 上创建 DEMO 应用

The Things Network LoRaWAN Stack V3 笔记 2.3 使用 CLI 在 Stack 上创建 DEMO 应用

作者头像
twowinter
发布2020-04-17 12:20:09
7690
发布2020-04-17 12:20:09
举报
文章被收录于专栏:twowintertwowinter

前言

前两篇笔记将 Stack 跑起来并且登录上去,那接下来就可以创建应用,再之后让网关和节点连接上来。

本节记录如何使用 CLI 工具在 Stack 上创建 DEMO 应用。

可参考官方的 guide

小能手这段时间在学习 The Things Network LoRaWAN Stack V3,从使用和代码等角度对该 Stack 进行了分析,详细可点此查看

1 网关注册

代码语言:javascript
复制
$ ./ttn-lw-cli gateway create ttgtw1 --user-id ttn-1 --frequency-plan-id CN_470_510_FSB_11 --gateway-eui 33800000A0000001 --enforce-duty-cycle
{
  "ids": {
    "gateway_id": "ttgtw1",
  },
  "created_at": "2019-03-22T06:20:23.795Z",
  "updated_at": "2019-03-22T06:20:23.795Z",
  "version_ids": {

  },
  "frequency_plan_id": "CN_470_510_FSB_11",
  "antennas": [
    {
      "location": {
        "source": "SOURCE_REGISTRY"
      }
    }
  ],
  "enforce_duty_cycle": true
}

注意 frequency-plan-id 是摘取自 https://github.com/TheThingsNetwork/lorawan-frequency-plans。

可能有如下几种错误的情况:

i. 所使用的用户不对 默认是 admin,需要和自己之前登录的帐号的保持一致。

代码语言:javascript
复制
$ ./ttn-lw-cli gateway create gtw1 --user-id admin --
frequency-plan-id CN_470_510_FSB_11 --gateway-eui 00800000A00009EF --enforce-dut
y-cycle
  WARN Finished unary call                      duration=67.694297ms error=rpc error: code = PermissionDenied desc = error:pkg/auth/rights:no_user_rights (no ri
ghts for user `admin`) error_correlation_id=ccd15b415f99417dbb75e7d4e83e5aca err
or_name=no_user_rights error_namespace=pkg/auth/rights grpc_code=PermissionDenie
d grpc_method=Create grpc_service=ttn.lorawan.v3.GatewayRegistry namespace=grpc
error:pkg/auth/rights:no_user_rights (no rights for user `admin`)
    uid=admin
    correlation_id=ccd15b415f99417dbb75e7d4e83e5aca

ii. 网关名 已经被注册过。

代码语言:javascript
复制
$ ./ttn-lw-cli gateway create gtw1 --user-id ttn-1 --frequency-plan-id CN_470_510_FSB_11 --gateway-eui 00800000A00009EF --enforce-duty-cycle
error:pkg/identityserver/store:id_taken (ID already taken)
    correlation_id=732bb95a240b48e69d6349fd408e8374
[root@txiot1 lorawan-stack]# ./ttn-lw-cli gateway create gtw1 --user-id ttn-1 --
frequency-plan-id CN_470_510_FSB_11 --gateway-eui 10800000A00009EF --enforce-dut
y-cycle
error:pkg/identityserver/store:id_taken (ID already taken)
    correlation_id=192c8609e404401a9ace68e883249f9b

当然,也可以把网关现有的ID直接更新进去。

./ttn-lw-cli gateway update ttgtw1 --user-id ttn-1 --frequency-plan-id CN_470_510_FSB_11 --gateway-eui 33800000A0000001 --enforce-duty-cycle

2 注册应用

代码语言:javascript
复制
$ ./ttn-lw-cli app create ttapp1 --user-id ttn-1
{
  "ids": {
    "application_id": "ttapp1"
  },
  "created_at": "2019-03-22T06:48:27.776Z",
  "updated_at": "2019-03-22T06:48:27.776Z"
}

3 创建设备

代码语言:javascript
复制
$ ./ttn-lw-cli end-devices create ttapp1 ttdev1 --dev-eui 3304A30B001C0530 --join-eui 800000000000000C --frequency-plan-id CN_470_510_FSB_11 --root-keys.app-key.key 752BAEC23EAE7964AF27C325F4C23C9A --lorawan-phy-version 1.0.2-b --lorawan-version 1.0.2
{
  "ids": {
    "device_id": "ttdev1",
    "application_ids": {
      "application_id": "ttapp1"
    },
    "dev_eui": "3304A30B001C0530",
    "join_eui": "800000000000000C"
  },
  "created_at": "2019-03-22T06:56:08.419Z",
  "updated_at": "2019-03-22T06:56:08.419Z",
  "attributes": {
  },
  "network_server_address": "localhost:8884",
  "application_server_address": "localhost:8884",
  "join_server_address": "localhost:8884",
  "lorawan_version": "1.0.2",
  "lorawan_phy_version": "1.0.2-b",
  "frequency_plan_id": "CN_470_510_FSB_11",
  "supports_join": true,
  "root_keys": {
    "app_key": {
      "key": "dSuuwj6ueWSvJ8Ml9MI8mg=="
    }
  }
}

4 链接应用程序

按照设计,需要把 AS 链接到 NS 上。

首先,给 AS 创建 API key。

代码语言:javascript
复制
$ ./ttn-lw-cli app api-keys create --application-id ttapp1 --right-application-link
  INFO API key ID: DOTYLMFWUNF2YZNR2QZBXQCFXPKFAUVY26CJOFA
  INFO API key value: NNSXS.DOTYLMFWUNF2YZNR2QZBXQCFXPKFAUVY26CJOFA.7E4HX57SMVLEQD6B2X5OTFYYZ4GMBJE4GKO4JUFDBPVBEDY5I6LQ
  WARN The API key value will never be shown again
  WARN Make sure to copy it to a safe place
{
  "id": "DOTYLMFWUNF2YZNR2QZBXQCFXPKFAUVY26CJOFA",
  "key": "NNSXS.DOTYLMFWUNF2YZNR2QZBXQCFXPKFAUVY26CJOFA.7E4HX57SMVLEQD6B2X5OTFYYZ4GMBJE4GKO4JUFDBPVBEDY5I6LQ",
  "rights": [
    "RIGHT_APPLICATION_LINK"
  ]
}

其次,将 AS 链接到 NS。

代码语言:javascript
复制
$ ./ttn-lw-cli app link set ttapp1 --api-key NNSXS.DOTYLMFWUNF2YZNR2QZBXQCFXPKFAUVY26CJOFA.7E4HX57SMVLEQD6B2X5OTFYYZ4GMBJE4GKO4JUFDBPVBEDY5I6LQ

至此,整个设备和应用的创建过程就完成了。后面我们就让网关以及设备逐个上线,观察上下行流程。

END


iotisan 博客专家

发布了251 篇原创文章 · 获赞 253 · 访问量 84万+

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1 网关注册
  • 2 注册应用
  • 3 创建设备
  • 4 链接应用程序
  • END
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档