
Deploy your first LoT Action from VS Code
Why This Guide?
This is the fastest way to validate your Coreflux setup: in under 15 minutes you’ll have a live LoT (Language of Things) Action running inside your broker—proof that your installation works and logic executes at the edge. New to Coreflux? Start with the Overview.Prerequisites
Before you begin, ensure you have:- A running Coreflux Broker — See the Installation Guide if you haven’t set one up yet
- VS Code with the LoT Notebooks extension — see the VS Code Setup Guide
- Basic MQTT knowledge — Understanding of topics, publish/subscribe patterns
Ready? Here’s what you’ll build and deploy.
Your First LoT Action in 15 Minutes
Concept Refresher: You are about to write an action that lives and runs inside the broker, not on your laptop.Let’s create a simulated temperature sensor that publishes a temperature reading every 5 seconds. You’ll see data on a topic as soon as you deploy—no external input required. This keeps the whole guide in a single “temperature monitoring” flow.
Understanding the Action
LoT Actions have three parts:- Definition —
DEFINE ACTION <name> - Trigger — When to run (
ON EVERY <time>orON TOPIC "<topic>") - Logic — What to do (publish data, conditional logic, etc.)
"{\"temperature\": 72}").Deploy the Action
- VS Code Extension
- MQTT Client
Ensure you have the LoT Notebooks extension installed
Create a new LoT Notebook file

Creating a new LoT Notebook file in VS Code
Connect to Your Broker

Connecting to your Coreflux broker from VS Code
Default Broker Credentials
Default Broker Credentials
Create a New Action

Creating a new LoT code cell in the notebook
Paste the Action Code
Deploy

Running the LoT action from the notebook cell
Verify It’s Running
- VS Code Extension
- MQTT Client
Check the Actions list
Check live values in the extension
{"temperature": 72}) on sensors/zone1/temperature arriving every 5 seconds.
TemperatureSimulator action listed in the Coreflux Entities panel
Example Real Scenario: Temperature Alarm
Now let’s create a reactive action that transforms sensor data and checks thresholds. This demonstrates data transformation and conditional logic—common patterns in industrial monitoring.sensors/+/temperature. After you deploy it, you will see no output until something publishes to that topic—for example, the Temperature Simulator from the previous section (if both are running), or a manual publish from MQTT Explorer or any MQTT client.- Trigger — The action fires whenever a message is published to any topic matching
sensors/+/temperature(e.g.sensors/zone1/temperature). - Extract — It reads the
temperaturevalue (in Fahrenheit) from the incoming JSON payload. - Convert — It transforms Fahrenheit to Celsius using the standard formula:
(F − 32) × 5 / 9. - Decide — If the Celsius value exceeds 35 °C, it publishes an alert to
alerts/high_temp. Otherwise, it publishes the normalized Celsius reading tosensors/normalized.
{} denotes variable substitution, and expressions must be wrapped in parentheses. The + in the topic pattern is a single-level MQTT wildcard — it matches any value in that position (e.g. sensors/zone1/temperature, sensors/zone2/temperature).Deploy and Test
Deploy this action using the same method as above (VS Code extension or MQTT client). Once deployed, use the steps below to verify reactive logic.How to Test the Logic
The action subscribes to any topic matchingsensors/+/temperature (e.g. sensors/zone1/temperature). It expects a JSON payload with a temperature key (Fahrenheit). It then converts to Celsius and either publishes an alert (if > 35°C) or the normalized value.
- Below threshold — publish to
sensors/zone1/temperature:Expect: a message onsensors/normalizedwith the Celsius value (about 25). - Above threshold — publish to
sensors/zone1/temperature:Expect: a message onalerts/high_tempwith text like “Alert: 35°C exceeds threshold”.
- VS Code Extension
- MQTT Client
Deploy the Temperature Alarm action
Observe output topics
sensors/normalized and alerts/high_temp once test data is published.Send test data
sensors/zone1/temperature. If the Temperature Simulator from the previous section is still running, it already publishes every 5 seconds and you will see results on sensors/normalized (72°F is below 35°C). Check the topic tree displayed below the code cell to see incoming values update in real time.Confirm output
Clean Up (Optional)
To remove the test action:- VS Code Extension
- MQTT Client
Quick Examples
Looking for inspiration? Check out the Language of Things Training Repository for common patterns like:- Topic-Based Triggers: Echo messages between topics
- State Machines: Toggle switches and conditional logic
- Event Counters: Track and aggregate system events
Language of Things Training
Troubleshooting
Action not executing?
Action not executing?
- Verify the broker is running and you’re connected
- Check
$SYS/Coreflux/Command/Outputfor error messages - Ensure proper indentation in your LoT action (use consistent tabs or spaces)
- Confirm the action appears in
$SYS/Coreflux/Actionsor in the VS Code extension Actions list
Can't connect to the broker?
Can't connect to the broker?
- Verify the broker hostname/IP and port are correct
- Check that port 1883 (or 8883 for TLS) is open
- Confirm your username and password are correct
- If using TLS, ensure certificates are properly configured
Messages not appearing on subscribed topics?
Messages not appearing on subscribed topics?
- Verify you’re subscribed to the exact topic (including case sensitivity)
- Check if any Rules are blocking access to the topic
- Use wildcards (
+or#) to debug topic hierarchies

