262 lines
5.9 KiB
JSON
262 lines
5.9 KiB
JSON
{
|
|
"id": "168",
|
|
"name": "Smart Factory Use Case",
|
|
"nodes": [
|
|
{
|
|
"name": "Values higher than 50°C",
|
|
"type": "n8n-nodes-base.if",
|
|
"position": [
|
|
250,
|
|
550
|
|
],
|
|
"parameters": {
|
|
"conditions": {
|
|
"number": [
|
|
{
|
|
"value1": "={{$node[\"Data from factory sensors\"].json[\"body\"][\"temperature_celsius\"]}}",
|
|
"value2": 50,
|
|
"operation": "largerEqual"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"name": "Data from factory sensors",
|
|
"type": "n8n-nodes-base.amqpTrigger",
|
|
"position": [
|
|
50,
|
|
700
|
|
],
|
|
"parameters": {
|
|
"sink": "berlin_factory_01",
|
|
"options": {}
|
|
},
|
|
"credentials": {
|
|
"amqp": ""
|
|
},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"name": "Set sensor data",
|
|
"type": "n8n-nodes-base.set",
|
|
"position": [
|
|
450,
|
|
850
|
|
],
|
|
"parameters": {
|
|
"values": {
|
|
"number": [
|
|
{
|
|
"name": "temeprature_fahrenheit",
|
|
"value": "={{$node[\"Data enrichment (°C to °F)\"].json[\"temperature_fahrenheit\"]}}"
|
|
},
|
|
{
|
|
"name": "temperature_celsius",
|
|
"value": "={{$node[\"Data enrichment (°C to °F)\"].json[\"body\"][\"temperature_celsius\"]}}"
|
|
},
|
|
{
|
|
"name": "machine_uptime",
|
|
"value": "={{$node[\"Data from factory sensors\"].json[\"body\"][\"machine_id\"][\"uptime\"]}}"
|
|
},
|
|
{
|
|
"name": "time_stamp",
|
|
"value": "={{$node[\"Data from factory sensors\"].json[\"body\"][\"time_stamp\"]}}"
|
|
}
|
|
],
|
|
"string": [
|
|
{
|
|
"name": "machine_name",
|
|
"value": "={{$node[\"Data from factory sensors\"].json[\"body\"][\"machine_id\"][\"name\"]}}"
|
|
}
|
|
]
|
|
},
|
|
"options": {}
|
|
},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"name": "Ingest machine data",
|
|
"type": "n8n-nodes-base.crateDb",
|
|
"position": [
|
|
650,
|
|
850
|
|
],
|
|
"parameters": {
|
|
"table": "machine_data",
|
|
"columns": "temperature_fahrenheit, temperature_celsius, machine_name, machine_uptime, time_stamp"
|
|
},
|
|
"credentials": {
|
|
"crateDb": ""
|
|
},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"name": "Ingest incident data",
|
|
"type": "n8n-nodes-base.crateDb",
|
|
"position": [
|
|
850,
|
|
450
|
|
],
|
|
"parameters": {
|
|
"table": "incident_data",
|
|
"columns": "incident_id, html_url, incident_timestamp"
|
|
},
|
|
"credentials": {
|
|
"crateDb": ""
|
|
},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"name": "Set incident info",
|
|
"type": "n8n-nodes-base.set",
|
|
"position": [
|
|
650,
|
|
450
|
|
],
|
|
"parameters": {
|
|
"values": {
|
|
"string": [
|
|
{
|
|
"name": "incident_id",
|
|
"value": "={{$node[\"Create an incident\"].json[\"id\"]}}"
|
|
},
|
|
{
|
|
"name": "html_url",
|
|
"value": "={{$node[\"Create an incident\"].json[\"html_url\"]}}"
|
|
},
|
|
{
|
|
"name": "incident_timestamp",
|
|
"value": "={{$node[\"Create an incident\"].json[\"created_at\"]}}"
|
|
}
|
|
]
|
|
},
|
|
"options": {},
|
|
"keepOnlySet": true
|
|
},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"name": "Create an incident",
|
|
"type": "n8n-nodes-base.pagerDuty",
|
|
"position": [
|
|
450,
|
|
450
|
|
],
|
|
"parameters": {
|
|
"title": "=Incident with {{$node[\"Data from factory sensors\"].json[\"body\"][\"machine_id\"][\"name\"]}}",
|
|
"additionalFields": {}
|
|
},
|
|
"credentials": {
|
|
"pagerDutyApi": ""
|
|
},
|
|
"typeVersion": 1
|
|
},
|
|
{
|
|
"name": "Data enrichment (°C to °F)",
|
|
"type": "n8n-nodes-base.function",
|
|
"position": [
|
|
250,
|
|
850
|
|
],
|
|
"parameters": {
|
|
"functionCode": "temp_fahrenheit = (items[0].json.body.temperature_celsius * 1.8) + 32;\nitems[0].json.temperature_fahrenheit = temp_fahrenheit;\nreturn items;"
|
|
},
|
|
"typeVersion": 1,
|
|
"alwaysOutputData": true
|
|
},
|
|
{
|
|
"name": "Do nothing",
|
|
"type": "n8n-nodes-base.noOp",
|
|
"position": [
|
|
450,
|
|
640
|
|
],
|
|
"parameters": {},
|
|
"typeVersion": 1
|
|
}
|
|
],
|
|
"active": false,
|
|
"settings": {},
|
|
"connections": {
|
|
"Set sensor data": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Ingest machine data",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Set incident info": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Ingest incident data",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Create an incident": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Set incident info",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Values higher than 50°C": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Create an incident",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "Do nothing",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Data from factory sensors": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Data enrichment (°C to °F)",
|
|
"type": "main",
|
|
"index": 0
|
|
},
|
|
{
|
|
"node": "Values higher than 50°C",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"Data enrichment (°C to °F)": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "Set sensor data",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
} |