2016-05-24 08:11:36 +07:00
|
|
|
# pyzk
|
|
|
|
|
2016-05-26 12:51:04 +07:00
|
|
|
pyzk is unofficial library of zksoftware the fingerprint attendance machine.
|
|
|
|
|
2016-05-26 23:27:05 +07:00
|
|
|
# Installation
|
|
|
|
|
2016-05-27 02:10:53 +07:00
|
|
|
[![Build Status](https://travis-ci.org/fananimi/pyzk.svg?branch=master)](https://travis-ci.org/fananimi/pyzk)
|
|
|
|
|
2016-05-26 23:27:05 +07:00
|
|
|
`pip install pyzk`
|
|
|
|
|
2016-05-27 01:33:51 +07:00
|
|
|
# Documentation
|
|
|
|
|
|
|
|
Complete documentation can be found at [Readthedocs](http://pyzk.readthedocs.io/en/latest/ "pyzk's readthedocs") .
|
|
|
|
|
2016-05-26 23:27:05 +07:00
|
|
|
# Api Usage
|
2016-05-26 12:51:04 +07:00
|
|
|
|
2016-05-26 22:15:03 +07:00
|
|
|
Create ZK object and you will ready to call api.
|
2016-05-26 12:51:04 +07:00
|
|
|
|
2016-05-26 22:15:03 +07:00
|
|
|
* Basic Usage
|
2016-05-26 12:51:04 +07:00
|
|
|
```
|
|
|
|
import zk
|
2016-05-26 13:06:33 +07:00
|
|
|
from zk import const
|
2016-05-26 12:51:04 +07:00
|
|
|
|
|
|
|
zk = zk.ZK(ip='192.168.1.201', port=4370, timeout=5)
|
|
|
|
try:
|
2016-05-27 01:42:04 +07:00
|
|
|
response = zk.connect()
|
|
|
|
if response.get('status') is False:
|
|
|
|
raise Exception(response.get('message'))
|
|
|
|
|
2016-05-26 22:11:19 +07:00
|
|
|
# disable (lock) the device, make sure no activity when process run
|
2016-05-26 12:51:04 +07:00
|
|
|
zk.disable_device()
|
|
|
|
|
|
|
|
# Do another task here
|
|
|
|
firmware = zk.get_firmware_version()
|
|
|
|
print 'Firmware Version: : {}'.format(firmware.get('data'))
|
2016-05-26 13:05:17 +07:00
|
|
|
users = zk.get_users()
|
|
|
|
if users.get('status'):
|
|
|
|
for user in users.get('data'):
|
|
|
|
privilege = 'User'
|
|
|
|
if user.privilege == const.USER_ADMIN:
|
|
|
|
privilege = 'Admin'
|
|
|
|
|
|
|
|
print '- UID #{}'.format(user.uid)
|
|
|
|
print ' Name : {}'.format(user.name)
|
|
|
|
print ' Privilege : {}'.format(privilege)
|
|
|
|
print ' Password : {}'.format(user.password)
|
|
|
|
print ' Group ID : {}'.format(user.group_id)
|
|
|
|
print ' User ID : {}'.format(user.user_id)
|
2016-05-26 12:51:04 +07:00
|
|
|
|
|
|
|
# don't forget to re-enable device
|
|
|
|
zk.enable_device()
|
|
|
|
except Exception, e:
|
|
|
|
print "Process terminate : {}".format(e)
|
|
|
|
finally:
|
|
|
|
if zk.is_connect:
|
|
|
|
zk.disconnect()
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
* Ger Firmware Version
|
|
|
|
|
|
|
|
```
|
|
|
|
zk.get_firmware_version()
|
|
|
|
```
|
|
|
|
|
|
|
|
* Create User
|
|
|
|
|
|
|
|
```
|
|
|
|
zk.set_user(uid=1, name='Fanani M. Ihsan', privilege=const.USER_ADMIN, password='12345678', group_id='', user_id='123')
|
|
|
|
```
|
|
|
|
|
2016-05-26 13:05:17 +07:00
|
|
|
* Get User
|
|
|
|
|
|
|
|
```
|
|
|
|
users = zk.get_users()
|
|
|
|
```
|
|
|
|
|
2016-05-26 12:51:04 +07:00
|
|
|
* Test voice
|
|
|
|
|
|
|
|
```
|
|
|
|
zk.test_voice()
|
|
|
|
```
|
|
|
|
|
|
|
|
* Shutdown Device
|
|
|
|
|
|
|
|
```
|
|
|
|
zk.power_off()
|
|
|
|
```
|
|
|
|
|
|
|
|
* Restart
|
|
|
|
|
|
|
|
```
|
|
|
|
zk.restart()
|
2016-05-26 12:55:18 +07:00
|
|
|
```
|
|
|
|
|
|
|
|
# Todo
|
|
|
|
|
2016-05-26 22:15:03 +07:00
|
|
|
* Create better documentation
|
2016-05-26 12:55:18 +07:00
|
|
|
* Clear user
|
|
|
|
* Finger template downloader & uploader
|
2016-05-26 22:11:19 +07:00
|
|
|
* Get attendance record
|
2016-05-26 22:15:03 +07:00
|
|
|
* Clear attendance record
|
2016-05-26 12:55:18 +07:00
|
|
|
* HTTP Rest api
|
2016-05-26 22:15:03 +07:00
|
|
|
* Create real time api (if possible)
|
|
|
|
* and much more ...
|