IoTAgent-LoRaWAN 显然没有按预期工作
IoTAgent-LoRaWAN is apparently not working as expected
我正在尝试使用 TTN 凭证配置 IoTAgent-LoRaWAN,我正在关注 the official docs,这是我的 POST 请求:
{
"devices": [
{
"device_id": "{{node}}",
"entity_name": "LORA-N-0",
"entity_type": "LoraDevice",
"timezone": "Europe/Madrid",
"attributes": [
{
"object_id": "potVal",
"name": "Pot_Value",
"type": "Number"
}
],
"internal_attributes": {
"lorawan": {
"application_server": {
"host": "eu.thethings.network",
"username": "{{TTN_app_id}}",
"password": "{{TTN_app_pw}}",
"provider": "TTN"
},
"dev_eui": "{{TTN_dev_eui}}",
"app_eui": "{{TTN_app_eui}}",
"application_id": "{{TTN_app_id}}",
"application_key": "{{TTN_app_skey}}"
}
}
}
]
}
显然,我正在使用 Postman 来管理集合中的所有这些 HTTP 请求,并且我已经设置了一些环境变量:
{{node}}
-> 设备 ID node_0
{{TTN_app_id}}
-> 我选择的应用程序 ID dendrometer
{{TTN_app_pw}}
-> 如图所示的应用程序访问密钥(可以在与应用程序概述相同的视图中找到;https://console.thethingsnetwork.org/applications/<application_id>
)
{{TTN_dev_eui}}
和 {{TTN_app_eui}}
也显示在下图中(关于设备;我认为这些不是敏感信息,因为 TTN 没有隐藏它们,那是因为我发布了图片)
{{TTN_app_skey}}
-> Application Session Key也如下图所示(最后一张)
重点是...一旦我使用该请求配置了 IoTAgent,docker-compose logs -f iot-agent
就会显示以下错误:
fiware-iot-agent | {"timestamp":"2020-06-23T11:45:53.689Z","level":"info","message":"New message in topic"}
fiware-iot-agent | {"timestamp":"2020-06-23T11:45:53.690Z","level":"info","message":"IOTA provisioned devices:"}
fiware-iot-agent | {"timestamp":"2020-06-23T11:45:53.691Z","level":"info","message":"Decoding CaynneLPP message:+XQ="}
fiware-iot-agent | {"timestamp":"2020-06-23T11:45:53.691Z","level":"error","message":"Error decoding CaynneLPP message:Error: Invalid CayennLpp buffer size"}
fiware-iot-agent | {"timestamp":"2020-06-23T11:45:53.691Z","level":"error","message":"Could not cast message to NGSI"}
所以我认为有些地方不能正常工作。那是我的 docker-compose.yml
,顺便说一句 http://ix.io/2pWd
但是我不认为问题是由 docker 引起的,显然所有容器都按预期工作,因为我可以请求它们的版本并且我没有在日志中看到错误消息。
另外...我觉得 the docs 不完整,我想要更多信息,关于如何使用 OrionCB (?) 订阅这些配置的设备或删除它们(文档中没有显示,尽管只是对正确 URL 的 DELETE 请求。)
无论如何...我做错了什么?谢谢大家
编辑:我觉得 IoTAgent 本身有问题,以下错误消息中有错字:
fiware-iot-agent | {"timestamp":"2020-06-23T11:45:53.691Z","level":"info","message":"Decoding CaynneLPP message:+XQ="}
fiware-iot-agent | {"timestamp":"2020-06-23T11:45:53.691Z","level":"error","message":"Error decoding CaynneLPP message:Error: Invalid CayennLpp buffer size"}
因为它不是 CaynneLPP,而是 CayenneLPP。我也打开了 an issue in its GitHub repo,但我不希望他们很快回复。我真的觉得这个项目已经被放弃了。
这显然是编码问题,我使用的是 arduinio-lmic 库建议的编码方法,但 FIWARE 确实在 CayenneLPP 数据模型下工作。所以我要尝试替换那个编码方法。
谢谢大家,特别感谢@arjan
我正在尝试使用 TTN 凭证配置 IoTAgent-LoRaWAN,我正在关注 the official docs,这是我的 POST 请求:
{
"devices": [
{
"device_id": "{{node}}",
"entity_name": "LORA-N-0",
"entity_type": "LoraDevice",
"timezone": "Europe/Madrid",
"attributes": [
{
"object_id": "potVal",
"name": "Pot_Value",
"type": "Number"
}
],
"internal_attributes": {
"lorawan": {
"application_server": {
"host": "eu.thethings.network",
"username": "{{TTN_app_id}}",
"password": "{{TTN_app_pw}}",
"provider": "TTN"
},
"dev_eui": "{{TTN_dev_eui}}",
"app_eui": "{{TTN_app_eui}}",
"application_id": "{{TTN_app_id}}",
"application_key": "{{TTN_app_skey}}"
}
}
}
]
}
显然,我正在使用 Postman 来管理集合中的所有这些 HTTP 请求,并且我已经设置了一些环境变量:
{{node}}
-> 设备 ID node_0
{{TTN_app_id}}
-> 我选择的应用程序 ID dendrometer
{{TTN_app_pw}}
-> 如图所示的应用程序访问密钥(可以在与应用程序概述相同的视图中找到;https://console.thethingsnetwork.org/applications/<application_id>
)
{{TTN_dev_eui}}
和 {{TTN_app_eui}}
也显示在下图中(关于设备;我认为这些不是敏感信息,因为 TTN 没有隐藏它们,那是因为我发布了图片)
{{TTN_app_skey}}
-> Application Session Key也如下图所示(最后一张)
重点是...一旦我使用该请求配置了 IoTAgent,docker-compose logs -f iot-agent
就会显示以下错误:
fiware-iot-agent | {"timestamp":"2020-06-23T11:45:53.689Z","level":"info","message":"New message in topic"}
fiware-iot-agent | {"timestamp":"2020-06-23T11:45:53.690Z","level":"info","message":"IOTA provisioned devices:"}
fiware-iot-agent | {"timestamp":"2020-06-23T11:45:53.691Z","level":"info","message":"Decoding CaynneLPP message:+XQ="}
fiware-iot-agent | {"timestamp":"2020-06-23T11:45:53.691Z","level":"error","message":"Error decoding CaynneLPP message:Error: Invalid CayennLpp buffer size"}
fiware-iot-agent | {"timestamp":"2020-06-23T11:45:53.691Z","level":"error","message":"Could not cast message to NGSI"}
所以我认为有些地方不能正常工作。那是我的 docker-compose.yml
,顺便说一句 http://ix.io/2pWd
但是我不认为问题是由 docker 引起的,显然所有容器都按预期工作,因为我可以请求它们的版本并且我没有在日志中看到错误消息。
另外...我觉得 the docs 不完整,我想要更多信息,关于如何使用 OrionCB (?) 订阅这些配置的设备或删除它们(文档中没有显示,尽管只是对正确 URL 的 DELETE 请求。)
无论如何...我做错了什么?谢谢大家
编辑:我觉得 IoTAgent 本身有问题,以下错误消息中有错字:
fiware-iot-agent | {"timestamp":"2020-06-23T11:45:53.691Z","level":"info","message":"Decoding CaynneLPP message:+XQ="}
fiware-iot-agent | {"timestamp":"2020-06-23T11:45:53.691Z","level":"error","message":"Error decoding CaynneLPP message:Error: Invalid CayennLpp buffer size"}
因为它不是 CaynneLPP,而是 CayenneLPP。我也打开了 an issue in its GitHub repo,但我不希望他们很快回复。我真的觉得这个项目已经被放弃了。
这显然是编码问题,我使用的是 arduinio-lmic 库建议的编码方法,但 FIWARE 确实在 CayenneLPP 数据模型下工作。所以我要尝试替换那个编码方法。
谢谢大家,特别感谢@arjan