Wiki - eIntranet.net

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

Részvétel – chip/ujjlenyomat

Munkaidő-nyilvántartás modul - chip/ujjlenyomat-olvasó

1. Modul áttekintése

1.1 A modul célja

A Munkaidő-nyilvántartás - chip/ujjlenyomat-olvasó (WorkAttendanceChips) modul a munkavállalók munkahelyi jelenlétének automatizált rögzítésére szolgál fizikai chipkártyák (RFID/NFC), biometrikus ujjlenyomat-olvasók vagy mesterséges intelligenciát használó arcfelismerés segítségével.

A modul kiküszöböli a kézi időpont-rögzítés szükségességét, növeli a nyilvántartás pontosságát és kontrollmechanizmusokat biztosít a visszaélések ellen (pl. fényképek készítése bejelentkezéskor, minimális szünet hossza, munkaidő automatikus lezárása).

1.2 Főbb funkciók

  • Chipkártyák beállítása - RFID/NFC chip biztonsági kódjának nyilvántartása minden munkavállaló számára
  • Ujjlenyomat-olvasó - Biometrikus azonosítás ujjlenyomatokkal (opcionális)
  • Arcfelismerés - AI-alapú arcfelismerés face-api.js használatával (RasPi terminál szükséges kamerával)
  • RasPi jelenléti terminál - Fizikai terminál a helyszíni jelenlét rögzítésére
  • IP korlátozás - Engedélyezett IP címek whitelist-je az olvasókhoz (biztonság)
  • Konfigurálható gombok - A terminálban elérhető jelenléti típusok (orvos, üzleti út stb.)
  • Automatikus lezárás - Munkaidő automatikus lezárása (3 üzemmód)
  • Fényképek készítése rögzítéskor - Biztonsági fénykép a terminálról a kártyavisszaélések észleléséhez
  • Kézi módosítások megakadályozása - Szigorú chip üzemmód kivételek lehetőségével (szabadság, betegség)
  • Minimális szünet - Minimális szünet hosszának kikényszerítése
  • Gombok a műszerfalon - Virtuális érkezés/távozás közvetlenül a rendszerben fizikai kártya nélkül

1.3 Célcsoport

Ez a dokumentáció a következőknek készült:

  • Rendszeradminisztrátorok - Modul konfigurációja, olvasók kezelése, biztonsági beállítások
  • Humánpolitikai munkatársak - Felhasználói jogosultságok kezelése, chip kódok beállítása, fényképek ellenőrzése
  • IT adminisztrátorok - RasPi terminálok telepítése, hálózat beállítása, firmware frissítések
  • Vezetők - Jelenlét ellenőrzése, kivételek jóváhagyása
Fontos: A modul beállításaihoz való hozzáféréshez a felhasználónak vagy adminisztrátori jogosultsággal kell rendelkeznie (admin=1), vagy szerepelnie kell az AdminToModules_ser_arr mezőben a dochazka_cipy értékkel.

2. Beállítások és konfiguráció

2.1 Modul beállítások

Elérési út a beállításokhoz: Beállítások → Munkaidő-nyilvántartás - chip/ujjlenyomat-olvasó

A modul a Company és User adatbázistáblákban tárolt konfigurációs paramétereket használja:

Company tábla paraméterei

Paraméter Típus Leírás Alapértelmezett érték
wa_RasPi_Face boolean Arcfelismerés bekapcsolása (RasPi szükséges kamerával) 0 (kikapcsolva)
wa_RasPi_TakePhoto boolean Fényképek készítése terminálról történő rögzítéskor 0 (kikapcsolva)
wa_chip_allowed_ips_ser_arr array Olvasók engedélyezett IP címei (szerializált tömb) ['all']
wa_chip_show_active boolean Mások állapotának (jelenlétének) megjelenítése az olvasóban 0 (kikapcsolva)
wa_chip_use_WDT_14 boolean Ebédek külön rögzítésének engedélyezése a szünetektől 0 (kikapcsolva)
wa_chip_buttons_on_dashboard boolean Érkezés/Távozás gombok megjelenítése a főpanelen 0 (kikapcsolva)
wa_chip_WritePause boolean Szünet rögzítése visszatéréskor ugyanazon a napon 0 (kikapcsolva)
wa_chip_AutoCloseInLastDay boolean Figyelmeztetés és jelenlét lezárása előző napról 0 (kikapcsolva)
wa_chip_ChiporFaceDetect string Elsődleges felismerési mód ('c' = chip, 'f' = arc) 'c' (chip)

User tábla paraméterei

Paraméter Típus Leírás Alapértelmezett érték
wa_chip_code string Munkavállaló chipjének biztonsági hash kódja NULL
wa_chip_last_inout enum Munkavállaló aktuális állapota ('in', 'out') 'out'
wa_chip_minimal_pause_min int Minimális szünet hossza percekben NULL
wa_chip_last_poznamka string Utolsó megjegyzés bejelentkezéskor NULL
wa_chip_AllowManualType_ser_arr array Kézi rögzítéshez engedélyezett jelenléti típusok (szerializált tömb) []
rights_workattendance enum Jelenléti jogosultságok ('1' = csak chip, '2' = kézi rögzítés is) '2'
FingerPrints_ser_arr array Tárolt ujjlenyomatok (szerializált tömb) []

2.2 Felhasználói jogosultságok

A modul beállításaihoz való hozzáféréshez az alábbi feltételek egyikének kell teljesülnie:

  • Adminisztrátori jogosultság: $Logged_User->admin == 1
  • Modul adminisztrátor: in_array('dochazka_cipy', $Logged_User->AdminToModules_ser_arr)
Biztonsági figyelmeztetés: Ezen jogosultságok nélkül a modulhoz való hozzáférés megtagadásra kerül a DieUnauthorized() függvény meghívásával.

3. Felhasználói felület

3.1 Fülek áttekintése

A modul felhasználói felülete 5 fő fülre oszlik:

  1. Felhasználói jogosultságok - Chip kódok, ujjlenyomatok beállítása, kézi módosítások megakadályozása
  2. Engedélyezett IP címek - Olvasók IP címeinek whitelist-je
  3. További engedélyezett gombok - Gombok konfigurációja a terminálban
  4. Egyéb beállítások - Modul általános beállításai
  5. Regisztrált olvasók - RasPi terminálok áttekintése
Megjegyzés: A jelenleg megjelenített fül a $_SESSION['nastaveni_dochazka_cipy']['Show'] munkamenet változóban van tárolva.

3.2 Fül: Felhasználói jogosultságok

A munkavállalók jelenléti rendszerhez való hozzáférésének beállítására szolgáló fő fül.

Felhasználó felismerése

A rendszer 3 módszert támogat a munkavállaló azonosítására:

Módszer Leírás Követelmények Állapot
Chip alapján (RFID/NFC) Szabványos chipkártya RFID/NFC olvasó Mindig bekapcsolva
Arc alapján AI arcfelismerés face-api.js használatával RasPi terminál kamerával, wa_RasPi_Face=1 Opcionális
Ujjlenyomat alapján Biometrikus ujjlenyomat-olvasó RasPi ujjlenyomat-olvasóval, FingerPrintReader=1 Opcionális

Munkavállalók táblázata

A táblázat a következő oszlopokat tartalmazza:

Oszlop Leírás Műveletek
ID Munkavállaló azonosítója a rendszerben -
Vezetéknév, keresztnév Teljes név hivatkozással a felhasználó részleteihez Kattintson a munkavállaló részleteinek megnyitásához
Chip kód Chip biztonsági hash kódja
  • Írja be a szövegmezőbe
  • A módosítás automatikusan mentésre kerül (onChange)
  • A vágólap ikon átmásolja az API URL-t
Ujjlenyomat Jelző, hogy a munkavállalónak van-e tárolt ujjlenyomata 0/1 értéket jelenít meg a sizeofSafe($User->FingerPrints_ser_arr) szerint
Módosítások megakadályozása Jelölőnégyzet a jelenlét kézi módosításának megakadályozására
  • Bejelöléssel beállítja a rights_workattendance='1' értéket
  • Megjelenik egy gomb a kivételek engedélyezéséhez
Minimális szünet hossza Minimális szünet percekben Írjon be egy számot (pl. 30), a módosítás automatikusan mentésre kerül
Műveletek Speciális műveletek a munkavállaló számára
  • Ha az állapot "in", megjelenik a Visszaállítás (érkezéshez) gomb
  • Az állapotot "out"-ra állítja vissza

Gomb: Manuálisan csak jelenléti típust rögzíthet...

Ez a gomb csak azoknál a munkavállalóknál jelenik meg, akiknél be van jelölve a Munkaidő kézi módosításának megakadályozása.

Funkció: Modális ablakot nyit meg a jelenléti típusok kiválasztásához, amelyeket a munkavállaló kézzel is rögzíthet a kézi módosítások megakadályozása ellenére.

Jellemző használat:

  • Szabadság (a munkavállaló kézzel rögzítheti a szabadságot)
  • Betegség (a munkavállaló kézzel rögzítheti a betegséget)
  • Homeoffice (a munkavállaló kézzel rögzítheti a homeoffice-t)
Tipp: Ez a mechanizmus szigorú jelenléti ellenőrzést tesz lehetővé (csak chip), miközben rugalmasságot biztosít speciális távolléti típusokhoz.

3.3 Fül: Engedélyezett IP címek

Ez a fül a biztonsági whitelist beállítására szolgál azon IP címekről, amelyekről az olvasók jelentkezhetnek a rendszerbe.

Fő jelölőnégyzet

Olvasók hozzáférésének engedélyezése csak az alábbi IP címekről

  • Bejelölve: A rendszer ellenőrzi a kérés IP címét a whitelist alapján
  • Nincs bejelölve: Hozzáférés minden IP címről engedélyezett (wa_chip_allowed_ips_ser_arr = ['all'])

Dinamikus IP cím mező

A fő jelölőnégyzet bejelölése után megjelenik az IP címek bevitelére szolgáló mező:

  • Minden IP címhez saját szövegmező tartozik
  • Kitöltés után automatikusan megjelenik egy újabb üres mező
  • A módosítások automatikusan mentésre kerülnek (AJAX)
  • Mindig legalább 2 üres mező látható további IP címek hozzáadásához

Példa beállítás:

192.168.1.100
192.168.1.101
10.0.0.50
Fontos: Ha bekapcsolja az IP whitelist-et és nem ad meg egy IP címet sem, az olvasók nem tudnak csatlakozni! Győződjön meg róla, hogy a megfelelő IP címeket adta meg az aktiválás előtt.

3.4 Fül: További engedélyezett gombok

További gombok konfigurációja a jelenléti terminálban speciális jelenléti típusokhoz (orvos, üzleti út stb.).

Gomb: Gomb hozzáadása

Modális ablakot nyit meg új gomb hozzáadásához:

  1. Válassza ki a Jelenléti típust a legördülő listából (csak a chip_buttons_available=1 típusok töltődnek be)
  2. Kattintson a Mentés gombra
  3. A gomb megjelenik a terminálban és a táblázatban

Gombok táblázata

Minden konfigurált gombot megjelenít a következő oszlopokkal:

Oszlop Leírás Lehetőségek
Gomb Jelenléti típus neve Pl. "Orvos", "Üzleti út"
Automatikus lezárás a napi munkaórák számához A rendszer a napi munkaidő alapján kiszámítja a végét
  • Radio gomb
  • Menti az autoclose_user_hour_day=1 értéket
  • Példa: Munkaidő 8ó, érkezés 7:00 → automatikus vég 15:00
Automatikus lezárás megadott időpontban Fix lezárási idő
  • Radio gomb + időmező (HH:MM)
  • Menti az autoclose_user_hour_day=0 értéket
  • Menti az autoclose_at_time értéket (pl. "15:30:00")
  • Példa: Mindig 16:00-kor lezárás
Fix hossz percekben Konkrét percszám
  • Radio gomb + számmező
  • Menti az autoclose_user_hour_day=2 értéket
  • Menti az autoclose_at_length értéket (percek)
  • Példa: Orvos = 60 perc
Műveletek Eltávolítás gomb
  • Gomb eltávolítása gomb
  • Beállítja a delete=1 értéket
  • A gomb eltűnik a terminálból

Automatikus lezárási módok - részletesen

1. A napi munkaórák számához

Hogyan működik:

  1. A rendszer betölti a munkavállaló napi munkaidejét (pl. 8 óra)
  2. Érkezés bejelentkezésekor rögzíti az időt (pl. 7:00)
  3. Automatikusan kiszámítja a véget: 7:00 + 8ó = 15:00
  4. Ha a munkavállaló éjfélig nem rögzíti a távozást, a rendszer automatikusan 15:00-kor lezárja

Példa használat: Üzleti út - a munkavállaló útra megy, a rendszer a munkaideje alapján automatikusan lezárja az időt.

2. Megadott időpontban

Hogyan működik:

  1. Az adminisztrátor beállít egy fix lezárási időt (pl. 15:30)
  2. Érkezés bejelentkezésekor rögzíti az időt (pl. 7:00)
  3. Ha a munkavállaló éjfélig nem rögzíti a távozást, a rendszer automatikusan 15:30-kor lezárja

Példa használat: Konferencia - minden résztvevőnek fix vége van 16:00-kor.

3. Fix hossz

Hogyan működik:

  1. Az adminisztrátor beállítja a percek számát (pl. 60)
  2. Érkezés bejelentkezésekor rögzíti az időt (pl. 9:00)
  3. A rendszer automatikusan 60 perc múlva lezárja: 9:00 + 60 perc = 10:00

Példa használat: Orvos - a munkavállaló orvoshoz megy, a rendszer 60 perc múlva lezárja.

Megjegyzés: Ha éjfélig nem lesz bejelentkezve a vég, a rendszer a választott mód szerint alkalmazza az automatikus lezárást. A feltétel a jelenlét lezárásához tartozó függvényben van implementálva.

3.5 Fül: Egyéb beállítások

A modul általános beállításai, amelyek az egész rendszer viselkedését befolyásolják.

Beállítás Leírás Alapértelmezett érték
Mások állapotának (jelenlétének) megjelenítése az olvasóban A terminálban megjelenik minden munkavállaló listája az aktuális állapotukkal (jelen van/nincs jelen).

Adatbázis oszlop: wa_chip_show_active
Kikapcsolva (0)
Ebédek külön rögzítésének engedélyezése a szünetektől A munkavállaló a terminálban különbséget tehet az általános szünet és az ebéd (speciális szünet típus) között.

Adatbázis oszlop: wa_chip_use_WDT_14
Jelenléti típus: WDT_14 (Ebéd)
Kikapcsolva (0)
Érkezés/Távozás gombok megjelenítése a főpanelen bejelentkezés után Minden munkavállaló a műszerfalon bejelentkezés után látja az érkezés/távozás bejelentkezésére szolgáló gombokat fizikai kártya nélkül.

Adatbázis oszlop: wa_chip_buttons_on_dashboard
Használat: Alkalmas otthonról dolgozó vagy terminálhoz nem hozzáférő munkavállalóknak
Kikapcsolva (0)
Szünet rögzítése visszatéréskor ugyanazon a napon Ha a munkavállaló távozást jelentkezik ki, majd újra érkezést ugyanazon a napon, a rendszer automatikusan rögzíti a közötti időt szünetként.

Adatbázis oszlop: wa_chip_WritePause
Példa: Távozás 12:00, Érkezés 12:30 → Szünet 30 perc
Kikapcsolva (0)
Fénykép jelenlét rögzítésekor terminálról Minden bejelentkezéskor a RasPi terminálról fénykép készül a munkavállalóról. Kártyavisszaélések felderítésére szolgál (ellenőrzi, hogy a kártyát a valódi tulajdonosa használja).

Adatbázis oszlop: wa_RasPi_TakePhoto
Követelmények: RasPi terminál kamerával
Kikapcsolva (0)
Figyelmeztetés és jelenlét lezárása előző napról Ha a munkavállaló elfelejti kijelentkezni a távozást tegnap és ma új érkezést rögzít, a rendszer figyelmeztetést jelenít meg és megköveteli a tegnapi távozás pótlását felettesével.

Adatbázis oszlop: wa_chip_AutoCloseInLastDay
Cél: "Lógó" bejegyzések megelőzése a jelenlétben
Kikapcsolva (0)
Ajánlott beállítás a biztonság növeléséhez:
  • Kapcsolja be a Fénykép rögzítéskor opciót - feltárja a kártyavisszaéléseket
  • Kapcsolja be a Figyelmeztetés és lezárás előző napról opciót - megelőzi a jelenlétben előforduló hibákat
  • Állítsa be a Minimális szünet hosszát (pl. 30 perc) - kikényszeríti az ebédet

3.6 Fül: Regisztrált olvasók

A rendszerben regisztrált összes RasPi terminál áttekintése.

Olvasók táblázata

Oszlop Leírás
ID Az olvasó egyedi azonosítója az adatbázisban (idRasPi)
Beszerzés dátuma Az olvasó telepítésének/regisztrációjának dátuma (BuyDate)
Telepített FW verzió A RasPi-ra telepített firmware verzió (Version)
Utolsó ellenőrzés Az olvasóval való utolsó kommunikáció dátuma és ideje (LastCheck)
Információ: Az olvasók automatikusan regisztrálódnak az első kiszolgálóval való kapcsolatnál. Az olvasók adatai a RasPi adatbázistáblából töltődnek be a Company_idCompany alapján.

Olvasók diagnosztikája

Az Utolsó ellenőrzés oszlop alapján diagnosztizálhatja a problémákat:

  • Zöld: Az olvasó az elmúlt órában jelentkezett - minden rendben
  • Sárga: Az olvasó több mint egy órája nem jelentkezett - lehetséges hálózati probléma
  • Piros: Az olvasó több mint egy napja nem jelentkezett - súlyos probléma (kikapcsolva, hálózat, hardver)
Hibaelhárítás:
  • Ellenőrizze a RasPi hálózati kapcsolatát
  • Győződjön meg róla, hogy a RasPi IP címe szerepel a whitelist-en ("Engedélyezett IP címek" fül)
  • Ellenőrizze, hogy a RasPi be van-e kapcsolva és fut-e
  • Próbálja meg újraindítani a RasPi-t

4. Alapvető műveletek

4.1 Chip kód beállítása munkavállalónak

Cél: Biztonsági chip kód hozzárendelése a munkavállalóhoz, hogy rögzíthesse a jelenlétet.

  1. Nyissa meg a Beállítások → Jelenlét - chip/ujjlenyomat-olvasó menüpontot
  2. Váltson a Felhasználói jogosultságok fülre
  3. A munkavállalói táblázatban keresse meg a kívánt munkavállalót (használhatja a keresést)
  4. A Chip kód oszlopba írja be a biztonsági hash kódot (ajánlott minimum 16 karakter, véletlenszerű)
  5. A rendszer automatikusan menti a változtatást a mező elhagyásakor (onChange esemény)
  6. Opcionális: Kattintson a vágólap ikonra (fa-clipboard) az API URL teszteléshez történő másolásához
Példa API URL:
https://vase-domena.cz/?w=wa_chip_inout&idUser=123&hash=abc123xyz789def456

4.2 Kézi jelenlét-módosítások megakadályozása

Cél: Szigorú mód beállítása a munkavállalónak, ahol csak chippel rögzítheti a jelenlétet.

  1. A Felhasználói jogosultságok fülön keresse meg a munkavállalót
  2. A munkavállaló sorában jelölje be a Munkaidő módosításának megakadályozása a jelenlétben jelölőnégyzetet
  3. A rendszer beállítja: rights_workattendance='1'
  4. Megjelenik egy zöld gomb: Kézzel csak a jelenlét típusát rögzítheti...
  5. Kattintson a gombra
  6. A modális ablakban jelölje be az engedélyezett típusokat (pl. Szabadság, Betegség, Homeoffice)
  7. Kattintson a Mentés gombra

Eredmény: A munkavállaló most nem módosíthatja kézzel a jelenlétet, de kézzel rögzítheti a kiválasztott távolléti típusokat.

Technikai részletek: Az engedélyezett típusok a szerializált wa_chip_AllowManualType_ser_arr tömbben kerülnek tárolásra. Kézi bejegyzési kísérlet esetén a rendszer ellenőrzi, hogy a típus engedélyezett-e.

4.3 Minimális szünet beállítása

Cél: Minimális szünethosszúság kikényszerítése (pl. ebéd minimum 30 perc).

  1. A Felhasználói jogosultságok fülön keresse meg a munkavállalót
  2. A Minimális szünethosszúság (perc) oszlopba írja be a percek számát (pl. 30)
  3. A rendszer automatikusan menti a változtatást

Hogyan működik:

  • A munkavállaló rögzít egy szünetet (pl. 12:00 - 12:10 = 10 perc)
  • A rendszer ellenőrzi a wa_chip_minimal_pause_min értéket (pl. 30)
  • Ha a szünet rövidebb, automatikusan meghosszabbítja a minimumra (10 perc → 30 perc)
  • A jelenlét bejegyzésben 30 perces szünet jelenik meg
Figyelmeztetés: A szünet automatikus meghosszabbítása meglepő lehet a munkavállaló számára. Javasoljuk, hogy tájékoztassa a munkavállalókat a minimális szünet beállításáról.

4.4 Érkezés/távozás állapot visszaállítása

Cél: A munkavállaló "függő" állapotának visszaállítása, aki elfelejtette rögzíteni a távozást.

  1. A Felhasználói jogosultságok fülön keresse meg a munkavállalót
  2. Ha a munkavállaló "in" állapotban van (jelen van), megjelenik a Visszaállítás (érkezéshez) gomb
  3. Kattintson a gombra
  4. A rendszer "out" állapotra (távol van) változtatja az állapotot
  5. A munkavállaló most újra rögzítheti az érkezést

Mikor használjuk:

  • A munkavállaló elfelejtette rögzíteni a tegnapi távozást
  • A rendszer "in" állapotban "lóg" és nem engedélyezi az új érkezést
  • Gyorsan fel kell oldania a munkavállaló blokkolását
Megjegyzés: A visszaállítás csak megváltoztatja a wa_chip_last_inout='out' állapotot. Nem oldja meg a hiányzó jelenlét bejegyzést - azt kézzel kell pótolnia a Jelenlét modulban.

5. Haladó funkciók

5.1 Gomb hozzáadása az olvasóhoz

Cél: Speciális jelenlét típus (pl. Orvos, Szolgálati út) hozzáadása gombként a RasPi terminálhoz.

  1. Váltson a További engedélyezett gombok a chip olvasón fülre
  2. Kattintson a zöld Gomb hozzáadása gombra
  3. A modális ablakban válassza ki a Jelenlét típusát a legördülő listából
  4. Kattintson a Mentés gombra
  5. A gomb megjelenik a táblázatban
  6. Állítsa be az automatikus befejezés módját (lásd lentebb)

Automatikus befejezés beállítása

A gomb hozzáadása után válasszon egyet a 3 mód közül:

A) A napi munkaórák számához
  • Jelölje be a választógombot az Automatikus befejezés a napi munkaórák számához oszlopban
  • A rendszer a munkavállaló napi munkaideje szerint számítja ki a befejezést
  • Példa: Szolgálati út - a munkavállaló munkaideje 8h, elindul 9:00-kor → automatikus befejezés 17:00
B) Megadott időponthoz
  • Jelölje be a választógombot az Automatikus befejezés megadott időponthoz oszlopban
  • Az alatta lévő időmezőbe írja be az időpontot (pl. 15:30)
  • Példa: Képzés - mindenkinek fix befejezés 16:00-kor
C) Fix hosszúság
  • Jelölje be a választógombot a Fix hosszúság percben oszlopban
  • Az alatta lévő számmezőbe írja be a percek számát (pl. 60)
  • Példa: Orvos - automatikus befejezés 60 perc múlva
Javaslatok:
  • Szolgálati út → A munkaórák számához
  • Képzés/Konferencia → Megadott időponthoz
  • Orvos/Hivatal → Fix hosszúság (60-120 perc)

5.2 Gomb eltávolítása

  1. A gombok táblázatában keresse meg az eltávolítandó gomb sorát
  2. Kattintson a piros Gomb eltávolítása gombra
  3. A gomb törlődik az adatbázisból és eltűnik a terminálról

5.3 IP címek korlátozása

Cél: Az API hozzáférés engedélyezése csak megbízható IP címekről (olvasók).

  1. Váltson az Engedélyezett IP címek, amelyekről az olvasó jelentkezhet fülre
  2. Jelölje be az Olvasó hozzáférés engedélyezése csak az alábbi IP címekről jelölőnégyzetet
  3. Az első üres mezőbe írja be az olvasó IP címét (pl. 192.168.1.100)
  4. A beírás után automatikusan megjelenik egy újabb üres mező
  5. Ismételje meg minden olvasóhoz
  6. A változtatások automatikusan mentésre kerülnek

Biztonsági ellenőrzés a kódban:

// A rendszer ellenőrzi a USER_IP-t a wa_chip_allowed_ips_ser_arr tömbben
if (!in_array(USER_IP, $Company->wa_chip_allowed_ips_ser_arr)
    && $Company->wa_chip_allowed_ips_ser_arr[0] != 'all') {
    DieUnauthorized();
}
Kritikus figyelmeztetés: Ha bekapcsolja az IP fehérlistát és nem adja meg az olvasók IP címeit, minden olvasó blokkolva lesz! Először adja meg az IP címeket, majd kapcsolja be a fehérlistát.

5.4 Arcfelismerés bekapcsolása

Cél: Lehetővé tenni a munkavállalók számára, hogy chip nélkül, arcukkal rögzítsék a jelenlétet.

Követelmények:

  • RasPi terminál kamerával
  • A munkavállalók fényképei a rendszerben (minimum 1 fotó munkavállalónként)
  • JavaScript könyvtár: face-api.js (a rendszer része)

Aktiválás menete:

  1. Váltson a Felhasználói jogosultságok fülre
  2. A táblázat fejlécében jelölje be az Arc alapján (szükséges a mi olvasónk) jelölőnégyzetet
  3. A rendszer beállítja: wa_RasPi_Face=1
  4. A RasPi terminálon aktiválódik a kamera és az arcfelismerés

Hogyan működik:

  1. A munkavállaló a RasPi kamerája elé lép
  2. A rendszer betölti az összes tárolt munkavállaló fényképet
  3. A Face-api.js felismeri az arcot az élő videóban
  4. Összehasonlítja a felismert arcot a tárolt fényképekkel (küszöbérték 0.4)
  5. Egyezés esetén automatikusan rögzíti a jelenlétet
Technikai részletek:
  • Könyvtár: face-api.js v0.22.2
  • Modell: SsdMobilenetv1 (gyors, pontos)
  • Küszöbérték: 0.4 (40% egyezés = felismerés)
  • Fényképek: Betöltés innen: /UserFaceRecognitionShow/{hash}-{photoID}.png

5.5 Mások állapotának megjelenítése

Cél: A terminálon megjeleníteni, ki van jelen és ki nincs.

  1. Váltson az Egyéb beállítások fülre
  2. Jelölje be a Mások állapotának (jelenlétének) megjelenítése az olvasóban jelölőnégyzetet
  3. A rendszer beállítja: wa_chip_show_active=1

Eredmény: A RasPi terminálon megjelenik az összes munkavállaló listája:

  • Zöld: Jelen van (wa_chip_last_inout='in')
  • Piros: Távol van (wa_chip_last_inout='out')
Előnyök:
  • A munkavállalók látják, ki van a munkahelyen
  • Gyors tájékozódás látogatók számára
  • A jelenlét átláthatósága

5.6 Gombok a vezérlőpulton

Cél: Lehetővé tenni a munkavállalók számára, hogy közvetlenül a webes felületről rögzítsék a jelenlétet fizikai kártya nélkül.

  1. Váltson az Egyéb beállítások fülre
  2. Jelölje be a Érkezés/Távozás gombok megjelenítése a főpanelen bejelentkezés után jelölőnégyzetet
  3. A rendszer beállítja: wa_chip_buttons_on_dashboard=1

Eredmény: Bejelentkezés után minden munkavállaló a vezérlőpulton látja:

  • Zöld "Érkezés" gomb (ha az állapot 'out')
  • Piros "Távozás" gomb (ha az állapot 'in')

Használat:

  • Homeoffice - a munkavállalónak nincs hozzáférése az olvasóhoz
  • Mobil munkavállalók - rögzítés mobilról/táblagépről
  • Adminisztráció - tartalék bejegyzési mód
Biztonsági megjegyzés: A vezérlőpulton lévő gombok nem ellenőrzik a fizikai jelenlétet. Javasoljuk kombinálni a bejegyzéskori fényképekkel vagy csak megbízható munkavállalók számára használni.

5.7 Fénykép készítése bejegyzéskor

Cél: Biztonsági fénykép készítése minden rögzítéskor a kártyavisszaélés észlelésére.

  1. Váltson az Egyéb beállítások fülre
  2. Jelölje be a Fénykép készítése jelenlét rögzítésekor a terminálról jelölőnégyzetet
  3. A rendszer beállítja: wa_RasPi_TakePhoto=1

Hogyan működik:

  1. A munkavállaló a chipet az olvasóhoz helyezi
  2. A RasPi kamera fényképet készít
  3. A fénykép feltöltésre kerül a szerverre
  4. Mentésre kerül a Files táblába a jelenlét bejegyzéshez kapcsolva
  5. Az adminisztrátor a fényképeket ellenőrizheti a Jelenlét modulban

Visszaélés észlelése:

  • A fényképen más személy van, mint a kártya tulajdonosa → visszaélés
  • A fénykép elmosódott/üres → a rendszer megkerülésének kísérlete
  • Ismétlődő fényképek ugyanarról a személyről idegen kártyával → rendszeres visszaélés
Javaslat: Kapcsolja be a fényképezést a maximális biztonság érdekében. Tájékoztassa a munkavállalókat, hogy a fényképek csak ellenőrzési célokat szolgálnak és nem nyilvánosak.

6. Integráció

6.1 Kapcsolódó modulok

Modul Kapcsolat Leírás
Docházka Adat bejegyzés Automatikus érkezési/távozási idők bejegyzése a Workattendance táblába.
Ha be van kapcsolva wa_chip_WritePause=1, a szünet hossza is rögzítésre kerül.
Uživatelé Kapcsolat a munkavállalóhoz Felhasználói adatok betöltése (cUser osztály):
- Chip kód (wa_chip_code)
- Ujjlenyomatok (FingerPrints_ser_arr)
- Jelenlét jogosultságok (rights_workattendance)
- Minimális szünet (wa_chip_minimal_pause_min)
RasPi terminály Fizikai olvasó RasPi eszközök kezelése (cRasPi osztály):
- Firmware verzió (Version)
- Utolsó ellenőrzés (LastCheck)
- Ujjlenyomat olvasó (FingerPrintReader)
- API végpont (GetUrl())
Typy docházky Gombok az olvasón Jelenlét típusok betöltése (cWorkattendance_days_type):
- Típus neve (day_name_cs)
- Elérhetőség az olvasón (chip_buttons_available)
- Kapcsolat a Workattendance_chip_buttons táblán keresztül
Soubory Fényképek bejegyzéskor Fényképek tárolása a terminálról:
- Files tábla
- Kapcsolat a jelenlét bejegyzéshez
- Hozzáférés a Jelenlét modulon keresztül

6.2 Adatfolyamatok

Folyamat 1: Rögzítés chippel a RasPi terminálról

1. A munkavállaló a chipet a RasPi olvasóhoz helyezi
   ↓
2. A RasPi beolvassa a chip kódot az RFID/NFC-ről
   ↓
3. A RasPi meghívja az API végpontot:
   GET /?w=wa_chip_inout&idUser=123&hash=abc123xyz
   ↓
4. Az inc/wa_chip_inout.php feldolgozza a kérést:
   - Ellenőrzi a hash-t a User.wa_chip_code alapján
   - Ellenőrzi az IP címet a wa_chip_allowed_ips_ser_arr alapján
   - Ellenőrzi a wa_chip_last_inout állapotot
   ↓
5. Bejegyzés a Workattendance táblába:
   - Érkezés: Új bejegyzés létrehozása time_start-tal
   - Távozás: time_end kiegészítése a meglévő bejegyzésben
   ↓
6. User.wa_chip_last_inout frissítése:
   - 'in' → 'out' vagy 'out' → 'in'
   ↓
7. Ha wa_RasPi_TakePhoto=1:
   - A RasPi fényképet készít
   - Feltölti a szerverre
   - Menti a Files táblába
   ↓
8. Válasz a RasPi terminálnak:
   - HTML oldal megerősítéssel
   - A rögzítés idejének megjelenítése
   - Jelenlevők listája (ha wa_chip_show_active=1)

Folyamat 2: Rögzítés a vezérlőpultról (webes felület)

1. A munkavállaló a vezérlőpulton az "Érkezés" gombra kattint
   ↓
2. A JavaScript AJAX hívást indít:
   $.get('/?w=wa_chip_inout&idUser='+idUser+'&hash='+hash)
   ↓
3. Az inc/wa_chip_inout.php ugyanúgy feldolgozza, mint a RasPi esetén
   ↓
4. Bejegyzés a Workattendance táblába
   ↓
5. wa_chip_last_inout frissítése
   ↓
6. AJAX válasz:
   - A vezérlőpult frissül
   - Az új állapot megjelenik ("Távozás" az "Érkezés" helyett)

Folyamat 3: Arcfelismerés (Face Recognition)

1. A munkavállaló a RasPi kamerája elé lép
   ↓
2. A RasPi videót streamel a szerverre
   ↓
3. JavaScript face-api.js:
   - Betölti az összes munkavállaló fényképét
   - Létrehoz egy FaceMatcher-t a tárolt arcokkal
   - Felismeri az arcot az élő videóban
   - Összehasonlítja a tárolt arcokkal
   ↓
4. Egyezés esetén (threshold > 0.4):
   window.location.replace('?w=wa_chip_inout&FaceDetection='+hash)
   ↓
5. A szerver feldolgozza a FaceDetection paramétert:
   - Megkeresi az idUser-t a hash alapján
   - Betölti a wa_chip_code-ot
   - Rögzíti a jelenlétet
   ↓
6. Ugyanaz a folyamat, mint az 1. folyamat (5-8. lépés)

6.3 Függőségek

Komponens Függőség Kötelező
RasPi terminál Fizikai eszköz RFID/NFC olvasóval Igen
Docházkový modul Aktívnak kell lennie az adat bejegyzéshez Igen
Uživatelé A munkavállalóknak rendelkezniük kell jelenlét jogosultsággal Igen
RasPi kamerával Arcfelismeréshez és fényképekhez Opcionális
Čtečka otisků Biometrikus azonosításhoz Opcionális
face-api.js Könyvtár arcfelismeréshez Opcionális
Síťové připojení A RasPi-nak hozzáféréssel kell rendelkeznie a szerverhez Igen

7. API végpont

7.1 Fő végpont

URL formátum:

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

7.2 Paraméterek

Paraméter Típus Kötelező Leírás
w string Igen Végpont azonosító
Érték: wa_chip_inout
idUser int Igen A munkavállaló azonosítója a rendszerben
Példa: 123
hash string Igen A chip biztonsági hash kódja
Megfelel: User.wa_chip_code
Példa: abc123xyz789def456
idWorkattendance_chip_buttons int Nem Gomb azonosítója az olvasón (speciális jelenlét típus)
Példa: 5 (Orvos)
FaceDetection string Nem Felismert arc hash-e
Formátum: {userHash}-{photoID}
Példa: abc123-1
FingerID int Nem Felismert ujjlenyomat azonosítója
Példa: 7
wa_chip_action string Nem Specifikus művelet (pl. kézi megjegyzés választás)
Értékek: note, pause

7.3 Biztonsági ellenőrzések

Az API végpont a következő biztonsági ellenőrzéseket hajtja végre:

  1. Hash ellenőrzése:
    if ($User->wa_chip_code != $_GET['hash']) {
        DieUnauthorized();
    }
  2. IP cím ellenőrzése:
    if (!in_array(USER_IP, $Company->wa_chip_allowed_ips_ser_arr)
        && $Company->wa_chip_allowed_ips_ser_arr[0] != 'all') {
        DieUnauthorized();
    }
  3. Felhasználó létezésének ellenőrzése:
    $User = new cUser();
    $User->load($_GET['idUser']);
    if ($User->idUser == 0) {
        DieUnauthorized();
    }
  4. Aktív fiók ellenőrzése:
    if ($User->active != 1 || $User->deleted != 0) {
        DieUnauthorized();
    }

7.4 API válasz

Az API HTML oldalt ad vissza a következő információkkal:

  • Óra és dátum: Aktuális idő és dátum (JavaScript óra)
  • Bejegyzés megerősítése: "Érkezés rögzítve" / "Távozás rögzítve"
  • Rögzítés ideje: Pontos rögzítési időpont
  • Jelenlevők listája: Ha wa_chip_show_active=1
  • Fénykép: Ha wa_RasPi_TakePhoto=1, a fénykép előnézete megjelenik

7.5 Hívási példák

1. példa: Normál érkezés

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

2. példa: Távozás orvoshoz (gomb ID=3)

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

3. példa: Arcfelismerés

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

4. példa: Ujjlenyomat

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

8. RasPi terminál

8.1 Eszköz leírása

A RasPi (Raspberry Pi) terminál egy bankkártya méretű kompakt számítógép, amely fizikai munkaidő-nyilvántartási olvasóként működik.

Hardverkomponensek

Komponens Leírás Kötelező
Raspberry Pi Alaplap (ajánlott RPi 4 vagy újabb) Igen
RFID/NFC olvasó Modul chipkártyák olvasásához (pl. RC522) Igen
Kijelző Érintőképernyős kijelző gombok és állapotok megjelenítéséhez Igen
Kamera Pi Camera fényképezéshez és arcfelismeréshez Opcionális
Ujjlenyomat-olvasó Biometrikus ujjlenyomat-olvasó (pl. R307) Opcionális
Hálózati kapcsolat Ethernet vagy WiFi a szerverrel való kommunikációhoz Igen

8.2 Terminál funkciók

Alapvető funkciók

  • Chipek olvasása: RFID/NFC kártyák automatikus észlelése
  • Időkijelzés: Aktuális idő és dátum
  • Jelenlét típus gombok: Érkezés, Távozás, Szünet, Ebéd + konfigurálható gombok
  • Rögzítés megerősítése: Sikeres rögzítés vizuális és hangjelzése
  • Jelenléti lista: Megjelenítés, ki van munkában (ha be van kapcsolva)

Speciális funkciók (opcionális)

  • Arcfelismerés: AI detektálás kamerával és face-api.js segítségével
  • Ujjlenyomat olvasása: Biometrikus azonosítás ujjlenyomatokkal
  • Fényképezés: Biztonsági fénykép készítése minden beléptetéskor
  • Videó stream: Élő videó a kameráról az arcfelismeréshez

8.3 Terminál kezelése

Új terminál regisztrációja

  1. Fizikailag csatlakoztassa a RasPi-t a hálózathoz (Ethernet vagy WiFi)
  2. Futtassa a telepítő szkriptet a RasPi-n
  3. A RasPi automatikusan regisztrálja magát a szerveren:
POST https://firma.cz/RestAPI/RasPi.php
{
    "action": "register",
    "hash": "E5tlu8Jg44ZwwlBQgSbCE3lU7RSRvMXa"
}
  1. Az adminisztrációban az új terminál megjelenik a Regisztrált olvasók fülön

Terminál állapotának ellenőrzése

A terminál rendszeresen jelentkezik a szerveren (5 percenként):

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

A szerver frissíti a LastCheck oszlopot a RasPi táblában.

Firmware frissítés

  1. Jelentkezzen be a RasPi-ra SSH-n keresztül
  2. Futtassa a parancsot: sudo /home/pi/UpdateFromeIntranetServer
  3. A szkript letölti a legújabb verziót innen: https://firma.cz/Apps/RasPiUpdate/
  4. Automatikusan újraindítja a szolgáltatásokat
  5. A verzió frissül az adatbázisban (Version oszlop)

8.4 Terminál API URL

Minden RasPi terminálnak egyedi API URL-je van:

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

Ahol a {HASH} a terminál biztonsági azonosítója (pl. E5tlu8Jg44ZwwlBQgSbCE3lU7RSRvMXa).

Használat:

  • A RasPi beolvassa a chipet 12345 kóddal
  • A RasPi meghívja: https://firma.cz/?w=wa_chip_inout&idUser=45&hash=12345
  • A szerver ellenőrzi és rögzíti a jelenlétet
  • A RasPi megjeleníti a megerősítést

8.5 Problémák diagnosztizálása

Probléma: A terminál nem jelentkezik

Tünetek: A "Regisztrált olvasók" fülön régi idő van az "Utolsó ellenőrzés" oszlopban

Megoldás:

  1. Ellenőrizze a RasPi hálózati kapcsolatát (ping szerver)
  2. Ellenőrizze, hogy a RasPi IP címe szerepel-e a fehérlistán
  3. Ellenőrizze a RasPi naplóit: /var/log/eintranet/
  4. Indítsa újra a RasPi-t: sudo reboot

Probléma: Az olvasó nem olvassa a chipeket

Tünetek: A chip hozzáérintése nem vált ki reakciót

Megoldás:

  1. Ellenőrizze az olvasó fizikai kapcsolatát a RasPi-hoz
  2. Ellenőrizze, hogy fut-e az olvasó szolgáltatás: sudo systemctl status rfid
  3. Indítsa újra a szolgáltatást: sudo systemctl restart rfid
  4. Ellenőrizze, hogy a chip kompatibilis-e (RFID/NFC 13.56 MHz)

Probléma: Az arcfelismerés nem működik

Tünetek: A kamera nem jelenít meg videót vagy nem ismer fel arcokat

Megoldás:

  1. Ellenőrizze, hogy be van-e kapcsolva a beállításokban: wa_RasPi_Face=1
  2. Ellenőrizze a kamera kapcsolatát a RasPi-hoz
  3. Ellenőrizze, hogy a munkavállalóknak feltöltött fényképeik vannak-e a rendszerben
  4. Ellenőrizze a JavaScript konzolt a böngészőben hibákért
  5. Próbálja csökkenteni a küszöbértéket: módosítsa minConfidence = 0.3 (0.4 helyett)

9. Tippek és trükkök

9.1 API URL másolása

Tipp: A "Felhasználói jogok" fülön kattintson a vágólap ikonra (fa-clipboard) a chip kód mellett. Az URL a vágólapra másolódik.

Használat: Az URL-t megnyithatja egy böngészőben, hogy kézzel tesztelje a beléptetést fizikai olvasó nélkül.

9.2 Tesztelés RasPi terminál nélkül

Eljárás:

  1. Másolja ki a munkavállaló API URL-jét
  2. Nyissa meg az URL-t egy böngészőben
  3. A rendszer rögzíti a jelenlétet, mintha RasPi-ról érkezne
Figyelmeztetés: Ha be van kapcsolva az IP fehérlista, hozzá kell adnia az IP címét, különben a hozzáférés megtagadásra kerül.

9.3 "Függő" állapotok tömeges visszaállítása

Helyzet: Több munkavállaló elfelejtette kijelentkezni és a rendszer "in" állapotban van.

Megoldás SQL lekérdezéssel:

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

Megjegyzés: Ez csak az állapotokat állítja vissza, nem oldja meg a hiányzó jelenléti bejegyzéseket.

9.4 Minimális szünet beállítása mindenkinek

Helyzet: 30 perces minimális szünetet szeretne beállítani minden munkavállalónak.

Megoldás SQL lekérdezéssel:

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

9.5 Chip kódok exportálása

Eljárás:

  1. A "Felhasználói jogok" fülön használja a DataTables exportot
  2. Kattintson az "Excel" vagy "CSV" gombra
  3. Letöltődik egy fájl az összes chip kóddal

9.6 Automatikus gomb home office-hoz

Javaslat: Adjon hozzá egy "Home office" gombot automatikus befejezéssel a munkaidőhöz.

Előny: A munkavállaló rögzíti a home office-t, a rendszer automatikusan befejezi a munkaideje szerint.

9.7 Chip és arc kombinációja

Lehetőség: Kapcsolja be az arcfelismerést és a chipet egyszerre.

Előny:

  • A munkavállaló használhatja a chipet (gyors)
  • Vagy az arcát (ha elfelejtette a kártyát)
  • A rendszer mindkettőt támogatja

9.8 Fényképek mint bizonyítékok

Tipp: Ha vitája van a jelenlétről, használja a terminál fényképeit bizonyítékként.

Hozzáférés:

  1. Jelenlét modul
  2. Bejegyzés részletei
  3. Megjelenik a beléptetéskor készített fénykép

9.9 Mobilalkalmazás alternatívaként

Információ: A rendszer támogatja a mobilalkalmazást is a jelenlét rögzítéséhez.

Előny:

  • A munkavállalónak nem kell chip
  • Beléptetés telefonról bárhonnan
  • GPS helymeghatározás rögzítéskor (opcionális)

9.10 Régi fényképek rendszeres törlése

Tipp: A fényképek helyet foglalnak a szerveren. Állítson be automatikus törlést a 3 hónapnál régebbiekre.

Cron job:

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

10. Problémamegoldás

10.1 A chip nem működik

Tünetek: A chip olvasóhoz történő hozzáérintése nem vált ki reakciót vagy hibaüzenetet jelenít meg.

Lehetséges okok és megoldások:

Ok Megoldás
Hibás vagy üres chip kód Ellenőrizze, hogy a "Felhasználói jogok" fülön ki van-e töltve a Chip kód.
Pontosan meg kell egyeznie a chipben lévő kóddal.
Az olvasó IP címe nincs a fehérlistán Menjen a "Megengedett IP címek" fülre.
Adja hozzá a RasPi terminál IP címét.
Vagy kapcsolja ki az IP fehérlistát (nincs bejelölve).
Az olvasó nem olvassa a chipet Ellenőrizze az olvasó fizikai kapcsolatát a RasPi-hoz.
Indítsa újra az RFID szolgáltatást: sudo systemctl restart rfid
Nem kompatibilis chip Ellenőrizze, hogy a chip RFID/NFC 13.56 MHz-es (pl. Mifare).
A rendszer nem támogatja a 125 kHz-es chipeket.
Hálózati probléma Ellenőrizze a RasPi hálózati kapcsolatát.
Ping a szerverre: ping vase-domena.cz

Tesztelés: Másolja ki az API URL-t (vágólap ikon) és nyissa meg egy böngészőben. Ha működik, a probléma a RasPi/olvasóban van. Ha nem működik, a probléma a rendszer beállításaiban van.

10.2 A munkavállaló nem tud kézzel rögzíteni

Tünetek: Kézi rögzítési kísérletkor a Jelenlét modulban "Nincs jogosultsága" hibaüzenet jelenik meg.

Lehetséges okok és megoldások:

Ok Megoldás
"Módosítások megakadályozása" be van jelölve A "Felhasználói jogok" fülön törölje a Munkaidő módosításának megakadályozása jelölőnégyzetet.
Vagy kattintson a Csak a jelenlét típust rögzítheti kézzel... linkre és engedélyezze a konkrét típusokat.
A jelenlét típus nincs engedélyezve Kattintson a Csak a jelenlét típust rögzítheti kézzel... linkre
Jelölje be a kívánt típust (pl. Szabadság, Betegség).
Kattintson a Mentés gombra.
Nincs jelenlét jogosultsága A felhasználók adminisztrációjában ellenőrizze, hogy a munkavállalónak be van-e állítva a rights_workattendance.
'1' vagy '2' értékűnek kell lennie (nem NULL vagy 0).

10.3 A szünet automatikusan meghosszabbodik

Tünetek: A munkavállaló 15 perces szünetet rögzít, de a rendszerben 30 perc jelenik meg.

Ok: Minimális szünethossz van beállítva.

Megoldás:

  1. A "Felhasználói jogok" fülön keresse meg a munkavállalót
  2. A Minimális szünethossz (perc) oszlopban törölje az értéket vagy csökkentse (pl. 30-ról 15-re)
  3. A rendszer automatikusan menti

Megjegyzés: A szünet meghosszabbítása szándékos funkció, nem hiba. Az ebédszünet kikényszerítésére szolgál.

10.4 A fényképek nem készülnek

Tünetek: A Jelenlét modulban a bejegyzéseknél hiányoznak a fényképek, annak ellenére, hogy a funkció be van kapcsolva.

Lehetséges okok és megoldások:

Ok Megoldás
Nincs bekapcsolva a beállításokban Az "Egyéb beállítások" fülön jelölje be a Fénykép a terminálról történő jelenlét rögzítéskor opciót.
Ellenőrizze, hogy wa_RasPi_TakePhoto=1.
A RasPi-n nincs kamera Ellenőrizze, hogy fizikailag csatlakoztatva van-e Pi Camera a RasPi-hoz.
Ellenőrizze a kamera kábel csatlakozását.
Futtasson kamera tesztet: raspistill -o test.jpg
A kamera szolgáltatás nem fut Ellenőrizze az állapotot: sudo systemctl status camera
Indítsa újra: sudo systemctl restart camera
Hiba a szerverre történő feltöltéskor Ellenőrizze a RasPi naplóit: /var/log/eintranet/camera.log
Ellenőrizze a hálózati kapcsolatot és a szerveren való írási jogosultságokat.
Beléptetés a dashboardról A fényképek csak RasPi terminálról történő beléptetéskor készülnek.
A dashboard gombok nem készítenek fényképeket (nincs kamerájuk).

10.5 A terminál nem jelentkezik

Tünetek: A "Regisztrált olvasók" fülön az "Utolsó ellenőrzés" oszlopban régi dátum/idő van (több mint egy óra).

Lehetséges okok és megoldások:

Ok Megoldás
A RasPi ki van kapcsolva Ellenőrizze, hogy a RasPi csatlakoztatva van-e az áramforráshoz és világít-e a LED.
Próbálja fizikailag újraindítani (áramforrás lekapcsolása és visszakapcsolása).
Hálózati probléma Ellenőrizze az Ethernet kábelt vagy WiFi kapcsolatot.
Ping a szerverre RasPi-ról: ping vase-domena.cz
Ellenőrizze a tűzfalat és a routert.
Az IP cím nincs a fehérlistán A "Megengedett IP címek" fülön adja hozzá a RasPi IP címét.
Ellenőrizze, hogy a RasPi IP címe nem változott-e meg (DHCP).
Statikus IP beállítását javasoljuk.
Az ellenőrző szolgáltatás nem indult el SSH a RasPi-ra.
Ellenőrizze az állapotot: sudo systemctl status eintranet-check
Indítsa újra: sudo systemctl restart eintranet-check
Hiba a konfigurációs fájlban Ellenőrizze a konfigurációt: /etc/eintranet/config.json
Ellenőrizze a szerver URL és hash helyességét.

10.6 Az arcfelismerés nem működik

Tünetek: A kamera videót jelenít meg, de a rendszer nem ismer fel egyetlen munkavállalót sem.

Lehetséges okok és megoldások:

Ok Megoldás
Nincs bekapcsolva a beállításokban A "Felhasználói jogok" fülön jelölje be az Arc szerint (saját olvasó szükséges) opciót.
Ellenőrizze, hogy wa_RasPi_Face=1.
Hiányoznak a munkavállalók fényképei A felhasználók adminisztrációjában ellenőrizze, hogy a munkavállalóknak van-e feltöltött fényképük.
Minimum 1 fénykép munkavállalónként.
A fényképeknek frontálisnak, jól megvilágítottnak kell lenniük, szemüveg/sapka nélkül.
Rossz fényviszonyok Biztosítson megfelelő megvilágítást az olvasó előtt.
Kerülje az ellenfényt és sötét helyeket.
Az ideális az egyenletes nappali fény.
Túl magas küszöbérték Az inc/wa_chip_inout.php fájlban csökkentse a minConfidence értéket:
let minConfidence = 0.3 (0.4 helyett)
Figyelem: Alacsonyabb küszöb = több hamis felismerés.
JavaScript hibák Nyissa meg a JavaScript konzolt a böngészőben (F12).
Ellenőrizze a hibaüzeneteket.
Próbáljon másik böngészőt (ajánlott Chrome).
A face-api.js nem töltődött be Ellenőrizze, hogy létezik-e a fájl:
/_components/face-api.js-0.22.2/dist/face-api.min.js
Ellenőrizze a hálózati kapcsolatot (az API CDN-ről tölti be a modelleket).

10.7 A dashboard gombok nem láthatók

Tünetek: A dashboardra való bejelentkezés után hiányoznak az Érkezés/Távozás gombok.

Lehetséges okok és megoldások:

Ok Megoldás
Nincs bekapcsolva a beállításokban Az "Egyéb beállítások" fülön jelölje be az Érkezés/Távozás gombok megjelenítése a főpanelen opciót.
Ellenőrizze, hogy wa_chip_buttons_on_dashboard=1.
Böngésző cache Frissítse az oldalt cache törlésével: Ctrl + F5 (Windows) vagy Cmd + Shift + R (Mac).
Vagy törölje a cookie-kat és cache-t a böngésző beállításaiban.
Nincs kitöltve chip kód A "Felhasználói jogok" fülön ellenőrizze, hogy a munkavállalónak ki van-e töltve a Chip kód.
A gombok csak chip kóddal rendelkező felhasználóknak jelennek meg.
JavaScript hiba Nyissa meg a JavaScript konzolt (F12).
Ellenőrizze a hibaüzeneteket.
Próbáljon másik böngészőt.

10.8 Az automatikus befejezés nem működik

Tünetek: A munkavállaló beléptet egy speciális típust (pl. Orvos), de a jelenlét nem fejeződik be automatikusan.

Lehetséges okok és megoldások:

Ok Megoldás
Nincs beállítva a mód A "További engedélyezett gombok" fülön ellenőrizze a gombot.
Valamelyik 3 rádiógombnak be kell lennie jelölve (órákhoz, időhöz vagy hosszhoz).
Ha nincs, jelölje be és állítsa be az értéket.
A munkavállaló kézzel jelentkezett ki Az automatikus befejezés csak akkor alkalmazódik, ha a munkavállaló NEM jelentkezett ki éjfélig.
Ha kézzel kijelentkezett, az automatika nem használódik.
A cron job nem fut Az automatikus befejezést cron job végzi (pl. 00:01-kor).
Ellenőrizze, hogy fut-e: crontab -l
Keressen sort a wa_chip_autoclose.php (vagy hasonló) szkripttel.
Hibás idő beállítás A "Megadott időhöz" mód esetén ellenőrizze az idő formátumot: HH:MM
Érvényes időnek kell lennie (pl. 15:30, nem 25:00).

10.9 A minimális szünet nem érvényesül

Tünetek: A munkavállalónak 30 perces minimális szünete van beállítva, de a rendszer rövidebb szüneteket is elfogad.

Lehetséges okok és megoldások:

Ok Megoldás
Nincs kitöltve az érték A "Felhasználói jogok" fülön ellenőrizze a Minimális szünethossz oszlopot.
Numerikus értéknek kell lennie (pl. 30), nem üres mezőnek.
Kézi jelenlét rögzítés A minimális szünet csak terminálról történő beléptetéskor alkalmazódik.
A Jelenlét modulban történő kézi rögzítésnél az ellenőrzés nem történik meg.
A logika nincs implementálva Ellenőrizze, hogy az inc/wa_chip_inout.php kódja tartalmazza a minimális szünet ellenőrzését.
Keressen sort a wa_chip_minimal_pause_min mezővel.

10.10 Az IP fehérlista blokkolja a jogos hozzáférést

Tünetek: Az olvasó nem működik, bár helyesen van konfigurálva. A naplóban "Unauthorized" hiba van.

Lehetséges okok és megoldások:

Ok Megoldás
Az IP cím nincs a listában A "Megengedett IP címek" fülön adja hozzá az olvasó IP címét.
Derítse ki a RasPi valódi IP címét: hostname -I
Dinamikus IP cím (DHCP) A RasPi IP címe megváltozhatott az újraindítás után.
Statikus IP cím beállítását javasoljuk a router beállításaiban vagy a RasPi-n.
NAT/Proxy szerver Ha a RasPi NAT/proxy mögött van, a szerver más IP-t lát.
Ellenőrizze, milyen IP-t lát a szerver: echo USER_IP a naplóban.
Adja hozzá ezt az IP-t a fehérlistához.
IP cím formátuma Ellenőrizze a helyes formátumot: 192.168.1.100
Ne: 192.168.1.100:80 vagy http://192.168.1.100
Gyors IP probléma diagnosztika:
  1. Ideiglenesen kapcsolja ki az IP fehérlistát (törölje a jelölést)
  2. Próbáljon beléptetni az olvasóból
  3. Ha működik → a probléma az IP fehérlistában van
  4. Ellenőrizze a szerver naplóit, milyen IP-t lát
  5. Adja hozzá a helyes IP-t a fehérlistához
  6. Kapcsolja be újra a fehérlistát