You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fiware Ultralight 2.0 IoTAgent设备上报数据失败求助

Fiware智慧城市IoT POC问题排查与端到端测试指南

Hey Krishan,我看了你在Fiware智慧城市IoT POC里遇到的上报数据失败问题,咱们先找到核心原因,再给你一套完整的端到端测试步骤参考。

问题诊断:路径不匹配导致的404错误

你现在遇到的Cannot POST /iot/d错误,本质是IoT Agent的服务配置和上报请求的路径不匹配:

  • 你创建的Service里,resource字段设置的是/iot/dev-restaurants
  • 但你上报数据时用的请求路径是/iot/d

IoT Agent只会监听你在Service里配置的resource路径,所以它识别不了/iot/d,直接返回了404。

快速修复方案

你有两个选择来解决这个问题:

方案1:修改上报请求的路径

把POST请求的地址从http://130.206.XXX.XXX:4041/iot/d?k=tourguide-devices&i=restaurant-sensor-0115206c51f60b48b77e4c937835795c33bb953f改成:
http://130.206.XXX.XXX:4041/iot/dev-restaurants?k=tourguide-devices&i=restaurant-sensor-0115206c51f60b48b77e4c937835795c33bb953f
也就是把路径部分换成你Service里配置的/iot/dev-restaurants,其他请求头和请求体保持不变。

方案2:修改Service的resource配置

如果你更习惯用/iot/d作为上报路径,就更新你的Service配置,把resource改成/iot/d。可以通过PUT请求更新现有Service,或者重新创建一个新的Service(推荐后者,避免配置冲突)。

完整端到端IoT测试分步示例

下面给你一套从容器验证到数据查询的完整测试流程,确保每个环节都能跑通:

1. 验证Fiware容器运行状态

首先确认所有核心容器都正常运行,在终端执行:

docker ps

你应该能看到这四个容器的状态都是Up,端口映射正常:

  • fiware_iotagent_1:4041、7896端口
  • fiware_orion_1:1026端口
  • fiware_mosquitto_1:1883端口
  • fiware_mongo_1:27017端口

2. 创建IoT Agent Service(适配/iot/d路径)

请求地址:http://130.206.XXX.XXX:4041/iot/services
请求头:

  • Content-Type: application/json
  • fiware-service: tourguide
  • fiware-servicepath: /
  • X-Auth-Token: {{AuthToken}}
    请求体(注意把resource设为/iot/d):
{
  "services": [
    {
      "apikey": "tourguide-devices",
      "cbroker": "http://fiware_orion_1:1026",
      "resource": "/iot/d",
      "entity_type": "tourguide-devices",
      "service": "tourguide",
      "subservice": "/"
    }
  ]
}

发送请求后,应该返回201 Created的成功响应。

3. 创建IoT Device

请求地址:http://130.206.XXX.XXX:4041/iot/devices
请求头和上面一致,请求体用你之前的配置即可:

{
  "device_id": "restaurant-sensor-0115206c51f60b48b77e4c937835795c33bb953f",
  "service": "tourguide",
  "service_path": "/",
  "entity_name": "0115206c51f60b48b77e4c937835795c33bb953f",
  "entity_type": "Restaurant",
  "transport": "HTTP",
  "attributes": [
    {
      "object_id": "t",
      "name": "temperature",
      "type": "number"
    }
  ],
  "protocol": "UL20"
}

发送后同样会返回201 Created。

4. 上报测量数据

请求地址:http://130.206.XXX.XXX:4041/iot/d?k=tourguide-devices&i=restaurant-sensor-0115206c51f60b48b77e4c937835795c33bb953f
请求头:

  • Content-Type: text/plain
  • fiware-service: tourguide
  • fiware-servicepath: /
  • X-Auth-Token: {{AuthToken}}
    请求体:t|25
    这次发送后,应该能得到200 OK的响应,不会再出现404错误了。

5. 在Orion Context Broker中查询数据

最后验证数据是否同步到了Orion,发送GET请求:
请求地址:http://130.206.XXX.XXX:1026/v2/entities/0115206c51f60b48b77e4c937835795c33bb953f
请求头:

  • fiware-service: tourguide
  • fiware-servicepath: /
  • X-Auth-Token: {{AuthToken}}
    你会收到包含temperature属性的JSON响应,值就是你上报的25,这样整个端到端流程就跑通了。

内容的提问来源于stack exchange,提问作者Krishan Babbar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:35:50