eclipse-thingweb / eclipse-thingweb/node-red

Consumed-thing node does not auto-fetch TD from tdLink on import/deploy

オープン
#35 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
HTML
スター
6
フォーク
7
PR マージ指標
30日以内にマージされた PR はありません

説明

When importing a Node-RED flow that uses the node-red-node-wot "consumed-thing" node with only the `tdLink` set (and an empty `td` field), the node does not automatically fetch the Thing Description (TD) from the provided URL on import or deploy. This results in downstream nodes (such as subscribe-event or invoke-action) failing with errors like:

```
TypeError: Cannot read properties of null (reading 'addUpdateTDListener') at new subscribeEventNode ...
```

Example workflow:
```
[
{
"id": "a18841fe05744488",
"type": "tab",
"label": "WashingMachine-LEDs-Blink",
"disabled": false,
"info": "",
"env": []
},
{
"id": "b1e2c3d4e5f60718",
"type": "consumed-thing",
"tdLink": "http://192.168.0.172:8082/washingmachine",
"td": "",
"http": true,
"ws": false,
"coap": false,
"mqtt": false,
"opcua": false,
"modbus": false,
"basicAuth": false,
"username": "",
"password": ""
},
{
"id": "c2f3e4d5a6b70819",
"type": "consumed-thing",
"tdLink": "http://192.168.0.172:8083/leds",
"td": "",
"http": true,
"ws": false,
"coap": false,
"mqtt": false,
"opcua": false,
"modbus": false,
"basicAuth": false,
"username": "",
"password": ""
},
{
"id": "d3e4f5a6b7c80920",
"type": "subscribe-event",
"z": "a18841fe05744488",
"name": "WashingMachine finishedCycle",
"topic": "",
"thing": "b1e2c3d4e5f60718",
"event": "finishedCycle",
"x": 180,
"y": 160,
"wires": [["e4f5a6b7c8d91021"]]
},
{
"id": "e4f5a6b7c8d91021",
"type": "invoke-action",
"z": "a18841fe05744488",
"name": "Blink LEDs",
"topic": "",
"thing": "c2f3e4d5a6b70819",
"action": "blink",
"uriVariables": "{}",
"x": 420,
"y": 160,
"wires": [["f5a6b7c8d9e01122"]]
},
{
"id": "f5a6b7c8d9e01122",
"type": "debug",
"z": "a18841fe05744488",
"name": "LEDs blinked",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 670,
"y": 160,
"wires": []
}
]
```

**Expected behavior:**
On import or deploy, the consumed-thing node should automatically fetch the TD from the tdLink without manual intervention.

**Actual behavior:**
The TD is not fetched automatically. I have to manually open the consumed-thing node and click "fetch" to populate the TD.

**Additional context:**
This makes it difficult to automate flow generation and deployment. Embedding the full TD in the flow is a workaround, but increases flow size significantly. Please consider making the node auto-fetch the TD from tdLink on deploy/import, or provide an option to do so.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

各 consumed-thing node に tdLink のみを設定してインポートまたはデプロイし、サンプルフローを再現してから、手動の Fetch action と比較します。consumed-thing node のインポート/デプロイのライフサイクルを追跡します。完了条件は、TD が自動的に取得され、下流の subscribe-event node と invoke-action node が失敗しなくなることです。

索引モデルが issue の本文から書いたものです。

評価

領域
tooling
issue の種類
機能追加
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
明確に書かれている
初心者へのやさしさ
48/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。