Skip to content
Simple HTTP gateway that receives data from GW-1000 with Ecowitt protocol and resend data to Meteotemplate or csv, json, ecc.
PHP Python Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Meteotemplate/ecowitt Delete ecowittVersion Oct 20, 2019
Meteotemplate_block_airQualityEcowitt_1.1.zip Meteotemplate block for PM2.5 Ecowitt Oct 1, 2019
README.md Update README.md Oct 22, 2019
ecowitt.py Added support for second WH31 and Battery status Oct 21, 2019
ecowitt_plugin1.png Screen shot of the plugin page Sep 17, 2019
ecowitt_plugin2.png
ecowitt_plugin3.png Screenshot of App Sep 29, 2019
index.php Battery check for weewx support file Oct 22, 2019
meteotemplate-ecowitt-1.3.zip Solved bug with second WH31 Oct 20, 2019
post_ecowitt.sh Add files via upload Sep 2, 2019
weewx-ecowitt-1.1.tgz Added support for second WH31 and Battery status Oct 21, 2019

README.md

ecowitt_http_gateway

Simple HTTP gateway that receives data from GW1000 with Ecowitt protocol and resend data to Meteotemplate or csv, json, ecc.

Install this gateway if you have a web server at home, like a Raspberry or something where you want to store weather data

The GW1000 allows sending data both to Ecowitt.net and Wunderground, even to an external site as long as you select one of the two previous protocols.
We know the Wunderground protocol and we know that it doesn't send UV and PM2.5 data, nor ground temperature or other additional sensors, so you need to select the Ecowitt protocol.

Now to permit this script to work, we need a web server to which the GW1000 need to send data.

REQUIREMENTS
The web server must have these possibilities:

  • create a directory named /data/report (es. /var/www/html/data/report )
  • in this directory will be put the index.php file

So, the web site will look like: http://192.168.2.185/data/report/index.php
In the GW1000 configuration it will be necessary writing only the IP address, es. 192.168.1.4 and specify the update rate.

I recommend having this web server on a raspberry, in the same network of the GW1000, so the script can also be used to store data without losing them in case of Internet connection failure
When the GW1000 will contact the web site, the index.php will do these functions:

  1. creates a .JSON file in /var/log/ecowitt ( overwrited every update, contains only last data )
  2. creates a .CSV file in /var/log/ecowitt ( appended every update, contains all data )
  3. converts in metric all data a resend to a Meteotemplate web site on Internet
  4. can create and send via FTP a file for the weather station registered on Meteonetwork.it
  5. creates a weewx.txt file in /var/log/ecowitt for the ecowitt.py driver for WeeWX

HOW TO INSTALL:

  • Install Apache
  • Install PHP
  • Install jq ( for JSON query )
  • Create directory Es. /var/www/html/data/report/
  • Create /var/log/ecowitt with chmod 777
  • Put file: index.php in /var/www/html/data/report/
  • Configure index.php
  • Configure GW1000 to send data to your server

Note:
Look in /var/log/ecowitt to read fields using 'jq'
jq -r '.tempc' weather_XXXXXXXXXXXXXXXX.json

ecowitt WeeWX driver

Called ecowitt.py
This driver works in two modes:

  • normal: reads data from a file generated by the ecowitt_http_gateway - Usually /var/log/ecowitt/weewx.txt
    name=value pair, for example:

outTemp=79.3
barometer=29.719
pressure=29.719
outHumidity=70

  • server: open a socket server that receives directly the GW1000. Configure it in the weewx.conf
    with the IP address where the GW1000 will connect to. Configure the GW1000 with the IP and the port, put / on the path.

Automatic extension installation

Run the extension installer:

sudo wee_extension --install weewx-ecowitt-x.x.tgz

Modify weewx.conf:

[Station]
     station_type = ecowitt

Check the automatic addition at the end of weewx.conf:


[ecowitt]
     poll_interval = 65                    # number of seconds, just a little more than the GW1000 update time
     path = /var/log/ecowitt/weewx.txt     # location of data file generated by ecowitt_http_gateway used in mode=normal
     driver = weewx.drivers.ecowitt
     mode = normal                         # normal = use with ecowitt_http_gateway - server = directly connected to GW1000
     address = 192.168.2.185               # IP address of the PC where weewx is running in mode=server, to which GW1000 will connect to                
     port = 9999                           # port to which GW1000 will connect to in mode=server

Restart weewx


sudo /etc/init.d/weewx stop
sudo /etc/init.d/weewx start

Manual installation

To use this driver, put the ecowitt.py file in the weewx drivers directory (i.e. /usr/share/weewx/weewx/drivers ), then make
the following changes to weewx.conf:

[Station]
     station_type = ecowitt
[ecowitt]
     poll_interval = 65                    # number of seconds, just a little more than the GW1000 update time
     path = /var/log/ecowitt/weewx.txt     # location of data file generated by ecowitt_http_gateway
     driver = weewx.drivers.ecowitt
     mode = normal                         # normal = use with ecowitt_http_gateway - server = directly connected to GW1000
     address = 192.168.2.185               # IP address of the PC where weewx is running in mode=server, to which GW1000 will connect to                
     port = 9999                           # port to which GW1000 will connect to in mode=server

In the weewx.conf or skinf.conf use the following Labels

[Labels]
                [[Generic]]
                # Sensor status indicators
                txBatteryStatus      = WH51-Soil
                windBatteryStatus    = WS80-Temp/Wind
                rainBatteryStatus    = WH40-Rain
                outTempBatteryStatus = WH31_1-Temp/Hum
                inTempBatteryStatus  = Inside Temperature
                consBatteryVoltage   = WS80-Temp/Wind
                heatingVoltage       = WH51-Soil
                supplyVoltage        = WH40-Rain

NOTE
If you don't want to use the ecowitt_http_gateway, you can use the Interceptor driver to sniff data of your GW1000.

ecowitt Meteotemplate plugin

Simple plugin for Meteotemplate, wonderful template developed by Jachym.

Install this plugin if you don't want to install the previous gateway and weewx, or if you only need to update your Meteotemplate web site. You will not store any data locally in your network

  • Download it from the repository
  • Install it in the plugin directory of your template website, just like another plugin. (put in your plugins directory only the directory called ecowitt without the version number: Meteotemplate/ecowitt_x.x/ecowitt)
  • Go in the Plugin setup page, via Admin Panel of Meteotemplate
  • Configure it
  • Configure the GW1000 with the setup you read in the Plugin page. The web server port ususally is 80

Example of plugin page Example of plugin admin page Example of plugin admin page

NOTE from the issue forum

Googling: https://fhem.de/ Is a server for home automation

If you already have a Meteotemplate webserver you can use 3 mode of uploading mode:

  1. use the Meteotemplate plugin and configure GW1000 to send data to directly.
    Follow only the section with title: ecowitt Meteotemplate plugin
    example: http://www.kwos.org/meteotemplateweb/api.php
    Note: You have all extra sensors like soilmoisture, PM25

  2. have a raspberry at home, in the internal network, with a webserver where there is the index.php
    Follow only the section with the title: ecowitt_http_gateway
    In this case you don't need the Meteotemplate plugin but you have to configure the index.php to send data via api to Meteotemplate.
    example: http//192.168.2.185/data/report/
    Note1: You have all extra sensors like soilmoisture, PM25 sent to Meteotemplate
    Note2: You can also send data to a weewx without extra sensors

  3. have a raspberry at home with weewx and weewx driver for GW1000.
    Follow both the sections: ecowitt_http_gateway and ecowitt WeeWX driver
    Then configure weewx with the Meteotemplate plugin released here:
    https://github.com/matthewwall/weewx-meteotemplate
    Note: you don't have the extra sensors

You can’t perform that action at this time.