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

basestation-transmitter

v1.1.2

Published

Communicates device specifics directly to Basestation.

Downloads

27

Readme

Basestation Transmitter

Communicates device specifics directly to Basestation.

Getting started

  • Clone this project.
  • Run npm install -g
  • Configure the below options

Configuration

Configs can be viewed by running basestation-transmitter configs. Set these configs by running basestation-transmitter set <config> <value>.

  • BASESTATION_INTERVAL - How ofen the daemon executes in milliseconds. Defaults to 5000
  • BASESTATION_DEVICES_URI - URI pointing to your basestation's devices in firebase. Example: https://basestation.firebaseio.com/devices
  • BASESTATION_SECRET (Optional) - Secret key to authenticate to firebase. Only necessary if you have authentication configured, which is recommended. See below.
  1. Set the Firebase URL. You can do this with the following command, replacing the example URL with your own. basestation-transmitter set BASESTATION_DEVICES_URI https://basestation.firebaseio.com/devices

  2. Setup security basestation-transmitter will attempt to update devices in Firebase without authenticating if BASESTATION_SECRET is not defined. Set BASESTATION_SECRET by running basestation-transmitter set BASESTATION_SECRET YOURSECRET Configure the Security & Rules in firebase to allow BASESTATION_SECRET access to devices. Additionally, ensure the devices "name" field is indexed. See the below example.

{
    "rules": {
        "devices": {
            ".indexOn" : "name",
            ".read": "auth.BASESTATION_SECRET === true",
           ".write": "auth.BASESTATION_SECRET === true"
        }
    }
}

Running Basestation Transmitter

After configuring, simply run basestation-transmitter start

Plugins

Plugins offer the abily to easily extend the data basestation-transmitter sends to Firebase. Simply drop a coffeescript file into the /src/plugins folder and it will be loaded to firebase.

module.exports = (device, interval)->
	
	setInterval (()->
	
		device.myPlugin = Math.random()
		device.save()
		
	), interval
	

When each plugin is called the device and the default interval is passed to it. Plugins are only called once, so if you have a repeating function, you'll need to wrap it in an interval. Edit the device's attributes directly, and then save it with device.save(). Saving the device immedietly sends it to firebase.

os.coffee

Sends OS specific metrics to Basestation Node.js's native OS integration

processes.coffee

Only loaded for linux platforms. Identifies currently running processes and sends them to Basestation. Processes are only ones viewable by the user Basestation is running as.

installed_software.coffee

Only loaded for linux platforms. Searches the machine for installed packages and sends to Basestation. This module overrides the default interval to run only once an hour.