Aucune clé API n'est saisie ni stockée dans ce navigateur — c'est une exigence de sécurité, pas une limitation temporaire. Les clés (Anthropic pour le futur engine-ir, etc.) vivent exclusivement côté serveur, dans PropertiesService du projet Apps Script (Extensions > Apps Script > Paramètres du projet > Propriétés du script). Pour changer une clé, c'est là qu'il faut aller — jamais dans le code, jamais dans le navigateur.
📥 ThermaIngest — extraction automatique de plans
Lit un plan PDF/scan fournisseur et propose les lignes à intégrer dans Base_Installee (OCR + extraction de tableaux). En roadmap, pas encore branché à cette interface — aujourd'hui l'extraction se fait manuellement (Claude.ai) puis l'import se fait directement dans le Google Sheet.
🛠 Réparer un code site (Noria_Config / Noria_Evenements)
Si tu vois des lignes Noria avec un code site qui ne correspond à aucun site réel (ex: JFC3 alors que tes sites réels sont JFC1/JFC2/KOFERT/JFC4), renomme-le ici plutôt qu'à la main ligne par ligne.
🔬 Diagnostic approfondi — en-têtes réels vs attendus
Le diagnostic ci-dessus dit "0 résultat" mais ne dit pas pourquoi. Celui-ci compare, onglet par onglet, les en-têtes RÉELS de ton Google Sheet (ligne 1) à ceux que le code attend — colonnes manquantes, renommées, ou avec un accent/espace différent, c'est la cause la plus fréquente d'un diagnostic qui ne dit rien d'utile.
🏷 Cohérence des tags — orphelins & doublons
Diagnostic lecture seule — ne modifie rien. Croise les tags utilisés dans les audits (ThermaScan/Integrity/ThermaData/Engineering) avec la liste officielle Tag_FXL / Tag_Client de Base_Installee. Un tag "orphelin" apparaît dans un audit mais n'existe dans aucune ligne de Base_Installee — souvent une saisie manuelle arbitraire (ex: l'ancien "K12") ou une faute de frappe. À toi de décider, ligne par ligne dans le Sheet, s'il faut renommer, fusionner avec le bon tag, ou purger si c'est un test.
🔍 Vérifier les données — appelle le vrai backend, en direct
Interroge chaque action du Google Sheet une par une et affiche exactement ce qui revient — sans passer par le cache. C'est la façon de confirmer que l'app lit bien les bonnes données, plutôt que de le supposer.
👥 Rôles & permissions
Gérés dans l'onglet Tokens du Google Sheet (colonne rôle) et dans ROLE_BASE_PERMISSIONS côté Code.gs. Rôle courant : .
THERMAFIELD™
Aucune machine sélectionnée
📍Aucun site/équipement sélectionné
ThermaIngest™ — Import & Parsing Intelligent
Upload un PDF technique (datasheet Alfa Laval, plan isométrique, PV d'essais, manuel) — l'IA (Groq) extrait automatiquement les données design et te propose un formulaire de validation avant intégration dans Base_Installee. La clé API Groq se configure dans PropertiesService Apps Script (GROQ_API_KEY).
1 Sélectionner le document
📄
Glisser un PDF ici ou cliquer pour sélectionner
PDF · JPG · PNG — max 10 Mo · Datasheet AL, plan, PV d'essais
2 Contexte du document
3 Validation — données extraites par l'IA
⚠ Valeurs extraites automatiquement — vérifie chaque champ avant d'intégrer dans Base_Installee. Les champs non trouvés sont laissés vides.
Historique des ingestions
Aucune ingestion enregistrée.
ThermaData™ — Historique
ℹ ThermaData™ = mesure instrumentée (débitmètre Katronic), calcule un U réel par bilan thermique. Différent de ThermaScan™ (Niveau 1, visuel IR seul, sans débitmètre) — les deux coexistent, ce n'est pas un doublon. Chaque mesure correspond à une ligne ThermaData_Mesures dans Google Sheet.
1 Identification Équipement
2 Relevés Températures
Design AL : — °C
Design AL : — °C
Design AL : — °C
Design AL : — °C
3 Mesure Débit Katronic & Paramètres Fluide
Débit et paramètres fluide requis pour le calcul U réel par bilan thermique. ΔP facultatif (pour comparaison à l'admissible AL).
Design AL : — m³/h
Design AL : — m³/h
Auto-rempli selon le fluide
Auto-rempli selon le fluide
Admissible AL : — bar
Admissible AL : — bar
4 Observations Terrain
⚠ Calcul U/E impossible pour l'instant :
U Réel Calculé
—
W/m²·K
U design AL : — W/m²·K
▲ Design
—
Efficacité : —%
Q = — kW
DTML = — °C
Perf. vs design : —
Comparaison Réel vs Design AL
Paramètre
Design AL
Réel mesuré
Écart
ThermaScan™ — Historique
ℹ Dans Google Sheet, chaque "audit" ici correspond à une ligne Mesures rattachée à une Campagne (onglet Campagnes). Une campagne par site est créée/réutilisée automatiquement à chaque enregistrement — la gestion explicite de campagnes multi-machines (tournée) n'est pas encore construite.
1 Identification Équipement
Plage design : 30107-32465 à 32471
Design AL : 597 plaques par M30
2 Piquages — T1 à T4
Coller un patch de ruban noir mat (~5×5cm) sur chacun des 4 piquages, à ~10cm de la bride, sur une zone non calorifugée. Attendre 2-3 min d'équilibrage. Lire en mode Spot sur le patch — jamais sur l'inox nu (reflets = valeurs fausses). Contrôle avant de partir : T1>T2 et T4>T3 (le chaud se refroidit, le froid se réchauffe), sinon piquages mal identifiés.
Design AL : 39.0 °C
Design AL : 27.0 °C
Design AL : 25.0 °C
Design AL : 35.0 °C
📷 Clichés 1-5 — Vue d'ensemble + 4 piquages
📐 Ensemble
3-4 m
🌡 T1 (S1)
entrée chaude
🌡 T2 (S2)
sortie chaude
❄ T3 (S3)
entrée froide
❄ T4 (S4)
sortie froide
3 Tranche du paquet — Th / Tm / Tb + Hi/Lo
Coller 3 patchs sur la tranche du paquet : haut, milieu, bas. Cliché tranche complète à 2-3m en incluant une zone chaude ET froide pour stabiliser l'échelle de couleurs. Le mode Hi/Lo localise automatiquement le point le plus froid — photographier sa position (signe de canaux colmatés). Vérifier aussi la plaque de tête et la plaque suiveuse (point chaud anormal = trace de fuite externe).
Patchs noirs mats sur les 4 piquages (S1-S4) + 3 points sur la tranche (Th/Tm/Tb). Contre-courant : T1>T2 et T4>T3.
Estimé visuellement sur le cliché Hi/Lo
📷 Clichés 6-11 — Tranche complète, Hi/Lo, plaque de tête
📊 Tranche complète
2-3 m
🔥❄ Mode Hi/Lo
point froid
🔧 Plaque tête
fuite externe ?
4 Conditions & Anomalies
Le diagnostic Niveau 1 n'est valable qu'en régime stabilisé (confirmé par l'exploitant). Un échangeur calorifugé reste valable sur T1-T4 (tuyauterie nue) mais la tranche n'est pas lisible — classer sur E/P uniquement et le noter.
5 Analyse Thermographique IA
Envoie les photos déjà capturées (étapes 2-3) à un modèle de vision pour une hypothèse, pas un diagnostic certain. Fiable sur les formes nettes des photos visibles (brides, tirants) — beaucoup moins sur l'IR seule (pas d'arêtes, juste un dégradé de température). Le LiDAR n'est pas encore capturé par l'app, donc pas encore fusionné ici. Une fois l'analyse reçue : tu peux l'ajouter au rapport telle quelle, la corriger, ou l'ignorer — ta correction est conservée pour constituer un historique des écarts IA/terrain (ça n'entraîne pas le modèle en direct).
ANALYSE EN COURS…
🤖Hypothèse IA
U Réel Calculé
—
W/m²·K
U design AL : 1 099 W/m²·K
▲ Design
—
Efficacité : —%
Q = — kW
DTML = — °C
Perf. vs design : —
Comparaison Réel vs Design AL
Paramètre
Design AL
Réel mesuré
Écart
🔩 Jumeau visuel 3DReprésentatif, pas au mm — vue générée depuis les cotes réelles
Glisser pour tourner · cliquer un point
Cliquez un point coloré pour voir le diagnostic de cette zone.
📊 Historique ThermaData™
—
🌡 Historique Thermascan™
—
🔧 Historique ThermaIntegrity™
—
📐 Historique Engineering (R_f)
—
📄 Rapport — choisis ce que tu veux inclure
Coche un module pour choisir lequel de ses audits inclure (le plus récent par défaut). Mélange-en autant que tu veux.
Derniers Audits
ThermaIntegrity™ — Historique
ℹ Dans Google Sheet, chaque inspection correspond à une ligne Integrite_Inspections, avec les photos dans Integrite_Photos.
1 Identification Équipement
2 Géométrie Cote A — Parallélisme des bâtis
Mesurer la cote A (longueur de serrage) en 6 points : haut/centre/bas de chaque côté du bâti. Un écart important entre les 2 côtés = bâtis non parallèles, risque de déformation des plaques. Comparer à la cote A design (2 269 mm ±34/-22.5).
📐 Mesure multipoint de la longueur de serrage (cote A) en 6 points : Haut / Centre / Bas de chaque côté. Cote A nominale design AL : 2 269 mm. Un écart important = surserrage → risque de forte déformation des plaques.
Côte A entre plaque de tête et plaque suiveuse · tirants (état + graissage + protection) · mise à la terre · boulons de pieds/brides · compter les plaques entre les 2 flasques.
Design AL : 2 269 mm
Saisir tolérance constructeur
Côté Bâti Fixe (Frame Plate)
Côté Plaque de Serrage (Pressure Plate)
Analyse Parallélisme & Serrage
Cote A moyenne
—
Écart vs nominal
—
Δ Haut↔Bas (parallélisme)
—
Diagnostic serrage
—
3 Checklist Mécanique & Sécurité
Pour chaque point : ✓ OK si conforme, ⚠ Réserve si anomalie mineure à surveiller (pas bloquant), ✗ NOK si non conforme nécessitant une action. Ajoute une note si Réserve ou NOK pour expliquer quoi/où.
4 Photos de l'échangeur
5 angles attendus : bâti fixe, bâti mobile, côté chaud, côté froid, et toute anomalie repérée. Pas besoin des 5 si rien à signaler côté anomalie.
📷 Photos documentaires de l'échangeur pour le dossier d'audit. Cliquez chaque emplacement pour charger une photo.
Therma Engineering — Historique
ℹ Dans Google Sheet, chaque audit correspond à une ligne Engineering_Audits (Côte A, R_f, Compromis).
Sélectionne une machine pour voir son historique.
📍 Identification Équipement
Identification reprise automatiquement de la machine sélectionnée (📍 en haut de page) — modifie-la dans le picker si besoin.
1 Cote A de serrage — en fonction du nombre de plaques
La cote A (longueur de serrage) varie linéairement avec le nombre de plaques installées. Entre un nombre de plaques mesuré sur le terrain et le calcul, ça permet de vérifier la cohérence sans démonter l'échangeur.
La cote A (longueur de serrage) suit : A = (N − 1) × pas + e_bâti. Pas de plaque M30-FG : 3.79 mm (build length/plate). Calibré sur 597 plaques → 2 269 mm. ⚠ Le M30 se serre à la COTE, jamais au couple.
Nominal design : 597
Build length/plate : 3.79 mm
A pour 597 plaques
Plaques au calibrage
Cote A de serrage calculée
—
mm · pour — plaques
—
2 Nouveaux paramètres de service — modification nombre de plaques
Simule l'effet d'ajouter ou retirer des plaques : surface d'échange, U théorique, ΔP et cote A recalculés proportionnellement au design de référence.
Recalcule surface, U, ΔP, Q et cote A si on ajoute ou retire des plaques. Design de base : 597 plaques · A=1 095 m² · U=1 099 W/m²·K · Q=20 650 kW · ΔP 0.699/0.999 bar.
Design : 597 · +100 = 697
597 (échangeur complet)
Paramètre
Design (597 pl.)
Nouveau (N2)
Variation
Hypothèses : surface ∝ N · U≈constant (même géométrie/régime) · ΔP ∝ 1/N² (débit constant réparti sur N canaux) · Q ∝ surface si pincement non limitant. Estimations 1er ordre — à valider par calcul AL pour dimensionnement définitif.
3 Coefficient d'encrassement R_f — à partir du U mesuré
R_f mesure la résistance thermique due aux dépôts (tartre, biofilm…). Plus R_f est élevé, plus l'échangeur est encrassé. Sert à décider d'un CIP (nettoyage) ou d'un reconditionnement.
Formule : R_f = 1/U_réel − 1/U_propre (m²·K/W). C'est la résistance thermique additionnelle due aux dépôts. U_propre design AL = 1 099 W/m²·K. La marge d'encrassement de design AL est déjà incluse dans ce U conception.
Issu de l'audit ThermaField
Design AL : 1 099
Typique eau tour/condensat : 0.00005–0.0002
R_f total mesuré
—
m²·K/W
R_f encrassement réel
—
au-delà marge design
Perte de performance
—
vs U propre
Surface efficace
—
% surface utile
Le % de perte de performance est calculé par : (1 − U_réel/U_propre) × 100. Le R_f net = R_f total − marge design. Un R_f net élevé (> 0.0005 m²·K/W) indique un encrassement sévère nécessitant CIP ou reconditionnement. Ce % alimente automatiquement le module compromis ci-dessous.
4 Compromis — Moins de plaques propres vs échangeur complet encrassé
Compare deux scénarios : retirer des plaques encrassées pour repartir propre avec moins de surface, ou garder toutes les plaques mais encrassées. Vérifie aussi que le ΔP résultant reste dans les limites admissibles.
Compare la surface ACTIVE réelle. Un échangeur complet encrassé à X% a une surface efficace réduite. Combien de plaques PROPRES faut-il pour égaler ou dépasser ? Le taux d'encrassement peut venir du module R_f ci-dessus (auto-rempli) ou être saisi manuellement.
% perte perf · auto depuis R_f
Après tri qualité
Surface active — complet encrassé
—
Surface active — plaques propres
—
Seuil : plaques propres = complet encrassé
—
5 Enregistrer cet audit Engineering
Enregistre l'instantané Côte A + R_f + Compromis ci-dessus, lié à la machine sélectionnée (aucune machine).
ThermaClean™ — Nettoyage Chimique en Place
Skid ThermaClean™ Rév. F · Acide phosphorique inhibé « maison » seul — SANS soude, SANS HNO₃ (EPDM + Hastelloy G-30) · Cuve PP T-101 Ø1350×~1750 · 2500 L utiles (2650 L nominal, talon garde-pompe 400 L) · Pompe P-101 DB22 PVDF mag-drive ~40 m³/h — VFD 9-11 kW · DN80 · 60–70°C ⚠ Interdits : soude en boucle (jamais acide+soude), HNO₃, H₂SO₄, HCl (EPDM + Hastelloy G-30) · AT-101/105 pH HF-résistant obligatoire côté procédé (CaF₂+acide→HF) · gel gluconate Ca²⁺ au poste (antidote HF) · aucun composant zingué/galvanisé en veine mouillée
🎯 Machine cible & Recette
—
Palier discret Rev.F — pas de plage continue
Depuis dernier audit ThermaData ou Engineering
Critère arrêt CIP : ΔP ≤ 110% valeur neuve
📋 Étape 0 — Fiche de Constat Contradictoire (signer AVANT la chimie)▾
— Non validé
⚠ Ce document engage FXL et le client. Il doit être signé avant le démarrage. Toute fuite constatée au test eau initial ou dans les 7 jours suivant l'intervention est réputée préexistante et relève d'une recommandation de re-jointage, non d'une responsabilité FXL.
1. État initial constaté (avant intervention)
2. Datage des joints
3. Point d'arrêt — Test à l'eau
ℹ️ Le test à l'eau correspond aux étapes X1-X2 du GRAFCET (remplissage max + prélavage itératif piloté par la turbidité AT-103). Signez ce constat avant le hold-point X3 (vidange prélavage) — la confirmation X3 est bloquée tant qu'il n'est pas validé.
Résultat test eau : — À compléter après étape 2
4. Reconnaissance contradictoire
Le client reconnaît que : les joints sont des pièces d'usure (3 à 5 ans en service phosphorique) ; le CIP peut révéler une fin de vie de joint jusqu'alors masquée par l'encrassement ; toute fuite constatée au test eau initial (§3) ou dans les 7 jours suivant l'intervention est réputée préexistante et relève d'une recommandation de re-jointage, non d'une responsabilité FXL.
🔧 P&ID Skid ThermaClean™ Rév. F · DN80 · ~40 m³/h · Acide seul · GRAFCET X0-X10
Débitmètre — pilote la durée dynamique des passages du pont
Entrée AI 4-20mA
PDT-101
ΔP échangeur, monté sur RED-102 (pas sur le skid), 0-500 mbar
WirelessHART — condition de démarrage
LT-101
Niveau cuve radar
Entrée AI
AT-101/105
pH retour / pH cuve post-brassage (HF-résistant côté procédé)
2× Entrée AI
AT-102/106
Conductivité retour / conductivité cuve
2× Entrée AI
AT-103
Turbidité retour — pilote le prélavage itératif
Entrée AI
Rev.F : DN80 · ~40 m³/h nominal (60 m³/h à confirmer) · P-101 DB22 PVDF · budget 72 kVA (60kW HE-101 + 9-11kW P-101 + 2-3kW aux.) · CEE 125A câble 5G35mm² · fluorure AT-104 = prélèvement labo, pas de mesure en ligne
🧪 Dosage chimique
Rev.F : référence confirmée 2500 L utiles
Reprise du sélecteur ci-dessus (Côté à traiter)
0,1–0,2% du bain — dosé directement en T-104, jamais prémélangé dans T-102/T-103
⛔ Aucune soude en boucle (Rev.F)
Formule : acide phosphorique inhibé maison seul, des deux côtés.
Neutralisation : hors-skid, en IBC T-201, jamais dans T-101.
▶ Simulation GRAFCET Rev.F — cycle par côté
Simulation pédagogique — les valeurs de capteurs affichées sont illustratives, pas des données SCADA en direct. Un cycle complet = un côté ; à rejouer pour l'autre côté avec vidange/rinçage cuve entre les deux.
⏸ POINT D'ARRÊT — HL-101 orange
CM5 : non connecté (simulation locale)
🔬 Échangeurs très encrassés (≥ 2-3 ans) — Stratégie renforcée
Le CaF₂ (fluorite) est un minéral dur (Mohs 4). Un seul cycle CIP peut être insuffisant. Stratégie progressive :
🌡 Température — levier principal
70°C = 3h efficace · 60°C = 6h · 50°C = 12h La cinétique de dissolution CaF₂ est exponentiellement liée à T°. Pousser à 70°C si TSH le permet (sécurité à 75°C).
↔ Inversions — levier mécanique
4 inversions min · idéal 6-8 sur cycle long Chaque inversion expose de nouvelles faces des dépôts à l'acide frais et évacue les produits de réaction.
♻ Cycles successifs
Vider → recharger acide frais → recommencer L'acide s'épuise en dissolvant CaF₂ → bain saturé peu efficace. 2-3 cycles avec acide frais > 1 cycle long.
🛡 Inhibiteurs de corrosion
H₃PO₄ inhibé = protection Hastelloy G-30 Film monomoléculaire sur métal → réduit corrosion de 90-95% sans empêcher l'acide d'attaquer les dépôts. Validation coupon G-30 obligatoire (RevD §14.5).
⚠ Attente réaliste CaF₂ : restauration partielle au 1er cycle. Critère ΔP ≤ 150% (au lieu de 110%) pour échangeur > 3 ans non entrenu. Programmer inspection et re-jointage si ΔP reste > 200%.
TSH câblé à 70°C — ne pas dépasser
✅ Critère d'acceptation & État final (§5 Fiche constat)
Critère : ΔP post-CIP ≤ 110%
Rev.C critère objectif fin de rinçage
Consignes site OCP
Export photos / courbes (étape 9)
ThermaLiDAR™ — Jumeau Numérique & Déformations
Phase C — Pipeline en construction.
Sensor : Livox Mid-360. ArUco : DICT_FXL_4x4_20 (marqueurs exclusifs ThermaField™ — non reconnus par apps tierces).
Cette interface prépare la structure de données et le placement des marqueurs.
Le pipeline de capture LiDAR et l'analyse de déformation seront connectés une fois le Mid-360 opérationnel.
Une session regroupe un scan 3D complet d'un équipement. Quand le Mid-360 sera connecté au CM5, le bouton ci-dessous déclenchera la capture → traitement du nuage de points → détection des 4 ArUco → calcul des déformations.
🗄 Structure de données — Jumeau numérique (onglet Jumeau_3D)
Chaque scan LiDAR produit une ligne dans cet onglet. À terme, la vue 3D se reconstruit depuis le fichier PCD stocké dans Drive.
Champ
Type
Description
${[
['pointcloud_id','UUID','Identifiant unique du scan'],
['tag_fxl','string','Équipement scanné'],
['date_scan','ISO datetime','Date et heure de la capture'],
['operateur','email','Technicien ayant réalisé le scan'],
['fichier_pcd_url','Drive URL','Fichier .pcd dans Google Drive'],
['nb_points','integer','Nombre de points du nuage'],
['bbox_mm_xyz','JSON [W,H,D]','Bounding box de l\'échangeur en mm'],
['aruco_ids_detectes','JSON array','IDs des 4 ArUco vus par le LiDAR'],
['ref_plan_revision','string','Révision du plan AL de référence (ex: 32299-5221 rév.B)'],
['delta_cote_a_mm','float','Écart Côte A mesuré vs plan (mm)'],
['delta_parallelisme_mm','float','Vrillage diag[HG-BD] - diag[HD-BG] (mm)'],
['anomalies_json','JSON','Déformations détectées {zone, type, amplitude_mm}'],
['statut_validation','enum','BRUT / VALIDE / REJETE'],
['notes','text','Observations terrain'],
].map(([f,t,d])=>`
Modifie ici les cadences par machine et les durées par type. Écrit directement dans Noria_Config / Types_Intervention du Google Sheet — aucune valeur n'est en dur dans le code. Pense à "🔄 Régénérer le planning" après une modification pour que le Gantt reflète le changement.
Stock™ — Pièces de rechange (ThermaRenew)
Plaques tracées individuellement (matériau, origine, diagnostic) + consommables en quantité (kits de joints, colle, boulonnerie). Le diagnostic d'une plaque récupérée génère un rapport consultable côté client.
Plaques
Consommables
➕ Ajouter une plaque
📋 Plaques en stock
Chargement…
➕ Ajouter un consommable
📦 Consommables en stock
Chargement…
ThermaRenew™ — Remise à neuf atelier
Trace le démontage, le remplacement des plaques (piochées dans le Stock™), le remontage et les tests d'une remise à neuf. Consomme automatiquement les plaques sélectionnées (statut → Utilisée) et se réconcilie avec le planning Noria (type RENEW) quand le statut passe à Terminé.