Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tools to collect and analyze data from the USB-WDE1 weather receiver from ELV.de. Mirror of http://git.cweiske.de/?p=usb-wde1-tools.git
Shell PHP
Branch: master
Failed to load latest commit information.
doc
htmlreport
init.d
munin fix warning
own
.gitignore
README.rst fix readme
dummy-data-generator.php simulate empty lines as we get them on dojo

README.rst

USB-WDE1 Munin plugin

Generate graphs for temperature and humidity by utilizing Munin.

Idea

  1. Keep a logfile with the most recent single line
  2. Use the munin plugin to generate munin-compatible data from the log file

Setup

  1. Checkout the munin plugin code:

    $ cd /usr/local/src
    $ git clone git://git.cweiske.de/usb-wde1-tools.git
    $ cd usb-wde1-tools
    
  2. A process needs to watch the USB interface and log the last line with temperature data into a log file. You can do that manually with

    $ socat /dev/ttyUSB0,b9600 STDOUT |./munin/log-single-line.sh test.log
    

    The most easy way is to run

    $ cd munin && nohup ./usb-wde1-log-last.sh &
    

    once. It backgrounds the logging process and logs into /tmp/usb-wde1-last. This process needs to be started whenever the machine is rebooted.

  3. Link the munin plugin:

    $ cd /etc/munin/plugins
    $ ln -s /usr/local/src/usb-wde1-tools/munin/usb-wde1_ usb-wde1_temperature
    $ ln -s /usr/local/src/usb-wde1-tools/munin/usb-wde1_ usb-wde1_humidity
    
  4. Configure the plugins Edit /etc/munin/plugin-conf.d/munin-node and add the following lines:

    [usb-wde1_*]
    env.logfile /tmp/usb-wde1-last
    env.host_name House
    env.sensors 0 1 7
    env.sensor0 Living room
    env.sensor1 Kitchen
    env.sensor7 Outside
    
  5. Try it:

    $ munin-run usb-wde1_temperature autoconf
    

    should echo "yes"

    $ munin-run usb-wde1_temperature config
    

    should display the plugin configuration with all environment variables set

    $ munin-run usb-wde1_temperature
    $ munin-run usb-wde1_humidity
    

    should display the current values from the log file

  6. You are done - enjoy.

Debugging & Development

The dummy data generator is a small php script that generates log lines as they would come from the usb-wde1 usb port:

$ ./dummy-data-generator.php |./munin/log-single-line.sh test.log

Local (non-installed) plugin setup:

$ cd munin
$ ln -s usb-wde1_ usb-wde1_temperature
$ ln -s usb-wde1_ usb-wde1_humidity
$ cd ..

Running the munin plugin for development purposes is also relatively easy since you can pass the environment configuration variables from the munin configuration on the command line:

$ logfile=test.log sensors="0 1 7" ./munin/usb-wde1_temperature

When you have problems running the munin plugin, try to remove the line

env.host_name House

from file usb-wde1_

Permission errors

cu: open (/dev/ttyUSB0): Permission denied
cu: /dev/ttyUSB0: Line in use

Only way that I found to fix this was change ownership of /dev/ttyUSB0 to uucp:

$ chown uucp /dev/ttyUSB0

HTML/Plain text output

You may use htmlreport/gen-html.php to generate HTML or plain text files with the temperature and humidity information.

Install PHP and the PHP rrd extension (pear install pecl/rrd) to make it work.

Run gen-html.php every 5 minutes.

Something went wrong with that request. Please try again.