[{"data":1,"prerenderedAt":684},["ShallowReactive",2],{"blog-\u002Fblog\u002F2024\u002F10\u002Fexploring-flowfuse-project-nodes":3},{"id":4,"title":5,"body":6,"description":12,"extension":673,"meta":674,"navigation":679,"path":680,"seo":681,"stem":682,"__hash__":683},"blog\u002Fblog\u002F2024\u002F10\u002Fexploring-flowfuse-project-nodes.md","Using FlowFuse Project Nodes for Faster and More Efficient Communication",{"type":7,"value":8,"toc":656},"minimark",[9,13,16,21,29,32,35,51,77,81,84,89,92,95,100,134,138,186,190,194,197,211,215,222,272,277,280,284,292,295,341,344,347,351,359,365,371,377,380,383,387,405,409,435,439,444,450,454,475,478,481,495,499,510,518,521,534,537,567,570,573,584,588,591,628,631,637,646,649,653],[10,11,12],"p",{},"Node-RED is a powerful tool for IoT application development, connecting various services and devices. However, establishing communication between different Node-RED instances—whether for monitoring or control—can be complex. This often requires detailed configurations and protocols like MQTT, HTTP, or CoAP, despite its seamless integration with many protocols.",[10,14,15],{},"FlowFuse addresses this challenge with project nodes designed for easy and efficient communication between Node-RED instances. This guide will show you how to use FlowFuse project nodes to enhance communication and integration, complete with practical demonstrations.",[17,18,20],"h2",{"id":19},"what-are-flowfuse-project-nodes","What Are FlowFuse Project Nodes?",[10,22,23,28],{},[24,25,27],"a",{"href":26},"\u002F","FlowFuse"," is a platform that helps manage multiple Node-RED instances in one place. This centralized management makes it easier for teams to collaborate and share resources while simplifying scaling and enhancing project security.",[10,30,31],{},"To facilitate communication between these centrally organized instances, FlowFuse introduces specific project nodes that enable easy and secure message exchange without complex setup. Behind the scenes, these project nodes utilize MQTT, ensuring that communication is lightweight and fast.",[10,33,34],{},"These project nodes include three main types:",[10,36,37,43],{},[38,39],"img",{"alt":40,"dataZoomable":41,"src":42},"Image: Project nodes.","","\u002Fblog\u002F2024\u002F10\u002Fimages\u002Fproject-nodes.png",[44,45,46,47,50],"em",{},"Left ",[48,49],"project-in",{}," node, Middle: Project-out node, Right: Project-call node",[52,53,54,62,68],"ul",{},[55,56,57,61],"li",{},[58,59,60],"strong",{},"Project In",": Listens for messages being broadcast by other Node-RED instances or for messages sent directly to this instance.",[55,63,64,67],{},[58,65,66],{},"Project Out",": Sends messages to other Node-RED instances.",[55,69,70,73,76],{},[58,71,72],{},"Project Call",[74,75],"sends",{}," messages to other Node-RED instances to trigger specific flows and waits for a response that can be sent using the project out node.",[17,78,80],{"id":79},"using-flowfuse-project-nodes","Using FlowFuse Project nodes",[10,82,83],{},"In this section, we will explore how to use the FlowFuse project nodes. We’ll begin by explaining the Project In and Project Out nodes, followed by a detailed look at the Project Call node.",[85,86,88],"h3",{"id":87},"using-project-in-and-out-nodes","Using Project in and out nodes",[10,90,91],{},"To demostrate this nodes, we will use an example where a central instance monitors the CPU performance of multiple Node-RED instances every 10 seconds.",[10,93,94],{},"Before we start, let’s understand their configurations:",[96,97,99],"h4",{"id":98},"project-in-node","Project In Node",[52,101,102,108,128],{},[55,103,104,107],{},[58,105,106],{},"Name",": A descriptive label for the node.",[55,109,110,113,114],{},[58,111,112],{},"Source",":\n",[52,115,116,122],{},[55,117,118,121],{},[58,119,120],{},"Receive",": Select this option to receive messages sent specifically to this instance.",[55,123,124,127],{},[58,125,126],{},"Receive Broadcast From",": Choose this option to listen for messages broadcast from other instances. A dropdown will include the names of all instances within your team.",[55,129,130,133],{},[58,131,132],{},"Topic",": This field allows you to specify a topic, similar to MQTT, to categorize the messages.",[96,135,137],{"id":136},"project-out-node","Project Out Node",[52,139,140,144,163,182],{},[55,141,142,107],{},[58,143,106],{},[55,145,146,113,149],{},[58,147,148],{},"Mode",[52,150,151,157],{},[55,152,153,156],{},[58,154,155],{},"Send Specified Project Node",": This option allows you to send a specific message or payload to the selected instance. Use this for one-way communication.",[55,158,159,162],{},[58,160,161],{},"Return Project Link Call",": This option sends used to sent response back using a Project Out node project call node.",[55,164,165,113,168],{},[58,166,167],{},"Target",[52,169,170,176],{},[55,171,172,175],{},[58,173,174],{},"Send Message To Instance",": A dropdown to select the instance.",[55,177,178,181],{},[58,179,180],{},"Broadcast Messages",": Option to send messages to all instances.",[55,183,184,133],{},[58,185,132],{},[17,187,189],{"id":188},"example-monitoring-cpu-performance-of-node-red-instances","Example: Monitoring CPU Performance Of Node-RED Instances",[17,191,193],{"id":192},"prerequisites","Prerequisites",[10,195,196],{},"Before we begin, ensure you have installed the following nodes via the Palette Manager:",[52,198,199,205],{},[55,200,201,204],{},[58,202,203],{},"node-red-contrib-cpu",": This node is essential for monitoring CPU performance. Install it on the instances that you want to monitor.",[55,206,207,210],{},[58,208,209],{},"@flowfuse\u002Fnode-red-dashboard",": This node is used for creating a dashboard interface. Install it on the central instance, as we will be visualizing the CPU performance data collected from the monitored instances.",[85,212,214],{"id":213},"creating-the-flow-on-the-instances-to-monitor","Creating the Flow on the Instances to Monitor",[10,216,217,218,221],{},"In this section, we will learn how to create a flow that monitors CPU performance and sends data using ",[58,219,220],{},"Project out",". We will also discuss how to make this flow reusable, allowing you to apply the same setup across multiple instances without editing the flow each time.",[223,224,225,232,238,244,249,252],"ol",{},[55,226,227,228,231],{},"Drag the ",[58,229,230],{},"Inject"," node onto the canvas and set the repeat interval to \"2 seconds\". This will trigger the flow after every 2 seconds.",[55,233,227,234,237],{},[58,235,236],{},"CPU"," node onto the canvas. Double-click it to configure, enable the option \"Send message for overall usage,\" and click \"Done\".",[55,239,227,240,243],{},[58,241,242],{},"Change"," node onto the canvas. Configure it to add metadata, including the instance name, instance ID, using default environment variablesand and the CPU data received from the CPU node.",[55,245,227,246,248],{},[58,247,66],{}," node onto the canvas. Double-click it to set the Mode to \"Send to specified project node.\" For the Target, select \"Send message to instance\" and choose the name of your centralized instance.",[55,250,251],{},"Next, Enter the topic as \"cpu-performance\".",[55,253,254,255,257,258,260,261,257,263,265,266,268,269,271],{},"Connect the output of the ",[58,256,230],{}," node to the input of the ",[58,259,236],{}," node, the output of the ",[58,262,236],{},[58,264,242],{}," node, and finally, connect the ",[58,267,242],{}," node to the ",[58,270,66],{}," node.",[273,274],"render-flow",{":height":275,"flow":276},"200","W3siaWQiOiJkZDE4MmZlZGNlNmM1MzJhIiwidHlwZSI6ImluamVjdCIsInoiOiJmZTYxZjU0Yzg1NjMyNzlkIiwibmFtZSI6IiIsInByb3BzIjpbeyJwIjoicGF5bG9hZCJ9XSwicmVwZWF0IjoiMSIsImNyb250YWIiOiIiLCJvbmNlIjpmYWxzZSwib25jZURlbGF5IjowLjEsInRvcGljIjoiIiwicGF5bG9hZCI6IiIsInBheWxvYWRUeXBlIjoiZGF0ZSIsIngiOjE5MCwieSI6MjAwLCJ3aXJlcyI6W1siYzQ3YmM0MmY4YTZmNjg4NCJdXX0seyJpZCI6ImUwZGQ5MTVhN2IzN2FmMmIiLCJ0eXBlIjoicHJvamVjdCBsaW5rIG91dCIsInoiOiJmZTYxZjU0Yzg1NjMyNzlkIiwibmFtZSI6InByb2plY3Qgb3V0IDEiLCJtb2RlIjoibGluayIsImJyb2FkY2FzdCI6ZmFsc2UsInByb2plY3QiOiIwNTRiYjVjZi0yMGRmLTQzMWYtYTAwYi0yOWIyOGUxNjBiMjciLCJ0b3BpYyI6ImNwdS1wZXJmb3JtYW5jZSIsIngiOjc3MCwieSI6MjAwLCJ3aXJlcyI6W119LHsiaWQiOiIwNWE5ZWM3YjJhZTU3Y2MwIiwidHlwZSI6ImNoYW5nZSIsInoiOiJmZTYxZjU0Yzg1NjMyNzlkIiwibmFtZSI6IiIsInJ1bGVzIjpbeyJ0Ijoic2V0IiwicCI6ImRhdGEubmFtZSIsInB0IjoibXNnIiwidG8iOiJGRl9JTlNUQU5DRV9OQU1FIiwidG90IjoiZW52In0seyJ0Ijoic2V0IiwicCI6ImRhdGEuY3B1IiwicHQiOiJtc2ciLCJ0byI6InBheWxvYWQiLCJ0b3QiOiJtc2cifV0sImFjdGlvbiI6IiIsInByb3BlcnR5IjoiIiwiZnJvbSI6IiIsInRvIjoiIiwicmVnIjpmYWxzZSwieCI6NTYwLCJ5IjoyMDAsIndpcmVzIjpbWyJlMGRkOTE1YTdiMzdhZjJiIl1dfSx7ImlkIjoiYzQ3YmM0MmY4YTZmNjg4NCIsInR5cGUiOiJjcHUiLCJ6IjoiZmU2MWY1NGM4NTYzMjc5ZCIsIm5hbWUiOiIiLCJtc2dDb3JlIjpmYWxzZSwibXNnT3ZlcmFsbCI6dHJ1ZSwibXNnQXJyYXkiOmZhbHNlLCJtc2dUZW1wIjpmYWxzZSwieCI6MzcwLCJ5IjoyMDAsIndpcmVzIjpbWyIwNWE5ZWM3YjJhZTU3Y2MwIl1dfV0=",[10,278,279],{},"By utilizing environment variables, this flow becomes reusable, allowing you to copy and paste flow to monitor multple instances.",[85,281,283],{"id":282},"receiving-data-to-monitor-and-visualize","Receiving Data to Monitor and Visualize",[10,285,286,290],{},[38,287],{"alt":288,"dataZoomable":41,"src":289},"Image: Line chart visualizing CPU performance of all instances.","\u002Fblog\u002F2024\u002F10\u002Fimages\u002Fdevice-monitoring-chart.gif",[44,291,288],{},[10,293,294],{},"To receive the CPU data from monitored instances, follow these steps in your centralized Node-RED instance:",[223,296,297,300,305,314,320,332,338],{},[55,298,299],{},"Open the editor for your central instance.",[55,301,227,302,304],{},[58,303,60],{}," node onto the canvas.",[55,306,307,308,310,311,313],{},"Double-click the ",[58,309,60],{}," node and set the ",[58,312,112],{}," to \"Listen for broadcast messages from.\" Select the name of the instances you want to monitor from the dropdown. If you want data from all instances, select \"All instances and devices.\"",[55,315,316,317,319],{},"Enter the ",[58,318,132],{}," as \"cpu-performance\" (or the topic you configured in the Project Out nodes).",[55,321,322,323,326,327,331],{},"Drag a ",[58,324,325],{},"ui-chart"," widget onto the canvas. Set the chart type to \"line\" and configure the series to ",[328,329,330],"code",{},"msg.payload",".",[55,333,254,334,257,336,271],{},[58,335,60],{},[58,337,325],{},[55,339,340],{},"Click the \"deploy\" button.",[273,342],{":height":275,"flow":343},"W3siaWQiOiIyZDY4MWIxOWViNTc5OWI3IiwidHlwZSI6ImNoYW5nZSIsInoiOiJkMzgyYmQyYjU3MzNhM2E5IiwibmFtZSI6IiIsInJ1bGVzIjpbeyJ0Ijoic2V0IiwicCI6InBheWxvYWQiLCJwdCI6Im1zZyIsInRvIjoiZGF0YS5jcHUiLCJ0b3QiOiJtc2cifSx7InQiOiJzZXQiLCJwIjoidG9waWMiLCJwdCI6Im1zZyIsInRvIjoiZGF0YS5uYW1lIiwidG90IjoibXNnIn1dLCJhY3Rpb24iOiIiLCJwcm9wZXJ0eSI6IiIsImZyb20iOiIiLCJ0byI6IiIsInJlZyI6ZmFsc2UsIngiOjQwMCwieSI6MjIwLCJ3aXJlcyI6W1siMzA3ZDljNTkxMzUwOTU1NyJdXX0seyJpZCI6IjMwN2Q5YzU5MTM1MDk1NTciLCJ0eXBlIjoidWktY2hhcnQiLCJ6IjoiZDM4MmJkMmI1NzMzYTNhOSIsImdyb3VwIjoiZDBkYmQ0MDE2YzdhYWMyMSIsIm5hbWUiOiIiLCJsYWJlbCI6ImNoYXJ0Iiwib3JkZXIiOjEsImNoYXJ0VHlwZSI6ImxpbmUiLCJjYXRlZ29yeSI6InRvcGljIiwiY2F0ZWdvcnlUeXBlIjoibXNnIiwieEF4aXNMYWJlbCI6IiIsInhBeGlzUHJvcGVydHkiOiIiLCJ4QXhpc1Byb3BlcnR5VHlwZSI6InByb3BlcnR5IiwieEF4aXNUeXBlIjoidGltZSIsInhBeGlzRm9ybWF0IjoiIiwieEF4aXNGb3JtYXRUeXBlIjoiYXV0byIsInlBeGlzTGFiZWwiOiIiLCJ5QXhpc1Byb3BlcnR5IjoiIiwieW1pbiI6IiIsInltYXgiOiIiLCJhY3Rpb24iOiJhcHBlbmQiLCJzdGFja1NlcmllcyI6ZmFsc2UsInBvaW50U2hhcGUiOiJjcm9zcyIsInBvaW50UmFkaXVzIjo0LCJzaG93TGVnZW5kIjp0cnVlLCJyZW1vdmVPbGRlciI6MSwicmVtb3ZlT2xkZXJVbml0IjoiMzYwMCIsInJlbW92ZU9sZGVyUG9pbnRzIjoiIiwiY29sb3JzIjpbIiMwMDk1ZmYiLCIjZmYwMDAwIiwiI2ZmN2YwZSIsIiMyY2EwMmMiLCIjYTM0N2UxIiwiI2Q2MjcyOCIsIiNmZjk4OTYiLCIjOTQ2N2JkIiwiI2M1YjBkNSJdLCJ0ZXh0Q29sb3IiOlsiIzY2NjY2NiJdLCJ0ZXh0Q29sb3JEZWZhdWx0Ijp0cnVlLCJncmlkQ29sb3IiOlsiI2U1ZTVlNSJdLCJncmlkQ29sb3JEZWZhdWx0Ijp0cnVlLCJ3aWR0aCI6IjEyIiwiaGVpZ2h0Ijo4LCJjbGFzc05hbWUiOiIiLCJ4Ijo2MzAsInkiOjIyMCwid2lyZXMiOltbXV19LHsiaWQiOiI0NjVlZTU1MGJmOWQxMDFkIiwidHlwZSI6InByb2plY3QgbGluayBpbiIsInoiOiJkMzgyYmQyYjU3MzNhM2E5IiwibmFtZSI6InByb2plY3QgaW4gMSIsInByb2plY3QiOiJhbGwiLCJicm9hZGNhc3QiOmZhbHNlLCJ0b3BpYyI6ImNwdS1wZXJmb3JtYW5jZSIsIngiOjE4MCwieSI6MjIwLCJ3aXJlcyI6W1siMmQ2ODFiMTllYjU3OTliNyJdXX0seyJpZCI6ImQwZGJkNDAxNmM3YWFjMjEiLCJ0eXBlIjoidWktZ3JvdXAiLCJuYW1lIjoiRGV2aWNlIE1vbml0b3JpbmcgQ2hhcnQiLCJwYWdlIjoiMzlmYWU4MDlmNmY3ZmM3YiIsIndpZHRoIjoiMTIiLCJoZWlnaHQiOiIxIiwib3JkZXIiOjEsInNob3dUaXRsZSI6dHJ1ZSwiY2xhc3NOYW1lIjoiIiwidmlzaWJsZSI6InRydWUiLCJkaXNhYmxlZCI6ImZhbHNlIn0seyJpZCI6IjM5ZmFlODA5ZjZmN2ZjN2IiLCJ0eXBlIjoidWktcGFnZSIsIm5hbWUiOiJEZXZpY2UgTW9uaXRvcmluZyIsInVpIjoiZGVkODZmMzgyMDM0Mjk4NSIsInBhdGgiOiIvY2hhcnRzLWV4YW1wbGUiLCJpY29uIjoiY2hhcnQtYm94LW91dGxpbmUiLCJsYXlvdXQiOiJncmlkIiwidGhlbWUiOiI1MDc1YTdkOGU0OTQ3NTg2IiwiYnJlYWtwb2ludHMiOlt7Im5hbWUiOiJEZWZhdWx0IiwicHgiOiIwIiwiY29scyI6IjMifSx7Im5hbWUiOiJUYWJsZXQiLCJweCI6IjU3NiIsImNvbHMiOiI2In0seyJuYW1lIjoiU21hbGwgRGVza3RvcCIsInB4IjoiNzY4IiwiY29scyI6IjkifSx7Im5hbWUiOiJEZXNrdG9wIiwicHgiOiIxMDI0IiwiY29scyI6IjEyIn1dLCJvcmRlciI6MSwiY2xhc3NOYW1lIjoiIiwidmlzaWJsZSI6InRydWUiLCJkaXNhYmxlZCI6ImZhbHNlIn0seyJpZCI6ImRlZDg2ZjM4MjAzNDI5ODUiLCJ0eXBlIjoidWktYmFzZSIsIm5hbWUiOiJNeSBEYXNoYm9hcmQiLCJwYXRoIjoiL2Rhc2hib2FyZCIsImluY2x1ZGVDbGllbnREYXRhIjp0cnVlLCJhY2NlcHRzQ2xpZW50Q29uZmlnIjpbInVpLW5vdGlmaWNhdGlvbiIsInVpLWNvbnRyb2wiXSwic2hvd1BhdGhJblNpZGViYXIiOmZhbHNlLCJzaG93UGFnZVRpdGxlIjp0cnVlLCJuYXZpZ2F0aW9uU3R5bGUiOiJkZWZhdWx0IiwidGl0bGVCYXJTdHlsZSI6ImRlZmF1bHQifSx7ImlkIjoiNTA3NWE3ZDhlNDk0NzU4NiIsInR5cGUiOiJ1aS10aGVtZSIsIm5hbWUiOiJEZWZhdWx0IFRoZW1lIiwiY29sb3JzIjp7InN1cmZhY2UiOiIjZmZmZmZmIiwicHJpbWFyeSI6IiMwMDk0Q0UiLCJiZ1BhZ2UiOiIjZWVlZWVlIiwiZ3JvdXBCZyI6IiNmZmZmZmYiLCJncm91cE91dGxpbmUiOiIjY2NjY2NjIn0sInNpemVzIjp7InBhZ2VQYWRkaW5nIjoiMTJweCIsImdyb3VwR2FwIjoiMTJweCIsImdyb3VwQm9yZGVyUmFkaXVzIjoiNHB4Iiwid2lkZ2V0R2FwIjoiMTJweCJ9fV0=",[10,345,346],{},"Once deployed, open the dashboard to view an interactive live line chart displaying the CPU performance of all monitored devices.",[96,348,350],{"id":349},"visualizing-data-for-specific-devices","Visualizing Data for Specific Devices",[10,352,353,357],{},[38,354],{"alt":355,"dataZoomable":41,"src":356},"Image: Gauges visualizing the CPU performance of different devices.","\u002Fblog\u002F2024\u002F10\u002Fimages\u002Fdevice-monitoring-gauges.gif",[44,358,355],{},[10,360,361,362,364],{},"To visualize CPU data for specific devices separately, configure the ",[58,363,60],{}," node to \"Listen for broadcast messages from\" and select the desired instance name that you want to monitor.",[10,366,367,368,370],{},"In the instance sending the CPU data for monitoring, set the ",[58,369,66],{}," node to \"Broadcast messages.\" This will send CPU data to all instances within your team, allowing the centralized instance to capture and display the information.",[10,372,373,374,376],{},"If you prefer not to use broadcasting, configure the ",[58,375,66],{}," node with specific topics. This will ensure that receiving nodes capture only specific instance data based on the topic. You can then connect these nodes to gauge nodes to distinctly display the CPU performance for each instance.",[273,378],{":height":275,"flow":379},"W3siaWQiOiJjMDAyMWNhODk0ZGQzZTE3IiwidHlwZSI6ImNoYW5nZSIsInoiOiJkMzgyYmQyYjU3MzNhM2E5IiwibmFtZSI6IiIsInJ1bGVzIjpbeyJ0Ijoic2V0IiwicCI6InBheWxvYWQiLCJwdCI6Im1zZyIsInRvIjoiZGF0YS5jcHUiLCJ0b3QiOiJtc2cifSx7InQiOiJzZXQiLCJwIjoidWlfdXBkYXRlLmxhYmVsIiwicHQiOiJtc2ciLCJ0byI6ImRhdGEubmFtZSIsInRvdCI6Im1zZyJ9XSwiYWN0aW9uIjoiIiwicHJvcGVydHkiOiIiLCJmcm9tIjoiIiwidG8iOiIiLCJyZWciOmZhbHNlLCJ4IjozNjAsInkiOjE0MCwid2lyZXMiOltbIjkzMmE2NzMzZDUzYWI4N2QiXV19LHsiaWQiOiI0MjY5MjVlNzRkOGUzMGY1IiwidHlwZSI6InByb2plY3QgbGluayBpbiIsInoiOiJkMzgyYmQyYjU3MzNhM2E5IiwibmFtZSI6InByb2plY3QgaW4gMSIsInByb2plY3QiOiIwNDE3NTEyMC1lYmViLTQ4MTMtODkxMC0wM2Y5MmY4ZWQ0MjkiLCJicm9hZGNhc3QiOnRydWUsInRvcGljIjoiY3B1LXBlcmZvcm1hbmNlIiwieCI6MTQwLCJ5IjoxNDAsIndpcmVzIjpbWyJjMDAyMWNhODk0ZGQzZTE3Il1dfSx7ImlkIjoiOTMyYTY3MzNkNTNhYjg3ZCIsInR5cGUiOiJ1aS1nYXVnZSIsInoiOiJkMzgyYmQyYjU3MzNhM2E5IiwibmFtZSI6IiIsImdyb3VwIjoiMDg3NTU5ZjliOTlmMDQ3YSIsIm9yZGVyIjoxLCJ3aWR0aCI6IjQiLCJoZWlnaHQiOiI0IiwiZ3R5cGUiOiJnYXVnZS1oYWxmIiwiZ3N0eWxlIjoibmVlZGxlIiwidGl0bGUiOiJnYXVnZSIsInVuaXRzIjoidW5pdHMiLCJpY29uIjoiIiwicHJlZml4IjoiIiwic3VmZml4IjoiIiwic2VnbWVudHMiOlt7ImZyb20iOiIwIiwiY29sb3IiOiIjNWNkNjVjIn0seyJmcm9tIjoiNCIsImNvbG9yIjoiI2ZmYzgwMCJ9LHsiZnJvbSI6IjciLCJjb2xvciI6IiNlYTUzNTMifV0sIm1pbiI6MCwibWF4IjoxMCwic2l6ZVRoaWNrbmVzcyI6MTYsInNpemVHYXAiOjQsInNpemVLZXlUaGlja25lc3MiOjgsInN0eWxlUm91bmRlZCI6dHJ1ZSwic3R5bGVHbG93IjpmYWxzZSwiY2xhc3NOYW1lIjoiIiwieCI6NTkwLCJ5IjoxNDAsIndpcmVzIjpbXX0seyJpZCI6IjM4NTM5ZGM0YmZkYmY2YmUiLCJ0eXBlIjoiY2hhbmdlIiwieiI6ImQzODJiZDJiNTczM2EzYTkiLCJuYW1lIjoiIiwicnVsZXMiOlt7InQiOiJzZXQiLCJwIjoicGF5bG9hZCIsInB0IjoibXNnIiwidG8iOiJkYXRhLmNwdSIsInRvdCI6Im1zZyJ9LHsidCI6InNldCIsInAiOiJ1aV91cGRhdGUubGFiZWwiLCJwdCI6Im1zZyIsInRvIjoiZGF0YS5uYW1lIiwidG90IjoibXNnIn1dLCJhY3Rpb24iOiIiLCJwcm9wZXJ0eSI6IiIsImZyb20iOiIiLCJ0byI6IiIsInJlZyI6ZmFsc2UsIngiOjM2MCwieSI6MjQwLCJ3aXJlcyI6W1siYmRiY2Q1ZjlmOGFjNjEwYyJdXX0seyJpZCI6ImUzNmIxMmFhNTFkMzY1ZmUiLCJ0eXBlIjoicHJvamVjdCBsaW5rIGluIiwieiI6ImQzODJiZDJiNTczM2EzYTkiLCJuYW1lIjoicHJvamVjdCBpbiAyIiwicHJvamVjdCI6IjA0MTc1MTIwLWViZWItNDgxMy04OTEwLTAzZjkyZjhlZDQyOSIsImJyb2FkY2FzdCI6dHJ1ZSwidG9waWMiOiJjcHUtcGVyZm9ybWFuY2UiLCJ4IjoxNDAsInkiOjI0MCwid2lyZXMiOltbIjM4NTM5ZGM0YmZkYmY2YmUiXV19LHsiaWQiOiJiZGJjZDVmOWY4YWM2MTBjIiwidHlwZSI6InVpLWdhdWdlIiwieiI6ImQzODJiZDJiNTczM2EzYTkiLCJuYW1lIjoiIiwiZ3JvdXAiOiI2Y2Y1MzI2ZmU5MjhjOWNmIiwib3JkZXIiOjEsIndpZHRoIjoiNCIsImhlaWdodCI6IjQiLCJndHlwZSI6ImdhdWdlLWhhbGYiLCJnc3R5bGUiOiJuZWVkbGUiLCJ0aXRsZSI6ImdhdWdlIiwidW5pdHMiOiJ1bml0cyIsImljb24iOiIiLCJwcmVmaXgiOiIiLCJzdWZmaXgiOiIiLCJzZWdtZW50cyI6W3siZnJvbSI6IjAiLCJjb2xvciI6IiM1Y2Q2NWMifSx7ImZyb20iOiI0IiwiY29sb3IiOiIjZmZjODAwIn0seyJmcm9tIjoiNyIsImNvbG9yIjoiI2VhNTM1MyJ9XSwibWluIjowLCJtYXgiOjEwLCJzaXplVGhpY2tuZXNzIjoxNiwic2l6ZUdhcCI6NCwic2l6ZUtleVRoaWNrbmVzcyI6OCwic3R5bGVSb3VuZGVkIjp0cnVlLCJzdHlsZUdsb3ciOmZhbHNlLCJjbGFzc05hbWUiOiIiLCJ4Ijo1OTAsInkiOjI0MCwid2lyZXMiOltdfSx7ImlkIjoiYTJlMWZiYTBlOWNkOTg1YSIsInR5cGUiOiJjaGFuZ2UiLCJ6IjoiZDM4MmJkMmI1NzMzYTNhOSIsIm5hbWUiOiIiLCJydWxlcyI6W3sidCI6InNldCIsInAiOiJwYXlsb2FkIiwicHQiOiJtc2ciLCJ0byI6ImRhdGEuY3B1IiwidG90IjoibXNnIn0seyJ0Ijoic2V0IiwicCI6InVpX3VwZGF0ZS5sYWJlbCIsInB0IjoibXNnIiwidG8iOiJkYXRhLm5hbWUiLCJ0b3QiOiJtc2cifV0sImFjdGlvbiI6IiIsInByb3BlcnR5IjoiIiwiZnJvbSI6IiIsInRvIjoiIiwicmVnIjpmYWxzZSwieCI6MzYwLCJ5IjozNDAsIndpcmVzIjpbWyJjMjk4YjY0YjI2MGRmNzA4Il1dfSx7ImlkIjoiZGNmZTczYzE2ZTE3NjQ4YSIsInR5cGUiOiJwcm9qZWN0IGxpbmsgaW4iLCJ6IjoiZDM4MmJkMmI1NzMzYTNhOSIsIm5hbWUiOiJwcm9qZWN0IGluIDMiLCJwcm9qZWN0IjoiOGE2MTExMzYtNmUzZi00NDdlLTk0MzYtMzRiMmQwMGVhYzhlIiwiYnJvYWRjYXN0Ijp0cnVlLCJ0b3BpYyI6ImNwdS1wZXJmb3JtYW5jZSIsIngiOjE0MCwieSI6MzQwLCJ3aXJlcyI6W1siYTJlMWZiYTBlOWNkOTg1YSJdXX0seyJpZCI6ImMyOThiNjRiMjYwZGY3MDgiLCJ0eXBlIjoidWktZ2F1Z2UiLCJ6IjoiZDM4MmJkMmI1NzMzYTNhOSIsIm5hbWUiOiIiLCJncm91cCI6ImVlNWZjM2ViMjlhN2VlNGIiLCJvcmRlciI6MSwid2lkdGgiOiI0IiwiaGVpZ2h0IjoiNCIsImd0eXBlIjoiZ2F1Z2UtaGFsZiIsImdzdHlsZSI6Im5lZWRsZSIsInRpdGxlIjoiZ2F1Z2UiLCJ1bml0cyI6InVuaXRzIiwiaWNvbiI6IiIsInByZWZpeCI6IiIsInN1ZmZpeCI6IiIsInNlZ21lbnRzIjpbeyJmcm9tIjoiMCIsImNvbG9yIjoiIzVjZDY1YyJ9LHsiZnJvbSI6IjQiLCJjb2xvciI6IiNmZmM4MDAifSx7ImZyb20iOiI3IiwiY29sb3IiOiIjZWE1MzUzIn1dLCJtaW4iOjAsIm1heCI6MTAsInNpemVUaGlja25lc3MiOjE2LCJzaXplR2FwIjo0LCJzaXplS2V5VGhpY2tuZXNzIjo4LCJzdHlsZVJvdW5kZWQiOnRydWUsInN0eWxlR2xvdyI6ZmFsc2UsImNsYXNzTmFtZSI6IiIsIngiOjU5MCwieSI6MzQwLCJ3aXJlcyI6W119LHsiaWQiOiIwODc1NTlmOWI5OWYwNDdhIiwidHlwZSI6InVpLWdyb3VwIiwibmFtZSI6IkRldmljZSBHcm91cCAxIiwicGFnZSI6IjM5ZmFlODA5ZjZmN2ZjN2IiLCJ3aWR0aCI6IjQiLCJoZWlnaHQiOiIyIiwib3JkZXIiOjMsInNob3dUaXRsZSI6ZmFsc2UsImNsYXNzTmFtZSI6IiIsInZpc2libGUiOiJ0cnVlIiwiZGlzYWJsZWQiOiJmYWxzZSJ9LHsiaWQiOiI2Y2Y1MzI2ZmU5MjhjOWNmIiwidHlwZSI6InVpLWdyb3VwIiwibmFtZSI6IkRldmljZSBHcm91cCAyIiwicGFnZSI6IjM5ZmFlODA5ZjZmN2ZjN2IiLCJ3aWR0aCI6IjQiLCJoZWlnaHQiOiIyIiwib3JkZXIiOjIsInNob3dUaXRsZSI6ZmFsc2UsImNsYXNzTmFtZSI6IiIsInZpc2libGUiOiJ0cnVlIiwiZGlzYWJsZWQiOiJmYWxzZSJ9LHsiaWQiOiJlZTVmYzNlYjI5YTdlZTRiIiwidHlwZSI6InVpLWdyb3VwIiwibmFtZSI6IkRldmljZSBHcm91cCAzIiwicGFnZSI6IjM5ZmFlODA5ZjZmN2ZjN2IiLCJ3aWR0aCI6IjQiLCJoZWlnaHQiOiIyIiwib3JkZXIiOjEsInNob3dUaXRsZSI6ZmFsc2UsImNsYXNzTmFtZSI6IiIsInZpc2libGUiOiJ0cnVlIiwiZGlzYWJsZWQiOiJmYWxzZSJ9LHsiaWQiOiIzOWZhZTgwOWY2ZjdmYzdiIiwidHlwZSI6InVpLXBhZ2UiLCJuYW1lIjoiRGV2aWNlIE1vbml0b3JpbmciLCJ1aSI6ImRlZDg2ZjM4MjAzNDI5ODUiLCJwYXRoIjoiL2NoYXJ0cy1leGFtcGxlIiwiaWNvbiI6ImNoYXJ0LWJveC1vdXRsaW5lIiwibGF5b3V0IjoiZ3JpZCIsInRoZW1lIjoiNTA3NWE3ZDhlNDk0NzU4NiIsImJyZWFrcG9pbnRzIjpbeyJuYW1lIjoiRGVmYXVsdCIsInB4IjoiMCIsImNvbHMiOiIzIn0seyJuYW1lIjoiVGFibGV0IiwicHgiOiI1NzYiLCJjb2xzIjoiNiJ9LHsibmFtZSI6IlNtYWxsIERlc2t0b3AiLCJweCI6Ijc2OCIsImNvbHMiOiI5In0seyJuYW1lIjoiRGVza3RvcCIsInB4IjoiMTAyNCIsImNvbHMiOiIxMiJ9XSwib3JkZXIiOjEsImNsYXNzTmFtZSI6IiIsInZpc2libGUiOiJ0cnVlIiwiZGlzYWJsZWQiOiJmYWxzZSJ9LHsiaWQiOiJkZWQ4NmYzODIwMzQyOTg1IiwidHlwZSI6InVpLWJhc2UiLCJuYW1lIjoiTXkgRGFzaGJvYXJkIiwicGF0aCI6Ii9kYXNoYm9hcmQiLCJpbmNsdWRlQ2xpZW50RGF0YSI6dHJ1ZSwiYWNjZXB0c0NsaWVudENvbmZpZyI6WyJ1aS1ub3RpZmljYXRpb24iLCJ1aS1jb250cm9sIl0sInNob3dQYXRoSW5TaWRlYmFyIjpmYWxzZSwic2hvd1BhZ2VUaXRsZSI6dHJ1ZSwibmF2aWdhdGlvblN0eWxlIjoiZGVmYXVsdCIsInRpdGxlQmFyU3R5bGUiOiJkZWZhdWx0In0seyJpZCI6IjUwNzVhN2Q4ZTQ5NDc1ODYiLCJ0eXBlIjoidWktdGhlbWUiLCJuYW1lIjoiRGVmYXVsdCBUaGVtZSIsImNvbG9ycyI6eyJzdXJmYWNlIjoiI2ZmZmZmZiIsInByaW1hcnkiOiIjMDA5NENFIiwiYmdQYWdlIjoiI2VlZWVlZSIsImdyb3VwQmciOiIjZmZmZmZmIiwiZ3JvdXBPdXRsaW5lIjoiI2NjY2NjYyJ9LCJzaXplcyI6eyJwYWdlUGFkZGluZyI6IjEycHgiLCJncm91cEdhcCI6IjEycHgiLCJncm91cEJvcmRlclJhZGl1cyI6IjRweCIsIndpZGdldEdhcCI6IjEycHgifX1d",[10,381,382],{},"This example showcases one of many powerful use cases for FlowFuse project nodes. By utilizing these capabilities, you can transform how your Node-RED instances communicate, enabling efficient workflows and innovative solutions.",[17,384,386],{"id":385},"using-project-call-nodes","Using Project Call Nodes",[10,388,389,391,392,396,397,401,402,404],{},[58,390,72],{}," nodes are ideal for triggering flows deployed on another Node-RED instance and retrieving the final result as a response. While they function similarly to ",[24,393,395],{"href":394},"\u002Fnode-red\u002Fintegration-technologies\u002Fwebhook\u002F","webhooks",", they utilize ",[24,398,400],{"href":399},"\u002Fnode-red\u002Fprotocol\u002Fmqtt\u002F","MQTT"," as their underlying mechanism instead of HTTP. In this section, we will demonstrate the use of a ",[58,403,72],{}," node through an example of making an on-demand temperature request.",[85,406,408],{"id":407},"how-project-call-nodes-work","How Project Call Nodes Work",[10,410,411,412,414,415,417,418,420,421,423,424,426,427,429,430,432,433,271],{},"The ",[58,413,72],{}," node does not operate in isolation; it requires both ",[58,416,60],{}," and ",[58,419,66],{}," nodes to function properly. The ",[58,422,72],{}," node triggers the ",[58,425,60],{}," node deployed on the specified target instance, while the ",[58,428,66],{}," node handles the response. This means the flow that needs to be triggered should start with a ",[58,431,60],{}," node and end with a ",[58,434,66],{},[85,436,438],{"id":437},"example-on-demand-temperature-request","Example: On-Demand Temperature Request",[10,440,441,442,271],{},"In this example, we will trigger a flow on a Raspberry Pi instance that reads the temperature using a DHT11 sensor and sends the response back to the instance where we use the ",[58,443,72],{},[10,445,446,447,449],{},"Before we start, let’s review the configuration options for the ",[58,448,72],{}," node:",[96,451,453],{"id":452},"project-call-node-configuration","Project Call Node Configuration",[52,455,456,460,466,471],{},[55,457,458,107],{},[58,459,106],{},[55,461,462,465],{},[58,463,464],{},"Timeout",": Set the duration to wait for a response before timing out.",[55,467,468,470],{},[58,469,167],{},": Specify the target instance where the flow is deployed.",[55,472,473,133],{},[58,474,132],{},[96,476,193],{"id":477},"prerequisites-1",[10,479,480],{},"Before we begin, ensure you have the following prepared:",[52,482,483,489],{},[55,484,485,488],{},[58,486,487],{},"node-red-contrib-dht-sensor",": Install this node via the palette manager. This node is used to manage the connection to a DHT11 or DHT22 sensor on a Raspberry Pi.",[55,490,491,494],{},[58,492,493],{},"FlowFuse Device Agent Setup",": Ensure you have set up and are running the FlowFuse device agent on your Raspberry Pi, and it is connected to the platform.",[96,496,498],{"id":497},"developing-a-flow-to-handle-on-demand-data-requests","Developing a Flow to Handle On-Demand Data Requests",[10,500,501,502,504,505,417,507,509],{},"Throughout this section, we will explore how to utilize the ",[58,503,72],{}," node along with ",[58,506,60],{},[58,508,66],{}," nodes to trigger a flow that retrieves temperature readings from a Raspberry Pi on demand.",[10,511,512],{},[44,513,514,517],{},[58,515,516],{},"Note",": Before proceeding, make sure your device is assigned to an instance. If the device is assigned to an application, you cannot use Project nodes, as they are designed to work with instances.",[273,519],{":height":275,"flow":520},"W3siaWQiOiJiZGIyN2I5YWIwZDk0ODk3IiwidHlwZSI6ImluamVjdCIsInoiOiJiMTUyYTkxNDY1M2Q5ZmNlIiwibmFtZSI6IlRyaWdnZXIiLCJwcm9wcyI6W3sicCI6InBheWxvYWQifSx7InAiOiJ0b3BpYyIsInZ0Ijoic3RyIn1dLCJyZXBlYXQiOiI1IiwiY3JvbnRhYiI6IiIsIm9uY2UiOnRydWUsIm9uY2VEZWxheSI6MC4xLCJ0b3BpYyI6IiIsInBheWxvYWQiOiIiLCJwYXlsb2FkVHlwZSI6ImRhdGUiLCJ4IjoyNjAsInkiOjM4MCwid2lyZXMiOltbIjhhNGZlOWNmMzQyYjYxNTYiXV19LHsiaWQiOiI0ZWNlNTRjYTNjOTFmN2ZmIiwidHlwZSI6ImRlYnVnIiwieiI6ImIxNTJhOTE0NjUzZDlmY2UiLCJuYW1lIjoiZGVidWcgMSIsImFjdGl2ZSI6dHJ1ZSwidG9zaWRlYmFyIjp0cnVlLCJjb25zb2xlIjpmYWxzZSwidG9zdGF0dXMiOmZhbHNlLCJjb21wbGV0ZSI6InRydWUiLCJ0YXJnZXRUeXBlIjoiZnVsbCIsInN0YXR1c1ZhbCI6IiIsInN0YXR1c1R5cGUiOiJhdXRvIiwieCI6NjgwLCJ5IjozODAsIndpcmVzIjpbXX0seyJpZCI6IjhhNGZlOWNmMzQyYjYxNTYiLCJ0eXBlIjoicnBpLWRodDIyIiwieiI6ImIxNTJhOTE0NjUzZDlmY2UiLCJuYW1lIjoiIiwidG9waWMiOiJycGktZGh0MjIiLCJkaHQiOiIxMSIsInBpbnR5cGUiOiIwIiwicGluIjo0LCJ4Ijo0NjAsInkiOjM4MCwid2lyZXMiOltbIjRlY2U1NGNhM2M5MWY3ZmYiXV19XQ==",[223,522,523,531],{},[55,524,525,526,530],{},"Copy\u002Fdownload the flow above and import\u002Fupload it into your Raspberry Pi Node-RED instance. Ensure you have correctly interfaced the DHT11 sensor with your Raspberry Pi. For more information, refer to our guide on ",[24,527,529],{"href":528},"\u002Fnode-red\u002Fhardware\u002Fraspberry-pi-4\u002F","Setting Up Node-RED on Raspberry Pi 4",", which explains how to install the device agent on the Raspberry Pi and read temperature data from the DHT11 sensor.",[55,532,533],{},"Deploy the flow.",[10,535,536],{},"Once you deploy the flow, you will see the temperature data displayed on the Debug panel if everything was done correctly. Now, let’s add the project nodes to trigger the temperature reading flow on demand and retrieve the data accordingly.",[223,538,540,545,553,562],{"start":539},3,[55,541,227,542,544],{},[58,543,60],{}," node onto the canvas, double-click on it, and set the source to \"Receive messages sent to this instance.\" Next, enter the topic.",[55,546,547,548,550,551,271],{},"Replace the ",[58,549,230],{}," node with the ",[58,552,60],{},[55,554,555,556,558,559,271],{},"Next, you can add a ",[58,557,242],{}," node to format the data received by the ",[58,560,561],{},"DHT",[55,563,227,564,566],{},[58,565,66],{}," node onto the canvas, double-click on it, and set the mode to \"Return to project link call.\"",[10,568,569],{},"Once the flow is ready, deploy it. The final flow should look like the one below:",[273,571],{":height":275,"flow":572},"W3siaWQiOiIwMjBlZGUwYmY2OGNmMDYzIiwidHlwZSI6ImNoYW5nZSIsInoiOiJmZTYxZjU0Yzg1NjMyNzlkIiwibmFtZSI6IiIsInJ1bGVzIjpbeyJ0Ijoic2V0IiwicCI6ImRhdGEudGVtcGVyYXR1cmUiLCJwdCI6Im1zZyIsInRvIjoicGF5bG9hZCIsInRvdCI6Im1zZyJ9LHsidCI6InNldCIsInAiOiJkYXRhLmh1bWlkaXR5IiwicHQiOiJtc2ciLCJ0byI6Imh1bWlkaXR5IiwidG90IjoibXNnIn0seyJ0IjoiZGVsZXRlIiwicCI6InBheWxvYWQiLCJwdCI6Im1zZyJ9LHsidCI6ImRlbGV0ZSIsInAiOiJodW1pZGl0eSIsInB0IjoibXNnIn0seyJ0Ijoic2V0IiwicCI6InRvcGljIiwicHQiOiJtc2ciLCJ0byI6InJwaS1kaHQxMSIsInRvdCI6InN0ciJ9XSwiYWN0aW9uIjoiIiwicHJvcGVydHkiOiIiLCJmcm9tIjoiIiwidG8iOiIiLCJyZWciOmZhbHNlLCJ4Ijo1NjAsInkiOjIyMCwid2lyZXMiOltbIjFhNTkyNDE0YWI2OWYxZDgiXV19LHsiaWQiOiJhMzlmY2ZjZDEzM2VjYWFlIiwidHlwZSI6InByb2plY3QgbGluayBpbiIsInoiOiJmZTYxZjU0Yzg1NjMyNzlkIiwibmFtZSI6InByb2plY3QgaW4gMSIsInByb2plY3QiOiJhbGwiLCJicm9hZGNhc3QiOmZhbHNlLCJ0b3BpYyI6InRlbXBlcmF0dXJlIiwieCI6MTYwLCJ5IjoyMjAsIndpcmVzIjpbWyIxNmU4YTI0NTQ1ZDMyNThmIl1dfSx7ImlkIjoiMWE1OTI0MTRhYjY5ZjFkOCIsInR5cGUiOiJwcm9qZWN0IGxpbmsgb3V0IiwieiI6ImZlNjFmNTRjODU2MzI3OWQiLCJuYW1lIjoicHJvamVjdCBvdXQgMSIsIm1vZGUiOiJyZXR1cm4iLCJicm9hZGNhc3QiOmZhbHNlLCJwcm9qZWN0IjoiYjFkZDFkN2QtNTU2ZS00ZGQ0LTliOGYtZDc4ZmZlM2Y1MTBkIiwidG9waWMiOiIiLCJ4Ijo3OTAsInkiOjIyMCwid2lyZXMiOltdfSx7ImlkIjoiMTZlOGEyNDU0NWQzMjU4ZiIsInR5cGUiOiJycGktZGh0MjIiLCJ6IjoiZmU2MWY1NGM4NTYzMjc5ZCIsIm5hbWUiOiIiLCJ0b3BpYyI6InJwaS1kaHQxMSIsImRodCI6IjExIiwicGludHlwZSI6IjAiLCJwaW4iOjQsIngiOjM0MCwieSI6MjIwLCJ3aXJlcyI6W1siMDIwZWRlMGJmNjhjZjA2MyJdXX1d",[10,574,575,576,417,578,580,581,583],{},"Now that we have added the ",[58,577,60],{},[58,579,66],{}," nodes, the flow can be triggered to read the temperature from any Node-RED instance within your team using the ",[58,582,72],{}," node and receive the response.",[96,585,587],{"id":586},"triggering-the-flow-and-receiving-temperature-data","Triggering the Flow and Receiving Temperature Data",[10,589,590],{},"In this section, we will explore how to trigger the flow we created in the previous step and receive the on-demand temperature data.",[223,592,593,596,604,616,626],{},[55,594,595],{},"Navigate to the instance within your team where you want to receive the data.",[55,597,227,598,600,601,603],{},[58,599,72],{}," node onto the canvas. Double-click it to set the timeout according to your preference, then set the target to the instance where your flow needs to be triggered. Next, enter the topic you configured in the ",[58,602,60],{}," node previously.",[55,605,606,607,609,610,612,613,615],{},"Drag an ",[58,608,230],{}," node onto the canvas and connect it to the input of the ",[58,611,72],{}," node. This will allow you to trigger the ",[58,614,72],{}," node manually.",[55,617,618,619,622,623,625],{},"Finally, drag a ",[58,620,621],{},"Debug"," node onto the canvas and connect it to the output of the ",[58,624,72],{}," node. This will help you view the response received from the triggered flow in the Debug panel.",[55,627,533],{},[273,629],{":height":275,"flow":630},"W3siaWQiOiI4Mjc2ZmJhNTE2ZjM2OTdiIiwidHlwZSI6InByb2plY3QgbGluayBjYWxsIiwieiI6ImQzODJiZDJiNTczM2EzYTkiLCJuYW1lIjoiIiwicHJvamVjdCI6ImQxYjZjZjNhLTcwZmMtNGVjNC1iMzBjLWUyMDczMzhiMmNjNCIsInRvcGljIjoidGVtcGVyYXR1cmUiLCJ0aW1lb3V0IjoiMzAiLCJ4Ijo1MzAsInkiOjIwMCwid2lyZXMiOltbIjllZjY2MzgzODJkN2U5ZDUiXV19LHsiaWQiOiIwYWJkYmY0MzM1MGViMzYyIiwidHlwZSI6ImluamVjdCIsInoiOiJkMzgyYmQyYjU3MzNhM2E5IiwibmFtZSI6IiIsInByb3BzIjpbeyJwIjoicGF5bG9hZCJ9XSwicmVwZWF0IjoiIiwiY3JvbnRhYiI6IiIsIm9uY2UiOmZhbHNlLCJvbmNlRGVsYXkiOjAuMSwidG9waWMiOiIiLCJwYXlsb2FkIjoiIiwicGF5bG9hZFR5cGUiOiJkYXRlIiwieCI6MzIwLCJ5IjoyMDAsIndpcmVzIjpbWyI4Mjc2ZmJhNTE2ZjM2OTdiIl1dfSx7ImlkIjoiOWVmNjYzODM4MmQ3ZTlkNSIsInR5cGUiOiJkZWJ1ZyIsInoiOiJkMzgyYmQyYjU3MzNhM2E5IiwibmFtZSI6ImRlYnVnIDEiLCJhY3RpdmUiOnRydWUsInRvc2lkZWJhciI6dHJ1ZSwiY29uc29sZSI6ZmFsc2UsInRvc3RhdHVzIjpmYWxzZSwiY29tcGxldGUiOiJ0cnVlIiwidGFyZ2V0VHlwZSI6ImZ1bGwiLCJzdGF0dXNWYWwiOiIiLCJzdGF0dXNUeXBlIjoiYXV0byIsIngiOjc0MCwieSI6MjAwLCJ3aXJlcyI6W119XQ==",[10,632,633,634,636],{},"Now, once you click the ",[58,635,230],{}," button, you will see the response that includes the temperature in the debug panel, which is read by the flow deployed on the Raspberry Pi.",[10,638,639,643],{},[38,640],{"alt":641,"dataZoomable":41,"src":642},"Image showing the project call node triggering the flow to read the temperature data","\u002Fblog\u002F2024\u002F10\u002Fimages\u002Fproject-out-node-triggering-flow.gif",[44,644,645],{},"Image showing the project call node triggering the flow deployed on the device to read the temperature data.",[10,647,648],{},"Now that you understand how to use FlowFuse project nodes, you can significantly improve the way your Node-RED instances communicate with one another.",[17,650,652],{"id":651},"conclusion","Conclusion",[10,654,655],{},"FlowFuse project nodes streamline communication between Node-RED instances. By using these nodes, you can easily monitor performance, request data, and more. This makes your workflows smoother and more efficient.",{"title":41,"searchDepth":657,"depth":657,"links":658},2,[659,660,663,664,668,672],{"id":19,"depth":657,"text":20},{"id":79,"depth":657,"text":80,"children":661},[662],{"id":87,"depth":539,"text":88},{"id":188,"depth":657,"text":189},{"id":192,"depth":657,"text":193,"children":665},[666,667],{"id":213,"depth":539,"text":214},{"id":282,"depth":539,"text":283},{"id":385,"depth":657,"text":386,"children":669},[670,671],{"id":407,"depth":539,"text":408},{"id":437,"depth":539,"text":438},{"id":651,"depth":657,"text":652},"md",{"navTitle":5,"excerpt":675},{"type":7,"value":676},[677],[10,678,12],{},true,"\u002Fblog\u002F2024\u002F10\u002Fexploring-flowfuse-project-nodes",{"title":5,"description":12},"blog\u002F2024\u002F10\u002Fexploring-flowfuse-project-nodes","nDQMJNGEP3LYRhJbZXN22MTGvZ1KMpsBEVLrwePwpyc",1780070552288]