1.0.3 • Published 3 years ago

node-red-contrib-owfs-context v1.0.3

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
3 years ago

node-red-contrib-owfs-context

A Node-RED node for talking to 1-wire devices using an owfs 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.

screenshot

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