-
Notifications
You must be signed in to change notification settings - Fork 7
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.