diff --git a/felsokning/app/src/felsokning/__tests__/demo.test.ts b/felsokning/app/src/felsokning/__tests__/demo.test.ts index 84a1083..8e0db7e 100644 --- a/felsokning/app/src/felsokning/__tests__/demo.test.ts +++ b/felsokning/app/src/felsokning/__tests__/demo.test.ts @@ -18,7 +18,7 @@ describe("demoärendet", () => { it("lämnar kontroller kvar så att guiden kan fortsätta i demon", () => { const b = brief(arende, VIBRATION_METODIK); - expect(b.ejKontrollerat).toContain("Check radial and lateral runout"); + expect(b.ejKontrollerat).toContain("Measure radial and lateral runout at the rim with a dial gauge; measure at the tyre if the rim is within limits"); expect(b.ejKontrollerat).toContain("Change when cornering"); expect(b.rekommenderatNastaSteg.length).toBeGreaterThan(0); }); diff --git a/felsokning/app/src/felsokning/__tests__/grind.test.ts b/felsokning/app/src/felsokning/__tests__/grind.test.ts index add8c98..131d54c 100644 --- a/felsokning/app/src/felsokning/__tests__/grind.test.ts +++ b/felsokning/app/src/felsokning/__tests__/grind.test.ts @@ -44,6 +44,9 @@ function komplettLogg(extra: Record[] = []) { { typ: "matvarde", beskrivning: "Lufttryck", varde: "2,4", matdonId: "m-1", kalibreradVidMatning: true }, { typ: "foto", beskrivning: "Objektet" }, { typ: "foto", beskrivning: "Typskylt" }, + // Fackgranskningen gav skyddsnätet en felkodskontroll med fotokrav — + // fixturen följer regeln, inte tvärtom (jfr T-13). + { typ: "foto", beskrivning: "Felkoder" }, ...GENERISK.steg.flatMap((s) => (s.kontroller ?? []).map((k) => ({ typ: "kontroll_utford", diff --git a/felsokning/app/src/felsokning/__tests__/projektioner.test.ts b/felsokning/app/src/felsokning/__tests__/projektioner.test.ts index 7b3032a..e85beed 100644 --- a/felsokning/app/src/felsokning/__tests__/projektioner.test.ts +++ b/felsokning/app/src/felsokning/__tests__/projektioner.test.ts @@ -182,7 +182,7 @@ describe("brief", () => { expect(b.utfordaKontroller.map((k) => k.text)).toContain("Check tyre pressure"); expect(b.observationer).toContain("Höger framdäck visar ojämnt slitage"); expect(b.observationer).toContain("Matningsspänning: 13,9 V"); - expect(b.ejKontrollerat).toContain("Check wheel balance"); + expect(b.ejKontrollerat).toContain("Measure wheel balance on the balancer — residual imbalance in grams per plane (road force where available)"); expect(b.ejKontrollerat).not.toContain("Check tyre pressure"); expect(b.rekommenderatNastaSteg[0]).toContain("speed-dependent"); expect(b.totalArbetstid).toBe("27 min"); diff --git a/felsokning/docs/FACKGRANSKNING-2026-08.md b/felsokning/docs/FACKGRANSKNING-2026-08.md new file mode 100644 index 0000000..00fcc60 --- /dev/null +++ b/felsokning/docs/FACKGRANSKNING-2026-08.md @@ -0,0 +1,95 @@ +# Fackgranskning · Metodikinnehållet, teknisk granskning + +**ALVA 3.5 · 2026-08-06 · ALVA-DOC-0009** + +Granskningens föremål är **metodikbiblioteket** +(`services/gemensam/metodiker.mjs`) — den enda text i systemet som säger +åt en tekniker vad den ska göra med ett fordon. Sexton metodiker, 64 +steg, 153 kontroller före granskningen. + +**Vad detta är, och inte är.** Sex oberoende domängranskningar med +verkstadskompetens per fordonssystem: chassi, elsystem, högvolt, +motor/drivlina, övriga system, samt en maskinell granskning av +bibliotekets egna tre regler. Varje fynd verifierades mot filen innan +åtgärd, varje ersättning applicerades med träffkrav. Detta är den +**tekniska** fackgranskningen — den höjer innehållets golv. Den är INTE +den fackgranskning per marknad som `granskat`-flaggan i SPRAK avser: +den flaggan sätts av en namngiven, yrkesverksam människa enligt +protokollet i ALVA-DOC-0010, och ingen flagga har ändrats här. + +--- + +## 1. Kritiska fynd — samtliga åtgärdade + +| # | Fynd | Åtgärd | +| --- | --- | --- | +| K-1 | **Högvolt: skyddsutrustning och avspärrning låg SIST i säkerhetssekvensen** — efter spänningsfrihetsmätningen, som per definition är arbete nära potentiellt spänningsförande delar | Kontrollen flyttad först, med krav på isolerhandskar (EN 60903, inom provningsdatum), visir och isolerade verktyg (EN 60900) | +| K-2 | **Högvolt: spänningsfrihetsmätningen saknade instrumentkategori och proval** — en defekt mätare visar 0 V | CAT III-krav, tillverkarens mätpunkter (HV+/HV−/chassi), prova–mät–prova | +| K-3 | **Högvolt: ingen låsning mot återinkoppling** — någon kunde återinkoppla under pågående arbete | Tändning av, nyckel utom räckhåll, frånskiljaren under den arbetandes egen kontroll, skyltat | +| K-4 | **Högvolt: inget förbud formulerat** — metodiken sa aldrig vad som INTE får göras utan behörighet | Beskrivningen anger stopplinjen: ingen kåpdemontering, ingen aktiv isolationsmätning, aldrig arbete i spänningssatt system | +| K-5 | **Metodikvalet: styrningens nyckelord inklistrade i högvoltens lista** — "pulls", "steering", "power steering" routade chassiklagomål till HV-metodiken. Bekräftat oberoende av fyra granskare | De tretton främmande orden borttagna | +| K-6 | **Klimat: ingen behörighetsgrind för köldmediearbete** — f-gasförordningen kräver certifikat | Nytt säkerhetssteg först, samma mönster som högvolt | +| K-7 | **ADAS: provkörningen instruerade att provocera nödbromsingrepp i trafik** | Tillverkarens testmetod; uttryckligt förbud mot att provocera AEB/styrning på allmän väg | +| K-8 | **Kylsystem: ingen varning mot att öppna varmt trycksatt system** — skållningsrisk | Varning i mätsteget; provtryck begränsat till lockets märktryck | +| K-9 | **Motor: bränsletryck och kompressionsprov utan säkerhetsvillkor** — högtryckssida (200+ bar), bränsledimma plus gnista | Trycksänkning före öppning, högtryckssidan läses via styrenheten, tändning och insprutning deaktiveras före kompressionsprov | +| K-10 | **Läckage/avgas: provkörning vid bränsle-/bromsvätskeläckage; motorkörning utan utsug** | Villkorade förbud respektive utsugskrav | + +## 2. Större och mindre fynd i urval — åtgärdade + +- **Mätvärden fick referenser och villkor**: startspänning >9,6 V, + spänningsfall ≤0,5 V, laddspänning 13,8–14,8 V med reservation för + smart laddning, vilostrom <30–50 mA mätt utan kretsbrott, + CAN-terminering ≈60 ohm med gateway-reservation, AC-tryck vid + föreskrivet varvtal, batteritest villkorat på laddstatus. +- **Fel metod ersatt med rätt**: säkringar mäts under belastning i + stället för att synas, krypström lokaliseras med mV-fall över + säkringarna i stället för säkringsdragning som väcker moduler, + tändspolar skiftas i stället för att resistansmätas, glappkontrollen + avlastar leden efter fjädringstyp med 12–6/3–9-metoden. +- **Ordningsfel mot bibliotekets egen regel**: vibrationens provkörning + låg sist trots att symptomfrågorna kräver körning — flyttad först + efter symptomsteget; helavläsningen (gratis) före bussmätningen + (ingrepp); bromsarnas felkodsläsning före mätningarna. +- **23 nya kontroller där granskningen fann diagnostiska hål**: + bromsvätskenivå före flytt av bilen, temperaturjämförelse per hjul, + parkeringsbroms, brutna fjädrar med fjädringshöjd, däcktryck och + däckskifte före hjulinställning, servostyrning, vicktest vid + intermittenta elfel, HVIL-avläsning, termostatens öppningstemperatur, + drivaxlar/kardan/kopplingsslir, emissionsmätning, vätskeidentifiering + och vattenprov, frikopplings-/kurvprotokoll för missljud, + fordonskondition före ADAS-kalibrering, felkoder och + energikällefråga i det generiska skyddsnätet. +- **Regelefterlevnad, maskinellt verifierad**: 176/176 kontroller har + evidenskrav; alla symptomsteg frågar vad/när/var utom läckagets + hypotesfråga som skrivits om till observation; säkerhetssteg först + där arbetet kan skada. +- Grindtexten `grind.hogvolt.spanningslos` kräver nu "spänningsfrihet + verifierad genom mätning" — på alla tio språken, i takt med den + skärpta spärrfrågan. + +## 3. Bokfört utan åtgärd + +| Fynd | Beslut | +| --- | --- | +| "Kan inte hoppas över" för säkerhetssteg finns bara som prosa — ingen maskinläsbar flagga | Datamodelländring; tas i nästa regelpaketsrevision | +| Kravtypen "video" saknas — missljudets inspelning kravmärks "foto" | Schemaändring; texten säger vad som avses | +| Högvoltens behörighetsfråga är ja/nej utan evidens | Kräver koppling till användarprofil/behörighetsregister | +| Hjulinställningens krav-asymmetri (foto i styrning, mätvärde i ADAS) | Delvis motiverad av intilliggande mätvärdeskontroll; lämnad till marknadsgranskaren | +| Styrningens saknade provkörningssteg; klimatets kondensorfläktkontroll | Diagnostiska förbättringar utan säkerhetsdimension; till marknadsgranskningen | + +## 4. Verifiering + +176 kontroller efter åtgärd, samtliga med krav. Metodiktesterna låser +id-stabilitet, symptom-först (säkerhetssteg undantaget), högvoltens +spärrkontroller och unika nycklar. Full kontrollslinga körd efter +åtgärd — enhetstester, genomgång inom interaktionsbudget, portalspärr, +integrationstest, typkontroll, lint, artefaktmätning. Resultat i +commit-historiken. + +Nästa steg är människans: protokollet i ALVA-DOC-0010, en granskare +per marknad, en underskrift per språk. Först då flyttas +`granskat`-flaggorna. + +--- + +*ALVA-DOC-0009 · Teknisk fackgranskning · Ersätter inte marknadens granskare* diff --git a/felsokning/services/gemensam/faser.mjs b/felsokning/services/gemensam/faser.mjs index c64a3e3..d140330 100644 --- a/felsokning/services/gemensam/faser.mjs +++ b/felsokning/services/gemensam/faser.mjs @@ -44,6 +44,7 @@ export const STEGFAS = { batteri: "localization", glapp: "localization", metod: "localization", + reproduktion: "localization", // vägprovet som pekar ut hjulet — avgränsning, inte åtgärd // ---- Verification: fastställ orsaken -------------------------------- matningar: "verification", diff --git a/felsokning/services/gemensam/metodiker.mjs b/felsokning/services/gemensam/metodiker.mjs index efab04b..cfc5b11 100644 --- a/felsokning/services/gemensam/metodiker.mjs +++ b/felsokning/services/gemensam/metodiker.mjs @@ -50,6 +50,8 @@ export const VIBRATION = { { id: "symptom", rubrik: "Verify the symptom", + beskrivning: + "The questions are answered from a road test — drive before the vehicle is lifted. Vibration under braking is brake judder — use the braking system methodology for it.", fragor: [ { id: "hastighetsberoende", text: "Is the vibration speed-dependent?", svarstyp: "janej" }, { id: "var", text: "Where is the vibration felt?", svarstyp: "val", val: ["In the steering wheel", "In the seat", "Throughout the vehicle"] }, @@ -73,6 +75,7 @@ export const VIBRATION = { { id: "foto_hb", text: "Photograph the right rear wheel", krav: "foto" }, { id: "dot", text: "Document the DOT / manufacturing date", krav: "kommentar" }, { id: "slitage", text: "Check tyre wear and the wear pattern", krav: "kommentar" }, + { id: "vikter", text: "Check for missing balance weights and deposits (mud, snow) inside the rim", krav: "kommentar" }, ], }, { @@ -81,17 +84,19 @@ export const VIBRATION = { kontroller: [ { id: "lufttryck", text: "Check tyre pressure", krav: "matvarde" }, { id: "hjulmoment", text: "Check wheel torque", krav: "matvarde" }, - { id: "kast", text: "Check radial and lateral runout", krav: "matvarde" }, - { id: "balansering", text: "Check wheel balance", krav: "kommentar" }, + { id: "kast", text: "Measure radial and lateral runout at the rim with a dial gauge; measure at the tyre if the rim is within limits", krav: "matvarde" }, + { id: "balansering", text: "Measure wheel balance on the balancer — residual imbalance in grams per plane (road force where available)", krav: "matvarde" }, { id: "bussningar", text: "Check bushings and joints", krav: "kommentar" }, + { id: "drivaxlar", text: "Check drive shafts and inner CV joints when the vibration is load-dependent", krav: "kommentar" }, ], }, { id: "provkorning", rubrik: "Road test", - beskrivning: "Verify during the road test:", + beskrivning: + "Check that the wheels are visibly secure before the test; provoke the vibration only within legal speed and where traffic allows.", kontroller: [ - { id: "pk_hastighet", text: "Speed at which the vibration occurs", krav: "kommentar" }, + { id: "pk_hastighet", text: "Speed at which the vibration occurs", krav: "matvarde" }, { id: "pk_acc", text: "Change under acceleration", krav: "kommentar" }, { id: "pk_motorbroms", text: "Change under engine braking", krav: "kommentar" }, { id: "pk_kurva", text: "Change when cornering", krav: "kommentar" }, @@ -128,24 +133,26 @@ export const ELSYSTEM = { kontroller: [ { id: "foto_komponent", text: "Photograph the component and its connections", krav: "foto" }, { id: "skador", text: "Check for visible damage, corrosion and loose connectors", krav: "kommentar" }, + { id: "vicktest", text: "Wiggle test — flex the harness and connectors while monitoring the function; document where the fault can be provoked", krav: "kommentar" }, ], }, { id: "matningar", rubrik: "Measurements", - beskrivning: "Measure under load. A voltage without load says almost nothing about a poor connection.", + beskrivning: + "Measure under load. A voltage without load says almost nothing about a poor connection. Never probe airbag or other pyrotechnic (SRS) circuits with a meter — deployment risk; use the diagnostic tool and the manufacturer's procedure for those.", kontroller: [ { id: "batterispanning", text: "Measure battery voltage", krav: "matvarde" }, - { id: "sakringar", text: "Check the fuses concerned", krav: "kommentar" }, - { id: "matningsspanning", text: "Measure supply voltage at the component under load", krav: "matvarde" }, - { id: "jord", text: "Measure voltage drop to earth under load", krav: "matvarde" }, + { id: "sakringar", text: "Measure voltage on both sides of the fuses concerned, circuit under load", krav: "matvarde" }, + { id: "matningsspanning", text: "Measure supply voltage at the component under load and compare with battery voltage — more than about 0.5 V lower indicates a supply-side voltage drop", krav: "matvarde" }, + { id: "jord", text: "Measure voltage drop to earth under load — more than about 0.2 V indicates a poor earth point or connection", krav: "matvarde" }, ], }, { id: "rela", rubrik: "Relay and control signal", kontroller: [ - { id: "rela_klick", text: "Check whether the relay clicks when energised", krav: "kommentar" }, + { id: "rela_klick", text: "Check whether the relay clicks when energized — a click only proves the coil circuit; verify voltage on the load side, or substitute a known-good identical relay", krav: "kommentar" }, { id: "styrsignal", text: "Measure the control signal to the relay", krav: "matvarde" }, ], }, @@ -181,20 +188,23 @@ export const START_LADDNING = { { id: "batteri", rubrik: "Battery condition", - beskrivning: "A weak battery causes consequential faults across the vehicle. Rule it out first.", + beskrivning: + "A weak battery causes consequential faults across the vehicle. Rule it out first. Battery safety: remove rings and metal watch straps, ventilate — a charging battery gives off hydrogen; never break a high-current connection at the post.", kontroller: [ - { id: "vilospanning", text: "Measure resting voltage after at least one hour at rest", krav: "matvarde" }, - { id: "batteritest", text: "Load test — photograph the tester's result", krav: "foto" }, + { id: "vilospanning", text: "Measure resting voltage after at least one hour at rest, surface charge removed — about 12.6 V or more is fully charged, 12.4 V about 75 %, below 12.0 V discharged", krav: "matvarde" }, + { id: "batteritest", text: "Load or conductance test with the battery charged to at least 75 % state of charge — photograph the result, measured versus rated CCA", krav: "foto" }, { id: "poler", text: "Check battery terminals and earth straps", krav: "kommentar" }, ], }, { id: "start", rubrik: "Starting system", + beskrivning: + "Before any cranking test: gearbox in park or neutral, parking brake applied. Disable starting (fuel or ignition) where the test requires cranking without the engine firing, and keep hands and test leads clear of belt drives and hot surfaces. Cranks normally but does not fire — use the engine running methodology.", kontroller: [ - { id: "startspanning", text: "Measure voltage at the starter motor during cranking", krav: "matvarde" }, - { id: "spanningsfall_plus", text: "Measure voltage drop in the positive lead during cranking", krav: "matvarde" }, - { id: "spanningsfall_jord", text: "Measure voltage drop in the earth lead during cranking", krav: "matvarde" }, + { id: "startspanning", text: "Measure voltage at the starter motor during cranking — should stay above about 9.6 V at normal temperature; lower points to the battery, the cables or a dragging starter", krav: "matvarde" }, + { id: "spanningsfall_plus", text: "Measure voltage drop in the positive lead during cranking — no more than about 0.5 V", krav: "matvarde" }, + { id: "spanningsfall_jord", text: "Measure voltage drop in the earth lead during cranking — no more than about 0.5 V", krav: "matvarde" }, { id: "startsignal", text: "Check the control signal to the starter relay", krav: "matvarde" }, ], }, @@ -202,8 +212,8 @@ export const START_LADDNING = { id: "laddning", rubrik: "Charging system", kontroller: [ - { id: "laddspanning", text: "Measure charging voltage at idle and at raised engine speed", krav: "matvarde" }, - { id: "rippel", text: "Measure ripple from the alternator", krav: "matvarde" }, + { id: "laddspanning", text: "Measure charging voltage at idle and at raised engine speed with consumers on — conventional systems 13.8–14.8 V; with smart charging, compare against the control unit's requested voltage instead of a fixed limit", krav: "matvarde" }, + { id: "rippel", text: "Measure AC ripple at the battery with the engine running and loads on — more than about 0.5 V indicates failed diodes", krav: "matvarde" }, { id: "rem", text: "Check the drive belt and its tension", krav: "kommentar" }, ], }, @@ -212,8 +222,8 @@ export const START_LADDNING = { rubrik: "Parasitic drain", beskrivning: "Only relevant when the battery discharges while the vehicle stands.", kontroller: [ - { id: "vilostrom", text: "Measure quiescent current once the vehicle has gone to sleep", krav: "matvarde" }, - { id: "sakringsdrag", text: "Localize the circuit by removing fuses one at a time", krav: "kommentar" }, + { id: "vilostrom", text: "Measure quiescent current with a clamp, or in series without breaking continuity, once the vehicle has gone to sleep — typically below 30–50 mA; note the vehicle's specified value", krav: "matvarde" }, + { id: "sakringsdrag", text: "Localize the circuit by measuring the millivolt drop across each fuse with the vehicle still asleep; pull fuses only as a last resort — removing one wakes modules", krav: "kommentar" }, ], }, ], @@ -246,7 +256,7 @@ export const MOTOR_DRIFT = { beskrivning: "Read before anything is dismantled. A fault code points to a circuit, not to a broken component.", kontroller: [ { id: "dtc", text: "Read fault codes — photograph the diagnostic screen", krav: "foto" }, - { id: "frysdata", text: "Document the freeze frame data for the code", krav: "kommentar" }, + { id: "frysdata", text: "Document the freeze frame data for the code", krav: "foto" }, { id: "misstandning", text: "Read the misfire counter per cylinder", krav: "matvarde" }, { id: "branslekorrigering", text: "Read short- and long-term fuel trim", krav: "matvarde" }, ], @@ -256,8 +266,8 @@ export const MOTOR_DRIFT = { rubrik: "Basic engine condition", beskrivning: "Without sound basic condition, every sensor value is hard to interpret.", kontroller: [ - { id: "kompression", text: "Measure compression, or relative compression", krav: "matvarde" }, - { id: "vevhustryck", text: "Check crankcase pressure", krav: "kommentar" }, + { id: "kompression", text: "Measure compression or relative compression — deactivate ignition and injection first; document per cylinder, and locate a low cylinder with a leak-down test", krav: "matvarde" }, + { id: "vevhustryck", text: "Measure crankcase pressure at idle", krav: "matvarde" }, { id: "insugslackage", text: "Check the intake system for unmetered air", krav: "kommentar" }, ], }, @@ -266,16 +276,16 @@ export const MOTOR_DRIFT = { rubrik: "Ignition and fuel", kontroller: [ { id: "tandstift", text: "Check the spark plugs — photograph all of them", krav: "foto" }, - { id: "spolar", text: "Measure ignition coil resistance, or swap coils between cylinders", krav: "matvarde" }, - { id: "bransletryck", text: "Measure fuel pressure under load", krav: "matvarde" }, - { id: "insprutare", text: "Check injector return quantity or injector control", krav: "matvarde" }, + { id: "spolar", text: "Swap ignition coils between cylinders and re-read the misfire counter — document whether the fault moves with the coil", krav: "matvarde" }, + { id: "bransletryck", text: "Measure fuel pressure under load — depressurize before opening the system, never open the high-pressure side (read it via the control unit), and keep ignition sources away", krav: "matvarde" }, + { id: "insprutare", text: "Check injector back-leakage (leak-off) quantity or injector control", krav: "matvarde" }, ], }, { id: "provkorning", rubrik: "Road test with logging", kontroller: [ - { id: "logg", text: "Log measured data while driving where the fault appears", krav: "foto" }, + { id: "logg", text: "Log measured data while driving where the fault appears — with a flashing warning lamp, do not drive under load; log at idle or light load", krav: "foto" }, { id: "reproducerat", text: "Document the conditions under which the fault appeared", krav: "kommentar" }, ], }, @@ -307,17 +317,28 @@ export const BROMSAR = { id: "visuell", rubrik: "Visual inspection", kontroller: [ + { id: "vatskeniva", text: "Check the brake fluid level and condition in the reservoir before the vehicle is moved", krav: "foto" }, { id: "foto_belagg", text: "Photograph pads and discs on every wheel", krav: "foto" }, { id: "belaggtjocklek", text: "Measure pad thickness", krav: "matvarde" }, { id: "skivtjocklek", text: "Measure disc thickness and compare with the minimum", krav: "matvarde" }, { id: "lackage", text: "Check hoses, pipes and calipers for leaks", krav: "kommentar" }, + { id: "dtc", text: "Read fault codes from the ABS control unit", krav: "foto" }, + ], + }, + { + id: "reproduktion", + rubrik: "Road test", + beskrivning: "Only after the fluid level and pedal feel are checked. Provoke braking only where traffic allows.", + kontroller: [ + { id: "pk_temp", text: "Compare disc temperature side to side with an IR thermometer after the road test", krav: "matvarde" }, + { id: "pk_beteende", text: "Document judder, pull or binding during the test", krav: "kommentar" }, ], }, { id: "matningar", rubrik: "Measurements", kontroller: [ - { id: "skivkast", text: "Measure disc runout with a dial gauge", krav: "matvarde" }, + { id: "skivkast", text: "Measure disc runout with a dial gauge — if out of limits, clean the hub face and measure hub runout before condemning the disc", krav: "matvarde" }, { id: "tjockleksvariation", text: "Measure disc thickness variation", krav: "matvarde" }, { id: "vatska", text: "Measure the brake fluid's boiling point or water content", krav: "matvarde" }, { id: "okens_rorlighet", text: "Check that calipers and slide pins move freely", krav: "kommentar" }, @@ -327,9 +348,9 @@ export const BROMSAR = { id: "system", rubrik: "System and ABS", kontroller: [ - { id: "dtc", text: "Read fault codes from the ABS control unit", krav: "foto" }, { id: "hjulgivare", text: "Check the wheel speed sensor signals", krav: "matvarde" }, - { id: "bromsprov", text: "Perform a brake test on a test bench — photograph the report", krav: "foto" }, + { id: "parkeringsbroms", text: "Check the parking brake's function and travel", krav: "kommentar" }, + { id: "bromsprov", text: "Perform a brake test on a test bench — observe the restrictions for four-wheel drive and use service mode for an electronic parking brake; photograph the report", krav: "foto" }, ], }, ], @@ -362,23 +383,28 @@ export const STYRNING_FJADRING = { { id: "foto_slitage", text: "Photograph the tyres' wear pattern", krav: "foto" }, { id: "dampare", text: "Check dampers for leakage", krav: "kommentar" }, { id: "damask", text: "Check boots on track rod ends and drive joints", krav: "kommentar" }, + { id: "fjadrar", text: "Check springs for breakage and compare ride height side to side", krav: "matvarde" }, + { id: "servo", text: "Check power steering — fluid level and leaks (hydraulic) or fault codes (EPS)", krav: "kommentar" }, ], }, { id: "glapp", rubrik: "Play check", - beskrivning: "Performed with the wheel unloaded. Document where the play is, not only that it exists.", + beskrivning: + "With the vehicle securely supported, unload the joint being checked according to the suspension design — support the lower arm where the spring acts on it. Rock the wheel at 12 and 6 o'clock for wheel bearings, at 3 and 9 o'clock for steering joints. Document where the play is, not only that it exists.", kontroller: [ - { id: "hjullager", text: "Check wheel bearing play", krav: "kommentar" }, - { id: "styrleder", text: "Check track rod ends and ball joints", krav: "kommentar" }, + { id: "hjullager", text: "Check wheel bearing play — state location and estimated magnitude", krav: "kommentar" }, + { id: "styrleder", text: "Check the outer tie rod ends and ball joints", krav: "kommentar" }, { id: "bussningar", text: "Check bushings", krav: "kommentar" }, - { id: "kuggstang", text: "Check the rack and the track rod ends", krav: "kommentar" }, + { id: "kuggstang", text: "Check the steering rack mountings and the inner tie rods (axial joints)", krav: "kommentar" }, ], }, { id: "installning", rubrik: "Wheel alignment", kontroller: [ + { id: "dacktryck", text: "Check tyre pressures before measuring", krav: "matvarde" }, + { id: "dackskifte", text: "When the vehicle pulls: swap the front tyres side to side to rule out tyre pull before adjusting", krav: "kommentar" }, { id: "matning", text: "Measure wheel alignment — photograph the report before adjustment", krav: "foto" }, { id: "avvikelse", text: "Document deviations from the manufacturer's values", krav: "matvarde" }, ], @@ -412,18 +438,20 @@ export const KYLSYSTEM = { kontroller: [ { id: "niva", text: "Check the coolant level cold — photograph the expansion tank", krav: "foto" }, { id: "lackage", text: "Check for visible leaks at hoses, radiator and pump", krav: "kommentar" }, - { id: "kylarpaket", text: "Check the radiator pack for blockage", krav: "foto" }, + { id: "kylarpaket", text: "Check the radiator core and the A/C condenser for external blockage", krav: "foto" }, ], }, { id: "matningar", rubrik: "Measurements", + beskrivning: "Never open a hot, pressurized system — scalding risk. Work on a cooled-down engine.", kontroller: [ - { id: "trycktest", text: "Pressure test the cooling system", krav: "matvarde" }, - { id: "lock", text: "Pressure test the expansion tank cap", krav: "matvarde" }, + { id: "trycktest", text: "Pressure test the cooling system cold — pressurize to the cap's rated pressure, never above", krav: "matvarde" }, + { id: "lock", text: "Pressure test the expansion tank cap against its rated pressure", krav: "matvarde" }, { id: "temperatur", text: "Measure inlet and outlet temperature at the radiator with an IR thermometer", krav: "matvarde" }, - { id: "flakt", text: "Check that the cooling fan starts at the correct temperature", krav: "kommentar" }, + { id: "flakt", text: "Measure the temperature at which the cooling fan cuts in — keep clear of the fan, it can start without warning", krav: "matvarde" }, { id: "givare", text: "Compare the control unit's temperature value with the measured one", krav: "matvarde" }, + { id: "termostat", text: "Measure the upper radiator hose temperature at the thermostat's opening point — document the opening temperature", krav: "matvarde" }, ], }, { @@ -431,8 +459,8 @@ export const KYLSYSTEM = { rubrik: "Cylinder head gasket", beskrivning: "Performed when coolant is lost without an external leak.", kontroller: [ - { id: "avgastest", text: "Exhaust gas test in the coolant (CO2 test)", krav: "foto" }, - { id: "kompression_kyl", text: "Check the pressurisation of the cooling system with the engine running", krav: "kommentar" }, + { id: "avgastest", text: "Combustion leak test (block tester) in the coolant", krav: "foto" }, + { id: "kompression_kyl", text: "Connect a pressure tester to the cold system and document the pressure build-up over time with the engine running — never open hot", krav: "matvarde" }, ], }, ], @@ -442,7 +470,7 @@ export const DRIVLINA = { id: "drivlina", namn: "Transmission and driveline", omrade: "Driveline", - nyckelord: ["växellåda", "växlar", "koppling", "automatlåda", "rycker vid växling", "slir", "drivknut", "kardan", "differential", "kärvar i växeln", "gearbox", "transmission", "shift", "clutch", "automatic", "jerks when shifting", "slip", "drive joint", "propshaft", "sticks in gear"], + nyckelord: ["växellåda", "växlar", "koppling", "automatlåda", "rycker vid växling", "slir", "drivknut", "kardan", "differential", "kärvar i växeln", "gearbox", "transmission", "shift", "clutch", "automatic", "jerks when shifting", "slip", "drive joint", "cv joint", "cv boot", "driveshaft", "axle", "diff whine", "propshaft", "sticks in gear"], steg: [ { id: "symptom", @@ -465,6 +493,8 @@ export const DRIVLINA = { { id: "olja", text: "Check the oil level and the oil's condition — photograph", krav: "foto" }, { id: "lackage", text: "Check for leaks at seals and the sump", krav: "kommentar" }, { id: "fasten", text: "Check the transmission mounts", krav: "kommentar" }, + { id: "drivaxlar", text: "Check drive shaft boots and CV joints — clicking on full lock points to an outer joint", krav: "kommentar" }, + { id: "kardan", text: "Check the propshaft, centre bearing and universal joints; document driveline lash", krav: "kommentar" }, ], }, { @@ -480,8 +510,9 @@ export const DRIVLINA = { id: "provkorning", rubrik: "Road test", kontroller: [ - { id: "vaxlingspunkter", text: "Document shift points and behaviour", krav: "kommentar" }, + { id: "vaxlingspunkter", text: "Document shift points (engine speed at up- and downshift) and behaviour", krav: "matvarde" }, { id: "belastning", text: "Road test under the load where the fault appears", krav: "kommentar" }, + { id: "koppling_slir", text: "Clutch slip test on a manual gearbox: high gear, low speed, full throttle — document whether engine speed rises without road speed; check pedal free play", krav: "kommentar" }, ], }, ], @@ -520,11 +551,13 @@ export const AVGAS_EMISSION = { { id: "matningar", rubrik: "Measurements", + beskrivning: "Run the engine only with exhaust extraction connected, or outdoors.", kontroller: [ { id: "mottryck", text: "Measure exhaust back pressure", krav: "matvarde" }, - { id: "differenstryck", text: "Measure differential pressure across the particulate filter", krav: "matvarde" }, + { id: "differenstryck", text: "Measure differential pressure across the particulate filter at idle and at raised engine speed — state the engine speed with each value", krav: "matvarde" }, { id: "adblue_niva", text: "Check AdBlue level and quality where fitted", krav: "matvarde" }, { id: "egr", text: "Check the EGR valve's function and position", krav: "matvarde" }, + { id: "emissioner", text: "Measure emissions at idle and raised idle (CO/HC/lambda, or smoke opacity for diesel) — document against the limit", krav: "matvarde" }, ], }, { @@ -545,6 +578,18 @@ export const KLIMAT = { omrade: "Comfort", nyckelord: ["ac", "luftkonditionering", "klimatanläggning", "kyler inte", "kompressor", "köldmedi", "imma", "immig", "fläkt", "lukt i kupén", "värmepaket", "air conditioning", "climate", "no cooling", "compressor", "refrigerant", "misting", "fan", "smell in the cabin", "heater matrix"], steg: [ + { + id: "sakerhet", + rubrik: "Safety — performed first", + beskrivning: + "Work on the refrigerant circuit requires certification for mobile air-conditioning (EU F-gas regulation). Refrigerant under pressure causes cold burns — protective glasses and gloves.", + fragor: [ + { id: "certifikat", text: "Are you certified for mobile air-conditioning work?", svarstyp: "janej" }, + ], + kontroller: [ + { id: "skydd", text: "Document the protective equipment for refrigerant handling", krav: "kommentar" }, + ], + }, { id: "symptom", rubrik: "Verify the symptom", @@ -572,15 +617,15 @@ export const KLIMAT = { id: "matningar", rubrik: "Measurements", kontroller: [ - { id: "tryck", text: "Measure high and low pressure at a known ambient temperature", krav: "matvarde" }, - { id: "utblastemp", text: "Measure the outlet temperature at the centre vent", krav: "matvarde" }, - { id: "mangd", text: "Weigh the refrigerant recovered when evacuating", krav: "matvarde" }, - { id: "lackagesok", text: "Trace the leak with tracer gas or UV", krav: "kommentar" }, + { id: "tryck", text: "Measure high and low pressure at the prescribed engine speed (about 1500–2000 rpm), AC at maximum, after stabilization — document the ambient temperature", krav: "matvarde" }, + { id: "utblastemp", text: "Measure the outlet temperature at the centre vent — AC at maximum, recirculation on, after a few minutes' stabilization", krav: "matvarde" }, + { id: "mangd", text: "Weigh the refrigerant recovered when evacuating and compare with the nominal charge on the vehicle's label", krav: "matvarde" }, + { id: "lackagesok", text: "Trace the leak with tracer gas or UV — photograph the leak point", krav: "foto" }, ], }, { id: "styrning", - rubrik: "Steering", + rubrik: "Climate control", kontroller: [ { id: "dtc", text: "Read fault codes from the climate control unit", krav: "foto" }, { id: "spjall", text: "Check the movement of the flap actuators", krav: "kommentar" }, @@ -593,22 +638,22 @@ export const HOGVOLT = { id: "hogvolt", namn: "High-voltage system — electric and hybrid", omrade: "High voltage", - nyckelord: ["högvolt", "elbil", "hybrid", "traktionsbatteri", "hv", "laddning av bil", "räckvidd", "laddbox", "orange kabel", "sköldpadda", "pulls", "steering", "steering wheel", "play", "damper", "shock absorber", "spring", "suspension", "wheel alignment", "tracking", "wallow", "clunk in corners", "power steering", "high voltage", "high-voltage", "ev", "electric vehicle", "traction battery", "charging the car", "range", "wallbox", "orange cable", "turtle"], + nyckelord: ["högvolt", "elbil", "hybrid", "traktionsbatteri", "hv", "laddning av bil", "räckvidd", "laddbox", "orange kabel", "sköldpadda", "high voltage", "high-voltage", "ev", "electric vehicle", "traction battery", "charging the car", "range", "wallbox", "orange cable", "turtle"], steg: [ { id: "sakerhet", rubrik: "Safety — performed first", beskrivning: - "High-voltage systems can be lethal. No work on the system begins until the steps below are documented. Requires authorisation for work on high-voltage systems.", + "High-voltage systems can be lethal. No work on the system begins until the steps below are documented. Requires authorization for work on high-voltage systems — without it, stop after non-intrusive readout: no removal of covers or connectors, no insulation testing with applied test voltage, and never any work on an energized system. The readout and charging steps are non-intrusive; de-energization is completed and documented before any physical intervention.", fragor: [ - { id: "behorighet", text: "Are you authorised to work on high-voltage systems?", svarstyp: "janej" }, - { id: "avstangt", text: "Is the vehicle de-energised per the manufacturer's procedure?", svarstyp: "janej" }, + { id: "behorighet", text: "Are you authorized to work on high-voltage systems?", svarstyp: "janej" }, + { id: "avstangt", text: "Is the vehicle de-energized per the manufacturer's procedure, with absence of voltage verified by measurement?", svarstyp: "janej" }, ], kontroller: [ - { id: "service_disconnect", text: "Document that the service disconnect is removed and secured", krav: "foto" }, - { id: "vantetid", text: "Document the waiting time per the manufacturer's instruction", krav: "kommentar" }, - { id: "spanningsfrihet", text: "Measure and document the absence of voltage before any work", krav: "matvarde" }, - { id: "skyddsutrustning", text: "Document the protective equipment used and the area cordoned off", krav: "foto" }, + { id: "skyddsutrustning", text: "Document before starting: the work area cordoned off and signed, and the protective equipment in use — insulated gloves (EN 60903, within retest date), face shield, insulated tools (EN 60900)", krav: "foto" }, + { id: "service_disconnect", text: "Document that the ignition is off, the key out of range, and the service disconnect removed and kept under the sole control of the person working — locked out against re-energization", krav: "foto" }, + { id: "vantetid", text: "Document the manufacturer's prescribed capacitor discharge waiting time and the actual time waited (minutes)", krav: "matvarde" }, + { id: "spanningsfrihet", text: "Verify absence of voltage at the manufacturer's designated measuring points (HV+ to HV−, and each to chassis) with a CAT III rated tester — prove the tester against a known source immediately before and after; document the readings", krav: "matvarde" }, ], }, { @@ -619,7 +664,7 @@ export const HOGVOLT = { id: "karaktar", text: "How does the fault present?", svarstyp: "val", - val: ["Will not charge", "Reduced range", "Power limitation", "Varningsmeddelande", "The vehicle will not start"], + val: ["Will not charge", "Reduced range", "Power limitation", "Warning message", "The vehicle will not start"], }, { id: "laddtyp", text: "At which charge type does the fault appear (AC, DC, which charge point)?", svarstyp: "text" }, { id: "temperatur", text: "At what ambient and battery temperature?", svarstyp: "text" }, @@ -635,6 +680,7 @@ export const HOGVOLT = { { id: "cellspanning", text: "Read cell voltages and document the largest deviation", krav: "matvarde" }, { id: "isolationsvarde", text: "Read the system's insulation value", krav: "matvarde" }, { id: "temperaturer", text: "Read the battery temperature sensors", krav: "matvarde" }, + { id: "hvil", text: "Read the status of the high-voltage interlock loop (HVIL)", krav: "kommentar" }, ], }, { @@ -674,19 +720,10 @@ export const DIAGNOS_NATVERK = { beskrivning: "Communication faults are more often due to supply and earth than to the control unit.", kontroller: [ { id: "batteri", text: "Measure battery voltage during the readout", krav: "matvarde" }, - { id: "obd_matning", text: "Measure supply and earth at the diagnostic socket", krav: "matvarde" }, + { id: "obd_matning", text: "Measure supply (pin 16) and earth (pins 4 and 5) at the diagnostic socket — supply near battery voltage", krav: "matvarde" }, { id: "sakringar", text: "Check the fuses for the control units concerned", krav: "kommentar" }, ], }, - { - id: "buss", - rubrik: "Bus measurement", - kontroller: [ - { id: "terminering", text: "Measure the bus termination resistance with the system de-energised", krav: "matvarde" }, - { id: "bussignal", text: "Measure the CAN signal with an oscilloscope — photograph the trace", krav: "foto" }, - { id: "avdelning", text: "Split the bus to localize the disturbing node", krav: "kommentar" }, - ], - }, { id: "koder", rubrik: "Fault codes in context", @@ -697,6 +734,15 @@ export const DIAGNOS_NATVERK = { { id: "efter_radering", text: "Clear, road test, and document which codes returned", krav: "kommentar" }, ], }, + { + id: "buss", + rubrik: "Bus measurement", + kontroller: [ + { id: "terminering", text: "Measure the bus termination resistance between CAN-H and CAN-L with the battery disconnected — expect about 60 ohm; on gateway vehicles measure on the affected segment, not only at the diagnostic socket", krav: "matvarde" }, + { id: "bussignal", text: "Measure the CAN signal with an oscilloscope — photograph the trace. High-speed CAN: about 2.5 to 3.5 V (CAN-H) and 2.5 to 1.5 V (CAN-L); note error frames or bus off", krav: "foto" }, + { id: "avdelning", text: "Split the bus to localize the disturbing node", krav: "kommentar" }, + ], + }, ], }; @@ -710,12 +756,7 @@ export const LACKAGE = { id: "symptom", rubrik: "Verify the symptom", fragor: [ - { - id: "vatska", - text: "Which fluid is suspected?", - svarstyp: "val", - val: ["Engine oil", "Coolant", "Transmission oil", "Brake fluid", "Fuel", "Water or condensation", "Unknown"], - }, + { id: "vatska", text: "What does the fluid look like — colour, consistency, smell — and where does it appear?", svarstyp: "text" }, { id: "mangd", text: "How much and how often?", svarstyp: "text" }, { id: "plats", text: "Where on the ground is the stain relative to the vehicle?", svarstyp: "text" }, ], @@ -727,16 +768,18 @@ export const LACKAGE = { kontroller: [ { id: "foto_fore", text: "Photograph the area before cleaning", krav: "foto" }, { id: "rengoring", text: "Clean the area and document that it is dry", krav: "foto" }, - { id: "provkorning", text: "Road test, or let it run, and photograph where the fluid appears", krav: "foto" }, + { id: "identifiering", text: "Identify the fluid on white paper — photograph", krav: "foto" }, + { id: "provkorning", text: "Road test, or let the engine run, and photograph where the fluid appears — no road test on a suspected fuel or brake fluid leak: fuel means no ignition sources and engine off; brakes are verified and repaired before any driving", krav: "foto" }, ], }, { id: "metod", rubrik: "Leak tracing", kontroller: [ - { id: "uv", text: "Leak test with UV dye where applicable", krav: "kommentar" }, + { id: "uv", text: "Leak test with UV dye where applicable — photograph the fluorescence", krav: "foto" }, { id: "trycktest", text: "Pressure test the system", krav: "matvarde" }, { id: "niva", text: "Measure the change in level over time", krav: "matvarde" }, + { id: "vattenprov", text: "For water ingress: hose test section by section and check the drains — photograph the entry point", krav: "foto" }, ], }, ], @@ -772,18 +815,20 @@ export const MISSLJUD = { { id: "inspelning", rubrik: "Document the noise", - beskrivning: "Video with sound is evidence. A description in text is not.", + beskrivning: + "Video with sound is evidence. A description in text is not. On a road test one person drives, one operates the equipment.", kontroller: [ { id: "video", text: "Record the noise on video under the conditions in which it occurs", krav: "foto" }, - { id: "forhallanden", text: "Document road speed, engine speed and surface during the recording", krav: "kommentar" }, + { id: "forhallanden", text: "Document road speed, engine speed and surface during the recording", krav: "matvarde" }, ], }, { id: "lokalisering", rubrik: "Localization", kontroller: [ - { id: "stetoskop", text: "Localize with a stethoscope or sound probe", krav: "kommentar" }, + { id: "stetoskop", text: "Localize with a stethoscope or sound probe when stationary — keep the probe clear of rotating parts; use chassis ears on a road test for speed-dependent noise", krav: "kommentar" }, { id: "avlastning", text: "Check whether the noise changes when unloaded or loaded", krav: "kommentar" }, + { id: "frikoppling", text: "Document whether the noise changes in neutral or when coasting, and when cornering left versus right", krav: "kommentar" }, { id: "uteslutning", text: "Document which sources were ruled out, and how", krav: "kommentar" }, ], }, @@ -814,12 +859,13 @@ export const ADAS = { id: "forutsattningar", rubrik: "Preconditions for calibration", beskrivning: - "A calibration performed under the wrong preconditions produces a fault that looks repaired. Document that the requirements are met before it is carried out.", + "A calibration performed under the wrong preconditions produces a fault that looks repaired. Document that the requirements are met before it is carried out. Dynamic calibration has its own requirements — speed, clear lane markings, weather and light — per the manufacturer.", kontroller: [ { id: "dtc", text: "Read fault codes from the control units concerned", krav: "foto" }, { id: "hjulinstallning", text: "Check wheel alignment — rear axle tracking affects the camera", krav: "matvarde" }, { id: "dacktryck", text: "Check tyre pressure and ride height", krav: "matvarde" }, - { id: "sikt", text: "Check the camera's and radar's field of view for dirt or damage", krav: "foto" }, + { id: "fordonskondition", text: "Document that vehicle condition meets the manufacturer's requirements — load, fuel level, battery support, steering wheel centred", krav: "kommentar" }, + { id: "sikt", text: "Check the camera's and radar's field of view for dirt or damage — after a windscreen replacement, verify correct glass and camera mount", krav: "foto" }, { id: "yta", text: "Document that the calibration area meets the requirements for flatness and lighting", krav: "foto" }, ], }, @@ -828,7 +874,7 @@ export const ADAS = { rubrik: "Calibration", kontroller: [ { id: "utford", text: "Perform the calibration by the manufacturer's method — photograph the result", krav: "foto" }, - { id: "provkorning", text: "Road test and verify the function under the conditions in which the fault appeared", krav: "kommentar" }, + { id: "provkorning", text: "Verify the function by the manufacturer's test method — never provoke emergency braking or steering interventions on public roads; confirm the system is active and free of warnings", krav: "kommentar" }, ], }, ], @@ -844,6 +890,7 @@ export const GENERISK = { id: "symptom", rubrik: "Verify the symptom", fragor: [ + { id: "energikallor", text: "Does the work involve high voltage, fuel, gas or stored energy? If yes — switch to the appropriate methodology, or document the safety measures first", svarstyp: "janej" }, { id: "reproducerbart", text: "Can the fault be reproduced?", svarstyp: "janej" }, { id: "nar", @@ -885,6 +932,7 @@ export const GENERISK = { text: "Take basic measurements (voltage, pressure, temperature — whatever is relevant)", krav: "matvarde", }, + { id: "dtc", text: "Read fault codes where the object has diagnostics — photograph", krav: "foto" }, { id: "sakringar", text: "Check fuses and protective devices", krav: "kommentar" }, { id: "anslutningar", text: "Check connectors and terminations", krav: "kommentar" }, ], diff --git a/felsokning/services/gemensam/sprak/de.mjs b/felsokning/services/gemensam/sprak/de.mjs index 5f59c5f..125c286 100644 --- a/felsokning/services/gemensam/sprak/de.mjs +++ b/felsokning/services/gemensam/sprak/de.mjs @@ -43,7 +43,7 @@ export const DE = { "grind.foton": "Fotos für die Prüfpunkte vorhanden, die sie erfordern", "grind.slutsats": "Abschlussfeststellung (ALVA-RULE-200)", "grind.hogvolt.behorighet": "Hochvolt-Qualifikation bestätigt", - "grind.hogvolt.spanningslos": "Fahrzeug nach Herstellerverfahren spannungsfrei geschaltet", + "grind.hogvolt.spanningslos": "Fahrzeug nach Herstellerverfahren spannungsfrei geschaltet, Spannungsfreiheit durch Messung festgestellt", "grind.regelpaket": "Signatur des Regelpakets stimmt nicht — Abschluss gesperrt.", "grind.regelpaket.osignerat": "Ein externes Regelpaket wird ohne Signatur verwendet — Abschluss gesperrt.", "grind.evidens": "Evidenzgrad über E0", diff --git a/felsokning/services/gemensam/sprak/en.mjs b/felsokning/services/gemensam/sprak/en.mjs index 47d1d19..2bcd226 100644 --- a/felsokning/services/gemensam/sprak/en.mjs +++ b/felsokning/services/gemensam/sprak/en.mjs @@ -70,7 +70,7 @@ export const EN = { "grind.foton": "Photographs present for checks that require them", "grind.slutsats": "Closing statement (ALVA-RULE-200)", "grind.hogvolt.behorighet": "High-voltage authorization confirmed", - "grind.hogvolt.spanningslos": "Vehicle de-energized per the manufacturer’s procedure", + "grind.hogvolt.spanningslos": "Vehicle de-energized per the manufacturer’s procedure, absence of voltage verified by measurement", "grind.regelpaket": "Rule package signature does not match — closing blocked.", "grind.regelpaket.osignerat": "An external rule package is in use without a signature — closing blocked.", "grind.evidens": "Evidence above E0", diff --git a/felsokning/services/gemensam/sprak/es.mjs b/felsokning/services/gemensam/sprak/es.mjs index a4a172b..9302dc8 100644 --- a/felsokning/services/gemensam/sprak/es.mjs +++ b/felsokning/services/gemensam/sprak/es.mjs @@ -42,7 +42,7 @@ export const ES = { "grind.foton": "Hay fotografías para los puntos de control que las exigen", "grind.slutsats": "Conclusión (ALVA-RULE-200)", "grind.hogvolt.behorighet": "Habilitación de alta tensión confirmada", - "grind.hogvolt.spanningslos": "Vehículo sin tensión según el procedimiento del fabricante", + "grind.hogvolt.spanningslos": "Vehículo sin tensión según el procedimiento del fabricante, ausencia de tensión verificada mediante medición", "grind.regelpaket": "La firma del paquete de reglas no coincide — cierre bloqueado.", "grind.regelpaket.osignerat": "Se utiliza un paquete de reglas externo sin firma — cierre bloqueado.", "grind.evidens": "Nivel de evidencia superior a E0", diff --git a/felsokning/services/gemensam/sprak/fr.mjs b/felsokning/services/gemensam/sprak/fr.mjs index bb3c145..080876c 100644 --- a/felsokning/services/gemensam/sprak/fr.mjs +++ b/felsokning/services/gemensam/sprak/fr.mjs @@ -43,7 +43,7 @@ export const FR = { "grind.foton": "Photographies présentes pour les points de contrôle qui les exigent", "grind.slutsats": "Conclusion (ALVA-RULE-200)", "grind.hogvolt.behorighet": "Habilitation haute tension confirmée", - "grind.hogvolt.spanningslos": "Véhicule consigné hors tension selon la procédure du constructeur", + "grind.hogvolt.spanningslos": "Véhicule consigné hors tension selon la procédure du constructeur, absence de tension vérifiée par mesure", "grind.regelpaket": "La signature du paquet de règles ne correspond pas — clôture bloquée.", "grind.regelpaket.osignerat": "Un paquet de règles externe est utilisé sans signature — clôture bloquée.", "grind.evidens": "Niveau de preuve supérieur à E0", diff --git a/felsokning/services/gemensam/sprak/it.mjs b/felsokning/services/gemensam/sprak/it.mjs index e188ff2..1974ee3 100644 --- a/felsokning/services/gemensam/sprak/it.mjs +++ b/felsokning/services/gemensam/sprak/it.mjs @@ -42,7 +42,7 @@ export const IT = { "grind.foton": "Fotografie presenti per i punti di controllo che le richiedono", "grind.slutsats": "Conclusione (ALVA-RULE-200)", "grind.hogvolt.behorighet": "Abilitazione alta tensione confermata", - "grind.hogvolt.spanningslos": "Veicolo messo fuori tensione secondo la procedura del costruttore", + "grind.hogvolt.spanningslos": "Veicolo messo fuori tensione secondo la procedura del costruttore, assenza di tensione verificata mediante misurazione", "grind.regelpaket": "La firma del pacchetto di regole non corrisponde — chiusura bloccata.", "grind.regelpaket.osignerat": "È in uso un pacchetto di regole esterno privo di firma — chiusura bloccata.", "grind.evidens": "Livello di evidenza superiore a E0", diff --git a/felsokning/services/gemensam/sprak/nl.mjs b/felsokning/services/gemensam/sprak/nl.mjs index 08396ce..229da32 100644 --- a/felsokning/services/gemensam/sprak/nl.mjs +++ b/felsokning/services/gemensam/sprak/nl.mjs @@ -42,7 +42,7 @@ export const NL = { "grind.foton": "Foto's aanwezig bij de controles die dat vereisen", "grind.slutsats": "Eindconclusie (ALVA-RULE-200)", "grind.hogvolt.behorighet": "Hoogvoltbevoegdheid bevestigd", - "grind.hogvolt.spanningslos": "Voertuig spanningsloos gemaakt volgens de procedure van de fabrikant", + "grind.hogvolt.spanningslos": "Voertuig spanningsloos gemaakt volgens de procedure van de fabrikant, spanningsloosheid door meting vastgesteld", "grind.regelpaket": "Handtekening van het regelpakket komt niet overeen — afsluiten geblokkeerd.", "grind.regelpaket.osignerat": "Er wordt een extern regelpakket zonder handtekening gebruikt — afsluiten geblokkeerd.", "grind.evidens": "Bewijsgraad boven E0", diff --git a/felsokning/services/gemensam/sprak/pl.mjs b/felsokning/services/gemensam/sprak/pl.mjs index 95c85a6..91f31cd 100644 --- a/felsokning/services/gemensam/sprak/pl.mjs +++ b/felsokning/services/gemensam/sprak/pl.mjs @@ -44,7 +44,7 @@ export const PL = { "grind.foton": "Fotografie obecne przy punktach kontrolnych, które ich wymagają", "grind.slutsats": "Wniosek końcowy (ALVA-RULE-200)", "grind.hogvolt.behorighet": "Uprawnienia do prac przy wysokim napięciu potwierdzone", - "grind.hogvolt.spanningslos": "Pojazd pozbawiony napięcia zgodnie z procedurą producenta", + "grind.hogvolt.spanningslos": "Pojazd pozbawiony napięcia zgodnie z procedurą producenta, brak napięcia potwierdzony pomiarem", "grind.regelpaket": "Podpis pakietu reguł nie zgadza się — zamknięcie zablokowane.", "grind.regelpaket.osignerat": "Używany jest zewnętrzny pakiet reguł bez podpisu — zamknięcie zablokowane.", "grind.evidens": "Poziom dowodu powyżej E0", diff --git a/felsokning/services/gemensam/sprak/pt.mjs b/felsokning/services/gemensam/sprak/pt.mjs index b4da23d..3af7793 100644 --- a/felsokning/services/gemensam/sprak/pt.mjs +++ b/felsokning/services/gemensam/sprak/pt.mjs @@ -41,7 +41,7 @@ export const PT = { "grind.foton": "Fotografias presentes nos pontos de controlo que as exigem", "grind.slutsats": "Conclusão (ALVA-RULE-200)", "grind.hogvolt.behorighet": "Habilitação de alta tensão confirmada", - "grind.hogvolt.spanningslos": "Veículo colocado fora de tensão segundo o procedimento do fabricante", + "grind.hogvolt.spanningslos": "Veículo colocado fora de tensão segundo o procedimento do fabricante, ausência de tensão verificada por medição", "grind.regelpaket": "A assinatura do pacote de regras não corresponde — encerramento bloqueado.", "grind.regelpaket.osignerat": "Está a ser utilizado um pacote de regras externo sem assinatura — encerramento bloqueado.", diff --git a/felsokning/services/gemensam/sprak/ro.mjs b/felsokning/services/gemensam/sprak/ro.mjs index bb608ae..eccb156 100644 --- a/felsokning/services/gemensam/sprak/ro.mjs +++ b/felsokning/services/gemensam/sprak/ro.mjs @@ -47,7 +47,7 @@ export const RO = { "grind.foton": "Fotografii prezente pentru controalele care le impun", "grind.slutsats": "Concluzie finală (ALVA-RULE-200)", "grind.hogvolt.behorighet": "Autorizarea pentru înaltă tensiune confirmată", - "grind.hogvolt.spanningslos": "Vehicul scos de sub tensiune conform procedurii producătorului", + "grind.hogvolt.spanningslos": "Vehicul scos de sub tensiune conform procedurii producătorului, absența tensiunii verificată prin măsurare", "grind.regelpaket": "Semnătura pachetului de reguli nu corespunde — închiderea este blocată.", "grind.regelpaket.osignerat": "Se utilizează un pachet de reguli extern fără semnătură — închiderea este blocată.", diff --git a/felsokning/services/gemensam/sprak/sv.mjs b/felsokning/services/gemensam/sprak/sv.mjs index b436a8f..3a6b0ec 100644 --- a/felsokning/services/gemensam/sprak/sv.mjs +++ b/felsokning/services/gemensam/sprak/sv.mjs @@ -41,7 +41,7 @@ export const SV = { "grind.foton": "Foton finns för de kontrollpunkter som kräver det", "grind.slutsats": "Slutsats (ALVA-RULE-200)", "grind.hogvolt.behorighet": "Högvoltsbehörighet bekräftad", - "grind.hogvolt.spanningslos": "Fordonet spänningslöst enligt tillverkarens procedur", + "grind.hogvolt.spanningslos": "Fordonet spänningslöst enligt tillverkarens procedur, spänningsfrihet verifierad genom mätning", "grind.regelpaket": "Regelpaketets signatur stämmer inte — avslut spärrat.", "grind.regelpaket.osignerat": "Ett externt regelpaket används utan signatur — avslut spärrat.", "grind.evidens": "Evidensnivå över E0", diff --git a/felsokning/services/gemensam/version.mjs b/felsokning/services/gemensam/version.mjs index 61eb2b1..83dbebf 100644 --- a/felsokning/services/gemensam/version.mjs +++ b/felsokning/services/gemensam/version.mjs @@ -21,6 +21,20 @@ // TÜV-härdningen ändrade vad loggen garanterar. export const UTGAVOR = [ + { + version: "3.5", + datum: "2026-08-06", + commit: "8072ea6", + rubrik: "Fackgranskning av metodikinnehållet — säkerheten först, på riktigt", + andringar: [ + "Sex domängranskningar av metodikbiblioteket. Tio kritiska fynd åtgärdade: högvoltens skyddsutrustning kom SIST i säkerhetssekvensen och står nu först, spänningsfrihetsmätningen kräver kategoriserat instrument med prova–mät–prova, frånskiljaren låses mot återinkoppling, och metodiken säger nu vad som är förbjudet utan behörighet.", + "Klimatmetodiken fick sin saknade behörighetsgrind (f-gascertifikat) — samma mönster som högvolt. ADAS-provkörningen instruerade bokstavligen att provocera nödbromsingrepp i trafik; nu tillverkarens testmetod.", + "Ett klistringsfel gjorde att engelska styrningsklagomål ('pulls', 'steering') matchade högvoltsmetodiken — styrningens nyckelord låg inklistrade i högvoltens lista. Borttaget.", + "Säkerhet före ingrepp överallt: öppna aldrig varmt kylsystem, trycksänk bränslesystemet och rör aldrig högtryckssidan, deaktivera tändning och insprutning före kompressionsprov, avgasutsug vid mätning med motorn igång, ingen provkörning vid bränsle- eller bromsvätskeläckage, prova aldrig SRS-kretsar med mätare.", + "23 nya kontroller där granskningen fann diagnostiska hål (bromsvätskenivå, brutna fjädrar, drivaxlar, emissionsmätning, HVIL, vattenprov), mätvärden med referensvärden och villkor i stället för nakna uppmaningar, och felkodsavläsning i det generiska skyddsnätet.", + "Grindtexten för spänningslöshet kräver nu uttryckligen verifiering genom mätning — på alla tio språken. Protokoll för mänsklig fackgranskning per marknad: ALVA-DOC-0010. Granskat-flaggorna är oförändrade — detta är en teknisk granskning, inte marknadens.", + ], + }, { version: "3.4", datum: "2026-08-06",