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 Makefile
Switch branches/tags
Nothing to show
Latest commit a37410b Sep 22, 2017 @cweiske cweiske talk about init script
Permalink
Failed to load latest commit information.
doc restructure directory layout, add dummy data generator Feb 5, 2011
htmlreport support file template array Jul 13, 2014
init.d init script Nov 16, 2012
munin fix warning Mar 2, 2015
own restructure directory layout, add dummy data generator Feb 5, 2011
.gitignore fix readme Mar 2, 2015
LICENSE add LICENSE file May 26, 2016
Makefile add Makefile for init script and Munin plugin Sep 10, 2017
README.rst talk about init script Sep 22, 2017
dummy-data-generator.php

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.

    You can run make to install the init script.

  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.