De bout en bout : surveillance de condition
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.
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
- Timers par clé — un capteur silencieux est aussi un défaut
- De bout en bout : surveillance de flotte (IoT)