Last time, we setup the Raspberry Pi so it could read the values from some DS18B20 sensors using the command line tool owfs. We’re a still few steps away from publishing these temperatures to Emoncms at the moment – namely getting owfs to start automatically, reading the values in Python, and then publishing them.
Running owfs automatically
When building owfs from source, you don’t get automatic startup as an option. It is quite easy to setup though.
First, let’s build a config file to store settings:
sudo nano /etc/owfs.conf
And copy and paste this in:
# owfs will source temperatures from this device owfs: device=/dev/i2c-1 # file system location mountpoint = /mnt/1wire allow_other
It is important to note that this setup means that only owfs can access the 1-Wire bus. The default configuration is to run owserver and then have all other ow* processes connect to owserrver – i.e. it distributes the data. I want to keep my setup as simple as possible, so owfs connects directly to the bus.
Let’s test this config out:
pi@raspberrypi2 /etc/init.d $ sudo /opt/owfs/bin/owfs -c /etc/owfs.conf pi@raspberrypi2 /etc/init.d $ ls /mnt/1wire 28.33F749050000 28.79774A050000 28.EDEE49050000 bus.0 simultaneous structure uncached 28.3474A3040000 28.DB564A050000 alarm settings statistics system pi@raspberrypi2 /etc/init.d $
Now we need to create an init script:
sudo nano /etc/init.d/owfs
And then copy and paste this into the file:
#! /bin/sh case "$1" in start) /opt/owfs/bin/owfs -c /etc/owfs.conf ;; stop) killall owfs ;; *) echo "Usage: $N {start|stop}" >&2 exit 1 ;; esac exit 0
This is totally barebones, but I always use this form of init script and it works well.
Now make it executable:
sudo chmod 755 /etc/init.d/owfs
Then use the very convenient tool, update-rc.d to add links so that this script runs at the appropriate times and runlevels:
sudo update-rc.d /etc/init.d/owfs defaults
Then restart your Pi:
sudo shutdown -r now
Once restarted, check everything is running and you can still see the devices:
pi@raspberrypi2 ~ $ ps aux | grep owfs root 2175 0.0 0.2 28416 1136 ? Ssl 23:48 0:00 /opt/owfs/bin/owfs -c /etc/owfs.conf pi 2340 0.0 0.1 3544 808 pts/0 S+ 23:50 0:00 grep --color=auto owfs pi@raspberrypi2 ~ $ ls /mnt/1wire 28.33F749050000 28.79774A050000 28.EDEE49050000 bus.0 simultaneous structure uncached 28.3474A3040000 28.DB564A050000 alarm settings statistics system pi@raspberrypi2 ~ $
Matt
May 23, 2014 at 7:58pmHiya,
I’m a real noob, but in your very first line where you create the config file, it seems to be called ows.conf should that be owfs.conf? I think that’s the name you refer to later on.
cybergibbons
May 23, 2014 at 8:34pmIndeed, an error. Will fix shortly, thanks.