Munkaidő-nyilvántartás modul - chip/ujjlenyomat-olvasó
Tartalom
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
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)
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:
- Felhasználói jogosultságok - Chip kódok, ujjlenyomatok beállítása, kézi módosítások megakadályozása
- Engedélyezett IP címek - Olvasók IP címeinek whitelist-je
- További engedélyezett gombok - Gombok konfigurációja a terminálban
- Egyéb beállítások - Modul általános beállításai
- Regisztrált olvasók - RasPi terminálok áttekintése
$_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 |
|
| 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 |
|
| 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 |
|
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)
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
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:
- Válassza ki a Jelenléti típust a legördülő listából (csak a
chip_buttons_available=1típusok töltődnek be) - Kattintson a Mentés gombra
- 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 |
|
| Automatikus lezárás megadott időpontban | Fix lezárási idő |
|
| Fix hossz percekben | Konkrét percszám |
|
| Műveletek | Eltávolítás gomb |
|
Automatikus lezárási módok - részletesen
1. A napi munkaórák számához
Hogyan működik:
- A rendszer betölti a munkavállaló napi munkaidejét (pl. 8 óra)
- Érkezés bejelentkezésekor rögzíti az időt (pl. 7:00)
- Automatikusan kiszámítja a véget: 7:00 + 8ó = 15:00
- 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:
- Az adminisztrátor beállít egy fix lezárási időt (pl. 15:30)
- Érkezés bejelentkezésekor rögzíti az időt (pl. 7:00)
- 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:
- Az adminisztrátor beállítja a percek számát (pl. 60)
- Érkezés bejelentkezésekor rögzíti az időt (pl. 9:00)
- 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.
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_14Jelenlé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_dashboardHaszná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_WritePausePé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_TakePhotoKö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_AutoCloseInLastDayCél: "Lógó" bejegyzések megelőzése a jelenlétben |
Kikapcsolva (0) |
- 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) |
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)
- 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.
- Nyissa meg a Beállítások → Jelenlét - chip/ujjlenyomat-olvasó menüpontot
- Váltson a Felhasználói jogosultságok fülre
- A munkavállalói táblázatban keresse meg a kívánt munkavállalót (használhatja a keresést)
- A Chip kód oszlopba írja be a biztonsági hash kódot (ajánlott minimum 16 karakter, véletlenszerű)
- A rendszer automatikusan menti a változtatást a mező elhagyásakor (onChange esemény)
- Opcionális: Kattintson a vágólap ikonra (fa-clipboard) az API URL teszteléshez történő másolásához
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.
- A Felhasználói jogosultságok fülön keresse meg a munkavállalót
- 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
- A rendszer beállítja:
rights_workattendance='1' - Megjelenik egy zöld gomb: Kézzel csak a jelenlét típusát rögzítheti...
- Kattintson a gombra
- A modális ablakban jelölje be az engedélyezett típusokat (pl. Szabadság, Betegség, Homeoffice)
- 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.
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).
- A Felhasználói jogosultságok fülön keresse meg a munkavállalót
- A Minimális szünethosszúság (perc) oszlopba írja be a percek számát (pl. 30)
- 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
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.
- A Felhasználói jogosultságok fülön keresse meg a munkavállalót
- Ha a munkavállaló "in" állapotban van (jelen van), megjelenik a Visszaállítás (érkezéshez) gomb
- Kattintson a gombra
- A rendszer "out" állapotra (távol van) változtatja az állapotot
- 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
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.
- Váltson a További engedélyezett gombok a chip olvasón fülre
- Kattintson a zöld Gomb hozzáadása gombra
- A modális ablakban válassza ki a Jelenlét típusát a legördülő listából
- Kattintson a Mentés gombra
- A gomb megjelenik a táblázatban
- Á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
- 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
- A gombok táblázatában keresse meg az eltávolítandó gomb sorát
- Kattintson a piros Gomb eltávolítása gombra
- 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).
- Váltson az Engedélyezett IP címek, amelyekről az olvasó jelentkezhet fülre
- Jelölje be az Olvasó hozzáférés engedélyezése csak az alábbi IP címekről jelölőnégyzetet
- Az első üres mezőbe írja be az olvasó IP címét (pl. 192.168.1.100)
- A beírás után automatikusan megjelenik egy újabb üres mező
- Ismételje meg minden olvasóhoz
- 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();
}
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:
- Váltson a Felhasználói jogosultságok fülre
- 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
- A rendszer beállítja:
wa_RasPi_Face=1 - A RasPi terminálon aktiválódik a kamera és az arcfelismerés
Hogyan működik:
- A munkavállaló a RasPi kamerája elé lép
- A rendszer betölti az összes tárolt munkavállaló fényképet
- A Face-api.js felismeri az arcot az élő videóban
- Összehasonlítja a felismert arcot a tárolt fényképekkel (küszöbérték 0.4)
- Egyezés esetén automatikusan rögzíti a jelenlétet
- 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.
- Váltson az Egyéb beállítások fülre
- Jelölje be a Mások állapotának (jelenlétének) megjelenítése az olvasóban jelölőnégyzetet
- 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')
- 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.
- Váltson az Egyéb beállítások fülre
- Jelölje be a Érkezés/Távozás gombok megjelenítése a főpanelen bejelentkezés után jelölőnégyzetet
- 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
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.
- Váltson az Egyéb beállítások fülre
- 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
- A rendszer beállítja:
wa_RasPi_TakePhoto=1
Hogyan működik:
- A munkavállaló a chipet az olvasóhoz helyezi
- A RasPi kamera fényképet készít
- A fénykép feltöltésre kerül a szerverre
- Mentésre kerül a
Filestáblába a jelenlét bejegyzéshez kapcsolva - 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
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_codePé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:
- Hash ellenőrzése:
if ($User->wa_chip_code != $_GET['hash']) { DieUnauthorized(); } - 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(); } - Felhasználó létezésének ellenőrzése:
$User = new cUser(); $User->load($_GET['idUser']); if ($User->idUser == 0) { DieUnauthorized(); } - 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
- Fizikailag csatlakoztassa a RasPi-t a hálózathoz (Ethernet vagy WiFi)
- Futtassa a telepítő szkriptet a RasPi-n
- A RasPi automatikusan regisztrálja magát a szerveren:
POST https://firma.cz/RestAPI/RasPi.php
{
"action": "register",
"hash": "E5tlu8Jg44ZwwlBQgSbCE3lU7RSRvMXa"
}
- 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
- Jelentkezzen be a RasPi-ra SSH-n keresztül
- Futtassa a parancsot:
sudo /home/pi/UpdateFromeIntranetServer - A szkript letölti a legújabb verziót innen:
https://firma.cz/Apps/RasPiUpdate/ - Automatikusan újraindítja a szolgáltatásokat
- A verzió frissül az adatbázisban (
Versionoszlop)
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
12345kó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:
- Ellenőrizze a RasPi hálózati kapcsolatát (ping szerver)
- Ellenőrizze, hogy a RasPi IP címe szerepel-e a fehérlistán
- Ellenőrizze a RasPi naplóit:
/var/log/eintranet/ - 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:
- Ellenőrizze az olvasó fizikai kapcsolatát a RasPi-hoz
- Ellenőrizze, hogy fut-e az olvasó szolgáltatás:
sudo systemctl status rfid - Indítsa újra a szolgáltatást:
sudo systemctl restart rfid - 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:
- Ellenőrizze, hogy be van-e kapcsolva a beállításokban:
wa_RasPi_Face=1 - Ellenőrizze a kamera kapcsolatát a RasPi-hoz
- Ellenőrizze, hogy a munkavállalóknak feltöltött fényképeik vannak-e a rendszerben
- Ellenőrizze a JavaScript konzolt a böngészőben hibákért
- 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:
- Másolja ki a munkavállaló API URL-jét
- Nyissa meg az URL-t egy böngészőben
- A rendszer rögzíti a jelenlétet, mintha RasPi-ról érkezne
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:
- A "Felhasználói jogok" fülön használja a DataTables exportot
- Kattintson az "Excel" vagy "CSV" gombra
- 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:
- Jelenlét modul
- Bejegyzés részletei
- 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:
- A "Felhasználói jogok" fülön keresse meg a munkavállalót
- A Minimális szünethossz (perc) oszlopban törölje az értéket vagy csökkentse (pl. 30-ról 15-re)
- 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 cameraIndí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.logEllenő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.czEllenő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-checkIndítsa újra: sudo systemctl restart eintranet-check
|
| Hiba a konfigurációs fájlban |
Ellenőrizze a konfigurációt: /etc/eintranet/config.jsonEllenő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.jsEllenő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 -lKeressen 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.100Ne: 192.168.1.100:80 vagy http://192.168.1.100
|
- Ideiglenesen kapcsolja ki az IP fehérlistát (törölje a jelölést)
- Próbáljon beléptetni az olvasóból
- Ha működik → a probléma az IP fehérlistában van
- Ellenőrizze a szerver naplóit, milyen IP-t lát
- Adja hozzá a helyes IP-t a fehérlistához
- Kapcsolja be újra a fehérlistát