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

homie-config

v1.0.2

Published

Use the Homie Configuration API to setup a homie board. This is an alternative to using the web configuration interface and the Android app. You could use this to setup lots of boards if you needed or design your own web interface.

Downloads

7

Readme

HomieConfig

HomieConfig is a node.js module to configure esp8266 boards loaded with Homie firmware.

It seems the only options are a web-based interface or an Android app. I wasn't very happy with this so I created a node.js module so I could configure one or more boards easily.

QuickStart

You can grab homie-config from npm.

npm install --save homie-config

Make sure to set an ip address or hostname for the board. By default, homie.local is used in case you don't pass anything.

var HomieConfig = require('homie-config');

var homie = new HomieConfig();

If you want to set the url you can do it this way:

var homie = new HomieConfig({url: 'homie.local'});

Traditional Callbacks

// You can choose to use traditional callbacks
homie.getHeartBeat(function(isAlive) {
  if (!isAlive) {
    return console.log("Oh no, we don't have a heartbeat!");
  }
  console.log("We have a heartbeat!");
});

Promises are also supported by attaching (async) to method names

homie.getHeartBeatAsync()
  .then(function(isAlive) {
    if (!isAlive) {
      console.log("Oh no, we don't have a heartbeat! Please check the server url " + this.baseUrl);
    }
    console.log("We have a heartbeat!");
  }).catch(function (error) {
    console.log('error',error);
  });

You can chain up the methods easily using promises. I recommend you always use getHeartBeat before otehr methods.

homie.getHeartBeatAsync()
  .then(function(isAlive) {
    if (!isAlive) {
      console.log("Oh no, we don't have a heartbeat! Please check the server url " + this.baseUrl);
    }
    return homie.getDeviceInfoAsync();
  }).then(function(deviceInfo) {
    console.log('Device Info', deviceInfo);
  }).catch(function (error) {
    console.log('error',error);
  });

Please find more examples in the examples directory.

Configuration Wizard

There is a simple interactive configuration wizard available incase you just don't want to both with using it programatically.

In the examples directory run node ./configWizard.js

Supported Methods

The library supports all current Configuration API functions.

These require the board to be accessible.

  • getHeartBeat(callback)
  • getDeviceInfo(callback)
  • getNetworks(callback)
  • saveConfig(config, callback)
  • connectToWifi(ssid, password, callback)
  • getWifiStatus(callback)
  • setTransparentWifiProxy(enable, callback)
  • generateConfig(device_name, device_id, wifi_ssid, wifi_password, mqtt_host, mqtt_options, ota, callback)

Contributing

Feel free to submit any pull requests or add functionality, I'm usually pretty responsive.

If you like the module, please consider donating some bitcoin or litecoin.

Bitcoin

BTC QR Code

1DJsQhquTjUakES5Pddh94t1XSMb7LDYyh

LiteCoin

LTC QR Code

LNzdZksXcCF6qXbuiQpHPQ7LUeHuWa8dDW