Optimisation de la Surveillance des Machines en Temps Réel

Ce workflow innovant permet aux usines intelligentes de surveiller efficacement les données des capteurs en temps réel. En détectant automatiquement les températures anormalement élevées, il génère des incidents pour une intervention rapide, assurant ainsi une maintenance proactive et réduisant les temps d'arrêt imprévus. Avec une intégration fluide entre divers services, ce workflow assure la collecte et l'enregistrement des données cruciales pour une analyse ultérieure, améliorant ainsi la fiabilité opérationnelle et la prise de décision basée sur les données.

93,701 vues
36,122 copies
Automatisation

Documentation Complète

📋 Optimisation de la Surveillance des Machines en Temps Réel

💡 Description

Ce workflow innovant permet aux usines intelligentes de surveiller efficacement les données des capteurs en temps réel. En détectant automatiquement les températures anormalement élevées, il génère des incidents pour une intervention rapide, assurant ainsi une maintenance proactive et réduisant les temps d'arrêt imprévus. Avec une intégration fluide entre divers services, ce workflow assure la collecte et l'enregistrement des données cruciales pour une analyse ultérieure, améliorant ainsi la fiabilité opérationnelle et la prise de décision basée sur les données.

📈 Impact & ROI: En permettant une détection rapide et une gestion efficace des anomalies, ce workflow réduit les coûts liés aux pannes imprévues et augmente la durée de vie de l'équipement, générant un retour sur investissement significatif.

🚀 Fonctionnalités Clés

  • ✅ Surveillance automatique des températures pour prévenir les incidents
  • ✅ Intégration directe avec les capteurs et bases de données
  • ✅ Conversion instantanée des données pour une meilleure compréhension
  • ✅ Gestion proactive des incidents pour réduire les temps d'arrêt

📊 Architecture Technique

9
Nodes
6
Connexions
3
Services

🔌 Services Intégrés

AMQPCrateDBPagerDuty

🔧 Composition du Workflow

NodeTypeDescription
Values higher than 50°CifCondition logique pour router le flux
Data from factory sensorsamqpTriggerTraitement des données
Set sensor datasetTraitement des données
Ingest machine datacrateDbTraitement des données
Ingest incident datacrateDbTraitement des données
Set incident infosetTraitement des données
Create an incidentpagerDutyTraitement des données
Data enrichment (°C to °F)functionTransformation de données avec code personnalisé
Do nothingnoOpTraitement des données

📖 Guide d'Implémentation

  1. Import du workflow: Téléchargez le fichier JSON et importez-le dans votre instance n8n
  2. Configuration des credentials: Configurez les accès pour chaque service utilisé
  3. Personnalisation: Adaptez les paramètres selon vos besoins spécifiques
  4. Test: Exécutez le workflow en mode test pour vérifier le bon fonctionnement
  5. Activation: Activez le workflow pour une exécution automatique

🏷️ Tags

surveillanceusine intelligenteautomatisation

Structure JSON

Voir le code JSON complet
{
    "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
                    }
                ]
            ]
        }
    }
}
                                

Workflows Similaires

Public Form Auto Triage

Workflow automatisé avec 12 nodes incluant : stickyNote, webhook, @n8n/langchain.textSplitterCharacterTextSplitter, @n8...

Image Captioning

Workflow automatisé avec 12 nodes incluant : stickyNote, webhook, @n8n/langchain.textSplitterCharacterTextSplitter, @n8...

Daily Content Ideas

Workflow automatisé avec 12 nodes incluant : stickyNote, webhook, @n8n/langchain.textSplitterCharacterTextSplitter, @n8...