homie-dgram
v0.2.0
Published
Homie Datagram Protocol
Downloads
5
Readme
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 CPUIDtimeout
: 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 endpointhdpEndpoint
: 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 valueoldVal
: 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.