Overview
The Ecowitt GW1000 is a weather gateway capable of receiving data from weather instruments via Radio Frequency and then rebroadcasts that data via IP.
WSView App
In order to configure the GW1000 you need to install the WSView app on a mobile device. Then put your mobile device on the same WiFi network as the GW1000.
Ecowitt Protocol
In the WSView app click 'More' in the upper right and click 'Weather Services' then next your way to 'Customized'. Enable the custom weather service, set the protocol to 'Ecowitt' and enter your server's IP & Port information. Save.
WeeWX Integration
- Install WeeWX
- Install the weewx-interceptor driver
- Configure WeeWX to use the 'Interceptor Driver'
- Edit /etc/weewx/weewx.conf and add the following:
[Interceptor] driver = user.interceptor device_type = ecowitt-client address = 10.11.12.13 port = 8080
Note: Enter your own IP and Port
Local API
You can grab live weather data in JSON format directly from the GW1000 through this URL:
http://<GW1000-IP-ADDRESS>/get_livedata_info
Here is a table to translate the byte balues to sensor type
# command_byte : (type, device, data_length) 0x01: ('temperature', 'indoor', 2) 0x02: ('temperature', 'outdoor', 2) 0x03: ('ignore', 'dewpoint', 2) 0x04: ('ignore', 'windchill', 2) 0x05: ('ignore', 'heatindex', 2) 0x06: ('humidity', 'indoor', 1) 0x07: ('humidity', 'outdoor', 1) 0x08: ('pressure_absolute', 'indoor', 2) 0x09: ('pressure_relative', 'indoor', 2) 0x0a: ('ignore', 'winddir', 2) 0x0b: ('ignore', 'windspeed', 2) 0x0c: ('ignore', 'gustspeed', 2) 0x0d: ('ignore', 't_rainevent', 2) 0x0e: ('ignore', 't_rainrate', 2) 0x0f: ('ignore', 't_raingain', 2) 0x10: ('ignore', 't_rainday', 2) 0x11: ('ignore', 't_rainweek', 2) 0x12: ('ignore', 't_rainmonth', 4) 0x13: ('ignore', 't_rainyear', 4) 0x14: ('ignore', 't_raintotals', 4) 0x15: ('ignore', 'light', 4) 0x16: ('ignore', 'uv', 2) 0x17: ('ignore', 'uvi', 1) 0x18: ('ignore', 'datetime', 6) 0x19: ('ignore', 'daymaxwind', 2) 0x1a: ('temperature', 'channel_1', 2) 0x1b: ('temperature', 'channel_2', 2) 0x1c: ('temperature', 'channel_3', 2) 0x1d: ('temperature', 'channel_4', 2) 0x1e: ('temperature', 'channel_5', 2) 0x1f: ('temperature', 'channel_6', 2) 0x20: ('temperature', 'channel_7', 2) 0x21: ('temperature', 'channel_8', 2) 0x22: ('humidity', 'channel_1', 1) 0x23: ('humidity', 'channel_2', 1) 0x24: ('humidity', 'channel_3', 1) 0x25: ('humidity', 'channel_4', 1) 0x26: ('humidity', 'channel_5', 1) 0x27: ('humidity', 'channel_6', 1) 0x28: ('humidity', 'channel_7', 1) 0x29: ('humidity', 'channel_8', 1) 0x2a: ('ignore', 'pm251', 2) 0x2b: ('ignore', 'soiltemp1', 2) 0x2c: ('moisture', 'soil_1', 1) 0x2d: ('ignore', 'soiltemp2', 2) 0x2e: ('moisture', 'soil_2', 1) 0x2f: ('ignore', 'soiltemp3', 2) 0x30: ('moisture', 'soil_3', 1) 0x31: ('ignore', 'soiltemp4', 2) 0x32: ('moisture', 'soil_4', 1) 0x33: ('ignore', 'soiltemp5', 2) 0x34: ('moisture', 'soil_5', 1) 0x35: ('ignore', 'soiltemp6', 2) 0x36: ('moisture', 'soil_6', 1) 0x37: ('ignore', 'soiltemp7', 2) 0x38: ('moisture', 'soil_7', 1) 0x39: ('ignore', 'soiltemp8', 2) 0x3a: ('moisture', 'soil_8', 1) 0x3b: ('ignore', 'soiltemp9', 2) 0x3c: ('moisture', 'soil_9', 1) 0x3d: ('ignore', 'soiltemp10', 2) 0x3e: ('moisture', 'soil_10', 1) 0x3f: ('ignore', 'soiltemp11', 2) 0x40: ('moisture', 'soil_11', 1) 0x41: ('ignore', 'soiltemp12', 2) 0x42: ('moisture', 'soil_12', 1) 0x43: ('ignore', 'soiltemp13', 2) 0x44: ('moisture', 'soil_13', 1) 0x45: ('ignore', 'soiltemp14', 2) 0x46: ('moisture', 'soil_14', 1) 0x47: ('ignore', 'soiltemp15', 2) 0x48: ('moisture', 'soil_15', 1) 0x49: ('ignore', 'soiltemp16', 2) 0x4a: ('moisture', 'soil_16', 1) 0x4c: ('ignore', 'lowbatt', 16) 0x4d: ('ignore', 'pm251_24h_avg', 2) 0x4e: ('ignore', 'pm252_24h_avg', 2) 0x4f: ('ignore', 'pm253_24h_avg', 2) 0x50: ('ignore', 'pm254_24h_avg', 2) 0x51: ('ignore', 'pm252', 2) 0x52: ('ignore', 'pm253', 2) 0x53: ('ignore', 'pm254', 2) 0x58: ('ignore', 'leak1', 1) 0x59: ('ignore', 'leak2', 1) 0x5a: ('ignore', 'leak3', 1) 0x5b: ('ignore', 'leak4', 1) 0x60: ('ignore', 'lightningdist', 1) 0x61: ('ignore', 'lightningdettime', 4) 0x62: ('ignore', 'lightningcount', 4) 0x63: ('ignore', 'temp9', 3) 0x64: ('ignore', 'temp10', 3) 0x65: ('ignore', 'temp11', 3) 0x66: ('ignore', 'temp12', 3) 0x67: ('ignore', 'temp13', 3) 0x68: ('ignore', 'temp14', 3) 0x69: ('ignore', 'temp15', 3) 0x6a: ('ignore', 'temp16', 3) 0x70: ('ignore', 'wh45_data', 16) 0x72: ('ignore', 'leafwet1', 1) 0x73: ('ignore', 'leafwet2', 1) 0x74: ('ignore', 'leafwet3', 1) 0x75: ('ignore', 'leafwet4', 1) 0x76: ('ignore', 'leafwet5', 1) 0x77: ('ignore', 'leafwet6', 1) 0x78: ('ignore', 'leafwet7', 1) 0x79: ('ignore', 'leafwet8', 1)
Note: you might need a firmware update for this URL to become available.
Reference
https://github.com/matthewwall/weewx-interceptor
http://www.ecowitt.com/wifi_weather/80.html
https://blog.meteodrenthe.nl/2023/02/03/how-to-use-the-ecowitt-gateway-gw1000-gw1100-local-api/
https://github.com/bmrzycki/gw1000-http/blob/main/gw1000-http