【问题标题】:Thingsboard Gateway SigFox - Messages not arrivingThingsboard Gateway SigFox - 消息未到达
【发布时间】:2023-04-01 16:55:01
【问题描述】:

我正在尝试使用 Thingsboard 网关从 Thingsboard 中的 SigFox 设备接收数据。但是,尽管我在任何地方都没有收到任何错误,但在 Thingsboard 仪表板中根本看不到数据。

我按照如下所述设置网关:

https://thingsboard.io/docs/iot-gateway/getting-started/

为了不等待实际的设备传输,我将 SigFox 生成的数据回调替换为原始 cURL 调用。

我的网关配置 (tb-gateway.yml) 如下所示:

 server:
 # Server bind address
 # address: "0.0.0.0"
 address: "10.133.18.123"  

 # Server bind port
 port: "9090"

 # Check new version updates parameters
 updates:
 # Enable/disable updates checking.
 enabled: "${UPDATES_ENABLED:true}"

 gateways:
 tenants:
 -
      label: "Tenant"
      reporting:
      interval: 60000
      persistence:
      type: file
      path: storage
      bufferSize: 1000
      connection:
         host: "${GATEWAY_HOST:10.133.18.122}"
         port: 1883
         retryInterval: 3000
         maxInFlight: 1000
         security:
         accessToken: "${GATEWAY_ACCESS_TOKEN:o84vmEizpHrmDXdOe4Zd}"
         remoteConfiguration: true

      sigfox.enable: true    
      sigfox.configuration: sigfox-config.json

      extensions:
      -
          id: "sigfox"
          type: "SIGFOX"
          extensionConfiguration: sigfox-config.json

然后,包含 Thingsboard 转换器的 sigfox 扩展 (sigfox-config.json) 如下所示:

{
  "deviceTypeConfigurations": [
    {
      "deviceTypeId": "08361da0-02f8-11e9-9bcd-09e3ecf51872",
      "token": "o84vmEizpHrmDXdOe4Zd",
      "converters": [
        {
          "deviceNameJsonExpression": "${$.device}",
          "attributes": [
            {
              "type": "string",
              "key": "lat",
              "value": "${$.lat}"
            },
            {
              "type": "string",
              "key": "lng",
              "value": "${$.lng}"
            }
          ],
          "timeseries": [
            {
              "type": "double",
              "key": "temperature",
              "value": "${$.data.temperature}",
              "transformer": {
                "type": "intToDouble"
              }
            },
            {
              "type": "double",
              "key": "humidity",
              "value": "${$.data.humidity}",
              "transformer": {
                "type": "intToDouble"
              }
            }
          ]
        }
      ]
    }
  ]
}

我正在使用的 cURL 调用是:

curl --verbose -H 'content-type: application/json' -H 'Authorization: Basic 
o84vmEizpHrmDXdOe4Zd' -d '{"device": "2BFEC3", "lat":"19.1", "lng":"99.1", 
"temperature":"11",  "humidity":"22"}'  
http://10.133.18.123:9090/sigfox/08361da0-02f8-11e9-9bcd-09e3ecf51872/

cURL 调用返回 HTTP 200 成功调用,但是 Thingsboard 仪表板不显示任何具有 cURL 调用中指定名称的新设备,也不显示先前存在的最新遥测选项卡中的输入数据设备。

非常感谢任何帮助。

感谢和问候!

【问题讨论】:

    标签: gateway thingsboard


    【解决方案1】:

    我已经解决了这个问题! 我所做的是从 tb-gateway.yml 文件中删除 sigfox 选项,并将当前的 sigfox 扩展名替换为默认的 HTTP 扩展名,即:

    id: "http"
    type: "HTTP"
    extensionConfiguration: http-config.json
    

    稍后,http-config.json 文件包含与 sigfox-config.json 文件相同的内容。 最后,这可能是我以前没有尝试过的,进入 thingsboard 仪表板 > 设备 > 网关 > 扩展,并手动添加一个新的扩展。

    如下填写新的扩展名:

    1. 扩展 ID:myExtension
    2. 扩展类型:HTTP
    3. 转换器 ID:08361da0-02f8-11e9-9bcd-09e3ecf51872
    4. 安全令牌:o84vmEizpHrmDXdOe4Zd

    -> 转换器

    1. 设备名称表达式:${$.device}
    2. 设备类型表达式:${$.type}

    -> 属性 // 根据 http-config.json 文件中的描述

    1. 纬度 ...
    2. lng ...

    -> 时间序列

    1. 温度...
    2. 湿度 ...

    最后,使用以下原始 cURL 调用刷新并尝试扩展:

    curl --verbose -H 'content-type: application/json' -H 'Authorization: o84vmEizpHrmDXdOe4Zd' -d '{"device": "2BFEC3", "type": "default", "lat":"19.1", "lng":"99.1", "temperature":"11",  "humidity":"22"}'  http://10.133.18.123:9090/sigfox/08361da0-02f8-11e9-9bcd-09e3ecf51872/
    

    瞧!您在 thingsboard 设备部分自动创建了 SFX 设备,并在相应的属性和遥测选项卡中接收到数据。

    玩得开心!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      • 2020-04-13
      相关资源
      最近更新 更多