update readme
This commit is contained in:
parent
2ba766c156
commit
eedcccac0f
163
README.md
163
README.md
@ -1,21 +1,13 @@
|
||||
# pyzk
|
||||
|
||||
pyzk is an unofficial library of zksoftware the fingerprint attendance machine.
|
||||
pyzk is an unofficial library of zksoftware (zkteco family) the fingerprint attendance machine.
|
||||
|
||||
# Installation
|
||||
|
||||
[![Build Status](https://travis-ci.org/kurenai-ryu/pyzk.svg?branch=master)](https://travis-ci.org/kurenai-ryu/pyzk)
|
||||
|
||||
replace original pyzk, if it was installed
|
||||
[![Build Status](https://travis-ci.org/fananimi/pyzk.svg?branch=master)](https://travis-ci.org/fananimi/pyzk)
|
||||
|
||||
```sh
|
||||
pip install -U git+https://github.com/kurenai-ryu/pyzk.git
|
||||
```
|
||||
|
||||
or using pipenv:
|
||||
|
||||
```sh
|
||||
pipenv install git+https://gith.com/kurenai-ryu/pyzk#egg=pyzk
|
||||
pip install -U pyzk
|
||||
```
|
||||
|
||||
or clone and execute:
|
||||
@ -35,11 +27,11 @@ from zk import ZK, const
|
||||
|
||||
# Documentation
|
||||
|
||||
Complete documentation of the original project can be found at [Readthedocs](http://pyzk.readthedocs.io/en/latest/ "pyzk's readthedocs") .
|
||||
Complete documentation can be found at [Readthedocs](http://pyzk.readthedocs.io/en/latest/ "pyzk's readthedocs") .
|
||||
|
||||
# Api Usage
|
||||
# API Usage
|
||||
|
||||
Just create a ZK object and you will be ready to call api.
|
||||
Create the ZK object and you will be ready to call api.
|
||||
|
||||
* Basic Usage
|
||||
|
||||
@ -89,7 +81,9 @@ conn.disconnect()
|
||||
* Disable/Enable Connected Device
|
||||
|
||||
```python
|
||||
# disable (lock) device, ensure no activity while some process run
|
||||
conn.disable_device()
|
||||
# re-enable the connected device
|
||||
conn.enable_device()
|
||||
```
|
||||
|
||||
@ -97,10 +91,10 @@ conn.enable_device()
|
||||
|
||||
```python
|
||||
from datetime import datetime
|
||||
|
||||
# get current machine's time
|
||||
zktime = conn.get_time()
|
||||
print zktime
|
||||
|
||||
# update new time to machine
|
||||
newtime = datetime.today()
|
||||
conn.set_time(newtime)
|
||||
```
|
||||
@ -135,7 +129,8 @@ conn.fingers
|
||||
conn.records
|
||||
conn.users_cap
|
||||
conn.fingers_cap
|
||||
conn.records_cap
|
||||
# TODO: add records_cap counter
|
||||
# conn.records_cap
|
||||
```
|
||||
|
||||
* User Operation
|
||||
@ -148,7 +143,6 @@ users = conn.get_users()
|
||||
# Delete User
|
||||
conn.delete_user(uid=1)
|
||||
```
|
||||
there is also an `enroll_user()` (but it doesn't work with some tcp ZK8 devices)
|
||||
|
||||
* Fingerprints
|
||||
|
||||
@ -160,18 +154,18 @@ fingers = conn.get_templates()
|
||||
|
||||
# to restore a finger, we need to assemble with the corresponding user
|
||||
# pass a User object and a list of finger (max 10) to save
|
||||
|
||||
conn.save_user_template(user, [fing1 ,fing2])
|
||||
```
|
||||
|
||||
* Remote Fingerprint Enrollment
|
||||
```python
|
||||
zk.enroll_user('23')
|
||||
zk.enroll_user('1')
|
||||
# but it doesn't work with some tcp ZK8 devices
|
||||
```
|
||||
|
||||
|
||||
* Attendance Record
|
||||
```python
|
||||
```python
|
||||
# Get attendances (will return list of Attendance object)
|
||||
attendances = conn.get_attendance()
|
||||
# Clear attendances record
|
||||
@ -181,14 +175,93 @@ conn.clear_attendance()
|
||||
* Test voice
|
||||
|
||||
```python
|
||||
conn.test_voice(index=10) # beep or chirp
|
||||
"""
|
||||
play test voice:
|
||||
0 Thank You
|
||||
1 Incorrect Password
|
||||
2 Access Denied
|
||||
3 Invalid ID
|
||||
4 Please try again
|
||||
5 Re-enter ID
|
||||
6 The clock is full
|
||||
7 The clock is full
|
||||
8 Duplicate finger
|
||||
9 Accepted. Thank you
|
||||
10 beep kuko
|
||||
11 beep siren
|
||||
12 -
|
||||
13 beep bell
|
||||
/*
|
||||
**
|
||||
***
|
||||
HELP! TRANSLATE TO ENGLISH THE FOLLOWING ITEMS
|
||||
***
|
||||
**
|
||||
*
|
||||
*/
|
||||
14 excedido tiempo p esta operacion /-
|
||||
15 coloque su dedo de nuevo /-
|
||||
16 coloque su dedo por ultima vez /-
|
||||
17 ATN numero de tarjeta está repetida /-
|
||||
18 proceso de registro correcto * /-
|
||||
19 borrado correcto /-
|
||||
20 Numero de usuario / ponga la caja de ojos
|
||||
21 ATN se ha llegado al max num usuarios /-
|
||||
22 verificacion de usuarios /-
|
||||
23 usuario no registrado /-
|
||||
24 ATN se ha llegado al num max de registros /-
|
||||
25 ATN la puerta no esta cerrada /-
|
||||
26 registro de usuarios /-
|
||||
27 borrado de usuarios /-
|
||||
28 coloque su dedo /-
|
||||
29 registre la tarjeta de administrador /-
|
||||
30 0 /-
|
||||
31 1 /-
|
||||
32 2 /-
|
||||
33 3 /-
|
||||
34 4 /-
|
||||
35 5 /-
|
||||
36 6 /-
|
||||
37 7 /-
|
||||
38 8 /-
|
||||
39 9 /-
|
||||
40 PFV seleccione numero de usuario /-
|
||||
41 registrar /-
|
||||
42 operacion correcta /-
|
||||
43 PFV acerque su tarjeta /-
|
||||
43 la tarjeta ha sido registrada /-
|
||||
45 error en operacion /-
|
||||
46 PFV acerque tarjeta de administracion, p confirmacion /-
|
||||
47 descarga de fichajes /-
|
||||
48 descarga de usuarios /-
|
||||
49 carga de usuarios /-
|
||||
50 actualizan de firmware /-
|
||||
51 ejeuctar ficheros de configuracion /-
|
||||
52 confirmación de clave de acceso correcta /-
|
||||
53 error en operacion de tclado /-
|
||||
54 borrar todos los usuarios /-
|
||||
55 restaurar terminal con configuracion por defecto /-
|
||||
56 introduzca numero de usuario /-
|
||||
57 teclado bloqueado /-
|
||||
58 error en la gestión de la tarjeta /-
|
||||
59 establezca una clave de acceso /-
|
||||
60 pulse el teclado /-
|
||||
61 zona de accceso invalida /-
|
||||
62 acceso combinado invĺlido /-
|
||||
63 verificación multiusuario /-
|
||||
64 modo de verificación inválido /-
|
||||
65 - /-
|
||||
"""
|
||||
conn.test_voice(index=0) # will say 'Thank You'
|
||||
```
|
||||
|
||||
* Device Maintenance
|
||||
|
||||
```python
|
||||
# DANGER!!! This command will be erase all data in the device (incude: user, attendance report, and finger database)
|
||||
conn.clear_data()
|
||||
# shutdown connected device
|
||||
conn.power_off()
|
||||
conn.poweroff()
|
||||
# restart connected device
|
||||
conn.restart()
|
||||
# clear buffer
|
||||
@ -205,7 +278,7 @@ for attendance in conn.live_capture():
|
||||
pass
|
||||
else:
|
||||
print (attendance) # Attendance object
|
||||
#
|
||||
|
||||
#if you need to break gracefully just set
|
||||
# conn.end_live_capture = True
|
||||
#
|
||||
@ -284,7 +357,7 @@ optional arguments:
|
||||
attendance]
|
||||
```
|
||||
|
||||
to restore on a different device, make sure to specify the `filename`. on restoring, it asks for the serial number of the destination device (to make sure it was correct, as it deletes all data) WARNING. there is no way to restore attendance data, you can keep it or clear it, but once cleared, there is no way to restore it.
|
||||
To restore on a different device, make sure to specify the `filename`. on restoring, it asks for the serial number of the destination device (to make sure it was correct, as it deletes all data) WARNING. there is no way to restore attendance data, you can keep it or clear it, but once cleared, there is no way to restore it.
|
||||
|
||||
# Compatible devices
|
||||
|
||||
@ -293,23 +366,11 @@ Firmware Version : Ver 6.21 Nov 19 2008
|
||||
Platform : ZEM500
|
||||
DeviceName : U580
|
||||
|
||||
Firmware Version : Ver 6.60 Oct 29 2012
|
||||
Platform : ZEM800_TFT
|
||||
DeviceName : iFace402/ID
|
||||
|
||||
Firmware Version : Ver 6.60 Dec 27 2014
|
||||
Platform : ZEM600_TFT
|
||||
DeviceName : iFace800/ID
|
||||
|
||||
Firmware Version : Ver 6.60 Mar 18 2013
|
||||
Platform : ZEM560
|
||||
DeviceName : MA300
|
||||
|
||||
Firmware Version : Ver 6.60 Dec 1 2010
|
||||
Firmware Version : Ver 6.60 Apr 9 2010
|
||||
Platform : ZEM510_TFT
|
||||
DeviceName : T4-C
|
||||
|
||||
Firmware Version : Ver 6.60 Apr 9 2010
|
||||
Firmware Version : Ver 6.60 Dec 1 2010
|
||||
Platform : ZEM510_TFT
|
||||
DeviceName : T4-C
|
||||
|
||||
@ -317,6 +378,22 @@ Firmware Version : Ver 6.60 Mar 18 2011
|
||||
Platform : ZEM600_TFT
|
||||
DeviceName : iClock260
|
||||
|
||||
Platform : ZEM560_TFT
|
||||
Firmware Version : Ver 6.60 Feb 4 2012
|
||||
DeviceName :
|
||||
|
||||
Firmware Version : Ver 6.60 Oct 29 2012
|
||||
Platform : ZEM800_TFT
|
||||
DeviceName : iFace402/ID
|
||||
|
||||
Firmware Version : Ver 6.60 Mar 18 2013
|
||||
Platform : ZEM560
|
||||
DeviceName : MA300
|
||||
|
||||
Firmware Version : Ver 6.60 Dec 27 2014
|
||||
Platform : ZEM600_TFT
|
||||
DeviceName : iFace800/ID
|
||||
|
||||
Firmware Version : Ver 6.60 Nov 6 2017 (remote tested with correct results)
|
||||
Platform : ZMM220_TFT
|
||||
DeviceName : (unknown device) (broken info but at least the important data was read)
|
||||
@ -343,8 +420,6 @@ Firmware Version : Ver 6.60 Jun 16 2015
|
||||
Platform : JZ4725_TFT
|
||||
DeviceName : K14 (not tested, but same behavior like the other one)
|
||||
|
||||
|
||||
|
||||
Firmware Version : Ver 6.60 Jun 5 2015
|
||||
Platform : ZMM200_TFT
|
||||
DeviceName : iClock3000/ID (Active testing! latest fix)
|
||||
@ -364,12 +439,6 @@ DeviceName : iClock260 (no capture data - probably similar problem as the latest
|
||||
|
||||
If you have another version tested and it worked, please inform me to update this list!
|
||||
|
||||
# Related Project
|
||||
* [zkcluster](https://github.com/kurenai-ryu/zkcluster/ "zkcluster project") is a django apps to manage multiple fingerprint devices. (Initial support form the [original project](https://github.com/fananimi/zkcluster/))
|
||||
|
||||
# Related Project (TODO: check compatibility with this fork)
|
||||
* [Driji](https://github.com/fananimi/driji/ "Driji project") is an attendance apps based fingerprint for school
|
||||
|
||||
# Todo
|
||||
|
||||
* Create better documentation
|
||||
|
Loading…
Reference in New Issue
Block a user