Thanks, I just install gw1000 driver and it's works great, I just need a storm to see if everything is well record.
When I read the GW1000driver wiki I understand that the driver record somewhere more extended data like wh57 battery level or timestamp of last lightning strike . In my case Weewx record archive data in a mysql database but I was not able to find where these data are stored. Are they somewhere in the archive database or are they just loop data ? Le dimanche 11 avril 2021 à 23:17:37 UTC+2, lang....@googlemail.com a écrit : > we recommend NOT to use the intereptor driver for a GW1000/WH2650 console > but to use the meanwhile existing > GW1000 API driver instead - otherwise you tend to run into multiple issues > (and unnecessarily use the > console's "Customized"server option which exists only once) due to the > many extra sensors being released. > > The GW1000 API driver covers all existing FineOffset/Ecowitt (clone) > sensors and is very stable. > Gary did an excellent job here. > https://github.com/gjr80/weewx-gw1000 > > On 11.04.2021 15:36, Johann Destombes wrote: > > 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, graha...@gmail.com 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 <jdest...@gmail.com> 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 weewx-user+...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/weewx-user/e6761a59-bb0f-40c1-b2a5-9d22898fa869n%40googlegroups.com > > <https://groups.google.com/d/msgid/weewx-user/e6761a59-bb0f-40c1-b2a5-9d22898fa869n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > > -- 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 weewx-user+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/9662ecd3-1b91-46b3-825a-2fcd84d0e632n%40googlegroups.com.