Yes I'm agree. This is the driver part of my weewx.conf:
*###############################[Interceptor] driver =
user.interceptor device_type = ecowitt-client port = 8000
[[sensor_map_extensions]] lightning_strike_count =
lightning_num lightning_distance =
lightning ############################### *
I followed this link:
https://github.com/matthewwall/weewx-interceptor/issues/69 to modifie
interceptor.py.
So this is the ecowitt-client part of my interceptor.py:
Row 2306 to 2459.
*...class EcowittClient(Consumer): """Use the ecowitt protocol (not WU
protocol) to capture data""" def __init__(self, **stn_dict):
super(EcowittClient, self).__init__( EcowittClient.Parser(),
handler=EcowittClient.Handler, **stn_dict) class
Handler(Consumer.Handler): def get_response(self): return
'{"errcode":"0","errmsg":"ok","UTC_offset":"-18000"}' class
Parser(Consumer.Parser): # map labels to observation names
LABEL_MAP = { 'baromabsin': 'pressure', 'humidity':
'humidity_out', 'humidityin': 'humidity_in', 'tempf':
'temperature_out', 'tempinf': 'temperature_in',
'temp1f': 'temperature_1', 'temp2f': 'temperature_2',
'temp3f': 'temperature_3', 'temp4f': 'temperature_4',
'temp5f': 'temperature_5', 'temp6f': 'temperature_6',
'temp7f': 'temperature_7', 'temp8f': 'temperature_8',
'humidity1': 'humidity_1', 'humidity2': 'humidity_2',
'humidity3': 'humidity_3', 'humidity4': 'humidity_4',
'humidity5': 'humidity_5', 'humidity6': 'humidity_6',
'humidity7': 'humidity_7', 'humidity8': 'humidity_8',
'batt1': 'battery_1', 'batt2': 'battery_2', 'batt3':
'battery_3', 'batt4': 'battery_4', 'batt5':
'battery_5', 'batt6': 'battery_6', 'batt7':
'battery_7', 'batt8': 'battery_8', 'soilmoisture1':
'soil_moisture_1', 'soilmoisture2':
'soil_moisture_2', 'soilmoisture3':
'soil_moisture_3', 'soilmoisture4':
'soil_moisture_4', 'soilmoisture5':
'soil_moisture_5', 'soilmoisture6':
'soil_moisture_6', 'soilmoisture7':
'soil_moisture_7', 'soilmoisture8':
'soil_moisture_8', 'soilbatt1': 'soil_battery_1',
'soilbatt2': 'soil_battery_2', 'soilbatt3':
'soil_battery_3', 'soilbatt4': 'soil_battery_4',
'soilbatt5': 'soil_battery_5', 'soilbatt6':
'soil_battery_6', 'soilbatt7': 'soil_battery_7',
'soilbatt8': 'soil_battery_8', 'windspeedmph':
'wind_speed', 'windgustmph': 'wind_gust', 'winddir':
'wind_dir', 'solarradiation': 'solar_radiation',
'uv': 'uv', 'totalrainin': 'rain_total',
'rainratein': 'rain_rate', 'wh25batt':
'wh25_battery', 'wh26batt': 'wh26_battery',
'wh40batt': 'wh40_battery', 'wh65batt': 'wh65_battery',
'pm25_ch1': 'pm2_5', 'pm25batt1':
'pm25_battery', 'lightning': 'lightning',
'lightning_time': 'lightning_time', 'lightning_num':
'lightning_num', 'wh57batt': 'wh57_battery',
'leak_ch1': 'leak_1', 'leak_ch2': 'leak_2',
'leak_ch3': 'leak_3', 'leak_ch4': 'leak_4',
'leakbatt1': 'leak_battery_1', 'leakbatt2':
'leak_battery_2', 'leakbatt3': 'leak_battery_3',
'leakbatt4': 'leak_battery_4', } IGNORED_LABELS =
[ 'PASSKEY', 'dateutc', 'stationtype', 'model', 'freq',
'baromrelin', 'maxdailygust', 'eventrainin', 'hourlyrainin',
'dailyrainin', 'weeklyrainin', 'monthlyrainin',
'yearlyrainin', 'pm25_avg_24h_ch1', 'winddir_avg10m',
'windspdmph_avg10m', ] def __init__(self):
self._last_rain = None self._rain_mapping_confirmed =
False def parse(self, s): pkt = dict()
try: data = _cgi_to_dict(s) pkt['dateTime'] =
self.decode_datetime( data.pop('dateutc',
int(time.time() + 0.5))) pkt['usUnits'] =
weewx.US # some devices (e.g., HP2551_V1.5.7) emit something
that looks # a lot like ecowitt protocol, but not quite.
one thing that # they get wrong is the rain - that have no
totalrainin. so # for those devices, substitute a different
cumulative rain # measurement. do this only once, and do
not be fooled by # partial packets. if not
self._rain_mapping_confirmed: if 'totalrainin' not in
data and 'yearlyrainin' in data:
self.LABEL_MAP.pop('totalrainin')
self.LABEL_MAP['yearlyrainin'] = 'rain_total'
self._rain_mapping_confirmed = True loginf("using
'yearlyrainin' for rain_total") elif 'totalrainin' in
data: self._rain_mapping_confirmed =
True loginf("using 'totalrainin' for
rain_total") # get all of the other
parameters for n in data: if n in
self.LABEL_MAP: #pkt[self.LABEL_MAP[n]] =
self.decode_float(data[n]) # Oliver, 18.06.20
further processing requires a num so set 0 to prevent float-conversion
error pkt[self.LABEL_MAP[n]] =
self.decode_float(data[n]) if data[n] != '' else 0 elif
n in self.IGNORED_LABELS: val =
data[n] if n ==
'PASSKEY': val = 'X' *
len(data[n]) logdbg("ignored parameter %s=%s" % (n,
val)) else: loginf("unrecognized
parameter %s=%s" % (n, data[n])) # get the rain this period
from total if 'rain_total' in pkt: newtot
= pkt['rain_total'] pkt['rain'] =
self._delta_rain(newtot, self._last_rain)
self._last_rain = newtot except ValueError as e:
logerr("parse failed for %s: %s" % (s, e)) return pkt
@staticmethod def decode_float(x): # these stations send
a value of -9999 to indicate no value, so # convert that to a
proper None. x = Consumer.Parser.decode_float(x)
return None if x == -9999 else x...*
Thanks
Le dimanche 11 avril 2021 à 02:38:45 UTC+2, [email protected] a écrit :
> post your gw1000 config especially map. suspect you are accumulating an
> already-accumulated count
>
> On 11 Apr 2021, at 7:12 am, Johann Destombes <[email protected]> wrote:
>
> The GW1000 show 5 lightnings, this number is ok on the WS View apps and on
> ecowitt.net but it's now more than 1000 on weewx database....
>
>
>
--
You received this message because you are subscribed to the Google Groups
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/weewx-user/e6761a59-bb0f-40c1-b2a5-9d22898fa869n%40googlegroups.com.