A Node-RED node for talking to 1-wire devices using an owfs owserver instance.
Run the following command in the root directory of your Node-RED install
npm install node-red-contrib-owfs
Install owfs, either on the same system as Node-RED, or a system that can be reached over TCP. This node communicates with owfs using the owserver protocol - so owserver must be running.
One or more owfs paths can be selected in the node edit dialog. Upon receiving a message on the input the node, it will request each of the values in turn from owfs and places the reading in msg.payload.
Alternatively a device path can be specified in the msg.topic field, for example 28.0080BE21AA00/temperature
. This will override any paths selected in the edit dialog.
In addition the owserver port and/or host can be specified in msg.host and msg.port, overriding any settings in the node configuration.
To trigger reading sensors periodically, use an Inject node to send messages every X seconds.
This example shows a simple flow to read a 1-wire temperature sensor using owfs and publish the reading to MQTT as a retained message.
In this flow, the inject node is used to specify the name of the 1-wire device to be read from, this triggers every 10 seconds. When the owfs node receives this message, it makes a query to owserver, running on the same machine. It takes a temperature reading and outputs the temperature value in msg.payload.
The change node is used to set msg.retain to true - this causes MQTT to keep a copy of the latest temperature reading, so when a new client subscribes, it immediately gets a value.
The flow can be downloaded from the Node-Red Flow Library here: http://flows.nodered.org/flow/b11cfe3a7728a297e44d