# Better support for external nodes

**URL:** <https://discourse.nodered.org/t/better-support-for-external-nodes/87239>\
**Category:** Feature Requests\
**Created:** [15 April 2024 05:12 UTC](https://discourse.nodered.org/t/better-support-for-external-nodes/87239 "2024-04-15T05:12:11Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![anttiryt](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/anttiryt/32/95991_2.png) [@anttiryt](https://discourse.nodered.org/u/anttiryt)\
**Post date:** [15 April 2024 05:12 UTC](https://discourse.nodered.org/t/better-support-for-external-nodes/87239/1 "2024-04-15T05:12:11Z")

</div>

I have a project where are lots of active places in different rooms. I can control all with one node-red but due to cabling and other issues I'd like to have an arduino externally from Node-RED and talk to it over ethernet. This is currently supported via MQTT.

One of the issue is that if I switch to MQTT all the nodes on Node-RED are no longer reading inputs, ADCs or writing to relays. They all need to be converted to MQTT nodes, which all look the same and make it difficult to comprehend later on.

I could run Node-RED at every active place but it would get troublesome in other ways.

What I'd like to have is to have the current nodes, nice graphics etc, to work as they have been but in the lowlevel the operations wouldn't be done on the same system with Node-RED but in an external arduino, ESP, even Raspbian.

Would this be feasible?

---

<div class="post-metadata">

**Author:** ![marcus-j-davies](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marcus-j-davies/32/103435_2.png) [@marcus-j-davies](https://discourse.nodered.org/u/marcus-j-davies)\
**Post date:** [15 April 2024 06:19 UTC](https://discourse.nodered.org/t/better-support-for-external-nodes/87239/2 "2024-04-15T06:19:06Z")

</div>

Welcome to the forums @anttiryt

I'm not quite sure this is the responsibility of Node RED to provide, Node RED Node's in the flow are running on Node RED - this is the core of Node RED.

With that said:

You can achieve an emulation of what you want with FlowFuse : [https://flowfuse.com](https://flowfuse.com)  
you create a flow, and deploy it to remote devices (but these devices are just running Node RED)

Another (more advanced) option, is Node RED MCU Edition, and the plugin.

- [GitHub - phoddie/node-red-mcu: Node-RED for microcontrollers](https://github.com/phoddie/node-red-mcu)
- [node-red-mcu-plugin (node) - Node-RED](https://flows.nodered.org/node/@ralphwetzel/node-red-mcu-plugin)

With this approach, you will develop your own custom node, that connects to an MCU (running Node RED), and executes any instructions your node is provided with.

The thing to remember here, the nodes you see in a flow, are just blocks of javascript, that handle data being sent to it, and returns any data back it may have updated.

For nodes that connect to sensors, its just javascript listening on a GPIO and returning you what it received.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [15 April 2024 08:43 UTC](https://discourse.nodered.org/t/better-support-for-external-nodes/87239/3 "2024-04-15T08:43:22Z")

</div>

> [@anttiryt](#):
>
> They all need to be converted to MQTT nodes, which all look the same and make it difficult to comprehend later on.

Give the MQTT nodes meaningful names.

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [15 April 2024 08:56 UTC](https://discourse.nodered.org/t/better-support-for-external-nodes/87239/4 "2024-04-15T08:56:40Z")

</div>

> [@anttiryt](#):
>
> One of the issue is that if I switch to MQTT all the nodes on Node-RED are no longer reading inputs, ADCs or writing to relays. They all need to be converted to MQTT nodes,

What makes you say this?  
I don't see any reason why changing some **devices** to use MQTT would have any effect on the other devices.  
Nor why changing an input or output **node** in Node-red from another I/O method to MQTT would affect other flows  
Can you explain in more detail please?

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [15 April 2024 19:06 UTC](https://discourse.nodered.org/t/better-support-for-external-nodes/87239/5 "2024-04-15T19:06:53Z")

</div>

> [@anttiryt](#):
>
> Would this be feasible?

Of course.

It is up to you where you do the processing. Because you are already using MQTT, it is easy to do some processing on Node-RED and some on device and pass it all through to appropriate topics on MQTT.

That approach lets to set your own timescales for moving between approaches as well since it really no longer matters where you do the processing, it is now fully decoupled from the devices doing it and the devices displaying it.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [14 June 2024 19:07 UTC](https://discourse.nodered.org/t/better-support-for-external-nodes/87239/6 "2024-06-14T19:07:05Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
