node-red-node-discovery
=======================
A Node-RED node that uses Bonjour
/ Avahi to discover local network services such as iTunes libraries, printers, etc.
Now also supports announcing new services.
Prerequisites
-------------
please read the [install instructions](https://www.npmjs.com/package/mdns) for the underlying npm.
For Debian / Ubuntu this requires installing
sudo apt-get install libavahi-compat-libdnssd-dev
Install
-------
Run the following command in your Node-RED user directory - typically `~/.node-red`
npm i node-red-node-discovery
Usage
-----
### Discovery
Uses an implementation of mdns to provide a Bonjour / Avahi
service discovery capability.
`msg.payload` contains the service object on both arrival and leaving.
`msg.state` contains boolean true or false depending if the service has arrived (true) or gone away (false)..
Within the `msg.payload` object the most interesting things are:
* msg.payload.name
* msg.payload.interface
* msg.payload.port
* msg.payload.addresses
* msg.payload.txtRecord
For a full list of official service types see [this list](http://www.dns-sd.org/ServiceTypes.html" target="_new).
### Announce
Provides a Bonjour / Avahi / Zeroconf announcement node.
If `msg.payload` is 0 - the announcement is stopped. Any other value starts the announcement process.
The announcement can be customised by the msg if not configured in the edit panel.
- `msg.service` - For a full list of official service types see this list.
- `msg.port` - the tcp or udp port to use.
- `msg.name` - the short description name of the service. If you use %h in the name, it will be replaced by the machine hostname.
- `msg.txtRecord` - a set of comma separated name:value pairs
### Note:
When Node-RED starts you will get a big WARNING message about the Bonjour Compatibility layer... this is just a warning so don't worry.