Skip to Content
Icône de MRP N3 — Suivi OEE/TRS Temps Réel (IoT Industriel, Odoo Community)

MRP N3 — Suivi OEE/TRS Temps Réel (IoT Industriel, Odoo Community)

Free Odoo 20 App Quality check: Verified OPL-1 (Odoo proprietary)

Suivi OEE/TRS Odoo Community : événements machine (IoT industriel) reçus par webhook générique, TRS calculé en temps réel par centre de charge, avec historique horaire

Screenshots

Suivi OEE/TRS temps réel

Le TRS se calcule encore à la main, en fin de poste, sur un relevé papier — le temps qu'il remonte, la panne du matin est déjà oubliée.

Le module Fabrication d'Odoo Community suit vos ordres de fabrication, mais ne reçoit aucun événement machine : ni démarrage, ni arrêt, ni pièce rebutée. Le TRS (Taux de Rendement Synthétique) reste un chiffre de fin de poste, reconstitué à la main — trop tard pour réagir à un arrêt qui traîne ou une dérive de qualité en cours de production.

Suivi OEE/TRS temps réel reçoit ces événements machine par un webhook générique et calcule le TRS en continu, centre de charge par centre de charge. Important : cette app n'embarque aucun client OPC-UA ni MQTT — Odoo n'a pas de processus démon persistant pour tenir ce type de connexion ouverte. Un pont externe installé côté atelier (petit script Python, flux Node-RED, ou passerelle OPC-UA/MQTT-vers-HTTP du marché) relaie les événements vers ce webhook : un choix assumé et documenté, pas un compromis caché.

Sur l'atelier de démonstration : la Presse à injecter P1 affiche un TRS de 38,38 % à partir de ses 20 événements machine simulés sur la journée — Disponibilité 58,99 %, Performance 67,13 %, Qualité 96,91 %. La Ligne d'assemblage A2 est à 39,39 %, le Poste de soudure S3 à 25,44 % : trois centres de charge, trois chiffres réels, recalculés à l'ouverture de la page.

Journal des événements IoT du jour : 54 événements, avec type d'événement (démarrage, arrêt, pièce bonne, pièce rebutée, panne), quantité et cause d'arrêt

Chaque événement, horodaté — jamais résumé, jamais perdu

Un jeton unique par centre de charge, un seul point d'entrée HTTP : POST /mrp_iot/event/<jeton>. Cinq types d'événements — démarrage, arrêt, pièce bonne, pièce rebutée, panne — avec une cause d'arrêt en texte libre transmise par le pont externe. Réponse 404 si le jeton est inconnu, 400 si le payload JSON, le type d'événement, la quantité ou l'horodatage sont invalides, 200 sinon.

Chaque événement est conservé avec son payload JSON brut intégral, pour audit. Sur l'atelier de démonstration : 54 événements simulés aujourd'hui, répartis sur les trois centres de charge du scénario, dont deux pannes (« Défaut capteur position axe X ») et deux arrêts de fin de poste.

Ce que fait Suivi OEE/TRS temps réel, concrètement

  • Webhook générique sécurisé par jeton, un jeton unique par centre de charge, régénérable en un clic.
  • Cinq types d'événements machine : démarrage, arrêt, pièce bonne, pièce rebutée, panne, avec cause d'arrêt en texte libre.
  • Chaque événement stocké avec son payload JSON brut, pour audit.
  • TRS temps réel par centre de charge (Disponibilité × Performance × Qualité), sur la journée en cours ou en 24 heures glissantes, au choix.
  • Temps de cycle théorique réglable par centre de charge, ou par produit lorsqu'il varie d'une référence à l'autre.
  • Historique horaire automatique (tâche planifiée), consultable en liste, tableau croisé et graphique.
  • Déclenchement automatique optionnel (désactivé par défaut) des ordres de travail sur événement démarrage/arrêt univoque.

Compatible avec / Prérequis

Compatible avec : Odoo 20 Community. S'installe par-dessus le module Fabrication (mrp) standard — cette application ne pilote directement aucun protocole machine (OPC-UA, MQTT) : elle expose un webhook HTTP générique pour la remontée d'événements IoT industriel, à relier à votre passerelle existante ou à un petit script pont (voir le README pour un exemple).

Dépend du socle technique gratuit dyo_mrp_common (installé automatiquement) : c'est la brique commune, sans menu propre, que partagent toutes les applications MRP DYONYSOS.

Elle ne fait ni ordonnancement de production ni GMAO : elle se concentre sur la remontée d'événements machine et le calcul du TRS. Démonstration prête à l'emploi : trois centres de charge avec un historique d'événements simulé sur la journée en cours.

Le TRS décomposé, jamais une boîte noire

Sur la fiche de chaque centre de charge, l'onglet « IoT / OEE (DYONYSOS) » affiche les trois facteurs et leur produit : Disponibilité (temps de fonctionnement réel / temps d'ouverture de la période observée), Performance (pièces produites × temps de cycle théorique / temps de fonctionnement réel), Qualité (pièces bonnes / total des pièces produites, bonnes et rebutées). Le temps de cycle théorique se règle par centre de charge, ou par produit quand il varie d'une référence à l'autre.

Performance et TRS ne sont volontairement pas plafonnés à 100 % : un résultat supérieur signale le plus souvent un temps de cycle mal réglé, pas une anomalie de calcul — le masquer en le plafonnant serait trompeur. Juste en dessous, l'historique des instantanés horaires (tâche planifiée) permet de voir l'évolution heure par heure, pas seulement l'instant présent.

Fiche du centre de charge Presse à injecter P1, onglet IoT / OEE (DYONYSOS) : TRS actuel 38,38 % décomposé en Disponibilité 58,99 %, Performance 67,13 %, Qualité 96,91 %, avec l'historique des instantanés horaires

Pas de tableau Excel à tenir à jour, pas de relevé papier à ressaisir en fin de poste. Un webhook simple à brancher, un TRS recalculé en continu, un historique qui s'écrit tout seul — vérifié par 39 tests automatisés, en français de bout en bout.

Licence OPL-1 — DYONYSOS — https://dyonysos.fr — welcome@dyonysos.fr

Chez l'éditeur

DYONYSOS édite des applications Odoo 19 Community. La présentation détaillée de celle-ci, le catalogue complet et le support sont sur notre site.

Présentation de dyo mrp iot  ·  Toutes les applications  ·  Support et devis

Découvrir les applications Dyonysos en vidéo

Démonstrations courtes, cas d'usage et nouveautés Odoo 20.

Voir la playlist Odoo Apps FR

MRP N3 — Suivi OEE/TRS Temps Réel (IoT Industriel, Odoo Community) — capture 1
MRP N3 — Suivi OEE/TRS Temps Réel (IoT Industriel, Odoo Community) — capture 1
MRP N3 — Suivi OEE/TRS Temps Réel (IoT Industriel, Odoo Community) — capture 2
MRP N3 — Suivi OEE/TRS Temps Réel (IoT Industriel, Odoo Community) — capture 2
MRP N3 — Suivi OEE/TRS Temps Réel (IoT Industriel, Odoo Community) — capture 3
MRP N3 — Suivi OEE/TRS Temps Réel (IoT Industriel, Odoo Community) — capture 3
MRP N3 — Suivi OEE/TRS Temps Réel (IoT Industriel, Odoo Community) — capture 4
MRP N3 — Suivi OEE/TRS Temps Réel (IoT Industriel, Odoo Community) — capture 4
MRP N3 — Suivi OEE/TRS Temps Réel (IoT Industriel, Odoo Community) — capture 5
MRP N3 — Suivi OEE/TRS Temps Réel (IoT Industriel, Odoo Community) — capture 5

What this app does not do

The publisher has not yet published the list of what the app does not do. This is a store rule: ask support for it before you commit.

Store apps required

Odoo Community modules used

mrp

SeriesVersionStatusPublished on
20.020.0.1.1.0 Available 28/09/2026
19.019.0.1.1.0 Available

Listing generated from the publisher's code (private repository, branch 20.0): the source code is not published.

Automatic store check (separate from the publisher's), applied to all apps. Conforme.

CheckResultEffect if absent
Manifeste lisible sans exécution conforme bloquant
Licence reconnue (OPL-1) conforme bloquant
Aucune dépendance vers Odoo Enterprise conforme bloquant
Aucun import de code Enterprise conforme bloquant
Aucun en-tête de licence Enterprise conforme bloquant
Icône static/description/icon.png conforme déclasse
Description (static/description/index.html ou README) conforme déclasse
Tests automatisés (tests/test_*.py) conforme déclasse
Traduction française (i18n/fr.po) absent info
Section « Ce que le module ne fait pas » absent info
Titre de 70 caractères au plus (66 actuellement) conforme info
Résumé en français conforme info

Guide utilisateur — Suivi OEE/TRS temps réel

1. Générer le jeton d'un centre de charge

Fiche centre de charge (Fabrication → Centres de charge) → section IoT — DYONYSOS. Le jeton est créé automatiquement ; il n'est visible que des responsables fabrication (masqué, bouton Régénérer le jeton en cas de fuite). Cochez Signature HMAC obligatoire pour refuser tout message non signé.

2. Renseigner le temps de cycle théorique

Toujours sur l'onglet IoT DYONYSOS, indiquez le temps de cycle théorique (en minutes) utilisé pour calculer la Performance du TRS.

3. Envoyer des événements

Depuis un pont externe (petit script Python, Node-RED, passerelle OPC-UA/MQTT-vers-HTTP), envoyez une requête POST vers https://votre-odoo/mrp_iot/event, le jeton dans l'en-tête X-Dyo-Iot-Token (jamais dans l'URL), avec un JSON contenant event_type (start, stop, finish, good, reject, fault), timestamp (ISO 8601), quantity pour good/reject, et de préférence un message_id unique : un message renvoyé avec le même message_id n'est compté qu'une fois. Exemple en Python, avec signature :

import hashlib, hmac, json, requests
TOKEN = "VOTRE-JETON"
body = json.dumps({"event_type": "good", "quantity": 1, "message_id": "presse2-000123",
                   "timestamp": "2026-09-27T08:15:00Z"}).encode()
signature = "sha256=" + hmac.new(TOKEN.encode(), body, hashlib.sha256).hexdigest()
requests.post("https://votre-odoo/mrp_iot/event", data=body, headers={
    "Content-Type": "application/json",
    "X-Dyo-Iot-Token": TOKEN,
    "X-Dyo-Iot-Signature": signature,
})

Réponses : 200 (accepté ; "duplicate": true pour un message déjà reçu), 400 (JSON invalide, NaN/Infinity, type inconnu, quantité invalide, horodatage invalide, périmé ou dans le futur), 401 (jeton absent ou signature fausse), 404 (jeton inconnu), 410 (jeton dans l'URL : ancienne forme désactivée), 413 (message trop gros), 429 (débit dépassé). Les bornes se règlent par paramètres système : dyo_mrp_iot.max_payload_bytes (16384), dyo_mrp_iot.max_events_per_minute (600), dyo_mrp_iot.max_age_seconds (7 jours), dyo_mrp_iot.max_future_seconds (300), dyo_mrp_iot.max_quantity (1 000 000). L'ancienne URL /mrp_iot/event/<jeton> ne se réactive qu'explicitement (dyo_mrp_iot.allow_token_in_url = True), déconseillé.

Mise à jour depuis la version 19.0.1.0.0 (à faire sur chaque pont)

  1. Envoyer le jeton dans l'en-tête X-Dyo-Iot-Token vers /mrp_iot/event (l'ancienne URL répond 410).
  2. Envoyer finish pour terminer un ordre de travail : stop signifie désormais « arrêt machine » et met en pause sans terminer. Réactiver l'ancienne URL ne rétablit pas l'ancien sens de stop.
  3. Ajouter un message_id unique : sans message_id ni timestamp, un message renvoyé est compté deux fois. Le débit maximal est une borne indicative, pas une garantie stricte.

4. Suivre le TRS en direct

Menu IoT DYONYSOS → Tableau de bord, par centre de charge : TRS actuel, décomposition Disponibilité / Performance / Qualité, historique des derniers jours.

5. Déclenchement automatique (optionnel)

Sur l'onglet IoT DYONYSOS du centre de charge, activez « Déclenchement automatique » pour qu'un événement référençant un ordre de travail univoque agisse tout seul : start le démarre (ou le reprend), stop (arrêt machine) le met en pause sans jamais le terminer, finish le termine. En cas d'ambiguïté (plusieurs ordres possibles), rien ne se déclenche automatiquement — un avertissement est journalisé.

Licence OPL-1 — DYONYSOS — https://dyonysos.fr — welcome@dyonysos.fr

Reviews from signed-in customers. One rated review per customer; the publisher can reply. Sign in to leave a review.

Publisher
DYONYSOS
Email
contact@omnifloo.com
Omnifloo customers
Support included with your plan: help centre.