update README

This commit is contained in:
Fanani M. Ihsan 2018-12-27 22:07:33 +07:00
parent ac745124f6
commit 4b9fe95661

View File

@ -1,22 +1,25 @@
# pyzk # pyzk
pyzk is an unofficial library of zksoftware (zkteco family) the fingerprint attendance machine.
# Installation
[![Build Status](https://travis-ci.org/fananimi/pyzk.svg?branch=master)](https://travis-ci.org/fananimi/pyzk) [![Build Status](https://travis-ci.org/fananimi/pyzk.svg?branch=master)](https://travis-ci.org/fananimi/pyzk)
`pyzk` is an unofficial library of zksoftware (zkteco family) attendance machine.
# Installation
There is some installation method you can use below:
* pip
```sh ```sh
pip install -U pyzk pip install -U pyzk
``` ```
or clone and execute: * manual installation (clone and execute)
```sh ```sh
python setup.py install python setup.py install
``` ```
or in your project, append the path of this project * clone and append the path of this project
```python ```python
import sys import sys
@ -33,36 +36,38 @@ Complete documentation can be found at [Readthedocs](http://pyzk.readthedocs.io/
Create the ZK object and you will be ready to call api. Create the ZK object and you will be ready to call api.
* Basic Usage ## Basic Usage
The following is an example code block how to use pyzk.
```python ```python
from zk import ZK, const from zk import ZK, const
conn = None conn = None
# create ZK instance
zk = ZK('192.168.1.201', port=4370, timeout=5, password=0, force_udp=False, ommit_ping=False) zk = ZK('192.168.1.201', port=4370, timeout=5, password=0, force_udp=False, ommit_ping=False)
try: try:
print ('Connecting to device ...') # connect to device
conn = zk.connect() conn = zk.connect()
print ('Disabling device ...') # disable device, this method ensures no activity on the device while the process is run
conn.disable_device() conn.disable_device()
print ('Firmware Version: : {}'.format(conn.get_firmware_version())) # another commands will be here!
# print '--- Get User ---' # Example: Get All Users
users = conn.get_users() users = conn.get_users()
for user in users: for user in users:
privilege = 'User' privilege = 'User'
if user.privilege == const.USER_ADMIN: if user.privilege == const.USER_ADMIN:
privilege = 'Admin' privilege = 'Admin'
print ('+ UID #{}'.format(user.uid))
print ('- UID #{}'.format(user.uid))
print (' Name : {}'.format(user.name)) print (' Name : {}'.format(user.name))
print (' Privilege : {}'.format(privilege)) print (' Privilege : {}'.format(privilege))
print (' Password : {}'.format(user.password)) print (' Password : {}'.format(user.password))
print (' Group ID : {}'.format(user.group_id)) print (' Group ID : {}'.format(user.group_id))
print (' User ID : {}'.format(user.user_id)) print (' User ID : {}'.format(user.user_id))
print ("Voice Test ...") # Test Voice: Say Thank You
conn.test_voice() conn.test_voice()
print ('Enabling device ...') # re-enable device after all commands already executed
conn.enable_device() conn.enable_device()
except Exception as e: except Exception as e:
print ("Process terminate : {}".format(e)) print ("Process terminate : {}".format(e))
@ -71,6 +76,8 @@ finally:
conn.disconnect() conn.disconnect()
``` ```
## Command List
* Connect/Disconnect * Connect/Disconnect
```python ```python
@ -81,9 +88,9 @@ conn.disconnect()
* Disable/Enable Connected Device * Disable/Enable Connected Device
```python ```python
# disable (lock) device, ensure no activity while some process run # disable (lock) device, to ensure no user activity in device while some process run
conn.disable_device() conn.disable_device()
# re-enable the connected device # re-enable the connected device and allow user activity in device again
conn.enable_device() conn.enable_device()
``` ```
@ -100,7 +107,7 @@ conn.set_time(newtime)
``` ```
* Ger Firmware Version and extra information * Ger Firmware Version and Extra Information
```python ```python
conn.get_firmware_version() conn.get_firmware_version()
@ -118,7 +125,7 @@ conn.get_mac()
conn.get_pin_width() conn.get_pin_width()
``` ```
* Get Device use and free Space * Get Device Usage Space
```python ```python
conn.read_sizes() conn.read_sizes()
@ -142,6 +149,7 @@ conn.set_user(uid=1, name='Fanani M. Ihsan', privilege=const.USER_ADMIN, passwor
users = conn.get_users() users = conn.get_users()
# Delete User # Delete User
conn.delete_user(uid=1) conn.delete_user(uid=1)
conn.delete_user(user_id=123)
``` ```
* Fingerprints * Fingerprints
@ -168,7 +176,7 @@ zk.enroll_user('1')
```python ```python
# Get attendances (will return list of Attendance object) # Get attendances (will return list of Attendance object)
attendances = conn.get_attendance() attendances = conn.get_attendance()
# Clear attendances record # Clear attendances records
conn.clear_attendance() conn.clear_attendance()
``` ```
@ -258,7 +266,7 @@ conn.test_voice(index=0) # will say 'Thank You'
* Device Maintenance * Device Maintenance
```python ```python
# DANGER!!! This command will be erase all data in the device (incude: user, attendance report, and finger database) # DANGER!!! This command will be erase all data in the device (incuded: user, attendance report, and finger database)
conn.clear_data() conn.clear_data()
# shutdown connected device # shutdown connected device
conn.poweroff() conn.poweroff()
@ -446,3 +454,4 @@ If you have another version tested and it worked, please inform me to update thi
* HTTP Rest api * HTTP Rest api
* ~~Create real time api (if possible)~~ * ~~Create real time api (if possible)~~
* and much more ... * and much more ...