npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

zkh-lib

v1.0.0

Published

This package allows for real-time tracking of employee attendance using a ZKTeco device and the device's IP address.

Downloads

30

Readme

Installation

npm i zkh-lib

Or, if you prefer Yarn:

yarn add zkh-lib

Usage Example

const ZKHLIB = require("zkh-lib");

const runMachine = async () => {
  let obj = new ZKHLIB("192.168.1.106", 4370, 5200, 5000);
  try {
    // Create socket to machine
    await obj.createSocket();

    // Get all logs in the machine
    const logs = await obj.getAttendances();
    console.log(logs);

    // Read real-time logs
    await obj.getRealTimeLogs((data) => {
      console.log(data);
    });

    // Disconnect from device
    await obj.disconnect(); // when you are using real-time logs, you need to disconnect manually
  } catch (e) {
    console.log(e);
  }
};

runMachine();

API Reference :

  • createSocket() - creates a connection to the device

  • getInfo() - returns general information about the device, such as log capacity and user count

  • getUsers() - returns an array of all users in the device

  • setUser(uid, userid, name, password, role = 0, cardno = 0) - adds a new user to the device

  • getAttendances() - returns an array of all attendance logs in the device

  • getRealTimeLogs(callback) - sets up a real-time log stream and calls the provided callback function with each new log

  • getPIN() - returns the device PIN

  • getFaceOn() - returns the device Face On status

  • getSSR() - returns the device Self-Service-Recorder (SSR) status

  • getDeviceVersion() - returns the device version

  • getDeviceName() - returns the device name

  • getPlatform() - returns the device platform version

  • getOS() - returns the device OS version

  • getAttendanceSize() - returns the device attendance size

  • clearAttendanceLog() - clears the attendance log

  • disconnect() - disconnects from the device

Don't forget to star the repo if you like it.