---
title: 'Pregled osnovnih modula'
section: 'Concepts'
weight: 1
related:
  - basic-modules/advantages
  - architecture/abstract-data-layer
  - basic-modules
  - equipment/equipment-types
---

U podsustavu Data Platform podaci su organizirani u tablice koje se mogu razvrstati prema glavnim modulima predstavljanja podataka.

Ovi moduli opisuju kako se u jednu cjelinu uklapaju neobrađeni mjerni podaci, uređaji koji ih generiraju, komunikacijske sesije tijekom kojih se prikupljaju i šifrarnici prema kojima se razvrstavaju. Tablice u nastavku detaljno prikazuju ključna polja svakog modula i strane ključeve koji ih povezuju.

## Arhive podataka

Arhive podataka čuvaju povijesne informacije, kao što su pokazatelji IoT uređaja, podaci o opremi i druga mjerenja. Glavna tablica za čuvanje arhivskih podataka je `channel_data`.

| Polje             | Tip                              | Opis                                                |
| ----------------- | -------------------------------- | --------------------------------------------------- |
| `id`              | `bigint`                         | Jedinstveni identifikator zapisa (primarni ključ).  |
| `equipment_id`    | `bigint`                         | Referenca na opremu (`equipment.id`).               |
| `seance_id`       | `bigint`                         | Referenca na sesiju (`seances.id`).                 |
| `channel_id`      | `bigint`                         | Referenca na kanal (`channels.id`).                 |
| `unit_id`         | `bigint`                         | Referenca na jedinicu mjere (`units.id`).           |
| `archive_type_id` | `integer`                        | Referenca na tip arhive (`referenceparameters.id`). |
| `event_time`      | `integer`                        | Vrijeme događaja (npr. vremenska oznaka).           |
| `value`           | `character varying(100)`         | Vrijednost primljena s kanala.                      |
| `created_at`      | `timestamp(6) without time zone` | Vrijeme stvaranja zapisa.                           |
| `updated_at`      | `timestamp(6) without time zone` | Vrijeme posljednjeg ažuriranja zapisa.              |

Ova tablica čuva podatke primljene s kanala opreme i putem stranih ključeva povezuje svaki zapis s opremom, sesijom, kanalom i jedinicom mjere. Zahvaljujući tome, podaci se mogu klasificirati prema navedenim atributima radi daljnje analize i obrade.

- `equipment_id` upućuje na tablicu `equipment`.
- `seance_id` upućuje na tablicu `seances`.
- `channel_id` upućuje na tablicu `channels`.
- `unit_id` upućuje na tablicu `units`.
- `archive_type_id` upućuje na tablicu `referenceparameters`.

## Mjerna mjesta

Tablica `equipment` čuva informacije o opremi koja se koristi u sustavu. Ovaj je modul ključan za upravljanje podacima povezanima s fizičkim uređajima, kao što su mjerila, senzori, upravljačke jedinice i drugi tipovi opreme.

| Polje               | Tip                              | Opis                                               |
| ------------------- | -------------------------------- | -------------------------------------------------- |
| `id`                | `bigint`                         | Jedinstveni identifikator zapisa (primarni ključ). |
| `equipment_type_id` | `bigint`                         | Referenca na tip opreme.                           |
| `serial_number`     | `character varying(25)`          | Serijski broj opreme.                              |
| `manufacture_date`  | `timestamp(6) without time zone` | Datum proizvodnje opreme.                          |
| `installation_date` | `timestamp(6) without time zone` | Datum ugradnje opreme.                             |
| `program_version`   | `character varying(100)`         | Verzija softvera opreme.                           |
| `created_at`        | `timestamp(6) without time zone` | Vrijeme stvaranja zapisa.                          |
| `updated_at`        | `timestamp(6) without time zone` | Vrijeme posljednjeg ažuriranja zapisa.             |

Tablica `equipment`:

- čuva osnovne podatke o opremi, kao što su serijski broj i datumi proizvodnje i ugradnje;
- pomoću polja `program_version` prati verziju softvera instaliranog na opremi;
- pomoću polja `created_at` i `updated_at` prati izmjene podataka o opremi;
- povezana je putem stranih ključeva s drugim tablicama, kao što su `equipment_types`, `channel_data` i `channels`;
- omogućuje vam da dodajete, ažurirate i dohvaćate informacije o opremi u sustavu.

Modul predstavljanja podataka koji se temelji na tablici `equipment` omogućuje učinkovito upravljanje informacijama o opremi u sustavu.

Modul osigurava:

- čuvanje osnovnih podataka o opremi;
- upravljanje verzijama softvera;
- vezu s drugim entitetima u sustavu.

## Komunikacijske sesije

Tablica `seances` čuva informacije o komunikacijskim sesijama i aktivnosti opreme. Sesije su razdoblja aktivnosti tijekom kojih oprema i sustav razmjenjuju podatke. Ovaj je modul ključan za upravljanje podacima povezanima s komunikacijskim sesijama i za njihovu analizu.

Pogledajmo ovaj modul detaljnije.

| Polje          | Tip                              | Opis                                               |
| -------------- | -------------------------------- | -------------------------------------------------- |
| `id`           | `bigint`                         | Jedinstveni identifikator zapisa (primarni ključ). |
| `telemetry_id` | `bigint`                         | Referenca na telemetriju (`telemetry.id`).         |
| `event_time`   | `integer`                        | Vrijeme događaja.                                  |
| `evtid`        | `smallint`                       | Identifikator događaja.                            |
| `trycnt`       | `smallint`                       | Broj pokušaja.                                     |
| `tryfl`        | `character varying(12)`          | Oznaka pokušaja.                                   |
| `state`        | `smallint`                       | Status sesije.                                     |
| `btm`          | `integer`                        | Napunjenost baterije.                              |
| `rssi`         | `integer`                        | Jakost signala (ako se koristi).                   |
| `created_at`   | `timestamp(6) without time zone` | Vrijeme stvaranja zapisa.                          |
| `updated_at`   | `timestamp(6) without time zone` | Vrijeme posljednjeg ažuriranja zapisa.             |

Modul `seances` koristi se za:

- čuvanje informacija o komunikacijskim sesijama i radu opreme;
- upravljanje podacima povezanima sa sesijama (na primjer, vrijeme događaja, status sesije, jakost signala i napunjenost baterije);
- analizu sesija radi otkrivanja problema ili optimizacije performansi sustava;
- upravljanje statusom sesije: polje `state` omogućuje vam da pratite status sesije (na primjer, uspješno, pogreška itd.);
- analizu sesija: polja `duration_session` i `session_traffic` omogućuju vam da analizirate trajanje sesije i količinu njezina podatkovnog prometa;
- praćenje izmjena: polja `created_at` i `updated_at` omogućuju vam da pratite izmjene podataka o sesijama.

## Tipovi arhiva

Atribut `archive_type_id` razvrstava podatke u tablici `channel_data` prema tipu arhive. Tako se podaci mogu organizirati u različite kategorije, kao što su satne, dnevne i mjesečne arhive, nenormalni režimi rada i drugi tipovi arhiva. Tablica `referenceparameters` čuva šifrarnik tipova arhiva.

Ovaj se modul temelji na vezi između tablica `channel_data` i `referenceparameters`.

| Polje               | Tip                              | Opis                                               |
| ------------------- | -------------------------------- | -------------------------------------------------- |
| `id`                | `bigint`                         | Jedinstveni identifikator zapisa (primarni ključ). |
| `name`              | `character varying(30)`          | Naziv tipa arhive.                                 |
| `varname`           | `character varying(30)`          | Kratko ime varijable za tip arhive.                |
| `description`       | `character varying(100)`         | Opis tipa arhive.                                  |
| `parent_id`         | `integer`                        | Referenca na nadređeni parametar (hijerarhija).    |
| `referencemodel_id` | `integer`                        | Referenca na model šifrarnika.                     |
| `created_at`        | `timestamp(6) without time zone` | Vrijeme stvaranja zapisa.                          |
| `updated_at`        | `timestamp(6) without time zone` | Vrijeme posljednjeg ažuriranja zapisa.             |
| `deleted_at`        | `timestamp(6) without time zone` | Vrijeme logičkog brisanja zapisa (soft delete).    |

Polje `archive_type_id` u tablici `channel_data` omogućuje vam da razvrstate podatke prema tipu arhive.

Na primjer:

```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'],
    ...
  ]
]
```

Po potrebi se ove arhive mogu organizirati u skupine:

- trenutačni podaci (`current_state`) – očitanja u trenutku komunikacijske sesije;
- agregirani podaci (`hourly`, `daily`, `monthly`) – zbirna očitanja za određeno vremensko razdoblje;
- događaji i nenormalni režimi rada (`nesht`, `event`) – zapisi o značajnim promjenama ili pojavama u sustavu. Mogu se odnositi na opremu, korisnike ili vanjske čimbenike;
- status ventila (`valve`) – stanje ventila mjerila, ako postoji, i upravljanje njime;
- upravljačke radnje (`update_app`, `send_sms`, `send_json`) – zapisi o naredbama ili radnjama izvršenima radi upravljanja sustavom ili opremom;
- i tako dalje.

Modul predstavljanja podataka `archive_type_id` omogućuje vam da učinkovito razvrstate podatke prema tipovima arhiva i upravljate šifrarnikom. On osigurava:

- klasifikaciju podataka u tablici `channel_data`;
- upravljanje šifrarnikom tipova arhiva;
- analizu podataka prema tipu arhive.
