docs | ||
zk | ||
.gitignore | ||
.travis.yml | ||
CHANGELOG.md | ||
LICENSE | ||
LICENSE.txt | ||
README.md | ||
setup.py | ||
test.py |
pyzk
pyzk is unofficial library of zksoftware the fingerprint attendance machine.
Installation
pip install pyzk
Documentation
Complete documentation can be found at Readthedocs .
Api Usage
Create ZK object and you will ready to call api.
- Basic Usage
import zk
from zk import const
conn = False
zk = zk.ZK(ip='192.168.1.201', port=4370, timeout=5)
try:
conn = zk.connect()
# disable (lock) the device, make sure no activity when process run
zk.disable_device()
# Do another task here
firmware_version = zk.get_firmware_version()
print 'Firmware Version: : {}'.format(firmware_version)
users = zk.get_users()
for user in users:
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)
except Exception, e:
print "Process terminate : {}".format(e)
finally:
if conn:
# don't forget to re-enable device
zk.disconnect()
- Connect/Disconnect
zk.connect()
zk.disconnect()
- Disable/Enable Connected Device
zk.disable_device()
zk.enable_device()
- Ger Firmware Version
zk.get_firmware_version()
- User Operation
# Create user
zk.set_user(uid=1, name='Fanani M. Ihsan', privilege=const.USER_ADMIN, password='12345678', group_id='', user_id='123')
# Get all users (will return list of User object)
users = zk.get_users()
# Delete User
zk.delete_user(uid=1)
- Attendance Record
# Get attendances (will return list of Attendance object)
attendances = zk.get_attendance()
# Clear attendances record
zk.clear_attendance()
- Test voice
zk.test_voice()
- Device Maintenance
# shutdown connected device
zk.power_off()
# restart connected device
zk.restart()
Todo
- Create better documentation
- Finger template downloader & uploader
- HTTP Rest api
- Create real time api (if possible)
- and much more ...