homie-dgram

0.2.0 • Public • Published

Homie Datagram Protocol

EXPERIMENTAL! DON'T EXPECT THIS TO BE STABLE!

This is a client for the Homie Datagram Protocol (HDP). A server implementation can be found here: homie/hdp

API

const hdpFactory = require('homie-dgram');
hdpFactory([opts]).then((hdpClient) => { ... });
  • opts has the following items:
    • port: UDP port to be bound. Default: 5001
    • mcast: Multicast group to join. Default: 'ff02::cafe'
  • hdpClient: Instance of HDPClient

Class: HDPClient

Event: discover

hdpClient.on('discover', (hdpDevice) => { ... });

Is fired once a HDPDevice has been discovered.

Method: triggerDiscovery()

hdpClient.triggerDiscovery([opts]);

Triggers discovery by requesting the current state of all reachable HDP devices.

opts has the following options:

  • port: hdpDevice's port. Default: 5000
  • mcast: Multicast address for the request. Default: 'ff02::1'.
  • iface: Network interface to query. Default: all network interfaces with IPv6 connectivity.

Method: get()

hdpClient.get(cpuid[, timeout]).then((hdpDevice) => { ... });
  • cpuid: Hex string of the hdpDevice's CPUID
  • timeout: Amount of millisecods to wait for the given device to be discovered. Default: 20000.
  • hdpDevice: Instance of HDPDevice

Method: getAll()

const hdpDevices = hdpClient.getAll();
  • hdpDevices: Array of HDPDevice that have been discovered, yet.

Method: close()

hdpClient.close().then(() => { ... });

Closes the network socket.

Class: HDPDevice

Property: cpuid

CPUID of hdpDevice.

Property: uptime

Uptime in milliseconds of the hdpDevice.

Method: get()

const hdpEndpoint = hdpDevice.get(name)
  • name: Name of the endpoint
  • hdpEndpoint: Instance of HDPEndpoint

Class HDPEnpoint

Property: name

Name of the hdpEndpoint.

Property: type

Type of the hdpEndpoint.

Property: writable

Flag indicating that the endpoint is writable.

Property: readable

Flag indicating that the endpoint is readable.

Event: change

hdpEndpoint.on('change', (newVal, oldVal) => { ... });

Is fired once the endpoint's value has changed.

  • newVal: Endpoints new value
  • oldVal: Endpoints old value

Method: get()

val = hdpEndpoint.get();

Precondition: hdpEndpoint.readable === true;

Gets the current value of the endpoint.

Method: set()

await hdpEndpoint.set(val);

Precondition: hdpEndpoint.writable === true;

Writes the value of the endpoint.

Package Sidebar

Install

npm i homie-dgram

Weekly Downloads

2

Version

0.2.0

License

MIT

Unpacked Size

26 kB

Total Files

12

Last publish

Collaborators

  • jue89