Aller au contenu principal

De bout en bout : surveillance de condition

Avancé ⏱ 20 min manufacturing · bout en bout · baselines

Vous allez construire : le pipeline de surveillance de condition du use case Manufacturing — des baselines de vibration et de température par actif, une règle de dérive, et une note de contexte rédigée par LLM pour le technicien.

télémétrie → streaming:baseline → rule-based:detect → llm:contextualize → webhook (tableau de maintenance)

Prérequis

  • Le démarrage rapide terminé.
  • Optionnel pour l'étape 4 : un Ollama local (les déploiements en atelier gardent le modèle sur le segment OT). Sans lui, arrêtez-vous après l'étape 3 — la détection fonctionne.

1 · Générez

pulse new condition --source webhook \
--stage streaming:baseline --stage rule-based:detect --stage llm:contextualize \
--sink webhook

2 · Le stage baseline — chaque machine contre elle-même

stages:
- name: baseline
engine: streaming
operators:
- { type: keyBy, field: asset_id }
- type: window
spec: "sliding(15m,1m)"
aggregations:
vib_avg: "avg(vibration)"
vib_stddev: "stddev(vibration)"
temp_max: "max(temperature)"

keyBy: asset_id est la ligne porteuse : la déviation se mesure contre l'historique récent de chaque machine, pas contre une constante de flotte.

3 · Le stage detect

- name: detect
engine: rule-based
rules:
- { condition: "vib_stddev > 4.0 || temp_max > 85", action: flag }

4 · Le stage de contexte

- name: contextualize
engine: llm
systemPrompt: |
Résume la dérive pour le technicien : quelle métrique
a bougé, de combien au-delà de sa bande, sur quelle fenêtre.

5 · Sink vers le tableau de maintenance et déployez

pulse secret set MAINT_BOARD_WEBHOOK https://webhook.site/<votre-id>
pulse secret set PULSE_WEBHOOK_SECRET dev-secret # la source webhook générée l'exige
pulse deploy .

6 · Simulez un roulement qui se dégrade

for v in 1.1 1.2 1.4 2.8 5.5 9.2; do
pulse events publish --topic condition.in --value '{"asset_id":"press-04","vibration":'"$v"',"temperature":71}'
done
pulse events tail --topic condition.detect.out

À mesure que la dispersion de vibration s'élargit, vib_stddev casse la bande et le signalement part — des heures d'avance qu'un historian ne vous aurait montrées qu'après l'arrêt.

Ce qui vient de se passer

Le « prédictif » est exactement ce qu'il prétend être : des baselines statistiques qui attrapent la dérive, par actif, en temps réel — avec votre propre modèle de fiabilité branchable comme stage supplémentaire quand vous en avez un. Le chemin d'alerte, la rédaction de contexte et la piste d'audit sont les parties que vous n'avez pas eu à construire.

Dépannage

Aucun signalement ne part

stddev a besoin de dispersion dans la fenêtre — envoyez la rafale croissante en deux minutes et vérifiez condition.baseline.out pour les valeurs calculées.

Ensuite