---
title: 'Duge sesije'
description: Merna mesta u parku uređaja čije komunikacione sesije traju neuobičajeno dugo u odnosu na sopstveni normalni opseg, sa individualnim IQR pragovima za svako merno mesto, ocenom ozbiljnosti i analizom osnovnog uzroka na osnovu incidenata.
section: AI Analytics
weight: 7
related:
  - ai-analytics/fleet-reports/events-explorer
---

import Alert from '@/components/docs/Alert.astro';
import Image from '@/components/docs/Image.astro';

Izveštaj **Duge sesije** analizira telemetrijske komunikacione sesije na svim mernim mestima u parku uređaja i izdvaja uređaje, lokacije, dane i tipove korektora sa nestabilnom komunikacijom ili predugim prenosom podataka.

<Image src="/images/ai-analytics/long-sessions/01_hero_block.svg" alt="Zaglavlje izveštaja sa sedam ključnih pokazatelja (KPI)" />

Zaglavlje izveštaja sadrži sedam ključnih pokazatelja (KPI): kompaniju, pokrivenost parka uređaja, spremnost podataka, broj mernih mesta sa anomalijama, broj anomalnih sesija, maksimalno trajanje sesije, ukupan broj satnih incidenata i period analize. Glavni podatak je broj mernih mesta sa anomalijama u odnosu na ukupan broj mernih mesta u parku; incidenti su satni klasteri u kojima pet ili više mernih mesta istovremeno ima duge sesije.

Izveštaj odgovara na praktična operativna pitanja:

- koja merna mesta imaju preduge komunikacione sesije;
- koje se sesije smatraju anomalnim upravo za to merno mesto;
- gde je problem lokalni: antena, SIM kartica, napajanje, modem, mesto ugradnje;
- gde problem liči na incident bazne stanice ili mobilnog operatera;
- da li u parku uređaja postoje masovni satni incidenti;
- koji su dani bili najproblematičniji;
- kod kojih tipova korektora se češće javljaju duge sesije;
- koliko je energije približno utrošeno na ponovljene ili produžene prenose;
- za koja merna mesta je potreban izlazak na teren sa spoljnom antenom ili repetitorom, odnosno radi provere SIM kartice;
- gde treba proveriti mobilnog operatera ili kvalitet pokrivenosti signalom na određenoj lokaciji.

<Alert type="warning">
Izveštaj ne ocenjuje ispravnost obračunskog merenja gasa i nije forenzički izveštaj o zaobilaženju merenja. Analizira samo komunikacione sesije: trajanje, učestalost anomalija, razmere incidenata, kvalitet signala i verovatan uzrok dugih sesija.
</Alert>

## Mesto izveštaja

Izveštaj spada u operativnu dijagnostiku telemetrije. Pritom ne sme da meša dve različite situacije:

1. **Komunikacije uopšte nema.** Merno mesto se ne povezuje, podataka nema.
2. **Komunikacija postoji, ali su sesije preduge.** Merno mesto prenosi podatke, ali sporo, nestabilno ili uz ponovne pokušaje.

Ovaj izveštaj analizira **drugu** situaciju. Kada uopšte nema komunikacije, arhive ni podataka, koristite izveštaj Najproblematičnija merna mesta; kada treba da proverite da li su podaci jednog mernog mesta pogodni za obračunsko merenje, koristite izveštaj Analitika potrošnje.

## Kome je izveštaj namenjen

| Uloga | Šta dobijaju iz izveštaja |
|---|---|
| Rukovodilac operativne službe | ukupna slika parka uređaja, broj mernih mesta sa anomalijama, masovni incidenti |
| Inženjer za telekomunikacije | spisak mernih mesta sa lošim RSSI, dugim sesijama i lokalnim problemima |
| Dispečer | spisak tiketa i problematičnih dana, rangiran po prioritetu |
| Terenska ekipa | merna mesta sa vrha liste za proveru antene, SIM kartice, napajanja i mesta ugradnje |
| Inženjer za integracije | dijagnostika spremnosti podataka, pokrivenost podacima preko interfejsa API i slučajevi kada podaci o sesijama nedostaju |
| Stručnjak za nabavku | uporedni pregled po tipovima korektora |
| Analitičar parka uređaja | hipoteze o osnovnom uzroku: bazna stanica, mobilni operater, firmver, lokalno merno mesto |

## Šta izveštaj ne radi

Izveštaj ne sme da:

- dokazuje neispravnost određenog modema bez izlaska na teren;
- smatra dugu sesiju direktnim dokazom da je uređaj loš;
- automatski okrivljuje server ili mobilnog operatera;
- meša „nema podataka” sa „nema anomalija”;
- poredi trajanje sesija svih mernih mesta prema jednom zajedničkom pragu;
- smatra kratak period sa malo sesija statistički pouzdanim;
- izvodi zaključke o kvalitetu modela uređaja, a da ne uzme u obzir broj uređaja u uzorku;
- zamenjuje radiotehnički pregled mesta ugradnje;
- smatra procenu gubitka energije baterije preciznim merenjem;
- koristi AI komentar kao izvor dijagnostike.

## Ključni pojmovi

| Pojam | Značenje |
|---|---|
| Komunikaciona sesija | jedno povezivanje uređaja sa sistemom za prenos podataka |
| Trajanje sesije | vreme od početka do završetka sesije |
| Normalna sesija | sesija čije je trajanje u okviru individualnog normalnog opsega mernog mesta |
| Duga sesija | sesija čije trajanje premašuje individualni IQR prag mernog mesta |
| `IQR` | interkvartilni raspon: `Q3 − Q1` |
| `Q1` | prvi kvartil trajanja sesija |
| `Q3` | treći kvartil trajanja sesija |
| `UpperFence` | gornja granica normalnog opsega: `Q3 + 1.5 × IQR` |
| `RSSI` | nivo radio-signala, dBm |
| `CSQ` | indeks kvaliteta GSM signala, može se preračunati u dBm |
| `Btm` | napon baterije ili pokazatelj napajanja uređaja |
| `Long share` | udeo dugih sesija u ukupnom broju sesija mernog mesta |
| `Severity score` | konačna ocena nivoa problema mernog mesta na osnovu dugih sesija |
| Incident | satni klaster u kome su se duge sesije istovremeno pojavile na više mernih mesta |
| `RCA` | analiza verovatnog uzroka: bazna stanica, mreža, server, firmver, lokalno merno mesto |
| `Battery loss` | približna procena energije utrošene zbog prekomernog trajanja prenosa |

## Opšta logika izveštaja

Izveštaj je koncipiran kao analiza komunikacionih sesija na nivou celog parka uređaja.

```text
Spisak mernih mesta u parku uređaja
→ preuzimanje komunikacionih sesija
→ provera spremnosti podataka
→ individualni normalni opseg trajanja sesija za svako merno mesto
→ traženje dugih sesija pomoću IQR
→ izračunavanje ocene za svako merno mesto
→ grupisanje dugih sesija u satne incidente
→ utvrđivanje verovatnog uzroka (RCA)
→ raspodela hipoteza po mernim mestima
→ najproblematičnija merna mesta
→ pregled po tipovima korektora
→ pregled po danima i mesecima
→ preporuke za operativni rad
```

Osnovni princip:

```text
duga sesija se određuje u odnosu na normalni opseg konkretnog mernog mesta,
a ne u odnosu na zajednički fiksni prag za ceo park uređaja.
```

To je važno jer različiti uređaji, regioni, mobilni operateri i režimi očitavanja mogu imati različito normalno trajanje sesija.

## Parametri pokretanja

| Parametar | Značenje |
|---|---|
| Datum od / Datum do | granice vremenskog prozora analize |
| Prozor analize, dana | rezervni prozor koji se koristi kada datumi nisu uneti (podrazumevano 30) |
| Broj mernih mesta po tipu korektora | veličina uzorka po tipu; `0` znači sva merna mesta u parku uređaja |
| Minimalni broj sesija po mernom mestu za IQR | najmanji broj sesija koji merno mesto mora da ima da bi bilo uključeno u analizu (podrazumevano 30) |
| Broj problematičnih mernih mesta u izveštaju | veličina tabele top-N (podrazumevano 50) |
| Analiza pomoću LLM (veliki jezički model) | opcioni AI tekst koji objašnjava rezultate |
| Snabdevač | ograničava analizu na park uređaja jednog snabdevača |

## Ulazni podaci

### Osnovni podaci

| Podaci | Čemu služi |
|---|---|
| Spisak mernih mesta | određivanje parka uređaja za analizu |
| Tip korektora | izrada pregleda po modelima |
| `Equipment ID` | preuzimanje sesija određenog uređaja |
| Komunikacione sesije | osnova izveštaja |
| Vreme početka sesije | grupisanje po danima, mesecima i satima |
| Trajanje sesije | glavni pokazatelj koji se analizira |
| `RSSI` / `CSQ` | procena kvaliteta radio-signala |
| `Btm` / baterija | procena uticaja napajanja |
| Organizacija / lokacija | pripisivanje incidenta: lokalni potrošač, bazna stanica, park uređaja |

### Minimalni potreban skup podataka

Za ispravnu analizu mernog mesta potrebni su:

- identifikator uređaja;
- bar minimalni broj sesija;
- trajanje svake sesije;
- vremenska oznaka svake sesije.

Ako trajanje sesije nedostaje, ta sesija ne učestvuje u IQR analizi.

## Spremnost podataka: ulazna provera

<Image src="/images/ai-analytics/long-sessions/02_data_readiness.svg" alt="Dijagnostika spremnosti podataka" />

Pre izračunavanja anomalija izveštaj proverava da li se analiza uopšte može sprovesti. Blok spremnosti podataka prikazuje veličinu parka uređaja, veličinu posle filtra po snabdevaču, za koliko mernih mesta su dobijeni podaci o sesijama i koliko je od njih zadovoljilo minimalni broj sesija za IQR. Ova dijagnostika je **od presudnog značaja** – bez nje se „nema anomalija” lako pomeša sa „nema podataka za analizu”.

### Glavni pokazatelji spremnosti

| Pokazatelj | Formula / vrednost |
|---|---|
| Merna mesta u parku uređaja | `N_park` |
| Merna mesta u uzorku | `N_sampled` |
| Merna mesta sa podacima o sesijama | `N_with_data` |
| Merna mesta koja su zadovoljila minimalni broj sesija | `N_qualified` |
| Ukupan broj sesija | `N_sessions` |
| API pozivi | `N_calls` |
| Greške API poziva | `N_errors` |
| Stopa grešaka API poziva | `N_errors / N_calls × 100%` |
| Pokrivenost podacima | `N_with_data / N_sampled × 100%` |
| Pokrivenost uzorka za IQR | `N_qualified / N_sampled × 100%` |

### Stopa grešaka API poziva

$$
APIErrorRate =
\frac{N_{errors}}{N_{calls}} \times 100\%
$$

### Pokrivenost podacima

$$
Coverage_{with\_data} =
\frac{N_{with\_data}}{N_{sampled}} \times 100\%
$$

### Pokrivenost mernim mestima pogodnim za IQR

$$
Coverage_{qualified} =
\frac{N_{qualified}}{N_{sampled}} \times 100\%
$$

### Statusi spremnosti

| Status | Uslov | Šta znači |
|---|---|---|
| `OK` | postoji dovoljan uzorak za IQR | izveštaj je upotrebljiv za rad |
| `DEGRADED` | uzorak je mali, ali je analiza moguća | zaključci se izvode oprezno |
| `INCONCLUSIVE` | mnogo grešaka ili kritično niska pokrivenost podacima | zaključci o anomalijama nisu pouzdani |
| `NO_DATA` | nema podataka o sesijama | analiza nije moguća |
| `NO_FLEET` | posle filtriranja nema mernih mesta | nema šta da se analizira |

### Kritični uslovi

Analiza se smatra nemogućom ako je:

$$
APIErrorRate \ge 50\%
$$

ili:

$$
Coverage_{with\_data} < 5\%
$$

ili:

$$
N_{qualified} = 0
$$

<Alert type="warning">
„Nema anomalija” i „nema podataka za analizu” su različita stanja. Ako podaci o sesijama nedostaju, izveštaj ne sme da tvrdi da anomalije nisu pronađene.
</Alert>

## Minimalni broj sesija po mernom mestu

Za pouzdanu IQR analizu svako merno mesto mora da ima dovoljan broj sesija.

### Minimalni prag

Podrazumevano:

$$
N_{sessions,station} \ge 30
$$

Ako merno mesto ima manje sesija, njegov individualni normalni opseg smatra se statistički nepouzdanim i merno mesto ne prolazi IQR filter.

### Zašto je potreban minimum

IQR se zasniva na procenama kvartila. Pri malom broju opažanja kvartil postaje nestabilan:

- jedna slučajna duga sesija može neopravdano da podigne prag;
- jedan kratak period komunikacije može neopravdano da spusti prag;
- normalni opseg mernog mesta više se ne može razlikovati od slučajnih odstupanja.

## Individualni normalni opseg trajanja sesija

### Zašto je normalni opseg individualan

Za ceo park uređaja ne može se koristiti jedan zajednički prag, npr. „sve sesije duže od 10 minuta su loše”. Različita merna mesta imaju različite uslove komunikacije:

- različite tipove korektora;
- različite mobilne operatere;
- različite vrednosti RSSI;
- različit obim arhiva;
- različite rasporede očitavanja;
- različita mesta ugradnje;
- različite antene.

Zato se za svako merno mesto izračunava sopstveni statistički normalni opseg.

### Izbor validnih vrednosti trajanja

Za svako merno mesto uzimaju se samo pozitivne vrednosti trajanja:

$$
D = \{d_i \mid d_i > 0\}
$$

gde je:

- `d_i` – trajanje i-te sesije u sekundama.

### Kvartili

Vrednosti trajanja sortiraju se rastućim redosledom.

$$
D_{sorted} = sort(D)
$$

Prvi kvartil:

$$
Q1 = percentile(D, 25\%)
$$

Medijana:

$$
Q2 = median(D)
$$

Treći kvartil:

$$
Q3 = percentile(D, 75\%)
$$

### Interkvartilni raspon

$$
IQR = Q3 - Q1
$$

### Gornja Tukijeva granica normalnog opsega

Za svako merno mesto izračunava se individualna gornja granica normalnog opsega:

$$
UpperFence = Q3 + 1.5 \times IQR
$$

Ovo je klasično pravilo Tukijevih granica (Tukey fences) za otkrivanje odstupajućih vrednosti.

### Duga sesija

Sesija se smatra neuobičajeno dugom ako je:

$$
d_i > UpperFence
$$

gde je:

- `d_i` – trajanje sesije;
- `UpperFence` – individualni prag ovog mernog mesta.

<Alert type="info">
Ako merno mesto obično ima kratke sesije, njegov prag će biti nizak. Ako merno mesto obično ima duže sesije, njegov prag će biti viši. Izveštaj prepoznaje anomaliju **u odnosu na normalni opseg samog mernog mesta**.
</Alert>

## Osnovni pokazatelji mernog mesta

Za svako merno mesto izračunavaju se sledeći pokazatelji.

### Ukupan broj sesija

$$
N_{total} = count(D)
$$

### Broj dugih sesija

$$
N_{long} = count(d_i > UpperFence)
$$

### Udeo dugih sesija

$$
Pct_{long} =
\frac{N_{long}}{N_{total}} \times 100\%
$$

### Prosečno trajanje svih sesija

$$
AvgDuration =
\frac{\sum d_i}{N_{total}}
$$

### Prosečno trajanje dugih sesija

$$
AvgLongDuration =
\frac{\sum_{d_i > UpperFence} d_i}{N_{long}}
$$

### Maksimalno trajanje

$$
MaxLongDuration =
max(d_i \mid d_i > UpperFence)
$$

### Prosečna vrednost RSSI

$$
RSSI_{avg} =
\frac{\sum RSSI_i}{N_{RSSI}}
$$

gde je `N_RSSI` broj sesija sa dostupnom vrednošću RSSI.

## Ocena problematičnosti mernog mesta

### Značenje ocene

Ocena pokazuje koliko je merno mesto problematično sa stanovišta dugih sesija. Uzima u obzir tri dimenzije:

1. **udeo dugih sesija**;
2. **koliko duge sesije premašuju normalni opseg**;
3. **apsolutni broj dugih sesija**.

Ovakav pristup sprečava da se pojedinačna odstupajuća vrednost preceni, a merno mesto sa velikim brojem umereno dugih sesija potceni.

### Komponenta A – udeo dugih sesija

$$
A =
min(100,\;4 \times Pct_{long})
$$

Tumačenje:

| Udeo dugih | A |
|---:|---:|
| 5% | 20 |
| 10% | 40 |
| 25% | 100 |
| >25% | 100 |

### Komponenta B – relativno trajanje

$$
B =
min
\left(
100,\;
8 \times \frac{AvgLongDuration}{max(1, MedianDuration)}
\right)
$$

gde je `MedianDuration` medijana trajanja sesija mernog mesta.

Tumačenje:

| AvgLong / Median | B |
|---:|---:|
| 2× | 16 |
| 5× | 40 |
| 10× | 80 |
| 12,5× | 100 |

### Komponenta C – broj dugih sesija

$$
C =
min(100,\;N_{long})
$$

Drugim rečima, 100 ili više dugih sesija daje maksimalan doprinos ove komponente.

### Konačna ocena

$$
Score =
0.5 \times A
+
0.3 \times B
+
0.2 \times C
$$

gde je:

- `A` – udeo dugih sesija;
- `B` – relativno trajanje dugih sesija;
- `C` – apsolutni broj dugih sesija.

Konačna ocena je ograničena na interval:

$$
0 \le Score \le 100
$$

### Tumačenje ocene

| Ocena | Nivo |
|---:|---|
| ≥ 80 | merno mesto sa kritičnim problemima komunikacije |
| 60–80 | visok prioritet |
| 40–60 | srednji prioritet |
| 20–40 | praćenje / planirana provera |
| < 20 | slab signal problema |

<Alert type="warning">
Ocena ne dokazuje uzrok. Visoka ocena pokazuje da merno mesto često i/ili znatno premašuje sopstveni normalni opseg trajanja sesija. **Uzrok se utvrđuje zasebno, u okviru RCA.**
</Alert>

## Procena gubitka energije baterije zbog dugih sesija

### Značenje

Duga sesija produžava vreme prenosa i može dodatno da troši bateriju. Izveštaj daje **približnu** procenu prekomernog utroška energije. To nije precizno merenje baterije, već operativna procena.

### Prekomerno vreme prenosa

Za svaku dugu sesiju izračunava se koliko ona premašuje medijanu trajanja sesija mernog mesta:

$$
ExtraTime_i =
max(0,\;d_i - MedianDuration)
$$

Ukupno prekomerno vreme:

$$
ExtraTime_{total} =
\sum_{i \in LongSessions} ExtraTime_i
$$

### Struja pri prenosu

Za približnu procenu koristi se osnovna vrednost struje pri prenosu:

$$
I_{TX} = 340 \; mA
$$

### Gubitak energije baterije

$$
BatteryLoss_{mAh} =
\frac{I_{TX} \times ExtraTime_{total}}{3600}
$$

gde je:

- `ExtraTime_total` – u sekundama;
- `I_TX` – struja u miliamperima;
- rezultat – u mAh.

Za prikaz u Ah:

$$
BatteryLoss_{Ah} =
\frac{BatteryLoss_{mAh}}{1000}
$$

### Ograničenje

Ova procena ne uzima u obzir:

- stvarni strujni profil konkretnog modela;
- režim spavanja;
- ponovne pokušaje na nivou modema;
- snagu predajnika;
- temperaturu;
- starost baterije;
- kapacitet baterije;
- kvalitet mreže u trenutku prenosa.

Zato je treba tumačiti kao **procenu reda veličine**, a ne kao laboratorijsko merenje.

## RSSI i CSQ

### RSSI

`RSSI` pokazuje nivo radio-signala u dBm. Što je vrednost bliža nuli, signal je jači.

Okvirno tumačenje:

| RSSI | Ocena |
|---:|---|
| ≥ −65 dBm | dobar signal |
| −65…−75 dBm | prihvatljiv |
| −75…−85 dBm | slab |
| < −85 dBm | vrlo slab |

### CSQ

Neki uređaji ne šalju RSSI u dBm, već `CSQ` – indeks kvaliteta GSM signala. Ako vrednost liči na CSQ, može se preračunati:

$$
RSSI_{dBm} =
-113 + 2 \times CSQ
$$

Primer:

$$
CSQ = 29
$$

$$
RSSI = -113 + 2 \times 29 = -55 \; dBm
$$

### Lokalno slab signal

Ako je:

$$
RSSI_{avg} < -85 \; dBm
$$

a anomalije mernog mesta se ne poklapaju sa masovnim incidentima na nivou parka, uzrok se može klasifikovati kao:

```text
slab signal na mestu ugradnje
```

## Grupisanje dugih sesija u incidente

<Image src="/images/ai-analytics/long-sessions/04_incidents_registry.svg" alt="Registar incidenata" />

Anomalije se grupišu u satne prozore. Ako je više mernih mesta imalo duge sesije u istom satu, to **nije lokalni problem mernog mesta**, već incident mreže, servera ili mobilnog operatera. Hipoteza se određuje automatski prema širini obuhvata – broju mernih mesta, modela i potrošača u prozoru.

### Zašto je potrebno grupisanje

Ako su se duge sesije pojavile na mnogo mernih mesta u istom satu, najverovatnije nije reč o lokalnom problemu jednog uređaja. Uzrok može biti:

- problem bazne stanice;
- lokalno preopterećenje mreže mobilnog operatera;
- masovni incident u mreži;
- planirana operacija na serveru;
- specifičnost firmvera određenog modela.

### Satni interval

Svaka duga sesija svrstava se u satni interval:

$$
Bucket(t) =
floor\left(
\frac{t}{1h}
\right) \times 1h
$$

Drugim rečima, svi događaji u okviru jednog sata padaju u isti interval.

### Incident

Satni interval se smatra incidentom ako je pogođeno najmanje:

$$
N_{stations,bucket} \ge 5
$$

mernih mesta.

### Pokazatelji incidenta

Za svaki incident izračunava se sledeće:

| Pokazatelj | Formula |
|---|---|
| broj mernih mesta | `count(unique station_id)` |
| broj modela | `count(unique equipment_type)` |
| broj potrošača / lokacija | `count(unique customer_id)` |
| broj sesija | `count(long sessions in bucket)` |
| prosečna vrednost RSSI | `average(RSSI)` |
| najzastupljeniji modeli | `top equipment types by count` |

## RCA: utvrđivanje uzroka incidenata

<Image src="/images/ai-analytics/long-sessions/03_park_summary.svg" alt="Rezime ispitivanja osnovnog uzroka" />

Rezime za park uređaja određuje glavnog uzročnika – baznu stanicu, server, mrežu, firmver ili lokalno merno mesto – daje raspodelu uzroka po mernim mestima sa anomalijama i sastavlja plan aktivnosti. Opcioni AI tekst na dnu objašnjava brojke razumljivim jezikom, ali ih ne menja.

RCA je klasifikacija verovatnog uzroka dugih sesija.

### Moguće hipoteze

| Hipoteza | Značenje |
|---|---|
| `Server driver` | masovni otkaz drajvera za prikupljanje podataka |
| `Server routine` | redovna operacija na serveru ili održavanje |
| `Network outage` | otkaz mreže mobilnog operatera |
| `Cell tower` | problem sa određenom baznom stanicom ili lokacijom |
| `Firmware` | problem modela uređaja / firmvera |
| `Local signal` | slab signal na mestu ugradnje |
| `Battery low` | slabo napajanje / degradacija baterije |
| `Isolated device` | lokalni kvar na određenom mernom mestu |
| `Mixed causes` | mešoviti uzroci |

### Serverski incident širokog obuhvata

Incident se klasifikuje kao serverski ako je istovremeno pogođeno mnogo mernih mesta, mnogo modela i mnogo potrošača. Pojednostavljeno:

$$
N_{stations} \ge ServerWideStations
$$

$$
N_{models} \ge ServerWideModels
$$

$$
N_{customers} \ge ServerWideCustomers
$$

U izveštaju to znači:

```text
incident širokog obuhvata na nivou parka, ne liči na lokalni problem jednog mernog mesta.
```

### Ispad mreže mobilnog operatera

Ako je pogođeno nekoliko modela i nekoliko potrošača, ali razmere ne dostižu nivo serverskog otkaza:

$$
N_{models} \ge 3
$$

i:

$$
N_{customers} \ge 3
$$

onda je hipoteza:

```text
otkaz mobilne mreže / incident kod mobilnog operatera
```

### Problem bazne stanice

Ako je pogođeno mnogo mernih mesta, ali ona pripadaju jednoj ili dvema lokacijama, odnosno potrošačima:

$$
N_{customers} \le 2
$$

i:

$$
N_{stations} \ge CellMinStations
$$

onda je hipoteza:

```text
problem bazne stanice ili lokalni problem pokrivenosti signalom
```

### Problem firmvera ili modela

Ako je pogođen jedan model, ali kod različitih potrošača:

$$
N_{models} = 1
$$

i:

$$
N_{customers} \ge 3
$$

onda je hipoteza:

```text
specifičnost firmvera / modela uređaja
```

### Mešoviti uzroci

Ako uslovi ne daju jednoznačnu klasifikaciju, incident dobija status:

```text
mešoviti uzroci
```

## Periodični serverski posao

Masovni serverski incidenti ponekad se dešavaju u isti sat u toku dana.

### Uslov

Ako postoje najmanje tri serverska incidenta širokog obuhvata koja su nastupila u isti sat u toku dana:

$$
N_{server\_incidents,same\_hour} \ge 3
$$

mogu se klasifikovati kao:

```text
periodični serverski posao
```

### Značenje

To može ukazivati na redovni noćni posao, održavanje arhive, paketnu obradu ili masovnu operaciju koja utiče na trajanje sesija.

## Utvrđivanje uzroka za svako merno mesto

Posle traženja incidenata na nivou parka izveštaj za svako merno mesto utvrđuje šta preovlađuje: spoljni incidenti ili lokalni problem.

### Udeo anomalija mernog mesta koje se poklapaju sa incidentima na nivou parka

$$
InIncidentPct =
\frac{N_{long,in\_incidents}}{N_{long}} \times 100\%
$$

### Ako se većina anomalija poklopila sa incidentima na nivou parka

Ako je:

$$
InIncidentPct \ge 70\%
$$

onda se preovlađujući uzrok mernog mesta preuzima iz incidenta na nivou parka:

```text
network_outage / cell_tower / firmware / server
```

To znači:

```text
uređaj verovatno nije glavni uzročnik; pogođen je zajedno sa ostalima.
```

### Provera slabe baterije

Ako se anomalije ne mogu objasniti incidentima na nivou parka, proverava se napajanje. Neka je:

$$
Btm_{first}
$$

prva dostupna vrednost baterije u dugim sesijama, a:

$$
Btm_{last}
$$

poslednja dostupna vrednost. Pad vrednosti:

$$
BtmDrop =
Btm_{first} - Btm_{last}
$$

Hipoteza `battery_low` moguća je ako je:

$$
Btm_{first} < 3500 \; mV
$$

i:

$$
BtmDrop > 200 \; mV
$$

### Provera lokalno slabog signala

Ako je:

$$
RSSI_{avg} < -85 \; dBm
$$

onda je hipoteza:

```text
slab signal na mestu ugradnje
```

### Izolovani kvar mernog mesta

Ako važi sledeće:

- anomalije se ne poklapaju sa incidentima na nivou parka;
- stanje baterije ne objašnjava uočenu sliku;
- RSSI nije kritično slab;

onda se uzrok klasifikuje kao:

```text
lokalni kvar mernog mesta
```

## Raspodela hipoteza u parku uređaja

<Image src="/images/ai-analytics/long-sessions/05_culprit_distribution.svg" alt="Raspodela hipoteza" />

Za svako merno mesto bira se preovlađujući uzrok. Kada je većina mernih mesta pogođena incidentima na nivou parka, samo merno mesto nije uzrok problema; izolovani lokalni problem ima tek manji deo mernih mesta. To menja plan aktivnosti: glavni napori se usmeravaju na bazne stanice i mobilnog operatera, a ne na masovni izlazak na teren do svakog mernog mesta sa anomalijama.

Izveštaj prikazuje koliko je mernih mesta pripisano svakom preovlađujućem uzroku.

### Formula udela hipoteze

$$
Share_{hypothesis} =
\frac{N_{stations,hypothesis}}{N_{stations,with\_anomalies}} \times 100\%
$$

### Grupe uzroka

U rezimeu za rukovodstvo hipoteze se mogu grupisati ovako:

| Grupa | Obuhvata |
|---|---|
| mreža / server | `server_driver`, `server_routine`, `network_outage`, `cell_tower` |
| lokalni problemi uređaja | `isolated_device`, `local_signal`, `battery_low` |
| model / firmver | `firmware` |
| mešoviti | `mixed` |

### Tumačenje

| Preovlađuje | Šta preduzeti |
|---|---|
| `Cell tower` | proverite pokrivenost signalom, mobilnog operatera i spoljne antene kod pogođenih potrošača |
| `Local signal` | izlazak na teren do konkretnog mernog mesta: antena, repetitor, mesto ugradnje |
| `Isolated device` | dijagnostika modema, SIM kartice, napajanja i firmvera |
| `Firmware` | proverite verziju softvera i obratite se dobavljaču |
| `Server routine` | proverite redovne procese platforme |
| `Network outage` | zatražite od mobilnog operatera podatke za dato vreme i zonu |

## Najproblematičnija merna mesta

<Image src="/images/ai-analytics/long-sessions/08_top50_problems.svg" alt="Najproblematičnija merna mesta" />

Tabela najproblematičnijih mernih mesta rangira merna mesta po zbirnoj oceni (0–100), izračunatoj iz udela dugih sesija, njihovog prosečnog trajanja i broja. Klikom na red razvija se spisak najdužih sesija mernog mesta sa vrednostima RSSI i `Btm` – koristi se za planiranje izlaska na teren.

### Svrha

Tabela pokazuje gde prvo treba izaći na teren ili šta prvo treba proveriti.

### Kolone tabele

| Kolona | Značenje |
|---|---|
| Merno mesto | naziv i ID mernog mesta |
| Korektor | tip uređaja |
| Sesije | ukupan broj validnih sesija |
| Duge | broj neuobičajeno dugih sesija |
| Udeo | procenat dugih sesija |
| Prosek dugih | prosečno trajanje dugih sesija |
| Najduža sesija | najgora pronađena sesija |
| Prosečan `RSSI` | kvalitet radio-signala |
| Gubitak energije baterije | procenjena prekomerno utrošena energija |
| Ocena | zbirna ocena problematičnosti |

### Kako tumačiti vrh liste

Visoka ocena može nastati iz različitih razloga:

- veliki udeo dugih sesija;
- vrlo duge pojedinačne sesije;
- veliki apsolutni broj dugih sesija;
- kombinacija ovih faktora.

Pri planiranju izlaska na teren ne gledajte samo ocenu, već i:

- `RSSI`;
- hipotezu RCA;
- gubitak energije baterije;
- najdužu sesiju;
- da li je merno mesto obuhvaćeno incidentima na nivou parka;
- tip korektora.

## Najproblematičniji dani

<Image src="/images/ai-analytics/long-sessions/11_top_problem_days.svg" alt="Najproblematičniji dani" />

Sve anomalne sesije grupišu se po kalendarskim danima. Dan sa najvećim brojem anomalija najverovatnije je dan kada se dogodio incident na nivou parka. Svaki dan se može razviti u spisak mernih mesta sa njihovim anomalijama, najdužom sesijom i linkovima. To je korisno za ispitivanje masovnih događaja i proveru da li se ponavljaju.

### Svrha

Pregled po danima prikazuje dane kada su se duge sesije masovno pojavljivale u parku uređaja.

### Pokazatelji dana

| Pokazatelj | Značenje |
|---|---|
| Datum | kalendarski dan |
| Duge sesije | broj dugih sesija tog dana |
| Merna mesta | koliko je mernih mesta pogođeno |
| Prosek dugih | prosečno trajanje dugih sesija |
| Najduža sesija | najgori slučaj tog dana |
| Najgore merno mesto | merno mesto sa najdužom sesijom |

### Tumačenje

| Obrazac | Mogući uzrok |
|---|---|
| mnogo mernih mesta u jednom danu | incident u mreži ili na nivou parka |
| jedno merno mesto svakog dana | lokalni problem |
| skok vikendom | mreža mobilnog operatera / radovi na održavanju |
| skokovi u isto vreme | redovni zadatak ili raspored |
| rast iz meseca u mesec | degradacija mreže, sezonsko preopterećenje, promena režima očitavanja |

## Pregled po tipovima korektora

<Image src="/images/ai-analytics/long-sessions/06_coverage_by_type.svg" alt="Pokrivenost po tipovima korektora" />

Blok pokrivenosti prikazuje šta je u parku uređaja provereno za svaki tip korektora: koliko je mernih mesta u uzorku, za koliko su dobijeni podaci, koliko je prošlo IQR filter i kod koliko se javljaju anomalije. Ako je za tip prikazano „normalno”, podaci su stigli, ali anomalije nisu pronađene. „Nema podataka” znači da tip ne vraća trajanje sesije preko interfejsa API – za neke modele to je normalno.

<Image src="/images/ai-analytics/long-sessions/12_by_corrector_types.svg" alt="Detaljan pregled po tipovima korektora" />

Razvijte tip da biste videli sva njegova merna mesta sa anomalijama; razvijte merno mesto da biste videli njegove konkretne duge sesije sa vremenom, trajanjem, RSSI i `Btm`. Boja kojom je sesija istaknuta zavisi od toga koliko ona premašuje normalni opseg mernog mesta.

### Svrha

Pregled po tipovima korektora pokazuje kod kojih modela se češće javljaju neuobičajeno duge sesije.

### Pokazatelji po tipu

| Pokazatelj | Značenje |
|---|---|
| U uzorku | koliko mernih mesta ovog tipa ima u parku uređaja |
| Sa podacima | za koliko mernih mesta su dobijeni podaci o sesijama |
| Prošlo IQR | koliko mernih mesta ima minimalni broj sesija |
| Anomalije | broj dugih sesija |
| Stanje | normalno / anomalije / nema podataka |

### Važno ograničenje

**Tipove korektora ne možete direktno porediti samo po broju anomalija.** Morate uzeti u obzir:

- koliko uređaja ovog tipa ima u parku;
- za koliko njih su dobijeni podaci;
- koliko ih je zadovoljilo minimalni broj sesija;
- gde su ugrađeni;
- u kojim mrežama rade;
- da li imaju isti raspored očitavanja;
- da li su koncentrisani kod jednog potrošača.

### Normalizovani udeo anomalija po tipu

Za ispravno poređenje možete koristiti:

$$
TypeAnomalyRate =
\frac{N_{long,type}}{N_{sessions,type}} \times 100\%
$$

ili:

$$
TypeAffectedRate =
\frac{N_{stations\_anomalous,type}}{N_{stations\_qualified,type}} \times 100\%
$$

## Pregled po vremenu: dinamika i meseci

<Image src="/images/ai-analytics/long-sessions/07_dynamics_chart.svg" alt="Dinamika dugih sesija po danima" />

Grafikon dnevne dinamike prikazuje koliko se anomalnih sesija javilo u parku uređaja za svaki dan vremenskog prozora. Vidljivi su „naleti” – dani loše komunikacije u celoj mreži. Vrh koji se poklapa sa registrom incidenata obično predstavlja niz problema sa baznom stanicom na jednoj lokaciji.

<Image src="/images/ai-analytics/long-sessions/13_by_months.svg" alt="Pregled po mesecima" />

Pregled po kalendarskim mesecima pomaže da se uoči sezonalnost ili dugoročni trend. Masovni mesečni vrh odgovara istom nizu incidenata koji se vidi u dnevnoj dinamici; postepeni rast tokom vremena ukazuje na moguću degradaciju komunikacije ili baterije.

### Svrha

Pregled po mesecima prikazuje sezonalnost ili dugoročni trend dugih sesija.

### Mesečni pokazatelj

$$
N_{long,month} =
count(long\_sessions \; in \; month)
$$

### Udeo meseca

Ako treba da prikažete udeo:

$$
Share_{month} =
\frac{N_{long,month}}{\sum N_{long,all\_months}} \times 100\%
$$

### Tumačenje

| Obrazac | Moguće objašnjenje |
|---|---|
| nagli mesečni skok | promena u mreži, masovni otkaz, sezonsko opterećenje |
| postepeni rast | degradacija komunikacije ili baterije |
| zimski skok | vremenski uslovi, opterećenje mreže, napajanje |
| skok posle ažuriranja | firmver, podešavanja, raspored očitavanja |

## Isticanje pojedinačnih sesija bojom

<Image src="/images/ai-analytics/long-sessions/09_top5_long.svg" alt="Najduže sesije mernog mesta" />

Kada se merno mesto razvije, njegove pojedinačne duge sesije ističu se bojom u zavisnosti od toga koliko premašuju individualni prag, a prikazuju se i tačne vrednosti RSSI i `Btm` u trenutku svake duge sesije. Upravo to je potrebno terenskoj ekipi: nizak RSSI ukazuje na problem sa radio-signalom, dok normalan napon baterije isključuje bateriju kao uzrok.

### Odnos prekoračenja

$$
Ratio_i =
\frac{d_i}{UpperFence}
$$

### Tumačenje

| Odnos | Boja / nivo |
|---:|---|
| 1–2× | slabo prekoračenje |
| 2–5× | srednje prekoračenje |
| ≥5× | jako prekoračenje |

To pomaže da se umereno duge sesije brzo razlikuju od ekstremnih.

## Šta preduzeti na osnovu rezultata izveštaja

### Ako je uzrok bazna stanica

Proverite:

- kvalitet pokrivenosti signalom na lokaciji;
- alternativnog mobilnog operatera;
- spoljnu antenu;
- repetitor;
- ponavljanje incidenata po danima;
- susedna merna mesta na istoj lokaciji;
- preopterećenje mreže u određenim satima.

### Ako je uzrok na samom mernom mestu

Proverite:

- antenu;
- SIM karticu;
- modem;
- napajanje;
- bateriju;
- konektore;
- mesto ugradnje;
- smetnje;
- verziju firmvera;
- podešavanja rasporeda prenosa.

### Ako je uzrok slab signal

Radnje:

- izmerite RSSI na licu mesta;
- pokušajte da premestite antenu;
- proverite orijentaciju antene;
- proverite alternativnog mobilnog operatera;
- ugradite spoljnu antenu ili repetitor.

### Ako je uzrok baterija

Radnje:

- proverite `Btm` na licu mesta;
- po potrebi zamenite bateriju;
- proverite potrošnju struje;
- proverite učestalost ponovnih pokušaja;
- proverite da li uređaj preopterećuje mrežu ponovnim pokušajima.

### Ako je uzrok model / firmver

Radnje:

- grupišite merna mesta po verziji softvera;
- proverite napomene o izdanju koje objavljuje dobavljač;
- zatražite spisak poznatih problema;
- uporedite sa drugim modelima na istim lokacijama;
- testirajte režim komunikacije u laboratoriji.

## AI komentar

<Image src="/images/ai-analytics/long-sessions/10_llm_field_plan.svg" alt="AI plan izlaska na teren" />

Opcioni AI komentar čita rezultate RCA i piše kratak, razumljiv plan izlaska na teren za ekipu. To je **jezičko objašnjenje, a ne izvor dijagnostike** – sve brojke i uzroke određuju formule i pravila opisana iznad.

### Šta AI može

- da ukratko prepriča rezultate RCA;
- da objasni glavnog verovatnog uzročnika;
- da istakne merna mesta sa vrha liste;
- da formuliše plan izlaska na teren;
- da objasni pregled po modelima.

### Šta AI ne može

AI **ne može**:

- da menja IQR prag;
- da menja spisak dugih sesija;
- da menja ocenu;
- da utvrdi pravi uzrok bez podataka;
- da zameni radiotehnički pregled;
- da zameni izlazak na teren;
- da služi kao dokazna osnova.

<Alert type="warning">
Analiza je deterministička. AI komentar treba čitati isključivo kao objašnjenje – sve brojčane zaključke određuju formule i pravila.
</Alert>

## Tipične greške u tumačenju

### Greška: duga sesija = loš uređaj

Pogrešno. Dugu sesiju mogu izazvati mreža, bazna stanica, slab signal, periodični serverski posao, lokalna antena, SIM kartica ili baterija.

### Greška: mnogo anomalija kod modela = model je loš

Pogrešno. Rezultate treba normalizovati prema broju uređaja, broju sesija, lokacijama i mobilnim operaterima.

### Greška: nema anomalija = sve je u redu

Pogrešno ako nema podataka o sesijama ili ako je pokrivenost podacima preniska.

### Greška: visok RSSI isključuje problem sa komunikacijom

Ne uvek. Uzrok mogu biti problemi kod mobilnog operatera, preopterećenje, firmver, prijem na strani servera, ponovni pokušaji ili greške protokola.

### Greška: gubitak energije baterije = tačna potrošnja baterije

Pogrešno. To je procena zasnovana na prekomernom vremenu prenosa i pretpostavljenoj vrednosti struje.

### Greška: jedna ekstremno duga sesija čini merno mesto najproblematičnijim

Ne uvek. Ocena uzima u obzir ne samo maksimum, već i udeo, prosečno trajanje i broj dugih sesija.

## Minimalni kriterijumi za potpun izveštaj

Izveštaj se smatra metodološki potpunim ako sadrži:

- period analize;
- pokrivenost parka uređaja;
- status ulazne provere podataka;
- broj mernih mesta u parku uređaja;
- broj mernih mesta za koja su preuzeti podaci;
- broj mernih mesta sa podacima o sesijama;
- broj mernih mesta koja su prošla IQR prag;
- broj sesija u uzorku;
- broj dugih sesija;
- broj mernih mesta sa anomalijama;
- maksimalno trajanje sesije;
- broj satnih incidenata;
- raspodelu hipoteza RCA;
- formulu IQR praga;
- formulu ocene mernog mesta;
- formulu gubitka energije baterije;
- pravila klasifikacije RCA;
- tabelu najproblematičnijih mernih mesta;
- pregled po danima;
- pregled po tipovima korektora;
- pregled po mesecima;
- napomenu da je procena gubitka energije baterije približna;
- napomenu o ulozi AI;
- preporuke za dalje radnje.

## Objedinjena formula izveštaja

Za svako merno mesto:

$$
D = \{d_i \mid d_i > 0\}
$$

$$
IQR = Q3(D) - Q1(D)
$$

$$
UpperFence = Q3(D) + 1.5 \times IQR
$$

$$
LongSessions =
\{d_i \mid d_i > UpperFence\}
$$

$$
Pct_{long} =
\frac{|LongSessions|}{|D|} \times 100\%
$$

$$
A = min(100,\;4 \times Pct_{long})
$$

$$
B =
min
\left(
100,\;
8 \times
\frac{AvgLongDuration}{max(1, MedianDuration)}
\right)
$$

$$
C = min(100,\;|LongSessions|)
$$

$$
Score =
0.5A + 0.3B + 0.2C
$$

Procena prekomerne potrošnje baterije:

$$
ExtraTime_{total} =
\sum_{d_i \in LongSessions}
max(0,\;d_i - MedianDuration)
$$

$$
BatteryLoss_{mAh} =
\frac{340 \times ExtraTime_{total}}{3600}
$$

Grupisanje u incidente:

$$
Bucket(t) =
floor(t / 1h) \times 1h
$$

$$
Incident =
Bucket \; where \; N_{unique\_stations} \ge 5
$$

## Preporučena napomena

```text
Izveštaj otkriva neuobičajeno duge komunikacione sesije u odnosu na individualni
normalni opseg svakog mernog mesta. Rezultat služi za određivanje prioriteta
dijagnostike komunikacije, antena, SIM kartica, napajanja, mobilnih operatera i
baznih stanica. Izveštaj nije dokaz kvara određenog uređaja bez izlaska na teren
i ne ocenjuje ispravnost obračunskog merenja gasa.
```

## Veza sa drugim izveštajima

| Ako treba da razumete | Koristite |
|---|---|
| koja merna mesta dugo drže vezu i prazne bateriju | ovaj izveštaj |
| koja merna mesta nemaju komunikaciju ili arhivu | Najproblematičnija merna mesta |
| da li se period može zatvoriti za određeno merno mesto | Analitika potrošnje |
| da li postoji sumnja na umanjeno merenje | Sumnjiva merna mesta |
| zašto je određeno merno mesto sumnjivo | Zaobilaženje merenja |
| kada zameniti baterije | Prognoza baterije |

Ovakva podela sprečava da se duge komunikacione sesije mešaju sa komercijalnim, metrološkim i forenzičkim zaključcima.
