From LedHed's Wiki
Jump to: navigation, search
 
(3 intermediate revisions by the same user not shown)
Line 22: Line 22:
 
     port = 8080
 
     port = 8080
 
''Note: Enter your own IP and Port''  
 
''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:<br>
 +
<nowiki>http://<GW1000-IP-ADDRESS>/get_livedata_info</nowiki>
 +
 +
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.''
 +
 +
 +
== Ecowitt Relay ==
 +
In the off chance that you want to relay the Ecowitt data to multiple endpoints check out the FOSHKplugin
 +
https://loxwiki.atlassian.net/wiki/spaces/LOXBERRY/pages/1252524456/FOSHKplugin+-+generic+version#Installation
 +
It claims to be able to rebroadcast the Ecowitt data to multiple endpoints, meaning you could have it relay the data to WeeWx, Home Assistant, and maybe a smart sprinkler.
  
  
Line 30: Line 152:
  
 
http://weewx.com
 
http://weewx.com
 +
 +
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
  
  
 
[[Category:WeeWX]]
 
[[Category:WeeWX]]

Latest revision as of 08:57, 10 April 2023

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

  1. Install WeeWX
  2. Install the weewx-interceptor driver
  3. Configure WeeWX to use the 'Interceptor Driver'
  4. 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.


Ecowitt Relay

In the off chance that you want to relay the Ecowitt data to multiple endpoints check out the FOSHKplugin

https://loxwiki.atlassian.net/wiki/spaces/LOXBERRY/pages/1252524456/FOSHKplugin+-+generic+version#Installation

It claims to be able to rebroadcast the Ecowitt data to multiple endpoints, meaning you could have it relay the data to WeeWx, Home Assistant, and maybe a smart sprinkler.


Reference

https://github.com/matthewwall/weewx-interceptor

http://www.ecowitt.com/wifi_weather/80.html

http://weewx.com

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