Skip to content

Commit 5594fdf

Browse files
Merge branch 'main' into em-jd
2 parents 3051e6c + 7143394 commit 5594fdf

65 files changed

Lines changed: 2222 additions & 2620 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/calibreapp-image-actions.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
4040
- name: Compress Images
4141
id: calibre
42-
uses: calibreapp/image-actions@82caf2e46a1950e602c8440fde4730ec1da6fef4 # main
42+
uses: calibreapp/image-actions@006692e15ca7d6312e06cc49b57a466d8ed45848 # main
4343
with:
4444
githubToken: ${{ secrets.GITHUB_TOKEN }}
4545
# For non-Pull Requests, run in compressOnly mode and we'll PR after.

package-lock.json

Lines changed: 1837 additions & 2300 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
"codeowners": "^5.1.1",
6666
"js-yaml": "^4.1.0",
6767
"markdown-it-attrs": "^4.1.6",
68-
"netlify-cli": "^22.1.2",
68+
"netlify-cli": "^22.1.3",
6969
"xml-js": "^1.6.11"
7070
}
7171
}

src/_data/events.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,8 @@
33
buttonText: "Register now"
44
link: "/webinars/2025/node-red-why-and-when-for-cloud-and-edge/"
55
expire: "2025-06-25T16:00:00Z"
6+
- type: "Conference"
7+
title: "Node-RED Con 2025 is here! - A Community Conference on Industrial Applications"
8+
buttonText: "Learn More"
9+
link: "/blog/2025/06/announcing-node-red-con-2025/"
10+
expire: "2025-07-21T16:00:00Z"

src/_data/pricingFeatures.yaml

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,18 @@ sections:
5858
cloudValues: [ '10 MB', '100 MB', '1 GB' ]
5959
tags: [ 'cloud' ]
6060
info: "<p>In-memory values defined in a Node-RED flow will persist across project restarts and upgrades.</p>"
61+
- id: live-chat-support
62+
label: Live Chat Support
63+
cloudValues: [ null, 'check', 'check' ]
64+
selfHostedValues: [ null, 'check' ]
65+
tags: [ 'cloud', 'self-hosted' ]
66+
info:
67+
- id: workflow-executions
68+
label: Workflow Executions
69+
cloudValues: [ 'Unlimited', 'Unlimited', 'Unlimited' ]
70+
selfHostedValues: [ 'Unlimited', 'Unlimited' ]
71+
tags: [ 'cloud', 'self-hosted' ]
72+
info:
6173
- label: Scale
6274
rows:
6375
- id: device-mgmt
@@ -78,7 +90,7 @@ sections:
7890
info: "<p>Easily manage and create MQTT clients to transport data efficiently within your applications. The Team Tier includes 8 clients for free as part of your existing plan, and the Enterprise Tier includes 20. You can purchase additional clients as needed in the future.</p>"
7991
- id: volume-pricing
8092
label: Volume Pricing
81-
cloudValues: [ null, 'check', 'check' ]
93+
cloudValues: [ null, null, 'check' ]
8294
selfHostedValues: [ 'check', 'check' ]
8395
tags: [ 'cloud', 'self-hosted' ]
8496
info: "<p>Scaling to hundreds or thousands of Node-RED instances? <a href='/contact-us'>Contact us</a> for customized volume discounts!</p>"
@@ -100,6 +112,12 @@ sections:
100112
selfHostedValues: [ 'check', 'check' ]
101113
tags: [ 'cloud', 'self-hosted' ]
102114
info: "<p><a href='https://github.com/FlowFuse/nr-project-nodes' target='blank'>FlowFuse Project Nodes</a> enable the passing of data and messages between your Node-RED projects, included with all FlowFuse Projects by default.</p>"
115+
- id: private-npm-registry
116+
label: Private NPM Registry
117+
cloudValues: [ null, 'check', 'check' ]
118+
selfHostedValues: [ 'check', 'check' ]
119+
tags: [ 'cloud', 'self-hosted' ]
120+
info:
103121
- id: device-groups
104122
label: Device Group Management
105123
cloudValues: [ null, null, 'check' ]
@@ -163,7 +181,7 @@ sections:
163181
tags: [ 'cloud', 'self-hosted' ]
164182
info: "<p>FlowFuse can be configured to run with your own Single Sign-On (SSO) provider. Allow users to access FlowFuse with a single set of login credentials, improving security, user experience, and save them time.</p>"
165183
- id: hipaa
166-
label: BAA for Hipaa
184+
label: BAA for HIPAA
167185
cloudValues: [ null, null, 'check' ]
168186
selfHostedValues: [ null, 'check' ]
169187
tags: [ 'cloud', 'self-hosted' ]

src/_data/site.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
},
77
"messaging": {
88
"tagLine": "Unlock Industrial Data. Integrate Everything. Optimize Faster.",
9-
"subtitle": "Quickly build workflows, applications and integrations that optimize your operations with our low-code, open-source, end to end platform.",
9+
"subtitle": "FlowFuse is the industrial application platform that empowers teams to build, deploy and manage applications that optimize industrial operations.",
1010
"title": "Build workflows and integrations that optimize your industrial operations",
1111
"keywords": "Node-RED, Application Development, IoT, IIoT, Low-Code, open source, Integration, Workflow, Automation, Data Processing, Data Integration, Data Transformation, Data Visualization, Industrial Automation, Industrial IoT, Industry 4.0"
1212
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
title: "Announcing Node-RED Con 2025: A Community Conference on Industrial Applications"
3+
subtitle: "We're excited to support this year's community conference focused on Node-RED in industry. The Call for Papers is now open!"
4+
description: "FlowFuse is proud to sponsor Node-RED Con 2025, a free online conference on November 4, 2025, dedicated to industrial applications. Learn more and submit your talk."
5+
date: 2025-06-12
6+
authors: ["flowfuse"]
7+
image: /blog/2025/06/images/node-red-con-2025.png
8+
tags:
9+
- flowfuse
10+
- news
11+
- community
12+
- node-red
13+
---
14+
15+
At FlowFuse, our commitment to the Node-RED community is at the heart of everything we do. That's why we are thrilled to announce our support as a sponsor for **Node-RED Con 2025**, a free, online conference taking place on **Tuesday, November 4, 2025!**
16+
17+
<!--more-->
18+
19+
This year's event is dedicated to exploring a vital theme: **Node-RED applications in industry**. It’s a fantastic opportunity for developers, engineers, and innovators to connect and share how Node-RED is being used to solve real-world challenges.
20+
21+
## The Call for Papers is Now Open
22+
23+
The conference agenda is built from community submissions, and the official Call for Papers is now live. This is a chance to contribute your expertise and share your story with the wider Node-RED ecosystem.
24+
25+
The event is seeking submissions from passionate individuals in several categories:
26+
27+
* **Full Talks & Demos (25-30 mins):** Focused on industrial use cases, IoT architectures, and edge computing.
28+
* **Lightning Talks (8-10 mins):** Showcasing fun, creative, or inspiring projects.
29+
* **Expert Panelists:** To discuss the future of industrial automation with Node-RED.
30+
31+
The deadline for submissions is **July 25, 2025**.
32+
33+
[Learn More & Submit Your Proposal](https://nrcon.nodered.org/)
34+
35+
## Would you like to attend?
36+
37+
For a direct email reminder when registration opens, you can sign up for updates below.
38+
39+
<script charset="utf-8" type="text/javascript" src="//js-eu1.hsforms.net/forms/embed/v2.js"></script>
40+
<script>
41+
hbspt.forms.create({
42+
portalId: "26586079",
43+
formId: "ec3e2601-7df4-4b8f-89fc-5244da3db732",
44+
region: "eu1"
45+
});
46+
</script>
47+
48+
49+
We are proud to support this fantastic community-led event and can't wait to see the innovations that will be shared. See you in November!

src/blog/2025/06/connect-shop-floor-to-odoo-erp-flowfuse.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Before we start diving into how you can connect your shop floor to ERP, let's fi
2424

2525
This is just a simple example of what FlowFuse can do. But it has much more power! Imagine FlowFuse also checking your production orders (MOs) in your ERP to see what you need to make. It can look at your Bills of Material (BOMs) in your ERP to figure out all the parts required. If it sees you're short on something, it can automatically create purchase orders in your ERP to buy the missing parts. It can even make new manufacturing orders for components you need to build.
2626

27-
<iframe width="100%" height="480" src="https://www.youtube.com/embed/bxVq_8m-GOk?si=r9U6P7YboRpJf4NI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen style="margin-top: 20px; margin-bottom: 20px;"></iframe>
27+
<lite-youtube videoid="bxVq_8m-GOk" params="rel=0" style="margin-top: 20px; margin-bottom: 20px; width: 100%; height: 480px;" title="YouTube video player"></lite-youtube>
2828

2929
Below is the complete flow for this demo, in case you would like to explore it further or try it out yourself after reading the article
3030

@@ -104,7 +104,7 @@ Replace ID with the actual product ID you want to read. You can include multiple
104104
5. Connect to a debug node to view the data.
105105
6. Deploy the flow and click the inject node button to see the result.
106106

107-
<iframe width="100%" height="480" src="https://www.youtube.com/embed/9CdVOp_bDMk?si=pVZxw636fiqWFFeW" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen style="margin-top: 20px; margin-bottom: 20px;"></iframe>
107+
<lite-youtube videoid="9CdVOp_bDMk" params="rel=0" style="margin-top: 20px; margin-bottom: 20px; width: 100%; height: 480px;" title="YouTube video player"></lite-youtube>
108108

109109
{% renderFlow %}
110110
[{"id":"4f2bd9814f07c6a6","type":"odoo-xmlrpc-read","z":"295d40790bd21f48","name":"","host":"18818bdefd1f27ce","model":"product.template","x":1190,"y":280,"wires":[["5601affdba752326"]]},{"id":"5601affdba752326","type":"debug","z":"295d40790bd21f48","name":"debug 6","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1500,"y":280,"wires":[]},{"id":"4e8b22877e33b496","type":"inject","z":"295d40790bd21f48","name":"Read products with id 23 and 39","props":[],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":570,"y":280,"wires":[["b21cdd78ad81d65a"]]},{"id":"b21cdd78ad81d65a","type":"change","z":"295d40790bd21f48","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"[39,23]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":900,"y":280,"wires":[["4f2bd9814f07c6a6"]]},{"id":"18818bdefd1f27ce","type":"odoo-xmlrpc-config","url":"${HOST}","db":"${DB_NAME}","username":"${USERNAME} ","password":"${PASSWORD}"}]
@@ -130,7 +130,7 @@ Here is how you can create manufacturing order:
130130
3. Connect the change node to an `odoo-xmlrpc-create` node. Select your configured Odoo connection for its Host and enter model to `mrp.production`
131131
4. Connect the `odoo-xmlrpc-create node` to a debug node to see the ID of the new record Odoo creates.
132132

133-
<iframe width="100%" height="480" src="https://www.youtube.com/embed/bq_yaF8etmw?si=EQwUskWDzd6I7fQH" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen style="margin-top: 20px; margin-bottom: 20px;"></iframe>
133+
<lite-youtube videoid="bq_yaF8etmw" params="rel=0" style="margin-top: 20px; margin-bottom: 20px; width: 100%; height: 480px;" title="YouTube video player"></lite-youtube>
134134

135135
{% renderFlow %}
136136
[{"id":"d89d98a5ec9a8733","type":"odoo-xmlrpc-create","z":"295d40790bd21f48","name":"","host":"18818bdefd1f27ce","model":"mrp.production","filter":"","offset":0,"limit":100,"x":1200,"y":380,"wires":[["ea101f5cab65a241"]]},{"id":"99ba2ffda10cf2d9","type":"inject","z":"295d40790bd21f48","name":"Create New MO","props":[],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":620,"y":380,"wires":[["33e0301b6e8f7838"]]},{"id":"ea101f5cab65a241","type":"debug","z":"295d40790bd21f48","name":"debug 5","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1500,"y":380,"wires":[]},{"id":"33e0301b6e8f7838","type":"change","z":"295d40790bd21f48","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"[{\"product_id\":30,\"product_qty\":200,\"product_uom_id\":1}]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":900,"y":380,"wires":[["d89d98a5ec9a8733"]]},{"id":"18818bdefd1f27ce","type":"odoo-xmlrpc-config","url":"${HOST}","db":"${DB_NAME}","username":"${USERNAME} ","password":"${PASSWORD}"}]
@@ -157,7 +157,7 @@ Here is how you can update the status of manufacturing order:
157157
4. Connect the `odoo-xmlrpc-update` node to a debug node to confirm the update operation. (A successful update typically returns true or an empty payload).
158158
5. Deploy the flow and click the inject node button to see the result.
159159

160-
<iframe width="100%" height="480" src="https://www.youtube.com/embed/SsPfHxCwMI8?si=FYzOkDsL9KfIcvKm" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen style="margin-top: 20px; margin-bottom: 20px;"></iframe>
160+
<lite-youtube videoid="SsPfHxCwMI8" params="rel=0" style="margin-top: 20px; margin-bottom: 20px; width: 100%; height: 480px;" title="YouTube video player"></lite-youtube>
161161

162162
{% renderFlow %}
163163
[{"id":"e43dc05eb7df7ecf","type":"inject","z":"295d40790bd21f48","name":"Update MO Status","props":[],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":610,"y":540,"wires":[["11bbd21f1314b839"]]},{"id":"47b01f56b4800c5c","type":"debug","z":"295d40790bd21f48","name":"debug 3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1500,"y":540,"wires":[]},{"id":"bd9de404f2ac1a2e","type":"odoo-xmlrpc-update","z":"295d40790bd21f48","name":"","host":"18818bdefd1f27ce","model":"mrp.production","filter":"","offset":0,"limit":100,"x":1200,"y":540,"wires":[["47b01f56b4800c5c"]]},{"id":"11bbd21f1314b839","type":"change","z":"295d40790bd21f48","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"[ [18], {\"state\": \"progress\"} ]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":900,"y":540,"wires":[["bd9de404f2ac1a2e"]]},{"id":"18818bdefd1f27ce","type":"odoo-xmlrpc-config","url":"${HOST}","db":"${DB_NAME}","username":"${USERNAME} ","password":"${PASSWORD}"}]
@@ -181,7 +181,7 @@ Here is how you can delete product from inventory:
181181
4. Connect the `odoo-xmlrpc-unlink` to a debug node to confirm the unlink operation.
182182
5. Deploy the flow and click the inject node button to see the result.
183183

184-
<iframe width="100%" height="480" src="https://www.youtube.com/embed/1O1JYRtX-Sg?si=uhsqEtn4PIr7UZfd" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen style="margin-top: 20px; margin-bottom: 20px;"></iframe>
184+
<lite-youtube videoid="1O1JYRtX-Sg" params="rel=0" style="margin-top: 20px; margin-bottom: 20px; width: 100%; height: 480px;" title="YouTube video player"></lite-youtube>
185185

186186
{% renderFlow %}
187187
[{"id":"f14241bb24af8dc8","type":"odoo-xmlrpc-unlink","z":"295d40790bd21f48","name":"","host":"18818bdefd1f27ce","model":"product.template","x":1190,"y":700,"wires":[["231e32e70753ab22"]]},{"id":"9452d125fd059f79","type":"inject","z":"295d40790bd21f48","name":"Delete the product with ID 60","props":[],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":580,"y":700,"wires":[["cfcabeae8b291a9c"]]},{"id":"231e32e70753ab22","type":"debug","z":"295d40790bd21f48","name":"debug 7","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1500,"y":700,"wires":[]},{"id":"cfcabeae8b291a9c","type":"change","z":"295d40790bd21f48","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"[60]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":900,"y":700,"wires":[["f14241bb24af8dc8"]]},{"id":"18818bdefd1f27ce","type":"odoo-xmlrpc-config","url":"${HOST}","db":"${DB_NAME}","username":"${USERNAME} ","password":"${PASSWORD}"}]
@@ -255,7 +255,7 @@ Here’s an example FlowFuse flow to find products with list price (more than 10
255255
4. Connect to a debug node to inspect the filtered and selected data in the debug sidebar.
256256
5. Deploy the flow and click the inject node button to see the result.
257257

258-
<iframe width="100%" height="480" src="https://www.youtube.com/embed/8Asa3z2VctQ?si=HnayJ5pHTnkGZcmp" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen style="margin-top: 20px; margin-bottom: 20px;"></iframe>
258+
<lite-youtube videoid="8Asa3z2VctQ" params="rel=0" style="margin-top: 20px; margin-bottom: 20px; width: 100%; height: 480px;" title="YouTube video player"></lite-youtube>
259259

260260
{% renderFlow %}
261261
[{"id":"0cfe26fd5b4169e7","type":"debug","z":"295d40790bd21f48","name":"debug 4","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1500,"y":840,"wires":[]},{"id":"656023449ba5dee9","type":"inject","z":"295d40790bd21f48","name":"Read Top 5 Saleable Products >1000","props":[],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":550,"y":840,"wires":[["7f791bfc8caa0721"]]},{"id":"8ada5a972d94dd9d","type":"odoo-xmlrpc-search-read","z":"295d40790bd21f48","name":"","host":"18818bdefd1f27ce","model":"product.product","filter":"","offset":0,"limit":100,"x":1210,"y":840,"wires":[["0cfe26fd5b4169e7"]]},{"id":"7f791bfc8caa0721","type":"change","z":"295d40790bd21f48","name":"","rules":[{"t":"set","p":"filters","pt":"msg","to":"[[[\"list_price\",\">\",1000],[\"sale_ok\",\"=\",true]]]","tot":"json"},{"t":"set","p":"limit","pt":"msg","to":"5","tot":"num"},{"t":"set","p":"offset","pt":"msg","to":"0","tot":"num"},{"t":"set","p":"fields","pt":"msg","to":"[\"name\",\"qty_available\",\"default_code\",\"lst_price\"]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":900,"y":840,"wires":[["8ada5a972d94dd9d"]]},{"id":"18818bdefd1f27ce","type":"odoo-xmlrpc-config","url":"${HOST}","db":"${DB_NAME}","username":"${USERNAME} ","password":"${PASSWORD}"}]

0 commit comments

Comments
 (0)