Simple HTTP gateway that receives data from GW1000 with Ecowitt protocol and resend data to Meteotemplate or csv, json, ecc.
Example on: http://www.kwos.org/poggiocorese_ecowitt
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:
- creates a .JSON file in /var/log/ecowitt ( overwrited every update, contains only last data )
- creates a .CSV file in /var/log/ecowitt ( appended every update, contains all data )
- converts in metric all data a resend to a Meteotemplate web site on Internet
- can create and send via FTP a file for the weather station registered on Meteonetwork.it
- 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
The code has been written in Python 2.7.x. If you use Python 3, you have to convert it with 2to3 utility: https://docs.python.org/2/library/2to3.html
This driver uses the Customized Upload method of GW1000. It can be every where in the network. It doesn't use any sniffing, interception method.
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.
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
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, or you can use the API broadcast methos driver that uses the same protocol used by VSView, WeeWx must stay on the same network of the GW1000.
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
Remember to update the ecowitt Meteotemplate plugin to the latest version (or the index.php if you have your own webserver)
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:
-
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 -
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 -
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