Wiki - eIntranet.net

Deutsch flag Čeština flag English flag Español flag Slovenčina flag Magyar flag Polski flag

Dochádzka - čip/odtlačok prsta

Modul Dochádzka - čip/čítačka odtlačkov prstov

1. Prehľad modulu

1.1 Účel modulu

Modul Dochádzka - čip/čítačka odtlačkov prstov (WorkAttendanceChips) slúži na automatizované zaznamenávanie pracovnej dochádzky zaměstnancov pomocou fyzických čipových kariet (RFID/NFC), biometrických čítačiek odtlačkov prstov alebo rozpoznávania tváre s využitím umelej inteligencie.

Modul eliminuje potrebu ručného zadávania časov príchodu a odchodu, zvyšuje presnosť evidencie a poskytuje kontrolné mechanizmy proti zneužitiu (napr. fotografia pri zapípnutí, minimálna dĺžka prestávky, automatické uzavretie pracovnej doby).

1.2 Kľúčové funkcie

  • Nastavenie čipových kariet - Evidencia bezpečnostného kódu čipu RFID/NFC pre každého zamestnanca
  • Čítačka odtlačkov prstov - Biometrická identifikácia pomocou odtlačkov prstov (voliteľné)
  • Rozpoznávanie tváre - AI detekcia tváre pomocou face-api.js (vyžaduje RasPi terminál s kamerou)
  • Dochádzkovový terminál RasPi - Fyzický terminál na zapisovanie dochádzky na mieste
  • IP obmedzenie - Whitelist povolených IP adries pre čítačky (bezpečnosť)
  • Konfigurovateľné tlačidlá - Typy dochádzky dostupné na termináli (lekár, služobná cesta atď.)
  • Automatické uzavretie - Automatické ukončenie pracovnej doby (3 režimy)
  • Fotografia pri zápise - Bezpečnostná fotografia z terminálu na detekciu zneužitia kariet
  • Zabránenie ručným úpravám - Prísny čipový režim s možnosťou výnimiek (dovolenka, choroba)
  • Minimálna prestávka - Vynútenie minimálnej dĺžky prestávky
  • Tlačidlá na dashboarde - Virtuálny príchod/odchod priamo v systéme bez fyzickej karty

1.3 Cieľová skupina

Táto dokumentácia je určená pre:

  • Administrátorov systému - Konfigurácia modulu, správa čítačiek, nastavenie bezpečnosti
  • Personalistov - Správa používateľských práv, nastavenie kódov čipov, kontrola fotografií
  • IT administrátorov - Inštalácia RasPi terminálov, nastavenie siete, aktualizácia firmware
  • Vedúcich pracovníkov - Kontrola dochádzky, schvaľovanie výnimiek
Dôležité: Pre prístup k nastaveniu modulu musí mať používateľ buď práva administrátora (admin=1) alebo musí byť uvedený v poli AdminToModules_ser_arr s hodnotou dochazka_cipy.

2. Nastavenie a konfigurácia

2.1 Nastavenie modulu

Cesta k nastaveniu: Nastavenia → Dochádzka - čip/čítačka odtlačkov prstov

Modul využíva nasledujúce konfiguračné parametre uložené v databázovej tabuľke Company a User:

Parametre tabuľky Company

Parameter Typ Popis Predvolená hodnota
wa_RasPi_Face boolean Zapnúť rozpoznávanie tváre (vyžaduje RasPi s kamerou) 0 (vypnuté)
wa_RasPi_TakePhoto boolean Vytvárať fotografie pri zápise z terminálu 0 (vypnuté)
wa_chip_allowed_ips_ser_arr array Povolené IP adresy čítačiek (serializované pole) ['all']
wa_chip_show_active boolean Zobraziť stavy (prítomnosť) ostatných v čítačke 0 (vypnuté)
wa_chip_use_WDT_14 boolean Umožniť zapisovať Obedy oddelene od Prestávok 0 (vypnuté)
wa_chip_buttons_on_dashboard boolean Zobraziť tlačidlá Príchod/Odchod na hlavnom paneli 0 (vypnuté)
wa_chip_WritePause boolean Zapisovať prestávku po návrate v ten istý deň 0 (vypnuté)
wa_chip_AutoCloseInLastDay boolean Upozornenie a uzavretie dochádzky z predchádzajúceho dňa 0 (vypnuté)
wa_chip_ChiporFaceDetect string Primárny režim detekcie ('c' = čip, 'f' = tvár) 'c' (čip)

Parametre tabuľky User

Parameter Typ Popis Predvolená hodnota
wa_chip_code string Bezpečnostný hash kód čipu zamestnanca NULL
wa_chip_last_inout enum Aktuálny stav zamestnanca ('in', 'out') 'out'
wa_chip_minimal_pause_min int Minimálna dĺžka prestávky v minútach NULL
wa_chip_last_poznamka string Posledná poznámka pri zapípnutí NULL
wa_chip_AllowManualType_ser_arr array Povolené typy dochádzky pre ručný zápis (serializované pole) []
rights_workattendance enum Práva dochádzky ('1' = len čip, '2' = aj ručný zápis) '2'
FingerPrints_ser_arr array Uložené odtlačky prstov (serializované pole) []

2.2 Používateľské práva

Pre prístup k nastaveniu modulu je potrebné splniť jednu z nasledujúcich podmienok:

  • Práva administrátora: $Logged_User->admin == 1
  • Správca modulu: in_array('dochazka_cipy', $Logged_User->AdminToModules_ser_arr)
Bezpečnostné upozornenie: Bez týchto práv je prístup k modulu zamietnutý volaním funkcie DieUnauthorized().

3. Používateľské rozhraní

3.1 Prehľad záložiek

Používateľské rozhranie modulu je rozdelené do 5 hlavných záložiek:

  1. Používateľské práva - Nastavenie kódov čipov, odtlačkov prstov, zabránenie ručným úpravám
  2. Povolené IP adresy - Whitelist IP adries čítačiek
  3. Navyše povolené tlačidlá - Konfigurácia tlačidiel na termináli
  4. Ostatné nastavenia - Všeobecné nastavenia modulu
  5. Registrované čítačky - Prehľad RasPi terminálov
Poznámka: Aktuálne zobrazená záložka je uložená v session premennej $_SESSION['nastaveni_dochazka_cipy']['Show'].

3.2 Záložka: Používateľské práva

Hlavná záložka pre nastavenie prístupu zamestnancov k dochádzkovému systému.

Detekcia používateľa

Systém podporuje 3 spôsoby identifikácie zamestnanca:

Metóda Popis Požiadavky Stav
Podľa čipu (RFID/NFC) Štandardná čipová karta Čítačka RFID/NFC Vždy zapnuté
Podľa tváre AI rozpoznávanie tváre pomocou face-api.js RasPi terminál s kamerou, wa_RasPi_Face=1 Voliteľné
Podľa odtlačku prsta Biometrická čítačka odtlačkov RasPi s čítačkou odtlačkov, FingerPrintReader=1 Voliteľné

Tabuľka zamestnancov

Tabuľka obsahuje nasledujúce stĺpce:

Stĺpec Popis Akcie
ID ID zamestnanca v systéme -
Priezvisko, meno Celé meno s odkazom na detail používateľa Kliknutím otvoríte detail zamestnanca
Kód čipu Bezpečnostný hash kód čipu
  • Zadajte do textového poľa
  • Zmena sa automaticky uloží (onChange)
  • Ikona schránky skopíruje API URL
Odtlačok prsta Indikátor, či má zamestnanec uložené odtlačky Zobrazuje 0/1 podľa sizeofSafe($User->FingerPrints_ser_arr)
Zabrániť úpravám Checkbox pre zabránenie ručným úpravám dochádzky
  • Začiarknutím sa nastaví rights_workattendance='1'
  • Zobrazí sa tlačidlo pre povolenie výnimiek
Minimálna dĺžka prestávky Počet minút minimálnej prestávky Zadajte číslo (napr. 30), zmena sa automaticky uloží
Akcie Špeciálne akcie pre zamestnanca
  • Ak je stav "in", zobrazí sa tlačidlo Resetovať (pre príchod)
  • Resetuje stav na "out"

Tlačidlo: Ručne môže zapisovať len typ dochádzky...

Toto tlačidlo sa zobrazí len u zamestnancov, ktorí majú začiarknuté Zabrániť úpravám pracovnej doby.

Funkcia: Otvorí modálne okno pre výber typov dochádzky, ktoré môže zamestnanec zapisovať ručne aj napriek zabráneniu ručným úpravám.

Typické použitie:

  • Dovolenka (zamestnanec si môže zadať dovolenku ručne)
  • Choroba (zamestnanec si môže zadať chorobu ručne)
  • Homeoffice (zamestnanec si môže zadať homeoffice ručne)
Tip: Tento mechanizmus umožňuje striktú kontrolu dochádzky (len čip), ale zároveň poskytuje flexibilitu pre špeciálne typy absencie.

3.3 Záložka: Povolené IP adresy

Táto záložka slúži na nastavenie bezpečnostného whitelistu IP adries, z ktorých sa môžu čítačky hlásiť do systému.

Hlavný checkbox

Povoliť prístup čítačky len z nižšie uvedených IP adries

  • Začiarknuté: Systém kontroluje IP adresu požiadavky proti whitelistu
  • Nezačiarknuté: Prístup je povolený zo všetkých IP adries (wa_chip_allowed_ips_ser_arr = ['all'])

Dynamické pole IP adries

Po začiarknutí hlavného checkboxu sa zobrazí pole pre zadanie IP adries:

  • Každá IP adresa má vlastné textové pole
  • Po vyplnení sa automaticky zobrazí ďalšie prázdne pole
  • Zmeny sa ukladajú automaticky (AJAX)
  • Vždy sú viditeľné minimálne 2 prázdne polia na pridanie ďalších IP

Príklad nastavenia:

192.168.1.100
192.168.1.101
10.0.0.50
Dôležité: Ak zapnete IP whitelist a nezadáte žiadnu IP adresu, čítačky sa nebudú môcť pripojiť! Uistite sa, že máte zadané správne IP adresy pred aktiváciou.

3.4 Záložka: Navyše povolené tlačidlá

Konfigurácia dodatočných tlačidiel na dochádzkovom termináli pre špeciálne typy dochádzky (lekár, služobná cesta atď.).

Tlačidlo: Pridať tlačidlo

Otvorí modálne okno pre pridanie nového tlačidla:

  1. Vyberte Typ dochádzky z rozbaľovacieho zoznamu (načítavajú sa len typy s chip_buttons_available=1)
  2. Kliknite na Uložiť
  3. Tlačidlo sa objaví na termináli a v tabuľke

Tabuľka tlačidiel

Zobrazuje všetky nakonfigurované tlačidlá s nasledujúcimi stĺpcami:

Stĺpec Popis Možnosti
Tlačidlo Názov typu dochádzky Napr. "Lekár", "Služobná cesta"
Automatické ukončenie k počtu pracovných hodín za deň Systém dopočíta koniec podľa denného úväzku
  • Radio button
  • Uloží autoclose_user_hour_day=1
  • Príklad: Úväzok 8h, príchod 7:00 → auto koniec 15:00
Automatické ukončenie k zadanému času Pevný čas ukončenia
  • Radio button + časové pole (HH:MM)
  • Uloží autoclose_user_hour_day=0
  • Uloží autoclose_at_time (napr. "15:30:00")
  • Príklad: Vždy ukončiť v 16:00
Pevne daná dĺžka v min Konkrétny počet minút
  • Radio button + číselné pole
  • Uloží autoclose_user_hour_day=2
  • Uloží autoclose_at_length (minúty)
  • Príklad: Lekár = 60 min
Akcie Tlačidlo pre odstránenie
  • Tlačidlo Odstrániť tlačidlo
  • Nastaví delete=1
  • Tlačidlo zmizne z terminálu

Režimy automatického ukončenia - podrobne

1. K počtu pracovných hodín za deň

Ako to funguje:

  1. Systém načíta denný úväzok zamestnanca (napr. 8 hodín)
  2. Pri zapípnutí príchodu zaznamená čas (napr. 7:00)
  3. Automaticky vypočíta koniec: 7:00 + 8h = 15:00
  4. Ak zamestnanec nezapíše odchod do polnoci, systém automaticky ukončí v 15:00

Príklad použitia: Služobná cesta - zamestnanec odíde na cestu, systém ukončí dobu automaticky podľa jeho úväzku.

2. K zadanému času

Ako to funguje:

  1. Administrátor nastaví pevný čas ukončenia (napr. 15:30)
  2. Pri zapípnutí príchodu zaznamená čas (napr. 7:00)
  3. Ak zamestnanec nezapíše odchod do polnoci, systém automaticky ukončí v 15:30

Príklad použitia: Konferencia - všetci účastníci majú pevný koniec v 16:00.

3. Pevne daná dĺžka

Ako to funguje:

  1. Administrátor nastaví počet minút (napr. 60)
  2. Pri zapípnutí príchodu zaznamená čas (napr. 9:00)
  3. Systém automaticky ukončí za 60 minút: 9:00 + 60 min = 10:00

Príklad použitia: Lekár - zamestnanec ide k lekárovi, systém ukončí za 60 minút.

Poznámka: Ak nie je do polnoci odpípnutý koniec, systém aplikuje automatické ukončenie podľa zvoleného režimu. Podmienka je implementovaná vo funkcii pre uzavretie dochádzky.

3.5 Záložka: Ostatné nastavenia

Všeobecné nastavenia modulu ovplyvňujúce správanie celého systému.

Nastavenie Popis Predvolená hodnota
Zobraziť stavy (prítomnosť) ostatných v čítačke Na termináli sa zobrazí zoznam všetkých zamestnancov s ich aktuálnym stavom (prítomný/neprítomný).

Databázový stĺpec: wa_chip_show_active
Vypnuté (0)
Umožniť zapisovať Obedy oddelene od Prestávok Zamestnanec môže na termináli rozlíšiť medzi všeobecnou prestávkou a obedom (špeciálny typ prestávky).

Databázový stĺpec: wa_chip_use_WDT_14
Typ dochádzky: WDT_14 (Obed)
Vypnuté (0)
Zobraziť tlačidlá Príchod/Odchod na hlavnom paneli po prihlásení Každý zamestnanec uvidí po prihlásení na dashboarde tlačidlá na zapípnutie príchodu/odchodu bez nutnosti fyzickej karty.

Databázový stĺpec: wa_chip_buttons_on_dashboard
Použitie: Vhodné pre zamestnancov pracujúcich z domu alebo bez prístupu k terminálu
Vypnuté (0)
Zapisovať prestávku po návrate v ten istý deň Ak zamestnanec odpípe odchod a potom znova príchod v ten istý deň, systém automaticky zaznamená čas medzi ako prestávku.

Databázový stĺpec: wa_chip_WritePause
Príklad: Odchod 12:00, Príchod 12:30 → Prestávka 30 min
Vypnuté (0)
Fotografia pri zápise dochádzky z terminálu Pri každom zapípnutí z RasPi terminálu sa vytvorí fotografia zamestnanca. Slúži na detekciu zneužitia kariet (kontrola, že kartu používa skutočný majiteľ).

Databázový stĺpec: wa_RasPi_TakePhoto
Požiadavky: RasPi terminál s kamerou
Vypnuté (0)
Upozornenie a uzavretie dochádzky z predchádzajúceho dňa Ak zamestnanec zabudne odpípať odchod včera a dnes zapíše nový príchod, systém zobrazí upozornenie a vyžaduje doplnenie včerajšieho odchodu s nadriadeným.

Databázový stĺpec: wa_chip_AutoCloseInLastDay
Účel: Prevencia "visiacich" záznamov v dochádzke
Vypnuté (0)
Odporúčané nastavenie na zvýšenie bezpečnosti:
  • Zapnite Fotografia pri zápise - odhalí zneužitie kariet
  • Zapnite Upozornenie a uzavretie z predchádzajúceho dňa - zabráni chybám v dochádzke
  • Nastavte Minimálnu dĺžku prestávky (napr. 30 min) - vynucuje obed

3.6 Záložka: Registrované čítačky

Prehľad všetkých RasPi terminálov registrovaných v systéme.

Tabuľka čítačiek

Stĺpec Popis
ID Unikátny identifikátor čítačky v databáze (idRasPi)
Dátum obstarania Dátum inštalácie/registrácie čítačky (BuyDate)
Inštalovaná verzia FW Verzia firmware nainštalovaná na RasPi (Version)
Posledná kontrola Dátum a čas poslednej komunikácie s čítačkou (LastCheck)
Informácie: Čítačky sa automaticky registrujú pri prvom kontakte so serverom. Dáta čítačiek sú načítavané z databázovej tabuľky RasPi podľa Company_idCompany.

Diagnostika čítačiek

Podľa stĺpca Posledná kontrola môžete diagnostikovať problémy:

  • Zelená: Čítačka sa hlásila v poslednej hodine - všetko v poriadku
  • Žltá: Čítačka sa nehlásila viac ako hodinu - možný problém so sieťou
  • Červená: Čítačka sa nehlásila viac ako deň - závažný problém (vypnuté, sieť, hardvér)
Riešenie problémov:
  • Skontrolujte sieťové pripojenie RasPi
  • Overte, že je IP adresa RasPi v whiteliste (záložka "Povolené IP adresy")
  • Skontrolujte, či je RasPi zapnuté a beží
  • Skúste reštartovať RasPi

4. Základné operácie

4.1 Nastavenie kódu čipu zamestnancovi

Cieľ: Priradiť zamestnancovi bezpečnostný kód čipu, aby mohol zapisovať dochádzku.

  1. Otvorte Nastavenia → Dochádzka - čip/čítačka odtlačkov prstov
  2. Prejdite na záložku Používateľské práva
  3. V tabuľke zamestnancov nájdite požadovaného zamestnanca (môžete použiť vyhľadávanie)
  4. Do stĺpca Kód čipu zadajte bezpečnostný hash kód (odporúčané minimálne 16 znakov, náhodné)
  5. Systém automaticky uloží zmenu pri opustení poľa (onChange event)
  6. Voliteľne: Kliknite na ikonu schránky (fa-clipboard) pre skopírovanie API URL na testovanie
Príklad API URL:
https://vasa-domena.sk/?w=wa_chip_inout&idUser=123&hash=abc123xyz789def456

4.2 Zabránenie ručným úpravám dochádzky

Cieľ: Nastaviť zamestnancovi prísny režim, kde môže zapisovať dochádzku len čipom.

  1. V záložke Používateľské práva nájdite zamestnanca
  2. V riadku zamestnanca začiarknite checkbox Zabrániť úpravám pracovnej doby v dochádzke
  3. Systém nastaví rights_workattendance='1'
  4. Zobrazí sa zelené tlačidlo Ručne môže zapisovať len typ dochádzky...
  5. Kliknite na tlačidlo
  6. V modálnom okne začiarknite povolené typy (napr. Dovolenka, Choroba, Homeoffice)
  7. Kliknite na Uložiť

Výsledok: Zamestnanec teraz nemôže ručne upravovať dochádzku, ale môže si ručne zadať vybrané typy absencie.

Technické podrobnosti: Povolené typy sa ukladajú do serializovaného poľa wa_chip_AllowManualType_ser_arr. Pri pokuse o ručný zápis systém kontroluje, či je typ povolený.

4.3 Nastavenie minimálnej prestávky

Cieľ: Vynútiť minimálnu dĺžku prestávky (napr. obed minimálne 30 minút).

  1. V záložke Používateľské práva nájdite zamestnanca
  2. Do stĺpca Minimálna dĺžka prestávky (minút) zadajte počet minút (napr. 30)
  3. Systém automaticky uloží zmenu

Ako to funguje:

  • Zamestnanec odpípe prestávku (napr. 12:00 - 12:10 = 10 minút)
  • Systém skontroluje wa_chip_minimal_pause_min (napr. 30)
  • Ak je prestávka kratšia, automaticky ju predĺži na minimum (10 min → 30 min)
  • V zápise dochádzky sa objaví prestávka 30 minút
Upozornenie: Automatické predĺženie prestávky môže zamestnanca prekvapiť. Odporúčame informovať zamestnancov o nastavení minimálnej prestávky.

4.4 Reset stavu príchod/odchod

Cieľ: Resetovať "visiaci" stav zamestnanca, ktorý zabudol odpípať odchod.

  1. V záložke Používateľské práva nájdite zamestnanca
  2. Ak je zamestnanec v stave "in" (prítomný), zobrazí sa tlačidlo Resetovať (pre príchod)
  3. Kliknite na tlačidlo
  4. Systém zmení stav na "out" (neprítomný)
  5. Zamestnanec teraz môže znova odpípať príchod

Kedy použiť:

  • Zamestnanec zabudol odpípať odchod včera
  • Systém "visí" v stave "in" a neumožňuje nový príchod
  • Potrebujete rýchlo odblokovať zamestnanca
Poznámka: Reset len zmení stav wa_chip_last_inout='out'. Nerieši chýbajúci zápis v dochádzke - ten musíte doplniť ručne v module Dochádzka.

5. Pokročilé funkcie

5.1 Pridanie tlačidla na čítačku

Cieľ: Pridať špeciálny typ dochádzky (napr. Lekár, Služobná cesta) ako tlačidlo na RasPi terminál.

  1. Prejdite na záložku Navyše povolené tlačidlá na čítačke čipov
  2. Kliknite na zelené tlačidlo Pridať tlačidlo
  3. V modálnom okne vyberte Typ dochádzky z rozbaľovacieho zoznamu
  4. Kliknite na Uložiť
  5. Tlačidlo sa zobrazí v tabuľke
  6. Nastavte režim automatického ukončenia (pozri nižšie)

Nastavenie automatického ukončenia

Po pridaní tlačidla vyberte jeden z 3 režimov:

A) K počtu pracovných hodín za deň
  • Začiarknite radio button v stĺpci Automatické ukončenie k počtu pracovných hodín za deň
  • Systém dopočíta koniec podľa denného úväzku zamestnanca
  • Príklad: Služobná cesta - zamestnanec má úväzok 8h, odíde v 9:00 → auto koniec 17:00
B) K zadanému času
  • Začiarknite radio button v stĺpci Automatické ukončenie k zadanému času
  • Do časového poľa nižšie zadajte čas (napr. 15:30)
  • Príklad: Školenie - všetci majú pevný koniec v 16:00
C) Pevne daná dĺžka
  • Začiarknite radio button v stĺpci Pevne daná dĺžka v min
  • Do číselného poľa nižšie zadajte počet minút (napr. 60)
  • Príklad: Lekár - automaticky ukončiť za 60 minút
Odporúčanie:
  • Služobná cesta → K počtu pracovných hodín
  • Školenie/Konferencia → K zadanému času
  • Lekár/Úrad → Pevne daná dĺžka (60-120 min)

5.2 Odstránenie tlačidla

  1. V tabuľke tlačidiel nájdite riadok s tlačidlom, ktoré chcete odstrániť
  2. Kliknite na červené tlačidlo Odstrániť tlačidlo
  3. Tlačidlo sa odstráni z databázy a zmizne z terminálu

5.3 Obmedzenie IP adries

Cieľ: Povoliť prístup k API len z dôveryhodných IP adries (čítačiek).

  1. Prejdite na záložku Povolené IP adresy, z ktorých sa môže čítačka hlásiť
  2. Začiarknite Povoliť prístup čítačky len z nižšie uvedených IP adries
  3. Do prvého prázdneho poľa zadajte IP adresu čítačky (napr. 192.168.1.100)
  4. Po zapísaní sa automaticky zobrazí ďalšie prázdne pole
  5. Opakujte pre všetky čítačky
  6. Zmeny sa ukladajú automaticky

Bezpečnostná kontrola v kóde:

// Systém kontroluje USER_IP proti wa_chip_allowed_ips_ser_arr
if (!in_array(USER_IP, $Company->wa_chip_allowed_ips_ser_arr)
    && $Company->wa_chip_allowed_ips_ser_arr[0] != 'all') {
    DieUnauthorized();
}
Kritické upozornenie: Ak zapnete IP whitelist a nezadáte IP adresy čítačiek, všetky čítačky budú zablokované! Najprv zadajte IP adresy, potom zapnite whitelist.

5.4 Zapnutie rozpoznávania tváre

Cieľ: Umožniť zamestnancom zapípať dochádzku pomocou tváre bez čipu.

Požiadavky:

  • RasPi terminál s kamerou
  • Fotografie zamestnancov v systéme (minimálne 1 fotka na zamestnanca)
  • JavaScript knižnica face-api.js (súčasť systému)

Postup aktivácie:

  1. Prejdite na záložku Používateľské práva
  2. V záhlaví tabuľky začiarknite Podľa tváre (nutná naša čítačka)
  3. Systém nastaví wa_RasPi_Face=1
  4. Na RasPi termináli sa aktivuje kamera a detekcia tváre

Ako to funguje:

  1. Zamestnanec pristúpi pred kameru RasPi
  2. Systém načíta všetky uložené fotografie zamestnancov
  3. Face-api.js deteguje tvár v živom videu
  4. Porovná detegovanú tvár s uloženými fotografiami (threshold 0.4)
  5. Pri zhode automaticky zapíše dochádzku
Technické detaily:
  • Knižnica: face-api.js v0.22.2
  • Model: SsdMobilenetv1 (rýchly, presný)
  • Threshold: 0.4 (40% zhoda = rozpoznanie)
  • Fotografie: Načítavajú sa z /UserFaceRecognitionShow/{hash}-{photoID}.png

5.5 Zobrazenie stavov ostatných

Cieľ: Na termináli zobraziť, kto je prítomný a kto nie.

  1. Prejdite na záložku Ostatné nastavenia
  2. Začiarknite Zobraziť stavy (prítomnosť) ostatných v čítačke
  3. Systém nastaví wa_chip_show_active=1

Výsledok: Na RasPi termináli sa zobrazí zoznam všetkých zamestnancov:

  • Zelená: Prítomný (wa_chip_last_inout='in')
  • Červená: Neprítomný (wa_chip_last_inout='out')
Výhody:
  • Zamestnanci vidia, kto je v práci
  • Rýchla orientácia pre návštevy
  • Transparentnosť dochádzky

5.6 Tlačidlá na dashboarde

Cieľ: Umožniť zamestnancom zapípať dochádzku priamo z webového rozhrania bez fyzickej karty.

  1. Prejdite na záložku Ostatné nastavenia
  2. Začiarknite Zobraziť tlačidlá Príchod/Odchod na hlavnom paneli po prihlásení
  3. Systém nastaví wa_chip_buttons_on_dashboard=1

Výsledok: Po prihlásení uvidí každý zamestnanec na dashboarde:

  • Zelené tlačidlo "Príchod" (ak je stav 'out')
  • Červené tlačidlo "Odchod" (ak je stav 'in')

Použitie:

  • Homeoffice - zamestnanec nemá prístup k čítačke
  • Mobilní zamestnanci - zapípnutie z mobilu/tabletu
  • Administrativa - záložný sposób zápisu
Bezpečnostná poznámka: Tlačidlá na dashboarde neoverujú fyzickú prítomnosť. Odporúčame kombinovať s fotografiami pri zápise alebo používať len pre dôveryhodných zamestnancov.

5.7 Fotografia pri zápise

Cieľ: Vytvárať bezpečnostnú fotografiu pri každom zapípnutí na detekciu zneužitia kariet.

  1. Prejdite na záložku Ostatné nastavenia
  2. Začiarknite Fotografia pri zápise dochádzky z terminálu
  3. Systém nastaví wa_RasPi_TakePhoto=1

Ako to funguje:

  1. Zamestnanec priloží čip k čítačke
  2. RasPi kamera vytvorí fotografiu
  3. Fotografia sa nahrá na server
  4. Uloží sa do tabuľky Files s väzbou na záznam dochádzky
  5. Administrátor môže fotografie skontrolovať v module Dochádzka

Detekcia zneužitia:

  • Na fotografii je iná osoba ako majiteľ karty → zneužitie
  • Fotografia je rozmazaná/prázdna → pokus o obídenie systému
  • Opakované fotografie tej istej osoby s cudzou kartou → pravidelné zneužitie
Odporúčanie: Zapnite fotografovanie pre maximálnu bezpečnosť. Zamestnancov informujte, že fotografie slúžia len na kontrolu a nie sú verejne prístupné.

6. Integrácia

6.1 Prepojené moduly

Modul Vzťah Popis
Dochádzka Zápis dát Automatický zápis časov príchodu/odchodu do tabuľky Workattendance.
Ak je zapnuté wa_chip_WritePause=1, zapisuje sa aj dĺžka prestávky.
Používatelia Väzba na zamestnancov Načítavanie používateľských dát (cUser trieda):
- Kód čipu (wa_chip_code)
- Odtlačky prstov (FingerPrints_ser_arr)
- Práva dochádzky (rights_workattendance)
- Minimálna prestávka (wa_chip_minimal_pause_min)
RasPi terminály Fyzická čítačka Správa RasPi zariadení (cRasPi trieda):
- Verzia firmware (Version)
- Posledná kontrola (LastCheck)
- Čítačka odtlačkov (FingerPrintReader)
- API endpoint (GetUrl())
Typy dochádzky Tlačidlá na čítačke Načítavanie typov dochádzky (cWorkattendance_days_type):
- Názov typu (day_name_cs)
- Dostupnosť na čítačke (chip_buttons_available)
- Väzba cez tabuľku Workattendance_chip_buttons
Súbory Fotografie pri zápise Ukladanie fotografií z terminálu:
- Tabuľka Files
- Väzba na záznam dochádzky
- Prístup cez modul Dochádzka

6.2 Dátové toky

Tok 1: Zapípnutie čipom z RasPi terminálu

1. Zamestnanec priloží čip k RasPi čítačke
   ↓
2. RasPi načíta kód čipu z RFID/NFC
   ↓
3. RasPi volá API endpoint:
   GET /?w=wa_chip_inout&idUser=123&hash=abc123xyz
   ↓
4. inc/wa_chip_inout.php spracuje požiadavku:
   - Overí hash proti User.wa_chip_code
   - Overí IP adresu proti wa_chip_allowed_ips_ser_arr
   - Skontroluje stav wa_chip_last_inout
   ↓
5. Zápis do tabuľky Workattendance:
   - Príchod: Vytvorí nový záznam s time_start
   - Odchod: Doplní time_end do existujúceho záznamu
   ↓
6. Aktualizácia User.wa_chip_last_inout:
   - 'in' → 'out' alebo 'out' → 'in'
   ↓
7. Ak wa_RasPi_TakePhoto=1:
   - RasPi vytvorí fotografiu
   - Nahrá na server
   - Uloží do tabuľky Files
   ↓
8. Odpoveď RasPi terminálu:
   - HTML stránka s potvrdením
   - Zobrazenie času zápisu
   - Zoznam prítomných (ak wa_chip_show_active=1)

Tok 2: Zapípnutie z dashboardu (webové rozhranie)

1. Zamestnanec klikne na tlačidlo "Príchod" na dashboarde
   ↓
2. JavaScript volá AJAX:
   $.get('/?w=wa_chip_inout&idUser='+idUser+'&hash='+hash)
   ↓
3. inc/wa_chip_inout.php spracuje rovnako ako RasPi
   ↓
4. Zápis do Workattendance
   ↓
5. Aktualizácia wa_chip_last_inout
   ↓
6. Odpoveď AJAX:
   - Dashboard sa obnoví
   - Zobrazí sa nový stav ("Odchod" namiesto "Príchod")

Tok 3: Rozpoznávanie tváre (Face Recognition)

1. Zamestnanec pristúpi pred kameru RasPi
   ↓
2. RasPi streamuje video na server
   ↓
3. JavaScript face-api.js:
   - Načíta všetky fotografie zamestnancov
   - Vytvorí FaceMatcher s uloženými tvárami
   - Deteguje tvár v živom videu
   - Porovná s uloženými tvárami
   ↓
4. Pri zhode (threshold > 0.4):
   window.location.replace('?w=wa_chip_inout&FaceDetection='+hash)
   ↓
5. Server spracuje FaceDetection parameter:
   - Nájde idUser podľa hashu
   - Načíta wa_chip_code
   - Zapíše dochádzku
   ↓
6. Rovnaký tok ako Tok 1 (krok 5-8)

6.3 Závislosti

Komponenta Závislosť Povinná
RasPi terminál Fyzické zariadenie s čítačkou RFID/NFC Áno
Dochádzkovový modul Musí byť aktívny pre zápis dát Áno
Používatelia Zamestnanci musia mať práva dochádzky Áno
RasPi s kamerou Pre rozpoznávanie tváre a fotografie Voliteľné
Čítačka odtlačkov Pre biometrickú identifikáciu Voliteľné
face-api.js Knižnica pre rozpoznávanie tváre Voliteľné
Sieťové pripojenie RasPi musí mať prístup na server Áno

7. API endpoint

7.1 Hlavný endpoint

URL formát:

https://vasa-domena.sk/?w=wa_chip_inout&idUser={ID}&hash={HASH}

7.2 Parametre

Parameter Typ Povinný Popis
w string Áno Identifikátor endpointu
Hodnota: wa_chip_inout
idUser int Áno ID zamestnanca v systéme
Príklad: 123
hash string Áno Bezpečnostný hash kód čipu
Zodpovedá: User.wa_chip_code
Príklad: abc123xyz789def456
idWorkattendance_chip_buttons int Nie ID tlačidla na čítačke (špeciálny typ dochádzky)
Príklad: 5 (Lekár)
FaceDetection string Nie Hash rozpoznanej tváre
Formát: {userHash}-{photoID}
Príklad: abc123-1
FingerID int Nie ID rozpoznaného odtlačku prsta
Príklad: 7
wa_chip_action string Nie Špecifická akcia (napr. ručný výber poznámky)
Hodnoty: note, pause

7.3 Bezpečnostné kontroly

API endpoint vykonáva nasledujúce bezpečnostné kontroly:

  1. Overenie hashu:
    if ($User->wa_chip_code != $_GET['hash']) {
        DieUnauthorized();
    }
  2. Kontrola IP adresy:
    if (!in_array(USER_IP, $Company->wa_chip_allowed_ips_ser_arr)
        && $Company->wa_chip_allowed_ips_ser_arr[0] != 'all') {
        DieUnauthorized();
    }
  3. Kontrola existencie používateľa:
    $User = new cUser();
    $User->load($_GET['idUser']);
    if ($User->idUser == 0) {
        DieUnauthorized();
    }
  4. Kontrola aktívneho účtu:
    if ($User->active != 1 || $User->deleted != 0) {
        DieUnauthorized();
    }

7.4 Odpoveď API

API vracia HTML stránku s nasledujúcimi informáciami:

  • Hodiny a dátum: Aktuálny čas a dátum (JavaScript hodiny)
  • Potvrdenie zápisu: "Príchod zaznamenaný" / "Odchod zaznamenaný"
  • Čas zápisu: Presný čas zapípnutia
  • Zoznam prítomných: Ak wa_chip_show_active=1
  • Fotografia: Ak wa_RasPi_TakePhoto=1, zobrazí sa náhľad fotografie

7.5 Príklady volania

Príklad 1: Bežný príchod

GET https://firma.sk/?w=wa_chip_inout&idUser=45&hash=x7k9mN2pQ5rT8vW1

Príklad 2: Odchod k lekárovi (tlačidlo ID=3)

GET https://firma.sk/?w=wa_chip_inout&idUser=45&hash=x7k9mN2pQ5rT8vW1&idWorkattendance_chip_buttons=3

Príklad 3: Rozpoznanie tváre

GET https://firma.sk/?w=wa_chip_inout&FaceDetection=abc123def456-1

Príklad 4: Odtlačok prsta

GET https://firma.sk/?w=wa_chip_inout&idUser=45&hash=x7k9mN2pQ5rT8vW1&FingerID=7

8. RasPi terminál

8.1 Popis zariadenia

RasPi (Raspberry Pi) terminál je kompaktný počítač veľkosti kreditnej karty, ktorý slúži ako fyzická dochádzková čítačka.

Hardvérové komponenty

Komponenta Popis Povinná
Raspberry Pi Základná doska (odporúčané RPi 4 alebo novšie) Áno
Čítačka RFID/NFC Modul na čítanie čipových kariet (napr. RC522) Áno
Displej Touchscreen displej na zobrazenie tlačidiel a stavov Áno
Kamera Pi Camera na fotografovanie a rozpoznávanie tváre Voliteľné
Čítačka odtlačkov Biometrická čítačka odtlačkov prstov (napr. R307) Voliteľné
Sieťové pripojenie Ethernet alebo WiFi na komunikáciu so serverom Áno

8.2 Funkcie terminálu

Základné funkcie

  • Čítanie čipov: Automatická detekcia RFID/NFC kariet
  • Zobrazenie času: Aktuálny čas a dátum
  • Tlačidlá typov dochádzky: Príchod, Odchod, Prestávka, Obed + konfigurovateľné tlačidlá
  • Potvrdenie zápisu: Vizuálna a zvuková signalizácia úspešného zápisu
  • Zoznam prítomných: Zobrazenie, kto je v práci (ak zapnuté)

Pokročilé funkcie (voliteľné)

  • Rozpoznávanie tváre: AI detekcia pomocou kamery a face-api.js
  • Čítanie odtlačkov: Biometrická identifikácia pomocou odtlačkov prstov
  • Fotografovanie: Vytvorenie bezpečnostnej fotografie pri každom zapípnutí
  • Video stream: Živé video z kamery na rozpoznávanie tváre

8.3 Správa terminálu

Registrácia nového terminálu

  1. Fyzicky pripojte RasPi k sieti (Ethernet alebo WiFi)
  2. Spustite inštalačný skript na RasPi
  3. RasPi sa automaticky zaregistruje na serveri:
POST https://firma.sk/RestAPI/RasPi.php
{
    "action": "register",
    "hash": "E5tlu8Jg44ZwwlBQgSbCE3lU7RSRvMXa"
}
  1. V administrácii sa zobrazí nový terminál v záložke Registrované čítačky

Kontrola stavu terminálu

Terminál sa pravidelne hlási na server (každých 5 minút):

GET https://firma.sk/RestAPI/RasPiCheck.php?hash={hash}

Server aktualizuje stĺpec LastCheck v tabuľke RasPi.

Aktualizácia firmware

  1. Prihláste sa na RasPi cez SSH
  2. Spustite príkaz: sudo /home/pi/UpdateFromeIntranetServer
  3. Skript stiahne najnovšiu verziu z: https://firma.sk/Apps/RasPiUpdate/
  4. Automaticky reštartuje služby
  5. Verzia sa aktualizuje v databáze (Version stĺpec)

8.4 API URL terminálu

Každý RasPi terminál má unikátne API URL:

https://firma.sk/RasPi/{HASH}/RFID/WorkAttenDance

Kde {HASH} je bezpečnostný identifikátor terminálu (napr. E5tlu8Jg44ZwwlBQgSbCE3lU7RSRvMXa).

Použitie:

  • RasPi načíta čip s kódom 12345
  • RasPi volá: https://firma.sk/?w=wa_chip_inout&idUser=45&hash=12345
  • Server overí a zapíše dochádzku
  • RasPi zobrazí potvrdenie

8.5 Diagnostika problémov

Problém: Terminál sa nehlási

Príznaky: V záložke "Registrované čítačky" je starý čas v stĺpci "Posledná kontrola"

Riešenie:

  1. Skontrolujte sieťové pripojenie RasPi (ping server)
  2. Overte, že je IP adresa RasPi v whiteliste
  3. Skontrolujte logy na RasPi: /var/log/eintranet/
  4. Reštartujte RasPi: sudo reboot

Problém: Čítačka nečíta čipy

Príznaky: Priloženie čipu nevyvolá žiadnu reakciu

Riešenie:

  1. Skontrolujte fyzické pripojenie čítačky k RasPi
  2. Overte, že beží služba čítačky: sudo systemctl status rfid
  3. Reštartujte službu: sudo systemctl restart rfid
  4. Skontrolujte, že čip je kompatibilný (RFID/NFC 13.56 MHz)

Problém: Rozpoznávanie tváre nefunguje

Príznaky: Kamera nezobrazuje video alebo nerozpoznáva tváre

Riešenie:

  1. Overte, že je v nastavení zapnuté: wa_RasPi_Face=1
  2. Skontrolujte pripojenie kamery k RasPi
  3. Overte, že zamestnanci majú nahrané fotografie v systéme
  4. Skontrolujte JavaScript konzolu v prehliadači na chyby
  5. Skúste znížiť threshold: upravte minConfidence = 0.3 (namiesto 0.4)

9. Tipy a triky

9.1 Kopírovanie API URL

Tip: V záložke "Používateľské práva" kliknite na ikonu schránky (fa-clipboard) vedľa kódu čipu. URL sa skopíruje do schránky.

Použitie: Môžete URL otvoriť v prehliadači na ručné testovanie zapípnutia bez fyzickej čítačky.

9.2 Testovanie bez RasPi terminálu

Postup:

  1. Skopírujte API URL zamestnanca
  2. Otvorte URL v prehliadači
  3. Systém zapíše dochádzku ako z RasPi
Upozornenie: Ak máte zapnutý IP whitelist, musíte pridať vašu IP adresu, inak bude prístup zamietnutý.

9.3 Reset "visiacich" stavov hromadne

Situácia: Viac zamestnancov zabudlo odpípať odchod a systém je v stave "in".

Riešenie SQL dotazom:

UPDATE User
SET wa_chip_last_inout='out'
WHERE Company_idCompany=123
AND wa_chip_last_inout='in';

Poznámka: Toto len resetuje stavy, nerieši chýbajúce záznamy v dochádzke.

9.4 Nastavenie minimálnej prestávky pre všetkých

Situácia: Chcete nastaviť minimálnu prestávku 30 minút pre všetkých zamestnancov.

Riešenie SQL dotazom:

UPDATE User
SET wa_chip_minimal_pause_min=30
WHERE Company_idCompany=123
AND active=1
AND deleted=0;

9.5 Exportovanie kódov čipov

Postup:

  1. V záložke "Používateľské práva" použite DataTables export
  2. Kliknite na tlačidlo "Excel" alebo "CSV"
  3. Stiahne sa súbor so všetkými kódmi čipov

9.6 Automatické tlačidlo pre homeoffice

Odporúčanie: Pridajte tlačidlo "Homeoffice" s automatickým ukončením k počtu pracovných hodín.

Výhoda: Zamestnanec zapíše homeoffice, systém automaticky ukončí podľa jeho úväzku.

9.7 Kombinácia čipu a tváre

Možnosť: Zapnite rozpoznávanie tváre aj čipu súčasne.

Výhoda:

  • Zamestnanec môže použiť čip (rýchle)
  • Alebo tvár (ak zabudol kartu)
  • Systém podporuje oboje

9.8 Fotografia ako dôkaz

Tip: Ak máte spory o dochádzke, použite fotografie z terminálu ako dôkaz.

Prístup:

  1. Modul Dochádzka
  2. Detail záznamu
  3. Zobrazí sa fotografia vytvorená pri zapípnutí

9.9 Mobilná aplikácia ako alternatíva

Informácie: Systém podporuje aj mobilnú aplikáciu na zapípnutie dochádzky.

Výhoda:

  • Zamestnanec nemusí mať čip
  • Zapípnutie z telefónu odkiaľkoľvek
  • GPS lokácia pri zápise (voliteľné)

9.10 Pravidelné čistenie starých fotografií

Tip: Fotografie zaberajú miesto na serveri. Nastavte automatické mazanie starších ako 3 mesiace.

Cron job:

DELETE FROM Files
WHERE table_name='Workattendance'
AND created < DATE_SUB(NOW(), INTERVAL 3 MONTH);

10. Riešenie problémov

10.1 Čip nefunguje

Príznaky: Priloženie čipu k čítačke nevyvolá žiadnu reakciu alebo sa zobrazí chyba.

Možné príčiny a riešenie:

Príčina Riešenie
Chybný alebo prázdny kód čipu Skontrolujte, že je v záložke "Používateľské práva" vyplnený Kód čipu.
Musí presne zodpovedať kódu v čipe.
IP adresa čítačky nie je v whiteliste Prejdite na záložku "Povolené IP adresy".
Pridajte IP adresu RasPi terminálu.
Alebo vypnite IP whitelist (nezačiarknuté).
Čítačka nečíta čip Skontrolujte fyzické pripojenie čítačky k RasPi.
Reštartujte službu RFID: sudo systemctl restart rfid
Nekompatibilný čip Overte, že čip je RFID/NFC 13.56 MHz (napr. Mifare).
Systém nepodporuje 125 kHz čipy.
Sieťový problém Skontrolujte pripojenie RasPi k sieti.
Ping na server: ping vasa-domena.sk

Testovanie: Skopírujte API URL (ikona schránky) a otvorte v prehliadači. Ak funguje, problém je v RasPi/čítačke. Ak nefunguje, problém je v nastavení systému.

10.2 Zamestnanec nemôže zapisovať ručne

Príznaky: Pri pokuse o ručný zápis v module Dochádzka sa zobrazí chyba "Nemáte oprávnenie".

Možné príčiny a riešenie:

Príčina Riešenie
Začiarknuté "Zabrániť úpravám" V záložke "Používateľské práva" odčiarknite checkbox Zabrániť úpravám pracovnej doby.
Alebo kliknite na Ručne môže zapisovať len typ dochádzky... a povoľte konkrétne typy.
Typ dochádzky nie je povolený Kliknite na Ručne môže zapisovať len typ dochádzky...
Začiarknite požadovaný typ (napr. Dovolenka, Choroba).
Kliknite Uložiť.
Nemá práva k dochádzke V administrácii používateľov skontrolujte, že má zamestnanec rights_workattendance nastavené.
Musí byť '1' alebo '2' (nie NULL alebo 0).

10.3 Prestávka sa automaticky predlžuje

Príznaky: Zamestnanec zapíše prestávku 15 minút, ale v systéme sa objaví 30 minút.

Príčina: Je nastavená minimálna dĺžka prestávky.

Riešenie:

  1. V záložke "Používateľské práva" nájdite zamestnanca
  2. V stĺpci Minimálna dĺžka prestávky (minút) vymažte hodnotu alebo znížte (napr. z 30 na 15)
  3. Systém automaticky uloží

Poznámka: Predĺženie prestávky je zamýšľaná funkcia, nie chyba. Slúži na vynútenie obeda.

10.4 Fotografie sa nevytváraju

Príznaky: V module Dochádzka u záznamov chýbajú fotografie, aj keď je funkcia zapnutá.

Možné príčiny a riešenie:

Príčina Riešenie
Nie je zapnuté v nastavení V záložke "Ostatné nastavenia" začiarknite Fotografia pri zápise dochádzky z terminálu.
Skontrolujte, že wa_RasPi_TakePhoto=1.
RasPi nemá kameru Overte, že je k RasPi fyzicky pripojená Pi Camera.
Skontrolujte pripojenie kábla kamery.
Spustite test kamery: raspistill -o test.jpg
Služba kamery nebeží Skontrolujte stav: sudo systemctl status camera
Reštartujte: sudo systemctl restart camera
Chyba pri nahrávaní na server Skontrolujte logy RasPi: /var/log/eintranet/camera.log
Overte sieťové pripojenie a oprávnenia k zápisu na serveri.
Zapípnutie z dashboardu Fotografie sa vytvárajú len pri zapípnutí z RasPi terminálu.
Tlačidlá na dashboarde fotografie nevytvárajú (nemajú kameru).

10.5 Terminál sa nehlási

Príznaky: V záložke "Registrované čítačky" je v stĺpci "Posledná kontrola" starý dátum/čas (viac ako hodinu).

Možné príčiny a riešenie:

Príčina Riešenie
RasPi je vypnuté Skontrolujte, že je RasPi pripojené k napájaniu a svieti LED.
Skúste fyzicky reštartovať (odpojiť a zapojiť napájanie).
Sieťový problém Skontrolujte Ethernet kábel alebo WiFi pripojenie.
Ping na server z RasPi: ping vasa-domena.sk
Skontrolujte firewall a router.
IP adresa nie je v whiteliste V záložke "Povolené IP adresy" pridajte IP adresu RasPi.
Skontrolujte, že IP adresa RasPi sa nezmenila (DHCP).
Odporúčame nastaviť statickú IP.
Služba check sa nespustila SSH na RasPi.
Skontrolujte stav: sudo systemctl status eintranet-check
Reštartujte: sudo systemctl restart eintranet-check
Chyba v konfiguračnom súbore Skontrolujte konfiguráciu: /etc/eintranet/config.json
Overte správnosť URL servera a hashu.

10.6 Rozpoznávanie tváre nefunguje

Príznaky: Kamera zobrazuje video, ale systém nerozpoznáva žiadneho zamestnanca.

Možné príčiny a riešenie:

Príčina Riešenie
Nie je zapnuté v nastavení V záložke "Používateľské práva" začiarknite Podľa tváre (nutná naša čítačka).
Skontrolujte, že wa_RasPi_Face=1.
Chýbajú fotografie zamestnancov V administrácii používateľov skontrolujte, že majú zamestnanci nahrané fotografie.
Minimálne 1 fotka na zamestnanca.
Fotografie musia byť frontálne, dobre osvetlené, bez okuliarov/čiapky.
Zlé svetelné podmienky Zabezpečte dostatočné osvetlenie pred čítačkou.
Vyhnite sa protisvetlu a tmavým miestam.
Ideálne je rovnomerné denné svetlo.
Príliš vysoký threshold V súbore inc/wa_chip_inout.php znížte minConfidence:
let minConfidence = 0.3 (namiesto 0.4)
Pozor: Nižší threshold = viac falošných rozpoznaní.
JavaScript chyby Otvorte JavaScript konzolu v prehliadači (F12).
Skontrolujte chybové hlásenia.
Skúste iný prehliadač (odporúčaný Chrome).
Face-api.js sa nenačítala Skontrolujte, že existuje súbor:
/_components/face-api.js-0.22.2/dist/face-api.min.js
Skontrolujte sieťové pripojenie (API načítava modely z CDN).

10.7 Tlačidlá na dashboarde nie sú viditeľné

Príznaky: Po prihlásení na dashboard chýbajú tlačidlá Príchod/Odchod.

Možné príčiny a riešenie:

Príčina Riešenie
Nie je zapnuté v nastavení V záložke "Ostatné nastavenia" začiarknite Zobraziť tlačidlá Príchod/Odchod na hlavnom paneli.
Skontrolujte, že wa_chip_buttons_on_dashboard=1.
Cache prehliadača Obnovte stránku s vymazaním cache: Ctrl + F5 (Windows) alebo Cmd + Shift + R (Mac).
Alebo vymažte cookies a cache v nastavení prehliadača.
Nemá vyplnený kód čipu V záložke "Používateľské práva" skontrolujte, že má zamestnanec vyplnený Kód čipu.
Tlačidlá sa zobrazujú len používateľom s kódom čipu.
JavaScript chyba Otvorte JavaScript konzolu (F12).
Skontrolujte chybové hlásenia.
Skúste iný prehliadač.

10.8 Automatické ukončenie nefunguje

Príznaky: Zamestnanec odpípe špeciálny typ (napr. Lekár), ale dochádzka sa automaticky neukončí.

Možné príčiny a riešenie:

Príčina Riešenie
Nie je nastavený režim V záložke "Navyše povolené tlačidlá" skontrolujte tlačidlo.
Musí byť začiarknutý jeden z 3 radio buttonov (k hodinám, času alebo dĺžke).
Ak nie je, začiarknite a nastavte hodnotu.
Zamestnanec odpípal odchod ručne Automatické ukončenie sa aplikuje len ak zamestnanec NEodpípal odchod do polnoci.
Ak odpípal ručne, automatika sa nepoužije.
Cron job nebeží Automatické ukončenie vykonáva cron job (napr. o 00:01).
Skontrolujte, že beží: crontab -l
Hľadajte riadok s wa_chip_autoclose.php (alebo podobný).
Chybné nastavenie času U režimu "K zadanému času" skontrolujte formát času: HH:MM
Musí byť validný čas (napr. 15:30, nie 25:00).

10.9 Minimálna prestávka sa neuplatňuje

Príznaky: Zamestnanec má nastavenú minimálnu prestávku 30 min, ale systém akceptuje aj kratšie prestávky.

Možné príčiny a riešenie:

Príčina Riešenie
Nie je vyplnená hodnota V záložke "Používateľské práva" skontrolujte stĺpec Minimálna dĺžka prestávky.
Musí byť číselná hodnota (napr. 30), nie prázdne pole.
Ručný zápis dochádzky Minimálna prestávka sa aplikuje len pri zapípnutí z terminálu.
Pri ručnom zápise v module Dochádzka sa kontrola nevykonáva.
Logika nie je implementovaná Skontrolujte, že kód v inc/wa_chip_inout.php obsahuje kontrolu minimálnej prestávky.
Hľadajte riadok s wa_chip_minimal_pause_min.

10.10 IP whitelist blokuje legitímny prístup

Príznaky: Čítačka nefunguje, aj keď je správne nakonfigurovaná. V logu je chyba "Unauthorized".

Možné príčiny a riešenie:

Príčina Riešenie
IP adresa nie je v zozname V záložke "Povolené IP adresy" pridajte IP adresu čítačky.
Zistite skutočnú IP adresu RasPi: hostname -I
Dynamická IP adresa (DHCP) IP adresa RasPi sa mohla zmeniť po reštarte.
Odporúčame nastaviť statickú IP adresu v nastavení routera alebo na RasPi.
NAT/Proxy server Ak je RasPi za NAT/proxy, server vidí inú IP.
Skontrolujte, akú IP vidí server: echo USER_IP v logu.
Pridajte túto IP do whitelistu.
Formát IP adresy Skontrolujte správny formát: 192.168.1.100
Nie: 192.168.1.100:80 alebo http://192.168.1.100
Rýchla diagnostika IP problému:
  1. Dočasne vypnite IP whitelist (odčiarknite checkbox)
  2. Skúste zapípať z čítačky
  3. Ak funguje → problém je v IP whiteliste
  4. Skontrolujte logy servera, akú IP vidí
  5. Pridajte správnu IP do whitelistu
  6. Znova zapnite whitelist