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 🙏

© 2025 – Pkg Stats / Ryan Hefner

bigassfanjs

v2.0.3

Published

API library for BigAssFans (Unofficial)

Downloads

61

Readme

BigAssFanjs

BigAssFanjs is an (Unofficial) API library written to manage fans made by BigAssFans

Installation

Use the Node Package Manager to install:

npm install bigassfanjs

Usage

coming soon once package is published to NPM

Contributing

I'm open to any suggestions or ideas for this project. Feel free to create pull requests or issues and i'll get to them as soon as possible.

License

MIT

API Docs

Fan Controller - Main API Class

Initialized With

let controller = new FanController(scan, debug)
  • Scan: boolean that controls if the controller will search for fans at start.
  • Debug: boolean that logs incoming and outgoing commands.

FanController exposes a newFan event, the knownFans object, and a close() function

Event "newFan"

the FanController class emits the newFan event whenever a new fan is discovered. It returns a BigAssFan object for the fan.

FanController.knownFans

knownFans is an object containing all currently discovered fans for the controller. the object keys are the fan names with the value being its BigAssFan object

BigAssFan Class

Initialized With

let myFan = new BigAssFan(name, mac, ip, controller)
  • Name: the display name of the fan, set when the fan is installed.
  • Mac: the MAC address of the fan.
  • IP: the ip address of the fan.
  • Controller: an instance of the FanController class to manage the socket connection

This class is normally initialized by the controller, however it can be used separately when you dont want to auto-scan the network for fans.


Accessing and Setting Properties

fan properties are accessed using the Promise API. when getting a property such as fan speed, access it like a variable, but append .then() or use await

myFan.fan.speed.then(speed => {
    console.log(speed)
})

Setting properties does not use the Promise API, and is the same as setting a variable.

myFan.fan.speed = 7

Properties

The BigAssFan Class contains 3 objects contain corresponding fan properties

  1. fanInstance.fan
    • power: controls whether fan is on or off; Allowed Values: true,false
    • speed: sets fan speed; Allowed Values: Integer 0-7
    • auto: enables sensor based speed; Allowed Values: Boolean
    • whoosh: enable natural breeze like fan mode; Allowed Values: Boolean
    • spinDirection: sets whether fan spins forward or reverse; Allowed Values: "FWD", "REV"
  2. fanInstance.light
    • brightness: sets fan light brightness; Allowed Values: Integer 0-7
    • auto: enables sensor based light brightness; Allowed Values: Boolean
  3. fanInstance.device
    • beep: turns fan beeping on or off; Allowed Values: Boolean
    • indicators: turns led fan status indicators on or off; Allowed Values: Boolean
    • winterMode: turns on winter mode; Allowed Values: Boolean
    • height: sets fan height from ceiling in centimeters; Allowed Values: Unsigned Integer
    • ssid: displays current connected WiFi SSID; Allowed Values: String
    • ap: sets fan into access point mode; Allowed Values: Boolean
    • token: readonly UUID hardcoded into fan; Readonly