OWFS is an easy way to use the powerful 1-wire system of Dallas/Maxim. OWFS is a simple and flexible program to monitor and control the physical environment. More info - http://owfs.org/
Overview
One wire file server (OWFS) is a software basicly developed for Linux systems for accessing one wire network devices. It is oftenly used for a "bridge" by other software like Domoticz, OpenHAB, Home Assistant, node-red...
Denkovi 1-Wire Hardware
Denkovi 1-Wire hardware can be found on this link: http://denkovi.com/one-wire-relay-boards-and-converters
Denkovi 1-Wire converer
Our USB 1-wire converter is cheap but very useful device for one wire networks. It can be used successfully in OWFS. Usually for Linux systems a new rule must be added befor start working with the convreter.
You can make a file in /etc/udev/rules.d/ with name 11-onewire.rules and add the following line:
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="DAE001nq", SUBSYSTEMS=="usb", ACTION=="add", MODE="0660", GROUP="plugdev", SYMLINK+="onewire"
where the DAE001nq is the serial ID of your converter.
OWFS installation - Linux
Currently the OWFS is supported mostly by linux systems. it works very well on Raspbian OS as well. Below we are giving brief instructions how to install the owfs on Raspbian OS:
Firstly, let's install all the owfs packages we need:
# apt-get install owfs ow-shell
After that, we will need to find the USB 1-Wire converter in the system, so please connect to one of the USB ports and type this command:
# dmesg | grep tty
and there whould be somewhere listed similar line indicating that the ttyUSB0 is the port we are looking for:
FTDI USB Serial Device converter now attached to ttyUSB0
Now, open the file /etc/owfs.conf which contains the owfs configuartions:
# sudo nano /etc/owfs.conf
Configure the server, mountpoint and disable the fake server:
For some installations, it is needed to adjust the server/port. It could be localhost or 127.0.0.1
Next, create the /mnt/1wire/ directory
Now, run the server:
# sudo owfs -C -uall -m /mnt/1wire --allow_other
After ther one wire server is running, we can now list all the one wire devices connected to our network:
# ls /mnt/1wire
And the result with a Dallas one wire sensor and a Denkovi 1-Wire relay board is:
Reading the temperature of DALLAS one wire sensor
Just put the following command replacing with the suitable ID:
# cat /mnt/1wire/28.4EE076090000/temperature
Controlling the relays of the 1-wire relay board
Again, put the following command replacing with the suitable ID:
# echo '0' > /mnt/1wire/29.032407000000/PIO.0 //set Relay1 OFF
# echo '1' > /mnt/1wire/29.032407000000/PIO.0 //set Relay1 ON
.....
# echo '0' > /mnt/1wire/29.032407000000/PIO.7 //set Relay8 OFF
# echo '1' > /mnt/1wire/29.032407000000/PIO.7 //set Relay8 ON
# echo '255' > /mnt/1wire/29.032407000000/PIO.BYTE //set all relays with single command