Socket
Socket
Sign inDemoInstall

homie2-config

Package Overview
Dependencies
55
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    homie2-config

Use the Homie Configuration API to provision devices with ease.


Version published
Weekly downloads
2
Maintainers
1
Install size
5.24 MB
Created
Weekly downloads
 

Readme

Source

Homie2Config

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

This is for Homie version 2.0+, original codebase from HomieConfig

QuickStart

You can grab homie2-config from npm.

npm install --save homie2-config

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

var Homie2Config = require('homie2-config');

var homie2 = new Homie2Config();

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

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

Traditional Callbacks

// You can choose to use traditional callbacks
homie2.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

homie2.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 other methods.

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

Please find more examples in the examples directory.

Meteor Package

There is also a Meteor Package available that uses this npm module, and includes numerous other Homie helper methods:

https://github.com/tripflex/meteor-homie

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, and check out the Meteor Package that includes this module, as well as numerous other helper methods: https://github.com/tripflex/meteor-homie

Keywords

FAQs

Last updated on 10 Jan 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc