---
title: 'Prehľad základných modulov'
section: 'Concepts'
weight: 1
related:
  - basic-modules/advantages
  - architecture/abstract-data-layer
  - basic-modules
  - equipment/equipment-types
---

V Platforme IIoT sú údaje usporiadané do tabuliek, ktoré možno klasifikovať podľa hlavných modulov reprezentácie údajov.

Tieto moduly popisujú, ako do seba zapadajú surové merania, zariadenia, ktoré ich produkujú, komunikačné relácie, počas ktorých sa zbierajú, a referenčné údaje, ktoré ich kategorizujú. Nasledujúce tabuľky podrobne uvádzajú kľúčové polia jednotlivých modulov a cudzie kľúče, ktoré ich prepájajú.

## Archívy údajov

Archívy údajov uchovávajú historické informácie, ako sú metriky zariadení IoT, údaje o vybavení a ďalšie merania. Hlavnou tabuľkou na ukladanie archívnych údajov je `channel_data`.

| Pole              | Typ                              | Popis                                            |
| ----------------- | -------------------------------- | ------------------------------------------------ |
| `id`              | `bigint`                         | Jedinečný identifikátor záznamu (primárny kľúč). |
| `equipment_id`    | `bigint`                         | Odkaz na vybavenie (`equipment.id`).             |
| `seance_id`       | `bigint`                         | Odkaz na reláciu (`seances.id`).                 |
| `channel_id`      | `bigint`                         | Odkaz na kanál (`channels.id`).                  |
| `unit_id`         | `bigint`                         | Odkaz na mernú jednotku (`units.id`).            |
| `archive_type_id` | `integer`                        | Odkaz na typ archívu (`referenceparameters.id`). |
| `event_time`      | `integer`                        | Čas udalosti (napr. časová pečiatka).            |
| `value`           | `character varying(100)`         | Hodnota prijatá z kanála.                        |
| `created_at`      | `timestamp(6) without time zone` | Čas vytvorenia záznamu.                          |
| `updated_at`      | `timestamp(6) without time zone` | Čas poslednej aktualizácie záznamu.              |

Táto tabuľka uchováva údaje prijaté z kanálov vybavenia a prostredníctvom cudzích kľúčov priraďuje každý záznam k vybaveniu, reláciám, kanálom a jednotkám. Vďaka tomu možno údaje klasifikovať podľa uvedených atribútov na ďalšiu analýzu a spracovanie.

- `equipment_id` odkazuje na tabuľku `equipment`.
- `seance_id` odkazuje na tabuľku `seances`.
- `channel_id` odkazuje na tabuľku `channels`.
- `unit_id` odkazuje na tabuľku `units`.
- `archive_type_id` odkazuje na tabuľku `referenceparameters`.

## Meracie jednotky

Tabuľka `equipment` uchováva informácie o vybavení používanom v systéme. Tento modul je kľúčový pre správu údajov spojených s fyzickými zariadeniami, ako sú merače, snímače, riadiace jednotky a iné typy vybavenia.

| Pole                | Typ                              | Popis                                            |
| ------------------- | -------------------------------- | ------------------------------------------------ |
| `id`                | `bigint`                         | Jedinečný identifikátor záznamu (primárny kľúč). |
| `equipment_type_id` | `bigint`                         | Odkaz na typ vybavenia.                          |
| `serial_number`     | `character varying(25)`          | Sériové číslo vybavenia.                         |
| `manufacture_date`  | `timestamp(6) without time zone` | Dátum výroby vybavenia.                          |
| `installation_date` | `timestamp(6) without time zone` | Dátum inštalácie vybavenia.                      |
| `program_version`   | `character varying(100)`         | Verzia softvéru vybavenia.                       |
| `created_at`        | `timestamp(6) without time zone` | Čas vytvorenia záznamu.                          |
| `updated_at`        | `timestamp(6) without time zone` | Čas poslednej aktualizácie záznamu.              |

Tabuľka `equipment`:

- uchováva základné údaje o vybavení, ako sú sériové číslo a dátumy výroby a inštalácie;
- pomocou poľa `program_version` sleduje verziu softvéru nainštalovaného na vybavení;
- pomocou polí `created_at` a `updated_at` sleduje zmeny v údajoch o vybavení;
- je prostredníctvom cudzích kľúčov prepojená s ďalšími tabuľkami, ako sú `equipment_types`, `channel_data` a `channels`;
- umožňuje pridávať, aktualizovať a získavať informácie o vybavení v systéme.

Modul reprezentácie údajov založený na tabuľke `equipment` umožňuje efektívnu správu informácií o vybavení v systéme.

Poskytuje:

- ukladanie základných údajov o vybavení;
- správu verzií softvéru;
- komunikáciu s ostatnými entitami v systéme.

## Komunikačné relácie

Tabuľka `seances` uchováva informácie o komunikačných reláciách a aktivite vybavenia. Relácie predstavujú obdobia aktivity, počas ktorých prebieha výmena údajov medzi vybavením a systémom. Tento modul je kľúčový pre správu a analýzu údajov spojených s komunikačnými reláciami.

Pozrime sa na tento modul podrobnejšie.

| Pole           | Typ                              | Popis                                            |
| -------------- | -------------------------------- | ------------------------------------------------ |
| `id`           | `bigint`                         | Jedinečný identifikátor záznamu (primárny kľúč). |
| `telemetry_id` | `bigint`                         | Odkaz na telemetriu (`telemetry.id`).            |
| `event_time`   | `integer`                        | Čas udalosti.                                    |
| `evtid`        | `smallint`                       | Identifikátor udalosti.                          |
| `trycnt`       | `smallint`                       | Počet pokusov.                                   |
| `tryfl`        | `character varying(12)`          | Príznak pokusu.                                  |
| `state`        | `smallint`                       | Stav relácie.                                    |
| `btm`          | `integer`                        | Nabitie batérie.                                 |
| `rssi`         | `integer`                        | Sila signálu (ak sa používa).                    |
| `created_at`   | `timestamp(6) without time zone` | Čas vytvorenia záznamu.                          |
| `updated_at`   | `timestamp(6) without time zone` | Čas poslednej aktualizácie záznamu.              |

Modul `seances` slúži na:

- uchovávanie informácií o komunikačných reláciách a prevádzke vybavenia;
- správu údajov súvisiacich s reláciami (napríklad čas udalosti, stav relácie, sila signálu a nabitie batérie);
- analýzu relácií s cieľom identifikovať problémy alebo optimalizovať výkon systému;
- správu stavu relácie: pole `state` umožňuje monitorovať stav relácie (napríklad úspešná, chyba a podobne);
- analýzu relácií: polia `duration_session` a `session_traffic` umožňujú analyzovať trvanie a objem prevádzky relácie;
- sledovanie zmien: polia `created_at` a `updated_at` umožňujú sledovať zmeny v údajoch o relácii.

## Typy archívov

Atribút `archive_type_id` kategorizuje údaje v tabuľke `channel_data` podľa typu archívu. Vďaka tomu možno údaje usporiadať do rôznych kategórií, ako sú hodinové, denné, mesačné, mimoriadne situácie a ďalšie typy archívov. Tabuľka `referenceparameters` uchováva referenčné informácie o typoch archívov.

Tento modul je postavený na vzťahu medzi tabuľkami `channel_data` a `referenceparameters`.

| Pole                | Typ                              | Popis                                            |
| ------------------- | -------------------------------- | ------------------------------------------------ |
| `id`                | `bigint`                         | Jedinečný identifikátor záznamu (primárny kľúč). |
| `name`              | `character varying(30)`          | Názov typu archívu.                              |
| `varname`           | `character varying(30)`          | Krátky názov premennej pre typ archívu.          |
| `description`       | `character varying(100)`         | Popis typu archívu.                              |
| `parent_id`         | `integer`                        | Odkaz na nadradený parameter (hierarchia).       |
| `referencemodel_id` | `integer`                        | Odkaz na model adresára.                         |
| `created_at`        | `timestamp(6) without time zone` | Čas vytvorenia záznamu.                          |
| `updated_at`        | `timestamp(6) without time zone` | Čas poslednej aktualizácie záznamu.              |
| `deleted_at`        | `timestamp(6) without time zone` | Čas odstránenia záznamu (mäkké odstránenie).     |

Pole `archive_type_id` v tabuľke `channel_data` umožňuje kategorizovať údaje podľa typu archívu.

Napríklad:

```ruby
[ 'Archive types', 'archive_types', 'Archive types (hourly, daily, monthly)',
  [
    ['Hourly readings archive', 'hourly'],
    ['Daily readings archive', 'daily'],
    ['Monthly readings archive', 'monthly'],
    ['Emergency situations archive', 'nesht'],
    ['Events archive', 'event'],
    ['Valve status', 'valve'],
    ['Current state', 'current_state'],
    ['Updated firmware', 'update_app'],
    ['Send SMS', 'send_sms'],
    ['Send JSON', 'send_json'],
    ...
  ]
]
```

V prípade potreby možno tieto archívy usporiadať do skupín:

- aktuálne údaje (`current_state`) — odpočty v okamihu komunikačnej relácie;
- agregované údaje (`hourly`, `daily`, `monthly`) — súhrnné odpočty za určité časové obdobie;
- udalosti a mimoriadne situácie (`nesht`, `event`) — záznamy o významných zmenách alebo udalostiach v systéme. Môžu súvisieť s vybavením, používateľmi alebo vonkajšími faktormi;
- stav ventilu (`valve`) — stav a ovládanie ventilu merača, ak je k dispozícii;
- riadiace akcie (`update_app`, `send_sms`, `send_json`) — záznamy o príkazoch alebo akciách vykonaných na ovládanie systému alebo vybavenia;
- a podobne.

Modul reprezentácie údajov `archive_type_id` umožňuje efektívne kategorizovať údaje do typov archívov a spravovať referenčné informácie. Poskytuje:

- klasifikáciu údajov v tabuľke `channel_data`;
- správu referenčných informácií o typoch archívov;
- analýzu údajov podľa typu archívu.
