node-red-contrib-owfs-context
A Node-RED node for talking to 1-wire devices using an owfs owserver instance. Writes results in node-red global context.
Install
Run the following command in the root directory of your Node-RED install
npm install node-red-contrib-owfs-context
Usage
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.
To check presence of sensors, select Mode Presence and use an Inject node to request the status. A boolean value in msg.payload will indicate the sensor presence status.
New functionality of this fork is writing values from (reading) nodes into global context in section "LiveValues". e.g. "LiveValues": { "5": { "581D30000000/sensed": 1, "562830000000/PIO": "ok" }, "Temp1": 28.75, "Temp2": 20.6875, "Temp3": 25.75, "Door": 0 }
Example
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.
Then 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
Hardware Tested
- DS18B20 Temperature Sensor
- DS9490R USB Host Adapter
- RPI2: 1-Wire Host Adapter for Raspberry Pi
- SWE1: Temperature Sensor
- SWE3: Humidity Sensor Module
- SWE4: Dual Channel I/O Module
- DS1822 Econo 1-Wire Digital Thermometer
- DS2401 Silicon Serial Number
- DS2406 Dual Addressable Switch Plus 1Kb Memory
- DS2408 1-Wire 8-Channel Addressable Switch
- DS2438 Smart Battery Monitor (often used as a temperature and humidity sensor)