About

ipweget is a perl script to read the data provided by an ipwe1 weatherstation by ELV and convert it to several useful formats and uses: XML output, HTTP POST, MySQL and Weather Underground upload.

The idea behind the ipwe1 is nice: It's an ethernet-connected receiver for several seperate sensors, outdoor and indoor. But besides there are some essential sensors missing (air pressure and wind direction), the interface is the worst, I've ever seen.. No history, just a dull html table showing the current values. Since I'm used to the pretty comprehensive WeatherOffice, I used with my old WS2300 station, this was no option for me and so I started writing some software around it. First of all this script to gather the data provided to some of the services, I've been using for years now..

A small infosite with history graphs and stuff will follow soon..

The script is still at a very early beta phase and full of bugs, but since I really don't like the ipwe weatherstation, I will switch hardware soon and won't continue developing this script. So I decided to release it already - maybe some other ipwe-owner wants to use and/or continue working on it.. :)

Prequisites

  • IPWE1 Weatherstation
  • Perl

    Modules:
    • utf8
    • POSIX
    • Getopt::Long
    • LWP::UserAgent
    • XML::Simple
    • HTML::TableExtract
    • Math::Round
    • DBI
    • URI::Escape
    • HTTP::Request::Common
    • Digest::MD5

Usage

All configuration and switches are done/set via command line. When called, the script will output the current data from your weather station and exit. To make real use of it, you'll need to add a cronjob to run every minute:

*/1 * * * * <username> <ipweget call>

e.g:

*/1 * * * * stimpy /usr/bin/perl /usr/local/bin/ipweget.pl 192.168.1.100

To enable more features, you'll need to provide more options:

XML

The simplest call will produce shorttagged xml-output:

./ipweget.pl <host>

e.g:

./ipweget.pl 192.168.1.100

To produce longer xml-tags use the switch -l (--long):

./ipweget.pl -l <host>

e.g:

./ipweget.pl -l 192.168.1.100

MySQL

To write the data to a mysql database, you'll have to provide host, dbname, username and password:

./ipweget.pl --mysql-host <host> --mysql-db <dbname> --mysql-user <username> --mysql-pass <password> <host>

e.g:

./ipweget.pl --mysql-host localhost --mysql-db weather --mysql-user weather --mysql-pass secret 192.168.1.100

Of course, you'll also need a matching database. See below for a sql dump...

HTTP POST

You can send the data to a remote script using HTTP POST by providing a destination url and password (will be sent md5-encoded):

./ipweget.pl --http <destination> --http-pass <password> <host>

e.g:

./ipweget.pl --http http://example.com/fetchscript.php --http-pass secret 192.168.1.100

Weather Underground

You can also send the incomplete data provided by the IPWE1 to Weather Underground. Besides your login data, you'll also need to provide sensor-mappings: Which sensor should be used for what data:

./ipweget.pl --wunder-id <wu stationid> --wunder-pass <wu password> --wunder-temp <outdoor temperature sensor name> --wunder-hum <outdoor humidity sensor name> --wunder-wind <wind sensor name> --wunder-rain <rain sensor name> --wunder-tempin <indoor temperature sensor name> --wunder-humin <indoor humidity sensor name> --wunder-temp2 <temperatur sensor 2 name> --wunder-temp3 <temperatur sensor 2 name> --wunder-temp4 <temperatur sensor 4 name> <host>

e.g:

./ipweget.pl --wunder-id IHESSENR2 --wunder-pass secret --wunder-temp OutsideShadow --wunder-hum OutsideHigh --wunder-wind OutsideHigh --wunder-rain OutdoorHigh --wunder-tempin Livingroom --wunder-humin Livingroom --wunder-temp2 OutsideHigh --wunder-temp3 OutsidePool --wunder-temp4 OutsideHeli 192.168.1.100

Everything

Of course, you can also combine all the parameters:

./ipweget.pl --mysql-host <host> --mysql-db <dbname> --mysql-user <username> --mysql-pass <password> --http <destination> --http-pass <password> --wunder-id <wu stationid> --wunder-pass <wu password> --wunder-temp <outdoor temperature sensor name> --wunder-hum <outdoor humidity sensor name> --wunder-wind <wind sensor name> --wunder-rain <rain sensor name> --wunder-tempin <indoor temperature sensor name> --wunder-humin <indoor humidity sensor name> --wunder-temp2 <temperatur sensor 2 name> --wunder-temp3 <temperatur sensor 2 name> --wunder-temp4 <temperatur sensor 4 name> <host>

e.g:

./ipweget.pl --mysql-host localhost --mysql-db weather --mysql-user weather --mysql-pass secret --http http://example.com/fetchscript.php --http-pass secret --wunder-id IHESSENR2 --wunder-pass secret --wunder-temp OutdoorShadow --wunder-hum OutdoorHigh --wunder-wind OutdoorHigh --wunder-rain OutdoorHigh --wunder-tempin Livingroom --wunder-humin Livingroom --wunder-temp2 OutdoorHigh --wunder-temp3 OutdoorPool --wunder-temp4 OutdoorHeli 192.168.1.100

More

There are some more options:

-q / --quiet No output (no xml)
-h / --help short help text

 

Download

GIT: https://gitlab.ambhost.net/stimpy/scripts_ipweget

Packages will follow soon..

 

WS2500

Harald Wollmayr has written some very similar scripts connectig the ipwe1 with a ws2500 database.

Gravatar
stimpy
downloads
Hey Harry,
yes, I just moved servers and forgot about the svn.. Thanks for noticing - now it's working again.. :)

Gravatar
Harry
ipwe
Hi
Unfortionatly the download Link für "ipweget" does not work anymore.
Maybee you can provide me with this Script. I would need it very urgent.

Thanks in advance Harry

5000 Characters left