eclipse-thingweb / eclipse-thingweb/node-red

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

Open
#35 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
HTML
Stars
6
Forks
7
PR merge metrics
No merged PRs in 30d

Description

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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.