---
title: 'Analytika spotreby'
description: Úplná analýza jedného uzla merania plynu — kvalita údajov, profil spotreby, pasport zariadenia a denník udalostí, s voliteľným forenzným detailom.
section: AI Analytics
weight: 1
related:
  - ai-analytics/node-reports/metering-bypass
  - ai-analytics/node-reports/battery-forecast
  - ai-analytics/fleet-reports/top-problem-nodes
---

import Alert from '@/components/docs/Alert.astro';
import Image from '@/components/docs/Image.astro';

Analytika spotreby je podrobný metrologický a prevádzkový rozbor **jedného uzla merania plynu** za zvolené obdobie. Cieľom nie je len nakresliť graf spotreby, ale odpovedať na praktické otázky služby merania. Analýza využíva medzinárodné metrologické referencie tam, kde zdôvodňujú konkrétne číslo: ISO 5167 (meranie clonou), EN 12405-1 (elektronické prepočítavače objemu plynu), OIML R 137 (plynomery), OIML R 140 (meracie systémy pre plynné palivá), ISO 6976 (výhrevnosť), EN 1359 (membránové plynomery) a EN 14236 (ultrazvukové domové plynomery).

## Účel

<Image src="/images/ai-analytics/sk/consumption-analytics/01_hero_block.svg" alt="Hlavička výkazu" />

_Hlavička výkazu._ To, čo používateľ vidí ako prvé: názov a adresa uzla, typ korektora, kľúčové metriky poslednej hodiny (P, T), celkový objem údajov v okne (body), počet nájdených udalostí, metóda analýzy (pravidlá / pravidlá+LLM / iba LLM), trvanie načítania a pokryté obdobie.

Výkaz odpovedá na každodenné otázky služby merania:

- či sú údaje za zvolené obdobie úplné;
- či sa archív dá použiť na komerčné uzavretie obdobia;
- či je na konci obdobia chvostový výpadok;
- či funguje aktuálna telemetria;
- či sa hodinový prietok zhoduje s nakumulovaným objemom;
- či sú niektoré snímače P/T zaseknuté;
- či sú problémy s komunikáciou alebo doručením archívu;
- či je metrologický pasport dostatočne vyplnený;
- či sú prítomné podozrivé vzorce nedopočtu;
- či je potrebná terénna obhliadka;
- akú úlohu má zohrať každý: metrológ, dispečer, inžinier komunikácie, integračný inžinier, terénna brigáda alebo billingový analytik.

<Alert type="warning">
  Výkaz **nie je formálnym aktom o incidente**. Nedokazuje zásah, obídenie merania ani krádež plynu.
  Ukazuje technické a metrologické príznaky, ktoré si vyžadujú overenie. Právny záver je samostatný
  proces, ktorý vyžaduje povinnú terénnu obhliadku.
</Alert>

## Hlavná logika

Výkaz oddeľuje **tri ortogonálne hodnotenia**, ktoré sa nesmú miešať:

| Hodnotenie                         | Význam                                                         |
| ---------------------------------- | -------------------------------------------------------------- |
| Pripravenosť údajov obdobia        | či je archív použiteľný za zvolené obdobie                     |
| Aktuálny stav telemetrie           | či uzol pracuje v okamihu generovania výkazu                   |
| Pripravenosť na komerčné uzavretie | či sa obdobie dá použiť na billing bez manuálnej rekonciliácie |

Historické obdobie môže byť plne použiteľné na analýzu, aj keď uzol dnes mlčí.

**Príklad správnej interpretácie:**

```
Údaje za obdobie:      použiteľné s výhradami
Aktuálny monitoring:   degradovaný
Komerčné uzavretie:    nepripravené na finálne uzavretie
```

Nie je to rozpor. Znamená to: historické údaje sú čiastočne použiteľné, ale aktuálna telemetria alebo komerčné uzavretie si vyžaduje dodatočné overenie.

## Slovník pojmov

| Pojem                 | Význam                                        |
| --------------------- | --------------------------------------------- |
| Q                     | hodinový prietok, m³/h                        |
| P                     | tlak plynu, kPa                               |
| T                     | teplota plynu, °C                             |
| V                     | nakumulovaný objem, m³                        |
| ΣQ                    | súčet hodinových prietokov za obdobie         |
| ΔV                    | prírastok nakumulovaného objemu za obdobie    |
| H_expected            | koľko hodín malo byť vo výkazovom období      |
| H_received            | koľko hodinových záznamov sa skutočne prijalo |
| H_validQ              | koľko záznamov má validnú hodnotu prietoku    |
| H_nullQ               | koľko záznamov existuje, ale s prietokom NULL |
| H_missing             | koľko hodín v archíve chýba                   |
| final_tail_gap        | absencia údajov na konci obdobia              |
| internal_gap          | výpadok vnútri obdobia                        |
| freshness             | aktuálnosť poslednej hodiny archívu           |
| passport completeness | vyplnenosť metrologického pasportu            |
| incident              | zoskupený problém vyžadujúci akciu            |

## Časové okno analýzy

### Začiatok a koniec obdobia

Zadáte začiatok a koniec obdobia. Výkaz analyzuje každú hodinu od 00:00 prvého dňa do 23:00 posledného dňa:

$$
\text{window\_start} = \text{report\_start } 00{:}00, \quad
\text{window\_end} = \text{report\_end } 23{:}00
$$

### Očakávaný počet hodín

$$
H_\text{expected} = \mathrm{count}(\text{hours from window\_start to window\_end})
$$

Pre ročné obdobie zvyčajne $H_\text{expected} \approx 8760$.

## Rozloženie dostupnosti archívu

| Kategória         | Význam                                        |
| ----------------- | --------------------------------------------- |
| Validná hodina    | záznam existuje s korektnou hodnotou prietoku |
| NULL-hodina       | záznam existuje, ale prietok je prázdny       |
| Vnútorný výpadok  | hodina chýba vnútri obdobia                   |
| Chvostový výpadok | chýbajúce hodiny na konci obdobia             |
| Nepokrytá hodina  | hodina bez validnej hodnoty prietoku          |

**Vzorce:**

$$
H_\text{received} = \mathrm{count}(\text{hourly records})
$$

$$
H_\text{validQ} = \mathrm{count}(\text{records where } Q \neq \text{NULL and } Q \geq 0)
$$

$$
H_\text{nullQ} = \mathrm{count}(\text{records where } Q = \text{NULL})
$$

$$
H_\text{missing} = \max(0, H_\text{expected} - H_\text{received})
$$

$$
H_\text{unobserved} = H_\text{missing} + H_\text{nullQ}
$$

<Alert type="warning">
  Chvostový výpadok sa **nepripočítava dvojito** k `missing_records`, ak sú tieto hodiny už súčasťou
  celkového počtu chýbajúcich záznamov.
</Alert>

## Úplnosť údajov

<Image
  src="/images/ai-analytics/sk/consumption-analytics/07_completeness_validity.svg"
  alt="Dostupnosť, aktuálnosť a validita údajov"
/>

_Dostupnosť, aktuálnosť a validita_ sú tri ortogonálne rezy v kontrole spôsobilosti archívu pred akoukoľvek zmysluplnou analýzou. **Úplnosť** odpovedá: koľko z očakávaných hodín skutočne prišlo. **Aktuálnosť** — nakoľko sú údaje aktuálne _práve teraz_. **Validita** — či hodnoty patria do fyzikálne zmysluplných rozsahov.

### Vzorec pokrytia

$$
\mathrm{Coverage}_\text{valid} = \frac{H_\text{validQ}}{H_\text{expected}} \times 100\,\%
$$

Doplnkovo:

$$
\mathrm{Coverage}_\text{received} = \frac{H_\text{received}}{H_\text{expected}} \times 100\,\%
$$

Na rozdiele záleží:

- `Coverage_received` — či záznamy vôbec prišli;
- `Coverage_valid` — či sú použiteľné na analýzu prietoku.

### Interpretácia pokrytia

| Pokrytie | Stav      | Význam                          |
| -------- | --------- | ------------------------------- |
| ≥ 98 %   | Excellent | archív je takmer úplný          |
| 95–98 %  | Good      | použiteľný s drobnými výhradami |
| 80–95 %  | Warning   | citeľné výpadky                 |
| 50–80 %  | Major     | potrebná manuálna rekonciliácia |
| < 50 %   | Critical  | nepoužiteľný pre väčšinu úloh   |

## Chvostový výpadok

Chvostový výpadok = absencia archívnych údajov na konci zvoleného obdobia.

$$
H_\text{tail} = \text{window\_end} - \text{last\_valid\_archive\_hour}
$$

| Chvost  | Stav                                                        |
| ------- | ----------------------------------------------------------- |
| ≤ 2 h   | prípustné                                                   |
| 2–6 h   | warning                                                     |
| 6–24 h  | major                                                       |
| > 24 h  | critical                                                    |
| > 168 h | prístroj mlčí viac ako týždeň — naliehavá terénna obhliadka |

Chvostový výpadok odpovedá: **dá sa obdobie považovať za úplne uzavreté?** Ak na konci údaje chýbajú, výkaz môže byť stále vhodný na retrospektívnu analýzu, ale **nie je pripravený** na finálne komerčné uzavretie (pozri Komerčný metrologický verdikt).

## Aktuálnosť údajov

Dve oddelené metriky aktuálnosti.

### Aktuálnosť voči koncu obdobia

Používa sa pri historickej analýze a billingu:

$$
\mathrm{Lag}_\text{period} = \text{window\_end} - \text{last\_valid\_archive\_hour}
$$

Odpovedá: **sú údaje až do konca zvoleného obdobia?**

### Aktuálnosť voči okamihu generovania

Používa sa pri aktuálnom monitoringu:

$$
\mathrm{Lag}_\text{current} = \text{generation\_time} - \text{last\_valid\_archive\_hour}
$$

Odpovedá: **pracuje uzol práve teraz?**

### Pokrytie posledných 24 hodín

$$
\mathrm{Fresh}_{24h} = \frac{H_\text{validQ, last 24h}}{24} \times 100\,\%
$$

### Kompozitné skóre aktuálnosti

$$
\mathrm{LagScore} = \max(0, 100 - 2 \times \mathrm{Lag}_\text{period})
$$

$$
\mathrm{FreshnessScore} = \frac{\mathrm{LagScore} + \mathrm{Fresh}_{24h}}{2}
$$

## Aktuálny stav telemetrie

<Image
  src="/images/ai-analytics/sk/consumption-analytics/16_telemetry_major.svg"
  alt="Aktuálny stav telemetrie a súhrn za uzol"
/>

_Aktuálny monitoring a súhrn za uzol._ Tento blok odpovedá na otázku „dá sa práve teraz rozhodovať na základe tohto archívu?“. Porovnávajú sa tri okamihy: posledná hodina archívu, koniec výkazového okna a okamih generovania výkazu. Ak sú sedenia svieže, no archív zaostáva — problém **nie je u dispečera**, ale v parseri/importe na strane servera. AI-komentár dáva operátorovi krátky ľudský záver, **bez prepisovania** formálnych stavov.

Počíta sa **voči okamihu generovania**, nie voči obdobiu:

$$
\mathrm{Lag}_\text{archive, current} = \text{generation\_time} - \text{last\_archive\_hour}
$$

$$
\mathrm{Age}_\text{session} = \text{generation\_time} - \text{last\_session\_time}
$$

| Oneskorenie  | Stav     |
| ------------ | -------- |
| ≤ 6 h        | normal   |
| 6–24 h       | warning  |
| 24–72 h      | major    |
| > 72 h       | critical |
| žiadne údaje | critical |

**Diferenciálna diagnostika:**

| Príznak                         | Pravdepodobná príčina                             |
| ------------------------------- | ------------------------------------------------- |
| sedenia svieže, archív zaostáva | problém **doručenia / parsera / importu** archívu |
| žiadne sedenia, žiadny archív   | modem / SIM / anténa / napájanie / batéria        |

## Validita údajov

Kontrola fyzikálnych rozsahov pre každý kanál:

| Kanál     | Podmienka                                      |
| --------- | ---------------------------------------------- |
| Prietok Q | $Q \geq 0$                                     |
| Tlak P    | $0 < P \leq 5000\text{ kPa}$                   |
| Teplota T | $-50\,°\mathrm{C} \leq T \leq 80\,°\mathrm{C}$ |

Pre každý kanál:

$$
\mathrm{Validity}_\text{ch} = \frac{N_\text{ok}}{N_\text{total}} \times 100\,\%,
\quad
N_\text{ok} = N_\text{total} - N_\text{null} - N_\text{below} - N_\text{above}
$$

Agregát:

$$
\mathrm{Validity}_\text{total} = \frac{\sum N_\text{ok}}{\sum N_\text{checked}} \times 100\,\%
$$

## Stabilita senzorov

<Image
  src="/images/ai-analytics/sk/consumption-analytics/06_sensor_health.svg"
  alt="Diagnostika stability senzorov"
/>

_Podrobná diagnostika snímačov P a T._ Každý zaseknutý interval má svoj start/end/dĺžku/hodnotu. Dlhé intervaly s rovnakou hodnotou sú takmer vždy príznakom poruchy ADC / resetu snímača / zastavenia prevádzkového prietoku — **nie reálnou fyzikou**. Spiky — prudké skoky ≥ prah za hodinu — naopak svedčia o telemetrickom artefakte alebo resete snímača.

<Image
  src="/images/ai-analytics/sk/consumption-analytics/05_sensors_critical.svg"
  alt="Stav senzorov a plán akcií"
/>

_Výklad a plán akcií pre senzory._ „Stav senzorov: KRITICKÝ“ je finálne slovné zhrnutie pre oba kanály. Pre každý zistený problém sa automaticky priradí odporúčanie, priorita, rola-vykonávateľ a krátky trigger (čo presne ho spustilo).

### Zaseknutý senzor

Senzor sa považuje za zaseknutý, ak sa hodnota mení takmer zanedbateľne dlhšie ako prahová doba (24 h):

$$
H_\text{stuck} \geq 24 \text{ h}
$$

Tolerancia rovnakosti (0,1 %):

$$
\mathrm{tol}(x) = \max\bigl(0.05,\ |x| \times 0.001\bigr)
$$

Body sa považujú za rovnaké, ak $|x_i - x_\text{run}| \leq \mathrm{tol}(x_\text{run})$.

### Spike teploty

$$
|T_i - T_{i-1}| > 20\,°\mathrm{C / h}
$$

### Spike tlaku

$$
|P_i - P_{i-1}| > \max(1.0, 0.5 \times \overline{P})
$$

### Interpretácia

| Príznak           | Význam                                         |
| ----------------- | ---------------------------------------------- |
| Dlhé zaseknutie T | možný výpadok snímača T                        |
| Dlhé zaseknutie P | možný výpadok snímača P alebo režim `P_const`  |
| Početné spiky P   | nestabilita kanála alebo telemetrický artefakt |
| Početné spiky T   | chyba snímača alebo prudký technologický režim |

<Alert type="warning">
  Zaseknutý snímač **nie je dôkazom** zásahu. Je to predovšetkým metrologické riziko, ktoré si
  vyžaduje overenie podľa OIML R 137 / EN 12405-1.
</Alert>

## Súhrnné skóre kvality archívu

<Image
  src="/images/ai-analytics/sk/consumption-analytics/08_quality_summary.svg"
  alt="Súhrnný panel kvality"
/>

_Súhrnný panel kvality._ Hore — hlavné KPI výkazu (hodiny údajov, objem, udalosti, zastavenia/drift). Nižšie — záložky sekcií (kvalita údajov, profil spotreby, technický pasport, nedopočet a manipulácia, anomálie a incidenty, denne, zdroje). V záložke kvality údajov — 6 subindikátorov 0–100 plus slovný verdikt a váhy kompozitného skóre.

Výkaz produkuje **5 ortogonálnych skóre** (0–100 každé), ktoré pokrývajú samostatné stránky kvality:

| Score                         | O čom                                    |
| ----------------------------- | ---------------------------------------- |
| `score_historical_archive`    | použiteľnosť historických údajov obdobia |
| `score_data_validity`         | správnosť hodnôt Q/P/T                   |
| `score_sensor_health`         | stav snímačov (stuck, spiky)             |
| `score_timeliness`            | sviežosť archívu a sedení                |
| `score_operational_readiness` | pripravenosť na aktuálny monitoring      |

<Alert type="warning">
  Jediný **kompozitný skalár** „celková kvalita“ sa zámerne neprodukuje — miešanie historickej
  použiteľnosti s aktuálnosťou dáva falošne upokojujúci obraz. Každé skóre sa číta samostatne s
  vlastným verdiktom.
</Alert>

## Odhad potenciálne nepokrytého objemu

<Image
  src="/images/ai-analytics/sk/consumption-analytics/14_uncovered_volume.svg"
  alt="Odhad rizika nepokrytého objemu"
/>

_Dva rôzne odhady toho istého objemu._ Priemer za obdobie je konzervatívny (rekonštrukcia chvosta pri rovnomernom profile), zatiaľ čo profil aktívnych hodín lepšie zachytáva dennú rytmiku (pracovná zmena / noc / víkend). Rozdiel medzi nimi je **pásmo neistoty**, nie jediný bod. Úroveň rizika závisí od dĺžky výpadku a typického priemerného prietoku.

<Image
  src="/images/ai-analytics/sk/consumption-analytics/11_anomalous_month.svg"
  alt="Anomálny mesiac spotreby"
/>

_Anomálny mesiac spotreby._ Mesačné anomálie sú samostatný signál hodnotený v kontexte ročnej rytmiky (vykurovacia sezóna vs leto). Ak jeden mesiac **výrazne** prevyšuje medián ostatných (prah × 2), automaticky sa vytiahne nahor s odporúčaním preveriť pásku udalostí, pasport a technologické príčiny.

Tento blok odhaduje, koľko plynu mohlo prejsť počas hodín bez validných archívnych údajov.

<Alert type="warning">
  Toto **nie je potvrdená strata**. Nie je to suma krádeže ani automatická škodová požiadavka. Je to
  odhad **slepého miesta** — objemu, ktorý nie je pokrytý validným archívom.
</Alert>

### Hodiny bez validných údajov

$$
H_\text{blind} = H_\text{missing} + H_\text{nullQ}
$$

### Odhad podľa priemeru

$$
\overline{Q} = \frac{\sum Q_\text{valid}}{H_\text{validQ}},
\qquad
V_\text{blind, mean} = H_\text{blind} \times \overline{Q}
$$

Vhodný pre objekty s relatívne rovnomernou spotrebou.

### Odhad podľa profilu

Typický prietok pre hodinu dňa $h$ (medián za obdobie):

$$
\mathrm{Profile}(h) = \mathrm{median}(Q \mid \text{hour\_of\_day} = h)
$$

$$
V_\text{blind, profile} = \sum_{t \in \text{BlindHours}} \mathrm{Profile}(\text{hour}(t))
$$

Ak je profil pre hodinu nespoľahlivý, použije sa $\overline{Q}$.

### Rozsah odhadu

Zobrazujú sa obidva odhady. Ak sú si blízke — denný profil je stabilný. Ak sa značne rozchádzajú — objekt má výrazný režim prevádzky a treba zachovať opatrnosť.

## Nepracujúci uzol

Ak uzol takmer celé obdobie nemal reálnu spotrebu, absencia prietoku **sa neinterpretuje ako riziko**.

### Idle-kontrola

Adaptívny prah near-zero:

$$
Q_\text{nearzero} = \max(0.5, 0.05 \times \mathrm{median}(Q))
$$

Uzol sa považuje za nepracujúci, keď platia **obidve** podmienky:

$$
\overline{Q} \leq 0.05\text{ m³/h} \quad \text{a} \quad V_\text{blind, mean} < 5\text{ m³}
$$

### Efekt

Škála severity sa zmäkčí (max `medium` namiesto `critical`) a výkaz uvádza:

> Uzol bol fakticky mimo prevádzky / sezónne zastavený. Absencia spotreby sa nepovažuje za riziko nedopočtu.

## Q/V-zosúladenie

<Image
  src="/images/ai-analytics/sk/consumption-analytics/13_qv_volume.svg"
  alt="Analýza nakumulovaného objemu"
/>

_Zosúladenie hodinového prietoku s akumulátorom._ Metrologický komerčný účet sa vedie cez prírastok V, nie cez súčet okamžitých hodnôt Q. Zhoda ΣQ ≈ ΔV pri ≥ 80 % hodín je norma pre zdravý uzol. **Spätné posuny V** (z hodiny na hodinu, $V_{t+1} < V_t$) a **prudké skoky V** sú kritickými príznakmi porušenia archívu a takmer vždy si vyžadujú preverenie.

Kľúčový metrologický blok. Porovnáva súčet hodinových prietokov s prírastkom akumulátora.

### Základné veličiny

$$
\Sigma Q = \sum_{h=1}^{n} Q_h, \qquad
\Delta V = V_\text{end} - V_\text{start}
$$

$$
\mathrm{Diff} = \Sigma Q - \Delta V, \qquad
\mathrm{Diff}_\% = \frac{\Sigma Q - \Delta V}{\Delta V} \times 100\,\%
$$

### Interpretácia rozdielu

| $\vert\mathrm{Diff}_\%\vert$ | Verdict                        |
| ---------------------------- | ------------------------------ |
| ≤ 2 %                        | `good` (aligned)               |
| 2–5 %                        | `warn` (aligned with caveats)  |
| > 5 %                        | `bad` (mismatch)               |
| chýba V                      | `unavailable`                  |
| základ Q/V neznámy           | requires passport verification |

### Monotónnosť akumulátora

Akumulátor musí rásť alebo zostať konštantný.

Spätný posun: $\Delta V_h < -0.5\text{ m³}$ → incident `V_ROLLBACK`.

Prudký skok: $\Delta V_h > V_\text{jump\_threshold}$ → incident `V_JUMP`.

### Hodinové zosúladenie $Q \cdot 1\text{h} \approx \Delta V$

Pre každú hodinu, kde sú dostupné $Q$ aj $V$:

$$
\mathrm{Match}_h = \frac{|Q_h - \Delta V_h|}{\max(Q_h, \Delta V_h)}
$$

Hodina je zosúladená, ak $\mathrm{Match}_h \leq 20\,\%$. Podiel zosúladených hodín:

$$
\mathrm{Match}_\% = \frac{H_\text{matched}}{H_\text{checked}} \times 100\,\%
$$

### Obmedzenia Q/V-zosúladenia

Aj dobrá numerická zhoda sa nerovná komerčnej použiteľnosti. Treba poznať:

| Otázka                               | Prečo na tom záleží                    |
| ------------------------------------ | -------------------------------------- |
| Q — štandardný alebo pracovný objem? | rôzne základy vnášajú posun            |
| V — štandardný alebo pracovný objem? | potrebný rovnaký základ                |
| Aká je váha impulzu?                 | nutná pre úplnú komerčnú rekonciliáciu |
| Je V monotónny?                      | spätné posuny spochybňujú archív       |
| Sú prítomné manuálne korekcie?       | môžu vysvetliť rozdiel                 |

Ak je základ neznámy:

> Q/V-zosúladenie je numericky zosúladené, no komerčný základ nie je potvrdený. Treba overiť pasport, váhu impulzu a typ objemu (pozri EN 12405-1 §7).

## Spojenie vs archív

<Image
  src="/images/ai-analytics/sk/consumption-analytics/12_csq_vs_archive.svg"
  alt="Diagnostika CSQ vs archív"
/>

_Diferenciálna diagnostika „spojenie vs doručenie“._ Ak v okne sú sedenia, no archív chýba — zariadenie odpovedá cez GSM/CSQ, ale archív sa buď nezapisuje, alebo neparsuje na strane servera. Toto **nie je** problém dispečera / modemu — má ho riešiť integračný inžinier.

### Základné vzorce

$$
N_\text{sessions} = \mathrm{count}(\text{sessions}), \quad
N_\text{success} = \mathrm{count}(\text{successful sessions})
$$

$$
\mathrm{SessionSuccess}_\% = \frac{N_\text{success}}{N_\text{sessions}} \times 100\,\%
$$

### Doručenie archívu

Pre každý výpadok sa kontroluje, či boli v rovnakom časovom okne sedenia:

- `gap_with_sessions` — výpadok archívu, ale sedenia boli;
- `gap_without_sessions` — výpadok archívu a ani sedenia neboli.

### Diferenciálna diagnostika

| Situácia                            | Pravdepodobná príčina                                      |
| ----------------------------------- | ---------------------------------------------------------- |
| žiadne sedenia, žiadny archív       | modem / SIM / anténa / napájanie                           |
| sedenia OK, archív sa neaktualizuje | doručenie hodinového archívu / parser / import             |
| sedenia OK, no časť archívu chýba   | nekompletné čítanie / prerušenie stránok / backend         |
| sedenia svieže, archív starý        | **nie je to problém GSM**, je to problém doručenia archívu |
| timestamp sedenia z budúcnosti      | nesúlad hodín / časového pásma                             |

### Kvalita signálu

Ak je kvalita signálu hlásená ako CSQ:

$$
\mathrm{RSSI}_\text{dBm} \approx -113 + 2 \times \mathrm{CSQ}
$$

Príklad: CSQ=29 → RSSI ≈ −55 dBm (vynikajúci).

## Metrologický pasport

### Povinné polia s váhami

Pasport definuje 11 polí s váhami:

| Pole                       | Váha    | Načo                               |
| -------------------------- | ------- | ---------------------------------- |
| equipment_serial_number    | 1.0     | identifikácia                      |
| equipment_type_id          | 1.0     | model/typ                          |
| installation_date          | 0.8     | prevádzkový kontext                |
| **verification_date**      | **1.5** | právna platnosť (OIML R 137 čl. 3) |
| next_verification_date     | 1.0     | kontrola termínu                   |
| **flow_range** (Qmin/Qmax) | **1.5** | rozsah podľa EN 12405-1            |
| meter_serial_number        | 1.0     | identifikácia na mieste            |
| meter_type                 | 1.0     | metrologické prepojenie            |
| firmware_version           | 0.5     | kompatibilita a známe chyby        |
| p_const                    | 0.5     | substitučný tlak                   |
| pulse_weight               | 0.8     | pre Q/V-zosúladenie                |

### Vzorec úplnosti

$$
\mathrm{PassportCompleteness} = \frac{\sum w_\text{filled}}{\sum w_\text{required}} \times 100\,\%
$$

### Interpretácia

| Úplnosť | Stav                |
| ------- | ------------------- |
| ≥ 80 %  | COMPLETE            |
| 50–80 % | PARTIAL             |
| 20–50 % | INCOMPLETE          |
| < 20 %  | CRITICAL_INCOMPLETE |

Ak je pasport neúplný, komerčný verdikt musí obsahovať výhradu:

> Metrologický pasport je neúplný. Komerčný verdikt vyžaduje manuálnu rekonciliáciu a odvolanie na OIML R 137 / EN 12405-1.

## Podozrivé vzorce nedopočtu

<Image
  src="/images/ai-analytics/sk/consumption-analytics/03_forensic_signals.svg"
  alt="Triáž signálov nedopočtu"
/>

_Triáž signálov._ Každý signál je klasifikovaný do kategórie, má úroveň dôkazu (nízka / stredná / vysoká), poľnú prioritu, formálny dôkaz a odporúčanú akciu. **Toto nie je verdikt pre uzol** — je to zoznam okien, ktoré má operátor alebo servisná služba manuálne preveriť.

Sú to **heuristiky**, nie dôkazy.

### Near-zero threshold

$$
Q_\text{nearzero} = \max(0.5, 0.05 \times \mathrm{median}(Q))
$$

### Nulový prietok v aktívnych hodinách

Hodina sa považuje za podozrivo tichú, ak $Q_h < Q_\text{nearzero}$ A zároveň patrí do typového aktívneho intervalu objektu.

### Live-P + zero (Q≈0 pri živom P)

Môže ísť o:

- odstávku / zatvorený downstream-ventil / sezónne zastavenie;
- režim P_const alebo poruchu snímača;
- chybu impulzného vstupu;
- **možný zásah** — no nepreukázaný.

<Alert type="warning">
  Live-P + zero **nie je dôkazom** zásahu. Je to len dôvod overiť režim prevádzky uzla.
</Alert>

### Break-recovery

Vzorec: normálne Q → Q≈0 → normálne Q. Prudká zmena režimu, no nie dôkaz porušenia. Možné vysvetlenia: plánované odstavenie / zastavenie objektu / zatvorenie ventilu / výpadok kanála / manuálny zásah / chyba doručenia archívu.

### Potvrdený zásah

Štatistický vzorec sám osebe **nemôže** potvrdiť zásah. Potrebné sú **tvrdé dôkazy**:

- otvorenie skrinky (cover_open v device events);
- magnetické pôsobenie;
- zmena parametrov (parameter_change);
- neautorizovaná zmena P_const;
- reset archívu;
- potvrdená manipulácia s impulzným vstupom;
- akt o terénnej kontrole;
- fotografie / plomby / odpočty na mieste.

Správny tvar verdiktu:

```
Confirmed tampering: NOT DETECTED
Suspicious patterns:  PRESENT
Legal readiness:      NOT READY
```

## Komerčný metrologický verdikt

<Image
  src="/images/ai-analytics/sk/consumption-analytics/02_commercial_verdict.svg"
  alt="Komerčný metrologický verdikt"
/>

_Manažérsky stav._ 7 riadkov uzatvára 7 rôznych otázok na úrovni vedúceho: dá sa obdobie uzavrieť (billing), pracuje uzol teraz (monitoring), súhlasí archív s akumulátorom (Q×h vs ΔV), je potrebná terénna obhliadka, sú prítomné podozrivé vzorce, ako celistvé sú údaje, sú prítomné všetky parametre pasportu. Každý riadok je klikateľný a odkazuje na dôkazovú časť výkazu.

Hlavný verdikt pre vedúceho služby merania.

### Archív pre fakturáciu — pravidlá

**Ready:**

- Coverage ≥ 98 %
- Tail gap ≤ 2 h
- Q/V aligned (`good`)
- V monotónny
- Passport COMPLETE
- Žiadne kritické problémy so snímačmi

**Ready with caveats:**

- Coverage 95–98 %
- Tail gap 2–24 h
- Q/V aligned with caveats (`warn`)
- Passport PARTIAL
- Žiadny kritický blocker

**Not ready for final closure:**

- Tail gap > 24 h ALEBO
- Q/V nezaradené ALEBO
- V rollback prítomný ALEBO
- Pasport neúplný v komerčných poliach ALEBO
- Kritický problém so snímačom

**Not usable:**

- Coverage kriticky nízke ALEBO
- archív poškodený ALEBO
- V má veľký rollback/skoky ALEBO
- Q/V úplne nezosúladené ALEBO
- kľúčový kanál nedostupný

### Aktuálny monitoring — hodnotený oddelene

| Podmienka                      | Stav                           |
| ------------------------------ | ------------------------------ |
| archív aj sedenie svieže       | usable                         |
| archív zaostáva, no sedenia sú | degraded / delivery issue      |
| archív aj sedenia staré        | critical / communication issue |
| timestamp neplatný             | unreliable                     |

### Terénna obhliadka

Obhliadka je nutná, ak platí **aspoň jedno** z:

- chvostový výpadok nebol obnovený;
- Q/V nezaradené;
- prítomný spätný posun akumulátora;
- pasport kriticky neúplný;
- snímač P alebo T zaseknutý;
- prítomné podozrivé vzorce nedopočtu;
- denník udalostí nedostupný, no prítomné silné anomálie;
- aktuálna telemetria kriticky degradovaná.

## Incidenty

Incident je **zoskupený** problém, nie každý raw-záznam.

### Typy

| Typ                    | Význam                        |
| ---------------------- | ----------------------------- |
| `FINAL_TAIL_GAP`       | žiadne údaje na konci obdobia |
| `COMMUNICATION_GAP`    | prerušenie spojenia           |
| `ARCHIVE_DELIVERY_GAP` | sedenia sú, archív nedoručený |
| `Q_V_MISMATCH`         | Q a V sa nezhodujú            |
| `V_ROLLBACK`           | spätný posun akumulátora      |
| `P_SENSOR_STUCK`       | zaseknutý tlak                |
| `T_SENSOR_STUCK`       | zaseknutá teplota             |
| `PASSPORT_INCOMPLETE`  | chýbajú polia pasportu        |
| `TAMPERING_CANDIDATE`  | podozrivý vzorec, nie dôkaz   |

### Princíp zoskupovania

```
raw events → grouped incidents → top priority incidents
```

Príklad: 301 raw → 15 grouped → Top-5 na akciu. Operátor nesmie vidieť 301 rovnakých udalostí ako 301 samostatných problémov.

## Plán akcií

<Image
  src="/images/ai-analytics/sk/consumption-analytics/09_action_plan_checklist.svg"
  alt="Plán akcií podľa rolí a terénny checklist"
/>

_Akcie s prioritou P0/P1/P2._ Každá akcia má rolu-vykonávateľa, termín (dnes / do dňa / 1–3 dni) a uvádza **príčinu**, ktorá ju zaradila do zoznamu. Terénny checklist sa generuje automaticky z verdiktu a otvorených incidentov: čo vziať, kde sa pozrieť, čo zmerať — s označením P0/P1 pre prioritizáciu na mieste.

Každé odporúčanie je naviazané na príčinu.

| Pole     | Popis                             |
| -------- | --------------------------------- |
| ID       | číslo odporúčania                 |
| Priorita | P0 / P1 / P2 / P3                 |
| Akcia    | čo treba spraviť                  |
| Rola     | kto je zodpovedný                 |
| Termín   | dokedy treba splniť               |
| Príčina  | prečo táto akcia vznikla          |
| Stav     | open / assigned / done / verified |

### Príklady pravidiel

| Podmienka                    | Akcia                                                            |
| ---------------------------- | ---------------------------------------------------------------- |
| chvost > 24h, sedenia svieže | backend: obnoviť doručenie hodinového archívu                    |
| chvost > 24h, žiadne sedenia | spojenie: skontrolovať modem/SIM/napájanie                       |
| T stuck ≥ 24h                | metrológ: overiť snímač T (OIML R 137)                           |
| P stuck ≥ 24h                | metrológ: overiť snímač P alebo nastavenie P_const               |
| Q/V mismatch                 | metrológ + billing: zosúladiť V, Q, váhu impulzu (EN 12405-1 §7) |
| pasport neúplný              | administrátor / metrológ: doplniť pasport                        |
| suspicious patterns          | terénna brigáda: skontrolovať plomby, impulzný vstup, ventily    |

## Terénny checklist

### Čo vziať

etalónový manometer • etalónový teplomer • multimeter • tester signálu/antény • sada plômb • protokol o obhliadke • prístup k archívu a pasportu • fotofixácia.

### Čo skontrolovať

plomby prepočítavača a počítadla • impulzný kábel • snímače P, T • modem, anténa, napájanie, batéria • uzatváracie ventily • možný bypass • súlad pasportu so skutočným zariadením.

### Čo zmerať

etalónové P, T • aktuálne Q • nakumulované V • údaje externého počítadla • CSQ/RSSI • napätie napájania • impulzy na vstupe • dátum/čas prepočítavača • P_const • Qmin/Qmax • váha impulzu.

### Čo odfotiť

displej prepočítavača (P/T/Q/V) • dátum/čas na prístroji • sériové čísla • plomby • impulzný kábel • snímače • modem a anténa • celkový pohľad • polohy ventilov.

## Zdroj podľa behaviorálneho profilu

Konkrétny archív API a pole sa vyberajú automaticky podľa správania prístroja. Tri rodiny:

### Súvislý hodinový archív

Prístroj zapisuje záznam **presne raz za hodinu**. Priorita zdrojov:

1. priame pole „prietok za hodinu“ (ak ho prístroj počíta);
2. Δ nakumulovaného štandardného objemu;
3. Δ nakumulovaného pracovného objemu.

Prípustný výpadok — **presne 1 hodina**.

### Sedeniami riadený prenos s archívom aktuálneho stavu

Prístroj zapisuje záznamy pri pripojení, nie striktne raz za hodinu. Primárnym zdrojom je **okamžitý prietok** (počítaný prístrojom); fallbackom je Δ nakumulovaného objemu s normalizáciou:

$$
\dot Q_h = \frac{V_t - V_{t-\Delta t}}{\Delta t / 3600}
$$

Prípustný výpadok — **do 6 hodín**; pri $\Delta t > 6\text{ h}$ sa bod považuje za nevalidný (pravdepodobná strata údajov, nie vybitie počítadla).

### Čisto telemetrické bloky

Prístroj prenáša len komunikáciu/stav, plyn nemerá — výkaz zobrazí N/A s poznámkou „tento prístroj nemá meraciu jednotku“.

### Sparse-fallback

Ak primárny archív poskytol < 50 % očakávaných bodov, automaticky sa skúsi sekundárny archív sedení (ako je, bez hodinového rastra) a výpočet sa vedie z neho.

## Obmedzenia metodiky

### Archív

Ak je hodinový archív neúplný, všetky odhady za chýbajúce hodiny sú **približné**.

### Q/V

Q/V-zosúladenie má zmysel iba vtedy, keď Q a V:

- majú spoločný základ objemu (štandardný alebo pracovný);
- majú správnu váhu impulzu;
- patria k jednému zdroju merania;
- sú časovo synchronizované.

Pozri OIML R 137 pre procedúru overenia a EN 12405-1 §7 pre základ prepočtu.

### Pasport

Bez Qmin/Qmax, dátumu overenia, P_const alebo váhy impulzu musí komerčný verdikt obsahovať výhradu.

### Podozrivé vzorce

Vzorce nedopočtu **nie sú dôkazom** zásahu. Iba určujú prioritu kontroly.

### AI-komentár

AI-komentár **sa nezúčastňuje** právneho verdiktu a nenahrádza formálne pravidlá. Iba pomáha vysvetliť situáciu prirodzeným jazykom.

## Ako čítať výkaz

<Image
  src="/images/ai-analytics/sk/consumption-analytics/04_chart_qpt_profile.svg"
  alt="Prietok, tlak a teplota s profilom spotreby"
/>

_Vizualizácia Q/P/T a behaviorálne profily._ Na hlavnom grafe sú udalosti zvýraznené polotransparentnými zvislými pruhmi podľa typu (skok / zastavenie / únik / zaseknutý senzor / bez údajov) — ľubovoľný typ sa dá zobraziť/skryť kliknutím na čip. Kĺzavé priemery 7 / 30 dní dávajú sezónne vyhladenie. Vzorec spotreby je dvojité rozdelenie: denný profil (hodina dňa) s rozdelením na pracovné dni/víkend a kalendárový heatmap „deň týždňa × mesiac“, ktorý ukazuje stabilitu pracovných zmien.

<Image
  src="/images/ai-analytics/sk/consumption-analytics/10_period_compare.svg"
  alt="Porovnanie s predchádzajúcim obdobím"
/>

_Porovnanie medzi obdobiami._ Year-over-year delta nesie dve pasce: (1) **zmena pokrytia predchádzajúceho obdobia** (ak tam bolo 6 %, rast udalostí „33×“ je artefakt delenia, nie skutočnosť) a (2) **chýbajúca normalizácia podľa dĺžky**. Preto pri pokrytí < 50 % porovnanie skrýva Δ % a zobrazuje iba absolútne dáta, aby operátora nedoviedlo k nesprávnym záverom.

1. Začnite **Komerčným metrologickým verdiktom**.
2. Zistite, či je obdobie pripravené na billing.
3. Samostatne skontrolujte aktuálny monitoring.
4. Prejdite k **Top-5 incidentom**.
5. Ak je chvost — choďte na „spojenie vs archív“.
6. Ak je Q/V rozdiel — choďte na analýzu nakumulovaného objemu.
7. Ak sú snímače P/T zaseknuté — choďte na stabilitu senzorov.
8. Ak je pasport neúplný — **nevynášajte** tvrdý komerčný verdikt.
9. Ak sú prítomné podozrivé vzorce — plánujte kontrolu, no **nevynášajte právny verdikt**.
10. Vykonajte plán akcií podľa rolí.

## Minimálne kritériá kompletného výkazu

Výkaz sa považuje za kompletný, ak obsahuje:

- obdobie analýzy • $H_\text{expected}$ • prijaté záznamy • validné záznamy • NULL-záznamy • vnútorné výpadky • chvostový výpadok • pokrytie • aktuálnosť • validitu Q/P/T • stav snímačov • odhad nepokrytého objemu • Q/V-zosúladenie • monotónnosť V • spojenie vs archív • úplnosť pasportu • Top-5 incidentov • plán akcií podľa rolí • terénny checklist;

- tri povinné disclaimery:
  - k nedopočtu (je to odhad slepého miesta, nie suma strát);
  - k podozreniu na zásah (vzorce ≠ dôkazy);
  - k AI-komentáru (nie je to právny verdikt).

## Parametre spustenia

| Parameter         | Popis                                                                                                                                                                                                                                                                                                                      |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Uzol merania #    | uzol merania, ktorý sa má analyzovať                                                                                                                                                                                                                                                                                       |
| Obdobie od        | začiatok okna analýzy (predvolene: jeden rok dozadu)                                                                                                                                                                                                                                                                       |
| Obdobie do        | koniec okna analýzy (predvolene: včera)                                                                                                                                                                                                                                                                                    |
| Rozšírená analýza | dodatočne načíta archív komunikačných sedení a archív mimoriadnych udalostí korektora. Aktivuje bloky Pripravenosť zdroja údajov, Stav komunikácie a Denník mimoriadnych udalostí prístroja a naplní Maticu hlavných príčin s mierou istoty a hlavnou príčinou pre každú udalosť. Predĺži zostavenie výkazu o 5–15 sekúnd. |
