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.
🔍 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 : .
FXL
THERMAFIELD™
Audit M30-FG · OCP Jorf Lasfar
📍Aucun site/équipement sélectionné
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
🌡 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).
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.