UNPKG

zklib-js

Version:

JavaScript module for ZKLib biometric devices

169 lines (99 loc) 3.8 kB
# Zklib-js - install ``` npm i zklib-js ``` - Documentation ```javascript // test code: const ZKLib = require('node-zklib') const test = async () => { let zkInstance = new ZKLib('192.168.1.201', 4370, 5200, 5000); try { // Create socket to machine await zkInstance.createSocket() // Get general info like logCapacity, user counts, logs count // It's really useful to check the status of device console.log(await zkInstance.getInfo()) } catch (e) { console.log(e) if (e.code === 'EADDRINUSE') { } } // Get users in machine const users = await zkInstance.getUsers() console.log(users) // Create new user: setUser(uid, userid, name, password, role = 0, cardno = 0) await zkInstance.setUser(12, '9', 'testing', '111', 0, 0); // Get all logs in the machine // Currently, there is no filter to take data, it just takes all !! const logs = await zkInstance.getAttendances(function() { if (err) throw err; console.log("Very cool!"); }) console.log(logs) // You can also read realtime log by getRealTimelogs function await zkInstance.getRealTimeLogs((data)=>{ // do something when some checkin console.log(data) }) // Get the current Time in the machine const z = await zkInstance.getTime(); console.log(z.toString()); // Serial number const sr = await zkInstance.getSerialNumber(); console.log(sr); // Firmware Version const fw = await zkInstance.getFirmware(); console.log(fw); // PIN of the device const pi = await zkInstance.getPIN(); console.log(pi); // Check Face functionality (Yes if ON, No if OFF) const fo = await zkInstance.getFaceOn(); console.log(fo); // SSR (Self-Service-Recorder) const ssr = await zkInstance.getSSR(); console.log(ssr); // Device Version const dv = await zkInstance.getDeviceVersion(); console.log(dv); // Device Name const n = await zkInstance.getDeviceName(); console.log(n); // Platform Version const p = await zkInstance.getPlatform(); console.log(p); // OS Version const o = await zkInstance.getOS(); console.log(o); // WorkCode of the machine const wc = await zkInstance.getWorkCode(); console.log(wc); // Get Attendance size const s = await zkInstance.getAttendanceSize(); console.log(s); // Delete the data in machine // Note: You should do this when there are too many data in the machine, // this issue can slow down machine. zkInstance.clearAttendanceLog(); // Disconnect the machine ( don't do this when you need realtime update :))) await zkInstance.disconnect() } test() // in the end we execute the function ``` There are many functions you can just visit [zk protocol](https://github.com/adrobinoga/zk-protocol/blob/master/protocol.md) to see the command and put it in executeCmd function already existed in the library. The function executeCmd accepts the command constant in `constants.js` and the data if needed, and we can implement it as follows: ```javascript async executeCmd(command, data=''){ return await this.functionWrapper( ()=> this.zklibTcp.executeCmd(command, data), ()=> this.zklibUdp.executeCmd(command , data) ) } // unlock the door executeCmd(CMD.CMD_UNLOCK, '') ``` ## Credits * [php_zklib](https://github.com/dnaextrim/php_zklib) * [node-zklib](https://github.com/caobo171/node-zklib)