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

@homenet/core

v4.0.0-beta.42

Published

Homenet home automation - core system

Downloads

20

Readme

Homenet Core

Home automation system tightly coupled with Node RED intended for those who like to write their own code.

I'm not a fan of complex web and app interfaces, so the approach is more of a hands off - triggers are automatic or via sensors or buttons. There is an Android tablet app in the works that uses multi-finger gestures to control things. Ideally I'd like to integrate with voice control when that becomes feasible.

Powerful Rules

  • Uses Node RED for rule system. Much more powerful than the IFTTT style rules used by others.
  • Infinite number of "scenes". Each scene is like a clean slate of rules. When the scene changes, so do the Node RED flows. For example have a "day" and "night" scene, one for when you're "away" from home, one for when you're watching "movies", one for when you're "entertaining".
  • Common tabs - any Node RED tab that starts with the word "Common" is available in every scene. No need to repeat rules that you always want available.
  • Custom Node RED nodes are provided for tighter integration with core.

Pluggable Architecture

Core relies on plugins to communicate with external devices and services.

  • Core plugins can easily be written in Javascript or Typescript (or any other language that compiles to Javascript such as Coffeescript).
  • Core plugins are discovered automatically if installed globally via NPM.
  • Any Node RED plugin can also be used within the rule systems (although they will not be controllable via the HTTP API).

API

External applications can interact and control devices via the HTTP APIs. There is both a REST and GraphQL API.

Documentation

Click here to view documentation

Installing and Running

The best way to use now is to install globally:

npm install -g @homenet/core node-red-contrib-scenes

Then to run:

homenet4 /path/to/my/config.json

Adding Plugins

Search for plugins on NPM

homenet-core doesn't do much without plugins. Install plugins globally and they will be automatically discovered. Eg:

npm install -g @homenet/plugin-hue

Plugins are discovered by searching global and local node_modules for modules with the keyword homenet4-plugin.

example package.json:

{
    "keywords": [
        "homenet4-plugin"
    ],
    "homenet4": {
        "plugins": [
            "MyPluginLoader"
        ]
    }
}

Using as a Module

It is also possible to use as an NPM module inside a project. Docs TBD.

Developer Help

Clone and Build Locally

Build using Typescript 2.

git clone [email protected]:denwilliams/homenet-core.git
cd homenet-core
npm install
npm install -g typescript
tsc

Building Docs Locally

npm install -g typedoc
npm run typedoc

Running Tests

npm test

or

node_modules/.bin/ava