Welcome to EdgeFlow! This guide will walk you through creating your first automation flow. By the end, you'll understand the basics of building, connecting, and deploying flows.
What You'll Build
A simple automation that triggers on a schedule and logs output to the debug panel.
Open the Flow Editor
After installing EdgeFlow, open your browser and navigate to the web interface:
http://localhost:8080 If accessing from another device, use your device's IP address: http://<device-ip>:8080
You'll see the EdgeFlow interface with three main areas:
Left panel with available nodes
Center area where you build flows
Right panel showing debug output
Add an Inject Node
The Inject node is your flow's trigger. It can fire manually, on a schedule, or when EdgeFlow starts.
In the left palette, look under "Input" category or search for "inject"
Click and drag the Inject node onto the canvas area
Double-click the node to open settings, set payload to timestamp
Add a Debug Node
The Debug node displays message payloads in the debug panel. It's essential for testing and troubleshooting.
In the palette, look under "Output" category or search for "debug"
Place the Debug node to the right of the Inject node
Connect the Nodes
Nodes communicate by passing messages through wires. Connect the output of one node to the input of another.
Click on the small circle on the right side of the Inject node
While holding, drag to the input port on the left side of Debug node
A wire will appear connecting the two nodes
To delete a wire, select it and press Delete. To add a bend, double-click the wire.
Deploy Your Flow
Deploying activates your flow on the server. Until deployed, your changes only exist in the editor.
After deployment, you'll see a success notification confirming your flow is now active.
Test Your Flow
Now let's trigger the flow and see the output!
Click the small button on the left side of the Inject node
Look at the right side panel to see the timestamp output
You've created your first EdgeFlow automation! The timestamp value represents milliseconds since January 1, 1970 (Unix epoch).
Enhance Your Flow
Let's make the flow more useful by adding a Function node to format the timestamp.
Add a Function Node
Drag a Function node between Inject and Debug
Rewire the Flow
Connect: Inject → Function → Debug
Add Code
Double-click Function and add the code below
// Format the timestamp as a readable date
const date = new Date(msg.payload);
msg.payload = {
formatted: date.toLocaleString(),
timestamp: msg.payload,
iso: date.toISOString()
};
return msg; Now when you trigger the flow, you'll see a nicely formatted date in the debug panel:
{
"formatted": "1/29/2024, 2:35:22 PM",
"timestamp": 1706534122000,
"iso": "2024-01-29T14:35:22.000Z"
} Hardware Example: Blink an LED
Ready to control real hardware? This 2-node flow blinks an LED on your Raspberry Pi — the "Hello World" of IoT.
Set repeat: true, intervalValue: 1, intervalType: seconds, and enable toggle: true
Set pin: 17 (BCM numbering)
Wire Inject → GPIO Out, then click Deploy. Your LED should start blinking!
The inject node's toggle option automatically alternates payload.value between true and false on each tick. No Function node needed!
Real-World Example
Here's how you might extend this for a real IoT project - reading sensor data and sending alerts:
Use GPIO nodes to read from DHT22, BME280, or other sensors
Use Function or Switch nodes to check conditions
Send notifications via Telegram, Email, or other services