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.

    Install

    npm i homie-dgram

    DownloadsWeekly Downloads

    4

    Version

    0.2.0

    License

    MIT

    Unpacked Size

    26 kB

    Total Files

    12

    Last publish

    Collaborators

    • jue89