Routes define connections between your Coreflux MQTT broker and external systems. They enable broker-to-broker communication, database storage, industrial protocol integration, REST API connectivity, email notifications, AI integration, and media processing - all without writing custom middleware.
Routes extend your broker’s capabilities by creating managed connections to external systems - all configured through LoT syntax.
DEFINE ROUTE <route_name> WITH TYPE <route_type> ADD <CONFIG_SECTION> WITH <parameter> "<value>" ADD MAPPING <mapping_name> WITH SOURCE_TOPIC "<source>" WITH DESTINATION_TOPIC "<destination>"
DEFINE ROUTE AlertEmail WITH TYPE EMAIL ADD SMTP_CONFIG WITH HOST "smtp.gmail.com" WITH PORT '587' WITH USERNAME "[email protected]" WITH PASSWORD "app-password" WITH USE_TLS "true" ADD EVENT criticalAlert WITH SOURCE_TOPIC "alerts/critical/+" WITH SUBJECT "Critical Alert: {value.json.type}" WITH RECIPIENT "[email protected]"
Read data from PLCs via Modbus:
Copy
Ask AI
DEFINE ROUTE PlcReader WITH TYPE MODBUS_TCP ADD MODBUS_CONFIG WITH HOST "192.168.1.100" WITH PORT '502' WITH SLAVE_ID '1' ADD MAPPING Sensors WITH EVERY 500 MILLISECONDS ADD TAG Temperature WITH ADDRESS "100" WITH ADDRESS_TYPE "HOLDING_REGISTER" WITH DATA_TYPE "FLOAT" WITH SOURCE_TOPIC "plc/temperature"
Connect to external REST APIs:
Copy
Ask AI
DEFINE ROUTE WeatherService WITH TYPE REST_API ADD REST_API_CONFIG WITH ENABLE_CLIENT "true" WITH BASE_ADDRESS "https://api.weather.com" WITH USE_SSL "true" ADD EVENT GetWeather WITH SOURCE_TOPIC "weather/request" WITH DESTINATION_TOPIC "weather/response" WITH METHOD "GET" WITH ENDPOINT "/v1/current?city={value.json.city}"
Store MQTT data in PostgreSQL:
Copy
Ask AI
DEFINE ROUTE SensorDB WITH TYPE POSTGRESQL ADD SQL_CONFIG WITH SERVER "postgres.example.com" WITH PORT '5432' WITH DATABASE "iot_data" WITH USERNAME "iot_user" WITH PASSWORD "secure_password" ADD EVENT StoreSensorReading WITH SOURCE_TOPIC "sensors/+/reading" WITH QUERY "INSERT INTO readings (ts, sensor, value) VALUES (NOW(), '{sensor_id}', '{value.json}')"
Connect two brokers and sync topics:
Copy
Ask AI
DEFINE ROUTE CloudBridge WITH TYPE MQTT_BRIDGE ADD SOURCE_CONFIG WITH BROKER SELF ADD DESTINATION_CONFIG WITH BROKER_ADDRESS "cloud.example.com" WITH BROKER_PORT '8883' WITH CLIENT_ID "EdgeBridge" WITH USE_TLS "true" ADD MAPPING sensorSync WITH SOURCE_TOPIC "sensors/+/data" WITH DESTINATION_TOPIC "edge/sensors/+/data" WITH DIRECTION "out"
DEFINE ROUTE EdgeToCloud WITH TYPE MQTT_BRIDGE ADD SOURCE_CONFIG WITH BROKER SELF ADD DESTINATION_CONFIG WITH BROKER_ADDRESS "iot.cloud-provider.com" WITH BROKER_PORT '8883' WITH USE_TLS "true" ADD MAPPING allSensors WITH SOURCE_TOPIC "local/sensors/#" WITH DESTINATION_TOPIC "edge-01/sensors/#" WITH DIRECTION "out"
Read data from PLCs via multiple protocols:
Copy
Ask AI
DEFINE ROUTE SiemensPLC WITH TYPE SIEMENS_S7 ADD S7_CONFIG WITH IP "192.168.1.100" WITH CPU_TYPE "S71500" WITH RACK '0' WITH SLOT '1' ADD MAPPING ProcessData WITH EVERY 500 MILLISECONDS ADD TAG Temperature WITH ADDRESS "DB1.DBD0" WITH DATA_TYPE "REAL" WITH SOURCE_TOPIC "plc/temperature"
Store sensor data for analysis:
Copy
Ask AI
DEFINE ROUTE AnalyticsStore WITH TYPE OPENSEARCH ADD OPENSEARCH_CONFIG WITH BASE_URL "https://analytics.example.com:9200" WITH USERNAME "admin" WITH PASSWORD "password" WITH USE_SSL "true" ADD EVENT IndexReading WITH SOURCE_TOPIC "sensors/#" WITH QUERY "CLEAN:{index: sensor-data, body: {timestamp: {timestamp}, value: {value.json}}}"
Email stakeholders when critical events occur:
Copy
Ask AI
DEFINE ROUTE CriticalAlerts WITH TYPE EMAIL ADD SMTP_CONFIG WITH HOST "smtp.office365.com" WITH PORT '587' WITH USE_TLS "true" WITH USERNAME "[email protected]" WITH PASSWORD "password" ADD EVENT notify WITH SOURCE_TOPIC "alarms/critical/+" WITH SUBJECT "CRITICAL: {value.json.alarm_type}" WITH RECIPIENT "[email protected]"