Hi Tom,
1. the failure to read history on DB initialisation was a trivial change,
so I will submit that at some stage.
2. KeyError - a bit of background, the WMR300 unit returns date in METRICWX
the unit set, which is partly why I chose that for my DB. So wind speed is
in m/s and as soon as I return the first new set of data from the history,
it wants to calculate windrun which is group_distance. If I used METRIC
then it converts the speed to km/hour, which might be why it is happy with
that.
I added a convertion from 'meter' to 'km' in conversionDict in units.py and
it seems to be happy.
I have attached a log from startup to crash, with various debug lines of
wmr300.py enabled, so you can see the exception happens as soon as it
returns the first relevant historical record.
On Tuesday, 31 December 2019 21:55:24 UTC+10, Tom Keffer wrote:
>
> Thanks, Cameron
>
> 1. Can you post the log where this happened?
>
> 2. Conversion from meter to km was never possible. Meter is a member of
> group_altitude, and km is a member of group_distance. Can you give me the
> context where this happened?
>
> -tk
>
>
> On Tue, Dec 31, 2019 at 12:53 AM Cameron D <[email protected]
> <javascript:>> wrote:
>
>> I have just started messing around with the beta 4 code.
>>
>> 1. the WMR300 driver seems to be basically working, both standalone under
>> python3 and as part of weewx to a new sqlite db. There is one small
>> problem - it is not reading the history from the console because there is
>> no time to which data was previously stored. It's only a once-off problem
>> but I'll see if there's an easy fix. Once the database has a "last time"
>> then the read history works as expected. I would expect the bug is also
>> present in the old version.
>>
>> 2. My system was based on METRICWX - If I configure v4 for that then it
>> raises a KeyError exception:
>>
>>
>>> ...
>> File "/home/weewx/_base/bin/weewx/units.py", line 1190, in convert
>> conversion_func = conversionDict[val_t[1]][target_unit_type]
>> KeyError: 'km'
>>
>> and the log file reports:
>>
>> DEBUG weewx.units: Unable to convert from meter to km
>>
>>
>> Using METRIC seems to work fine.
>> Happy to provide more logs if necessary.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "weewx-development" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/weewx-development/df802b4a-2833-4536-8133-797987f5e4cf%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/weewx-development/df802b4a-2833-4536-8133-797987f5e4cf%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
--
You received this message because you are subscribed to the Google Groups
"weewx-development" 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-development/9bcb976a-af3e-4cb5-8854-08262a0508b7%40googlegroups.com.
Jan 1 17:27:08 files weewx[23062] INFO weewx.engine: Initializing weewx
version 4.0.0b6
Jan 1 17:27:08 files weewx[23062] INFO weewx.engine: Using Python 3.7.3
(default, Apr 3 2019, 05:39:12) #012[GCC 8.3.0]
Jan 1 17:27:08 files weewx[23062] INFO weewx.engine: Platform
Linux-4.19.0-6-amd64-x86_64-with-debian-10.2
Jan 1 17:27:08 files weewx[23062] INFO weewx.engine: Locale is
'LC_CTYPE=C.UTF-8;LC_NUMERIC=C;LC_TIME=C;LC_COLLATE=C;LC_MONETARY=C;LC_MESSAGES=C;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;LC_IDENTIFICATION=C'
Jan 1 17:27:08 files weewx[23062] INFO weewx.engine: Using configuration file
/home/weewx/_base/weewx.conf
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Debug is 1
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Initializing engine
Jan 1 17:27:08 files weewx[23062] INFO weewx.engine: Loading station type
WMR300 (user.wmr300_v32)
Jan 1 17:27:08 files weewx[23062] INFO user.wmr300_v32: driver version is 0.32
Jan 1 17:27:08 files weewx[23062] INFO user.wmr300_v32: usb info:
pyusb_version=1.0.2
Jan 1 17:27:08 files weewx[23062] INFO user.wmr300_v32: sensor map is
{'pressure': 'pressure', 'barometer': 'barometer', 'windSpeed': 'wind_avg',
'windDir': 'wind_dir', 'windGust': 'wind_gust', 'windGustDir': 'wind_gust_dir',
'inTemp': 'temperature_0', 'outTemp': 'temperature_1', 'extraTemp1':
'temperature_2', 'extraTemp2': 'temperature_3', 'extraTemp3': 'temperature_4',
'extraTemp4': 'temperature_5', 'extraTemp5': 'temperature_6', 'extraTemp6':
'temperature_7', 'extraTemp7': 'temperature_8', 'inHumidity': 'humidity_0',
'outHumidity': 'humidity_1', 'extraHumid1': 'humidity_2', 'extraHumid2':
'humidity_3', 'extraHumid3': 'humidity_4', 'extraHumid4': 'humidity_5',
'extraHumid5': 'humidity_6', 'extraHumid6': 'humidity_7', 'extraHumid7':
'humidity_8', 'dewpoint': 'dewpoint_1', 'extraDewpoint1': 'dewpoint_2',
'extraDewpoint2': 'dewpoint_3', 'extraDewpoint3': 'dewpoint_4',
'extraDewpoint4': 'dewpoint_5', 'extraDewpoint5': 'dewpoint_6',
'extraDewpoint6': 'dewpoint_7', 'extraDewpoint7': 'dewpoint_8', 'heatindex':
'heatindex_1', 'extraHeatindex1': 'heatindex_2', 'extraHeatindex2':
'heatindex_3', 'extraHeatindex3': 'heatindex_4', 'extraHeatindex4':
'heatindex_5', 'extraHeatindex5': 'heatindex_6', 'extraHeatindex6':
'heatindex_7', 'extraHeatindex7': 'heatindex_8', 'windchill': 'windchill',
'rainRate': 'rain_rate'}
Jan 1 17:27:08 files weewx[23062] INFO user.wmr300_v32: history limit is 80%
at index 26195
Jan 1 17:27:08 files weewx[23062] DEBUG user.wmr300_v32: Found station at bus=
device=
Jan 1 17:27:08 files weewx[23062] INFO user.wmr300_v32: history index: 1639
Jan 1 17:27:08 files weewx[23062] INFO user.wmr300_v32: communication
established: {'packet_type': 87, 'station_type': 'WMR300', 'station_model':
'A004', 'magic0': 136, 'magic1': 139, 'history_cleared': False, 'mystery0': 73,
'mystery1': 44, 'history_end_index': 1639}
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Loading service
weewx.engine.StdTimeSynch
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Finished loading service
weewx.engine.StdTimeSynch
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Loading service
weewx.engine.StdConvert
Jan 1 17:27:08 files weewx[23062] INFO weewx.engine: StdConvert target unit is
0x11
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Finished loading service
weewx.engine.StdConvert
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Loading service
weewx.engine.StdCalibrate
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Finished loading service
weewx.engine.StdCalibrate
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Loading service
weewx.engine.StdQC
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Finished loading service
weewx.engine.StdQC
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Loading service
weewx.wxservices.StdWXCalculate
Jan 1 17:27:08 files weewx[23062] INFO weewx.manager: Created and initialized
table 'archive' in database 'weewx.sdb'
Jan 1 17:27:08 files weewx[23062] INFO weewx.manager: Created daily summary
tables
Jan 1 17:27:08 files weewx[23062] INFO weewx.wxservices: The following values
will be calculated: altimeter=prefer_hardware, appTemp=prefer_hardware,
barometer=prefer_hardware, beaufort=prefer_hardware, cloudbase=prefer_hardware,
dewpoint=software, ET=prefer_hardware, heatindex=prefer_hardware,
humidex=prefer_hardware, inDewpoint=software, maxSolarRad=prefer_hardware,
pressure=prefer_hardware, rainRate=prefer_hardware, windchill=prefer_hardware,
windrun=prefer_hardware
Jan 1 17:27:08 files weewx[23062] INFO weewx.wxservices: The following
algorithms will be used for calculations: altimeter=aaASOS, maxSolarRad=RS
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Finished loading service
weewx.wxservices.StdWXCalculate
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Loading service
weewx.engine.StdArchive
Jan 1 17:27:08 files weewx[23062] INFO weewx.engine: Archive will use data
binding wx_binding
Jan 1 17:27:08 files weewx[23062] INFO weewx.engine: Record generation will be
attempted in 'software'
Jan 1 17:27:08 files weewx[23062] INFO weewx.engine: Using archive interval of
60 seconds (software record generation)
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Use LOOP data in hi/low
calculations: 1
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Finished loading service
weewx.engine.StdArchive
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Loading service
weewx.restx.StdStationRegistry
Jan 1 17:27:08 files weewx[23062] INFO weewx.restx: StationRegistry:
Registration not requested.
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Finished loading service
weewx.restx.StdStationRegistry
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Loading service
weewx.restx.StdWunderground
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.restx: WU essentials: {}
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Finished loading service
weewx.restx.StdWunderground
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Loading service
weewx.restx.StdPWSweather
Jan 1 17:27:08 files weewx[23062] INFO weewx.restx: PWSweather: Posting not
enabled.
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Finished loading service
weewx.restx.StdPWSweather
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Loading service
weewx.restx.StdCWOP
Jan 1 17:27:08 files weewx[23062] INFO weewx.restx: CWOP: Posting not enabled.
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Finished loading service
weewx.restx.StdCWOP
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Loading service
weewx.restx.StdWOW
Jan 1 17:27:08 files weewx[23062] INFO weewx.restx: WOW: Posting not enabled.
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Finished loading service
weewx.restx.StdWOW
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Loading service
weewx.restx.StdAWEKAS
Jan 1 17:27:08 files weewx[23062] INFO weewx.restx: AWEKAS: Posting not
enabled.
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Finished loading service
weewx.restx.StdAWEKAS
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Loading service
weewx.engine.StdPrint
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Finished loading service
weewx.engine.StdPrint
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Loading service
weewx.engine.StdReport
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Finished loading service
weewx.engine.StdReport
Jan 1 17:27:08 files weewx[23062] INFO weewx.engine: Starting up weewx version
4.0.0b6
Jan 1 17:27:08 files weewx[23062] DEBUG weewx.engine: Station does not support
reading the time
Jan 1 17:27:08 files weewx[23062] INFO weewx.engine: Using binding
'wx_binding' to database 'weewx.sdb'
Jan 1 17:27:08 files weewx[23062] INFO weewx.manager: Starting backfill of
daily summaries
Jan 1 17:27:08 files weewx[23062] INFO user.wmr300_v32: Reading records since
the start (last_index=31 history_end_index=1639)
Jan 1 17:27:08 files weewx[23062] INFO user.wmr300_v32: init history attempt 1
of 5
Jan 1 17:27:09 files weewx[23062] INFO user.wmr300_v32: init history cmd=0x65
rec=32
Jan 1 17:27:09 files weewx[23062] INFO user.wmr300_v32: init history completed
after attempt 1 of 5
Jan 1 17:27:09 files weewx[23062] INFO user.wmr300_v32: raw packet:
{'packet_type': 210, 'index': 32, 'ts': 1577767260.0, 'temperature_0': 30.8,
'humidity_0': 60.0, 'temperature_1': 28.8, 'humidity_1': 62.0, 'temperature_2':
None, 'humidity_2': None, 'temperature_3': None, 'humidity_3': None,
'temperature_4': None, 'humidity_4': None, 'temperature_5': None, 'humidity_5':
None, 'temperature_6': None, 'humidity_6': None, 'temperature_7': None,
'humidity_7': None, 'temperature_8': None, 'humidity_8': None, 'dewpoint_1':
None, 'heatindex_1': None, 'dewpoint_2': None, 'heatindex_2': None,
'dewpoint_3': None, 'heatindex_3': None, 'dewpoint_4': None, 'heatindex_4':
None, 'dewpoint_5': None, 'heatindex_5': None, 'dewpoint_6': None,
'heatindex_6': None, 'dewpoint_7': None, 'heatindex_7': None, 'dewpoint_8':
31.0, 'heatindex_8': None, 'windchill': None, 'wind_gust': 4.800000000000001,
'wind_avg': 4.1000000000000005, 'wind_gust_dir': 65.0, 'wind_dir': 82.0,
'forecast': 0.0, 'rain_hour': 0.0, 'rain_total': 2335.53,
'rain_start_dateTime': 1479423600.0, 'rain_rate': 0.0, 'barometer': 1012.7,
'pressure_trend': 2.0}
Jan 1 17:27:09 files weewx[23062] INFO user.wmr300_v32: possible missed rain
event: new=2335.53 old=None
Jan 1 17:27:09 files weewx[23062] INFO user.wmr300_v32: converted packet:
{'dateTime': 1577767260.0, 'usUnits': 17, 'barometer': 1012.7, 'windSpeed':
4.1000000000000005, 'windDir': 82.0, 'windGust': 4.800000000000001,
'windGustDir': 65.0, 'inTemp': 30.8, 'outTemp': 28.8, 'extraTemp1': None,
'extraTemp2': None, 'extraTemp3': None, 'extraTemp4': None, 'extraTemp5': None,
'extraTemp6': None, 'extraTemp7': None, 'inHumidity': 60.0, 'outHumidity':
62.0, 'extraHumid1': None, 'extraHumid2': None, 'extraHumid3': None,
'extraHumid4': None, 'extraHumid5': None, 'extraHumid6': None, 'extraHumid7':
None, 'dewpoint': None, 'extraDewpoint1': None, 'extraDewpoint2': None,
'extraDewpoint3': None, 'extraDewpoint4': None, 'extraDewpoint5': None,
'extraDewpoint6': None, 'extraDewpoint7': 31.0, 'heatindex': None,
'extraHeatindex1': None, 'extraHeatindex2': None, 'extraHeatindex3': None,
'extraHeatindex4': None, 'extraHeatindex5': None, 'extraHeatindex6': None,
'extraHeatindex7': None, 'windchill': None, 'rainRate': 0.0, 'rain': None}
Jan 1 17:27:09 files weewx[23062] INFO user.wmr300_v32: get history in
progress: count=0 last_index=32 history_end_index=1639
Jan 1 17:27:09 files weewx[23062] INFO user.wmr300_v32: raw packet:
{'packet_type': 210, 'index': 33, 'ts': 1577767320.0, 'temperature_0': 30.8,
'humidity_0': 60.0, 'temperature_1': 28.8, 'humidity_1': 62.0, 'temperature_2':
None, 'humidity_2': None, 'temperature_3': None, 'humidity_3': None,
'temperature_4': None, 'humidity_4': None, 'temperature_5': None, 'humidity_5':
None, 'temperature_6': None, 'humidity_6': None, 'temperature_7': None,
'humidity_7': None, 'temperature_8': None, 'humidity_8': None, 'dewpoint_1':
None, 'heatindex_1': None, 'dewpoint_2': None, 'heatindex_2': None,
'dewpoint_3': None, 'heatindex_3': None, 'dewpoint_4': None, 'heatindex_4':
None, 'dewpoint_5': None, 'heatindex_5': None, 'dewpoint_6': None,
'heatindex_6': None, 'dewpoint_7': None, 'heatindex_7': None, 'dewpoint_8':
31.0, 'heatindex_8': None, 'windchill': None, 'wind_gust': 5.300000000000001,
'wind_avg': 4.1000000000000005, 'wind_gust_dir': 66.0, 'wind_dir': 82.0,
'forecast': 0.0, 'rain_hour': 0.0, 'rain_total': 2335.53,
'rain_start_dateTime': 1479423600.0, 'rain_rate': 0.0, 'barometer': 1012.7,
'pressure_trend': 2.0}
Jan 1 17:27:09 files weewx[23062] INFO user.wmr300_v32: converted packet:
{'dateTime': 1577767320.0, 'usUnits': 17, 'barometer': 1012.7, 'windSpeed':
4.1000000000000005, 'windDir': 82.0, 'windGust': 5.300000000000001,
'windGustDir': 66.0, 'inTemp': 30.8, 'outTemp': 28.8, 'extraTemp1': None,
'extraTemp2': None, 'extraTemp3': None, 'extraTemp4': None, 'extraTemp5': None,
'extraTemp6': None, 'extraTemp7': None, 'inHumidity': 60.0, 'outHumidity':
62.0, 'extraHumid1': None, 'extraHumid2': None, 'extraHumid3': None,
'extraHumid4': None, 'extraHumid5': None, 'extraHumid6': None, 'extraHumid7':
None, 'dewpoint': None, 'extraDewpoint1': None, 'extraDewpoint2': None,
'extraDewpoint3': None, 'extraDewpoint4': None, 'extraDewpoint5': None,
'extraDewpoint6': None, 'extraDewpoint7': 31.0, 'heatindex': None,
'extraHeatindex1': None, 'extraHeatindex2': None, 'extraHeatindex3': None,
'extraHeatindex4': None, 'extraHeatindex5': None, 'extraHeatindex6': None,
'extraHeatindex7': None, 'windchill': None, 'rainRate': 0.0, 'rain': 0.0}
Jan 1 17:27:09 files weewx[23062] INFO user.wmr300_v32: New historical record
for 2019-12-31 14:42:00 AEST (1577767320): 33: {'dateTime': 1577767320.0,
'usUnits': 17, 'barometer': 1012.7, 'windSpeed': 4.1000000000000005, 'windDir':
82.0, 'windGust': 5.300000000000001, 'windGustDir': 66.0, 'inTemp': 30.8,
'outTemp': 28.8, 'extraTemp1': None, 'extraTemp2': None, 'extraTemp3': None,
'extraTemp4': None, 'extraTemp5': None, 'extraTemp6': None, 'extraTemp7': None,
'inHumidity': 60.0, 'outHumidity': 62.0, 'extraHumid1': None, 'extraHumid2':
None, 'extraHumid3': None, 'extraHumid4': None, 'extraHumid5': None,
'extraHumid6': None, 'extraHumid7': None, 'dewpoint': None, 'extraDewpoint1':
None, 'extraDewpoint2': None, 'extraDewpoint3': None, 'extraDewpoint4': None,
'extraDewpoint5': None, 'extraDewpoint6': None, 'extraDewpoint7': 31.0,
'heatindex': None, 'extraHeatindex1': None, 'extraHeatindex2': None,
'extraHeatindex3': None, 'extraHeatindex4': None, 'extraHeatindex5': None,
'extraHeatindex6': None, 'extraHeatindex7': None, 'windchill': None,
'rainRate': 0.0, 'rain': 0.0, 'interval': 1.0}
Jan 1 17:27:09 files weewx[23062] DEBUG weewx.units: Unable to convert from
meter to km
Jan 1 17:27:09 files weewx[23062] INFO weewx.engine: Main loop exiting.
Shutting engine down.
Jan 1 17:27:09 files weewx[23062] DEBUG weewx.restx: Shut down
Wunderground-PWS thread.
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: Caught unrecoverable
exception:
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** 'km'
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** Traceback
(most recent call last):
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** File
"/home/weewx/_base/bin/weewx/engine.py", line 903, in main
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: ****
engine.run()
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** File
"/home/weewx/_base/bin/weewx/engine.py", line 164, in run
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: ****
self.dispatchEvent(weewx.Event(weewx.STARTUP))
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** File
"/home/weewx/_base/bin/weewx/engine.py", line 230, in dispatchEvent
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: ****
callback(event)
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** File
"/home/weewx/_base/bin/weewx/engine.py", line 536, in startup
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: ****
self._catchup(self.engine.console.genStartupRecords)
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** File
"/home/weewx/_base/bin/weewx/engine.py", line 644, in _catchup
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: ****
origin='hardware'))
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** File
"/home/weewx/_base/bin/weewx/engine.py", line 230, in dispatchEvent
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: ****
callback(event)
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** File
"/home/weewx/_base/bin/weewx/wxservices.py", line 94, in new_archive_record
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: ****
self.calc.do_calculations(event.record, 'archive')
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** File
"/home/weewx/_base/bin/weewx/wxservices.py", line 181, in do_calculations
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: ****
new_value = weewx.xtypes.get_scalar(obs_type, data_dict, self.db_manager)
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** File
"/home/weewx/_base/bin/weewx/xtypes.py", line 71, in get_scalar
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** return
xtype.get_scalar(obs_type, record, db_manager)
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** File
"/home/weewx/_base/bin/weewx/wxservices.py", line 251, in get_scalar
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** return
getattr(self, method_name)(obs_type, record, db_manager)
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** File
"/home/weewx/_base/bin/weewx/wxservices.py", line 457, in calc_windrun
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** return
weewx.units.convertStd((val, u, 'group_distance'), data['usUnits'])
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** File
"/home/weewx/_base/bin/weewx/units.py", line 1222, in convertStd
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** return
StdUnitConverters[target_std_unit_system].convert(val_t)
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** File
"/home/weewx/_base/bin/weewx/units.py", line 846, in convert
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: ****
new_val_t = convert(val_t, new_unit_type)
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** File
"/home/weewx/_base/bin/weewx/units.py", line 1190, in convert
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: ****
conversion_func = conversionDict[val_t[1]][target_unit_type]
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** KeyError:
'km'
Jan 1 17:27:09 files weewx[23062] CRITICAL weewx.engine: **** Exiting.