Thank you for answering. Responses below:
a. weewx.conf attached.
b. [Station]
# Description of the station location
location = "Denton, TX"
# Latitude in decimal degrees. Negative for southern hemisphere
latitude = 33.227786
# Longitude in decimal degrees. Negative for western hemisphere.
longitude = -97.093708
# Altitude of the station, with the unit it is in. This is used only
# if the hardware cannot supply a value.
altitude = 600, foot # Choose 'foot' or 'meter' for unit
# Set to type of station hardware. There must be a corresponding stanza
# in this file, which includes a value for the 'driver' option.
station_type = GW1000
c. # This section is for general configuration information.
# Set to 1 for extra debug info, otherwise comment it out or set to zero
debug = 3
d. Oct 17 15:25:04 fedora-workstation systemd[1]: Starting weewx.service -
SYSV: start and stop the weewx weather system...
Oct 17 15:25:04 fedora-workstation python3[53512]: weewx[53512] INFO
__main__: Initializing weewx version 4.10.2
Oct 17 15:25:04 fedora-workstation python3[53512]: weewx[53512] INFO
__main__: Using Python 3.11.6 (main, Oct 3 2023, 00:00:00) [GCC 13.2.1
20230728 (Red Hat 13.2.1-1)]
Oct 17 15:25:04 fedora-workstation python3[53512]: weewx[53512] INFO
__main__: Located at /bin/python3
Oct 17 15:25:04 fedora-workstation python3[53512]: weewx[53512] INFO
__main__: Platform Linux-6.5.6-200.fc38.x86_64-x86_64-with-glibc2.37
Oct 17 15:25:04 fedora-workstation python3[53512]: weewx[53512] INFO
__main__: Locale is 'en_US.UTF-8'
Oct 17 15:25:04 fedora-workstation python3[53512]: weewx[53512] INFO
__main__: Using configuration file /etc/weewx/weewx.conf
Oct 17 15:25:04 fedora-workstation python3[53512]: weewx[53512] INFO
__main__: Debug is 3
Oct 17 15:25:04 fedora-workstation python3[53512]: weewx[53512] INFO
__main__: PID file is /var/run/weewx.pid
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] DEBUG
__main__: Initializing engine
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] INFO
weewx.engine: Loading station type GW1000 (user.gw1000)
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] INFO
user.gw1000: GatewayDriver: version is 0.6.0b2
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] INFO
user.gw1000: device address is 192.168.50.41:45000
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] INFO
user.gw1000: poll interval is 10 seconds
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] INFO
user.gw1000: max tries is 3, retry wait time is 10 seconds
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] INFO
user.gw1000: broadcast address is 255.255.255.255:46000, broadcast
timeout is 5 seconds
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] INFO
user.gw1000: socket timeout is 2 seconds
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] INFO
user.gw1000: field map is {'co2': 'co2', 'co2_24h_avg': 'co2_24h_avg',
'dateTime': 'datetime', 'daymaxwind': 'daymaxwind', 'dayRain': 't_rainday',
'dewpoint': 'dewpoint', 'extraHumid1': 'humid1', 'extraHumid2': 'humid2',
'extraHumid3': 'humid3', 'extraHumid4': 'humid4', 'extraHumid5': 'humid5',
'extraHumid6': 'humid6', 'extraHumid7': 'humid7', 'extraHumid8': 'humid8',
'extraHumid17': 'humid17', 'extraTemp1': 'temp1', 'extraTemp2': 'temp2',
'extraTemp3': 'temp3', 'extraTemp4': 'temp4', 'extraTemp5': 'temp5',
'extraTemp6': 'temp6', 'extraTemp7': 'temp7', 'extraTemp8': 'temp8',
'extraTemp9': 'temp9', 'extraTemp10': 'temp10', 'extraTemp11': 'temp11',
'extraTemp12': 'temp12', 'extraTemp13': 'temp13', 'extraTemp14': 'temp14',
'extraTemp15': 'temp15', 'extraTemp16': 'temp16', 'extraTemp17': 'temp17',
'heatindex': 'heatindex', 'inHumidity': 'inhumid', 'inTemp': 'intemp',
'leafWet1': 'leafwet1', 'leafWet2': 'leafwet2', 'leafWet3': 'leafwet3',
'leafWet4': 'leafwet4', 'leafWet5': 'leafwet5', 'leafWet6': 'leafwet6',
'leafWet7': 'leafwet7', 'leafWet8': 'leafwet8', 'leak1': 'leak1', 'leak2':
'leak2', 'leak3': 'leak3', 'leak4': 'leak4', 'lightning_distance':
'lightningdist', 'lightning_last_det_time': 'lightningdettime',
'lightning_strike_count': 'lightning_strike_count', 'lightningcount':
'lightningcount', 'luminosity': 'light', 'monthRain': 't_rainmonth',
'outHumidity': 'outhumid', 'outTemp': 'outtemp', 'p_dayRain': 'p_rainday',
'p_monthRain': 'p_rainmonth', 'p_rain': 'p_rain', 'p_rainRate':
'p_rainrate', 'p_stormRain': 'p_rainevent', 'p_weekRain': 'p_rainweek',
'p_yearRain': 'p_rainyear', 'pm2_5': 'pm251', 'pm2_51_24h_avg':
'pm251_24h_avg', 'pm2_52': 'pm252', 'pm2_52_24h_avg': 'pm252_24h_avg',
'pm2_53': 'pm253', 'pm2_53_24h_avg': 'pm253_24h_avg', 'pm2_54': 'pm254',
'pm2_54_24h_avg': 'pm254_24h_avg', 'pm2_55': 'pm255', 'pm2_55_24h_avg':
'pm255_24h_avg', 'pm10': 'pm10', 'pm10_24h_avg': 'pm10_24h_avg',
'pressure': 'absbarometer', 'rain': 't_rain', 'rainRate': 't_rainrate',
'relbarometer': 'relbarometer', 'soilMoist1': 'soilmoist1', 'soilMoist2':
'soilmoist2', 'soilMoist3': 'soilmoist3', 'soilMoist4': 'soilmoist4',
'soilMoist5': 'soilmoist5', 'soilMoist6': 'soilmoist6', 'soilMoist7':
'soilmoist7', 'soilMoist8': 'soilmoist8', 'soilMoist9': 'soilmoist9',
'soilMoist10': 'soilmoist10', 'soilMoist11': 'soilmoist11', 'soilMoist12':
'soilmoist12', 'soilMoist13': 'soilmoist13', 'soilMoist14': 'soilmoist14',
'soilMoist15': 'soilmoist15', 'soilMoist16': 'soilmoist16', 'soilTemp1':
'soiltemp1', 'soilTemp2': 'soiltemp2', 'soilTemp3': 'soiltemp3',
'soilTemp4': 'soiltemp4', 'soilTemp5': 'soiltemp5', 'soilTemp6':
'soiltemp6', 'soilTemp7': 'soiltemp7', 'soilTemp8': 'soiltemp8',
'soilTemp9': 'soiltemp9', 'soilTemp10': 'soiltemp10', 'soilTemp11':
'soiltemp11', 'soilTemp12': 'soiltemp12', 'soilTemp13': 'soiltemp13',
'soilTemp14': 'soiltemp14', 'soilTemp15': 'soiltemp15', 'soilTemp16':
'soiltemp16', 'stormRain': 't_rainevent', 'totalRain': 't_raintotals',
'UV': 'uvi', 'uvradiation': 'uv', 'weekRain': 't_rainweek', 'wh24_batt':
'wh24_batt', 'wh24_sig': 'wh24_sig', 'wh25_batt': 'wh25_batt', 'wh25_sig':
'wh25_sig', 'wh26_batt': 'wh26_batt', 'wh26_sig': 'wh26_sig',
'wh31_ch1_batt': 'wh31_ch1_batt', 'wh31_ch1_sig': 'wh31_ch1_sig',
'wh31_ch2_batt': 'wh31_ch2_batt', 'wh31_ch2_sig': 'wh31_ch2_sig',
'wh31_ch3_batt': 'wh31_ch3_batt', 'wh31_ch3_sig': 'wh31_ch3_sig',
'wh31_ch4_batt': 'wh31_ch4_batt', 'wh31_ch4_sig': 'wh31_ch4_sig',
'wh31_ch5_batt': 'wh31_ch5_batt', 'wh31_ch5_sig': 'wh31_ch5_sig',
'wh31_ch6_batt': 'wh31_ch6_batt', 'wh31_ch6_sig': 'wh31_ch6_sig',
'wh31_ch7_batt': 'wh31_ch7_batt', 'wh31_ch7_sig': 'wh31_ch7_sig',
'wh31_ch8_batt': 'wh31_ch8_batt', 'wh31_ch8_sig': 'wh31_ch8_sig',
'wh32_batt': 'wh32_batt', 'wh32_sig': 'wh32_sig', 'wh40_batt': 'wh40_batt',
'wh40_sig': 'wh40_sig', 'wh41_ch1_batt': 'wh41_ch1_batt', 'wh41_ch1_sig':
'wh41_ch1_sig', 'wh41_ch2_batt': 'wh41_ch2_batt', 'wh41_ch2_sig':
'wh41_ch2_sig', 'wh41_ch3_batt': 'wh41_ch3_batt', 'wh41_ch3_sig':
'wh41_ch3_sig', 'wh41_ch4_batt': 'wh41_ch4_batt', 'wh41_ch4_sig':
'wh41_ch4_sig', 'wh45_batt': 'wh45_batt', 'wh45_sig': 'wh45_sig',
'wh51_ch1_batt': 'wh51_ch1_batt', 'wh51_ch1_sig': 'wh51_ch1_sig',
'wh51_ch2_batt': 'wh51_ch2_batt', 'wh51_ch2_sig': 'wh51_ch2_sig',
'wh51_ch3_batt': 'wh51_ch3_batt', 'wh51_ch3_sig': 'wh51_ch3_sig',
'wh51_ch4_batt': 'wh51_ch4_batt', 'wh51_ch4_sig': 'wh51_ch4_sig',
'wh51_ch5_batt': 'wh51_ch5_batt', 'wh51_ch5_sig': 'wh51_ch5_sig',
'wh51_ch6_batt': 'wh51_ch6_batt', 'wh51_ch6_sig': 'wh51_ch6_sig',
'wh51_ch7_batt': 'wh51_ch7_batt', 'wh51_ch7_sig': 'wh51_ch7_sig',
'wh51_ch8_batt': 'wh51_ch8_batt', 'wh51_ch8_sig': 'wh51_ch8_sig',
'wh51_ch9_batt': 'wh51_ch9_batt', 'wh51_ch9_sig': 'wh51_ch9_sig',
'wh51_ch10_batt': 'wh51_ch10_batt', 'wh51_ch10_sig': 'wh51_ch10_sig',
'wh51_ch11_batt': 'wh51_ch11_batt', 'wh51_ch11_sig': 'wh51_ch11_sig',
'wh51_ch12_batt': 'wh51_ch12_batt', 'wh51_ch12_sig': 'wh51_ch12_sig',
'wh51_ch13_batt': 'wh51_ch13_batt', 'wh51_ch13_sig': 'wh51_ch13_sig',
'wh51_ch14_batt': 'wh51_ch14_batt', 'wh51_ch14_sig': 'wh51_ch14_sig',
'wh51_ch15_batt': 'wh51_ch15_batt', 'wh51_ch15_sig': 'wh51_ch15_sig',
'wh51_ch16_batt': 'wh51_ch16_batt', 'wh51_ch16_sig': 'wh51_ch16_sig',
'wh55_ch1_batt': 'wh55_ch1_batt', 'wh55_ch1_sig': 'wh55_ch1_sig',
'wh55_ch2_batt': 'wh55_ch2_batt', 'wh55_ch2_sig': 'wh55_ch2_sig',
'wh55_ch3_batt': 'wh55_ch3_batt', 'wh55_ch3_sig': 'wh55_ch3_sig',
'wh55_ch4_batt': 'wh55_ch4_batt', 'wh55_ch4_sig': 'wh55_ch4_sig',
'wh57_batt': 'wh57_batt', 'wh57_sig': 'wh57_sig', 'wh65_batt': 'wh65_batt',
'wh65_sig': 'wh65_sig', 'wh68_batt': 'wh68_batt', 'wh68_sig': 'wh68_sig',
'windchill': 'windchill', 'windDir': 'winddir', 'windGust': 'gustspeed',
'windSpeed': 'windspeed', 'wn34_ch1_batt': 'wn34_ch1_batt', 'wn34_ch1_sig':
'wn34_ch1_sig', 'wn34_ch2_batt': 'wn34_ch2_batt', 'wn34_ch2_sig':
'wn34_ch2_sig', 'wn34_ch3_batt': 'wn34_ch3_batt', 'wn34_ch3_sig':
'wn34_ch3_sig', 'wn34_ch4_batt': 'wn34_ch4_batt', 'wn34_ch4_sig':
'wn34_ch4_sig', 'wn34_ch5_batt': 'wn34_ch5_batt', 'wn34_ch5_sig':
'wn34_ch5_sig', 'wn34_ch6_batt': 'wn34_ch6_batt', 'wn34_ch6_sig':
'wn34_ch6_sig', 'wn34_ch7_batt': 'wn34_ch7_batt', 'wn34_ch7_sig':
'wn34_ch7_sig', 'wn34_ch8_batt': 'wn34_ch8_batt', 'wn34_ch8_sig':
'wn34_ch8_sig', 'wn35_ch1_batt': 'wn35_ch1_batt', 'wn35_ch1_sig':
'wn35_ch1_sig', 'wn35_ch2_batt': 'wn35_ch2_batt', 'wn35_ch2_sig':
'wn35_ch2_sig', 'wn35_ch3_batt': 'wn35_ch3_batt', 'wn35_ch3_sig':
'wn35_ch3_sig', 'wn35_ch4_batt': 'wn35_ch4_batt', 'wn35_ch4_sig':
'wn35_ch4_sig', 'wn35_ch5_batt': 'wn35_ch5_batt', 'wn35_ch5_sig':
'wn35_ch5_sig', 'wn35_ch6_batt': 'wn35_ch6_batt', 'wn35_ch6_sig':
'wn35_ch6_sig', 'wn35_ch7_batt': 'wn35_ch7_batt', 'wn35_ch7_sig':
'wn35_ch7_sig', 'wn35_ch8_batt': 'wn35_ch8_batt', 'wn35_ch8_sig':
'wn35_ch8_sig', 'ws80_batt': 'ws80_batt', 'ws80_sig': 'ws80_sig',
'ws90_batt': 'ws90_batt', 'ws90_sig': 'ws90_sig', 'yearRain': 't_rainyear'}
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: firmware update checks will not occur
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: sensor ID decoding will use 'WH32'
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: battery state data will be ignored for legacy WH40
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: battery state will not be reported for sensors with no
signal data
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: unknown fields will be ignored
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: Sending packet 'FF FF 26 03 29' to 192.168.50.41:45000
Oct 17 15:25:04 fedora-workstation weewx[53506]: Starting weewx: [ OK ]
Oct 17 15:25:04 fedora-workstation systemd[1]: Started weewx.service -
SYSV: start and stop the weewx weather system.
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: Received response 'FF FF 26 09 BC FF 4D 1C C0 69 7C'
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: Sending packet 'FF FF 50 03 53' to 192.168.50.41:45000
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: Received response 'FF FF 50 19 15 45 61 73 79 57 65 61 74 68
65 72 50 72 6F 5F 56 35 2E 31 2E 33'
Oct 17 15:25:04 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: Invalid response to attempt 1 to send command
'CMD_READ_FIRMWARE_VERSION': Invalid checksum in API response. Expected
'136' (0x88), received '51' (0x33).
Oct 17 15:25:14 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: Sending packet 'FF FF 50 03 53' to 192.168.50.41:45000
Oct 17 15:25:14 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: Received response 'FF FF 50 19 15 45 61 73 79 57 65 61 74 68
65 72 50 72 6F 5F 56 35 2E 31 2E 33'
Oct 17 15:25:14 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: Invalid response to attempt 2 to send command
'CMD_READ_FIRMWARE_VERSION': Invalid checksum in API response. Expected
'136' (0x88), received '51' (0x33).
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: Sending packet 'FF FF 50 03 53' to 192.168.50.41:45000
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: Received response 'FF FF 50 19 15 45 61 73 79 57 65 61 74 68
65 72 50 72 6F 5F 56 35 2E 31 2E 33'
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] DEBUG
user.gw1000: Invalid response to attempt 3 to send command
'CMD_READ_FIRMWARE_VERSION': Invalid checksum in API response. Expected
'136' (0x88), received '51' (0x33).
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] ERROR
user.gw1000: Failed to obtain response to command
'CMD_READ_FIRMWARE_VERSION' after 3 attempts
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] ERROR
weewx.engine: Import of driver failed: Failed to obtain response to command
'CMD_READ_FIRMWARE_VERSION' after 3 attempts (<class
'user.gw1000.GWIOError'>)
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** Traceback (most recent call last):
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** File "/usr/share/weewx/weewx/engine.py", line
119, in setupStation
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** self.console = loader_function(config_dict,
self)
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: ****
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** File "/usr/share/weewx/user/gw1000.py", line
1700, in loader
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** return GatewayDriver(**config_dict[DRIVER_NAME])
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** File "/usr/share/weewx/user/gw1000.py", line
2311, in __init__
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** super(GatewayDriver, self).__init__(**stn_dict)
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** File "/usr/share/weewx/user/gw1000.py", line
1014, in __init__
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** self.collector =
GatewayCollector(ip_address=self.ip_address,
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: ****
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** File "/usr/share/weewx/user/gw1000.py", line
2608, in __init__
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** self.device =
GatewayDevice(ip_address=ip_address, port=port,
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: ****
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** File "/usr/share/weewx/user/gw1000.py", line
6024, in __init__
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** self.api = GatewayApi(ip_address=ip_address,
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** File "/usr/share/weewx/user/gw1000.py", line
4769, in __init__
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** self.model =
self.get_model_from_firmware(self.get_firmware_version())
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: ****
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** File "/usr/share/weewx/user/gw1000.py", line
5217, in get_firmware_version
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** response =
self.send_cmd_with_retries('CMD_READ_FIRMWARE_VERSION')
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: ****
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** File "/usr/share/weewx/user/gw1000.py", line
5454, in send_cmd_with_retries
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** raise GWIOError(_msg)
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
weewx.engine: **** user.gw1000.GWIOError: Failed to obtain response to
command 'CMD_READ_FIRMWARE_VERSION' after 3 attempts
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
__main__: Unable to load driver: Failed to obtain response to command
'CMD_READ_FIRMWARE_VERSION' after 3 attempts
Oct 17 15:25:24 fedora-workstation python3[53515]: weewx[53515] CRITICAL
__main__: **** Waiting 60 seconds then retrying...
Oct 17 15:26:24 fedora-workstation python3[53515]: weewx[53515] INFO
__main__: retrying...
Oct 17 15:26:24 fedora-workstation python3[53515]: weewx[53515] DEBUG
__main__: Initializing engine
Oct 17 15:26:24 fedora-workstation python3[53515]: weewx[53515] INFO
weewx.engine: Loading station type GW1000 (user.gw1000)
Oct 17 15:26:24 fedora-workstation python3[53515]: weewx[53515] INFO
user.gw1000: GatewayDriver: version is 0.6.0b2
Oct 17 15:26:24 fedora-workstation python3[53515]: weewx[53515] INFO
user.gw1000: device address is 192.168.50.41:45000
Oct 17 15:26:24 fedora-workstation python3[53515]: weewx[53515] INFO
user.gw1000: poll interval is 10 seconds
Oct 17 15:26:24 fedora-workstation python3[53515]: weewx[53515] INFO
user.gw1000: max tries is 3, retry wait time is 10 seconds
Oct 17 15:26:24 fedora-workstation python3[53515]: weewx[53515] INFO
user.gw1000: broadcast address is 255.255.255.255:46000, broadcast
timeout is 5 seconds
Oct 17 15:26:24 fedora-workstation python3[53515]: weewx[53515] INFO
user.gw1000: socket timeout is 2 seconds
e. Since both the weewx server and the weather station are on the same
network, I'm not sure a firewall wold come into play. However, I disabled
the firewall, no change, nor do I see anything that wold block the local
network.
f. Not sure what "bound to" means in this context, but according to the
router, it understands bot th eIP and MAC to belong to the weewx access
point.
FWIW, running weewxd from the command line never outputs any thing.
On Tuesday, October 17, 2023 at 8:32:59 AM UTC-5 Rainer Lang wrote:
> it's difficult to follow what you are/were doing - it would be helpful if
> you
> a) provided us with a copy of your weewx.conf (you can xxxx your passwords
> if there are any)
> b) set your station to GW1000
> c) set debug = 0
> d) provided the complete syslog from weewx startup until either the 1st
> report cycle is completed (as a rule after 5 minutes)
> or weewx exits because of an unrecoverable error - snippets are not helpful
>
> e) you should check if the IP address of your GW1000 is bound to its MAC
> address
> f) you should check if some option in your router to allow intranetwork
> communication is set/untagged etc.
> On 17.10.2023 15:20, Dale Chatham wrote:
>
> Yet another data point:
>
> python -m user.gw1000 --test-service --debug=5 --ip-address=192.168.50.41
> --port=45000
> Using configuration file /etc/weewx/weewx.conf
> debug level is '5'
>
> IP address obtained from command line options
> Port number obtained from command line options
> Battery state filtering is 'False' (using the default)
> Traceback (most recent call last):
> File "<frozen runpy>", line 198, in _run_module_as_main
> File "<frozen runpy>", line 88, in _run_code
> File "/usr/share/weewx/user/gw1000.py", line 8229, in <module>
> main()
> File "/usr/share/weewx/user/gw1000.py", line 8225, in main
> direct_gw.process_options()
> File "/usr/share/weewx/user/gw1000.py", line 6745, in process_options
> self.test_service()
> File "/usr/share/weewx/user/gw1000.py", line 8047, in test_service
> engine = weewx.engine.StdEngine(config)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/share/weewx/weewx/engine.py", line 93, in __init__
> self.loadServices(config_dict)
> File "/usr/share/weewx/weewx/engine.py", line 161, in loadServices
> obj = weeutil.weeutil.get_object(svc)(self, config_dict)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/share/weewx/user/gw1000.py", line 1389, in __init__
> loginf(' field map is %s' % natural_sort_dict(self.field_map))
> ^^^^^^^^^^^^^^
> AttributeError: 'GatewayService' object has no attribute 'field_map'
>
>
> On Tuesday, October 17, 2023 at 8:08:00 AM UTC-5 Dale Chatham wrote:
>
>> Another data point:
>>
>> nmap -sV -p 1-65535 192.168.50.41
>> Starting Nmap 7.93 ( https://nmap.org ) at 2023-10-17 06:51 CDT
>> Nmap scan report for ecowitt-weather (192.168.50.41)
>> Host is up (0.0069s latency).
>> Not shown: 65533 closed tcp ports (reset)
>> PORT STATE SERVICE VERSION
>> 80/tcp open nagios-nsca Nagios NSCA
>> 45000/tcp open asmp?
>> MAC Address: BC:FF:4D:1C:C0:69 (Espressif)
>>
>> It appears the port is open on the access point, but it's not answering.
>> Any ideas?
>>
>>
>> On Tuesday, October 17, 2023 at 6:32:48 AM UTC-5 Dale Chatham wrote:
>>
>>> Is it possible to get an help here?
>>>
>>> On Thursday, October 12, 2023 at 9:30:22 PM UTC-5 Dale Chatham wrote:
>>>
>>>> I blew it away and started over.
>>>>
>>>> Installed weewx according to: https://weewx.com/docs/redhat.htm
>>>> Simulator worked fine.
>>>>
>>>> Inst alled Ecowitt Gateway servier according to:
>>>> https://github.com/gjr80/weewx-gw1000/blob/master/readme.txt
>>>>
>>>> Ran PYTHONPATH=/usr/share/weewx python -m user.gw1000 --test-driver
>>>> from the above file.
>>>>
>>>> I get this error:
>>>> Using configuration file /etc/weewx/weewx.conf
>>>>
>>>> Unable to connect to device: Failed to obtain response to command
>>>> 'CMD_READ_FIRMWARE_VERSION' after 3 attempts
>>>>
>>>> Things to check include that the correct device IP address is being
>>>> used,
>>>> the device is powered on and the device is not otherwise
>>>> disconnected from
>>>> the local network.
>>>>
>>>> I used telnet to connect to the IP and port listed in weewx.conf:
>>>> driver = user.gw1000
>>>> ip_address = 192.168.50.41
>>>> port = 45000
>>>>
>>>> I get a connection, but canot get a response to anyting I type (I have
>>>> no idea if/what should be enteed to get a response.
>>>>
>>>>
>>>>
>>>> On Wednesday, October 11, 2023 at 6:13:20 AM UTC-5 gjr80 wrote:
>>>>
>>>>> I'm not sure what you are trying to do. The link you provided uses a
>>>>> custom WeeWX data service to parse a text file from the Ecowitt device,
>>>>> but
>>>>> the log extract you provided contains errors relating to the Ecowitt
>>>>> gateway driver <https://github.com/gjr80/weewx-gw1000> which uses the
>>>>> Ecowitt gateway device API to read data from the Ecowitt gateway device.
>>>>> You need to choose one method or the other, not both. If your intent is
>>>>> to
>>>>> utilise the linked page in your original post then you should uninstall
>>>>> the
>>>>> Ecowitt gateway driver.
>>>>>
>>>>> Gary
>>>>> On Wednesday, 11 October 2023 at 08:41:26 UTC+10 [email protected]
>>>>> wrote:
>>>>>
>>>>>> Following these instructions:
>>>>>>
>>>>>> https://www.cougar.eu.com/useful-guides/weewx-guides/rasberry-pi/add-ecowitt/modify-weewx.html
>>>>>>
>>>>>> Directory in /var/www/html/weewx/uploads is filling with data, so the
>>>>>> upload data part is working.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Here is the pertinent log entries:
>>>>>>
>>>>>> Oct 10 17:37:23 fedora-workstation python3[49897]: weewx[49897] DEBUG
>>>>>> user.gw1000: Invalid response to attempt 2 to send command
>>>>>> 'CMD_READ_FIRMWARE_VERSION': Invalid checksum in API response. Expected
>>>>>> '136' (0x88), received '51' (0x33).
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897] DEBUG
>>>>>> user.gw1000: Invalid response to attempt 3 to send command
>>>>>> 'CMD_READ_FIRMWARE_VERSION': Invalid checksum in API response. Expected
>>>>>> '136' (0x88), received '51' (0x33).
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897] ERROR
>>>>>> user.gw1000: Failed to obtain response to command
>>>>>> 'CMD_READ_FIRMWARE_VERSION' after 3 attempts
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897] ERROR
>>>>>> weewx.engine: Import of driver failed: Failed to obtain response to
>>>>>> command
>>>>>> 'CMD_READ_FIRMWARE_VERSION' after 3 attempts (<class
>>>>>> 'user.gw1000.GWIOError'>)
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** Traceback (most recent call last):
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** File
>>>>>> "/usr/share/weewx/weewx/engine.py",
>>>>>> line 119, in setupStation
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** self.console =
>>>>>> loader_function(config_dict, self)
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: ****
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** File
>>>>>> "/usr/share/weewx/user/gw1000.py",
>>>>>> line 1700, in loader
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** return
>>>>>> GatewayDriver(**config_dict[DRIVER_NAME])
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: ****
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** File
>>>>>> "/usr/share/weewx/user/gw1000.py",
>>>>>> line 2311, in __init__
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** super(GatewayDriver,
>>>>>> self).__init__(**stn_dict)
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** File
>>>>>> "/usr/share/weewx/user/gw1000.py",
>>>>>> line 1014, in __init__
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** self.collector =
>>>>>> GatewayCollector(ip_address=self.ip_address,
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: ****
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** File
>>>>>> "/usr/share/weewx/user/gw1000.py",
>>>>>> line 2608, in __init__
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** self.device =
>>>>>> GatewayDevice(ip_address=ip_address, port=port,
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: ****
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** File
>>>>>> "/usr/share/weewx/user/gw1000.py",
>>>>>> line 6024, in __init__
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** self.api =
>>>>>> GatewayApi(ip_address=ip_address,
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: ****
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** File
>>>>>> "/usr/share/weewx/user/gw1000.py",
>>>>>> line 4769, in __init__
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** self.model =
>>>>>> self.get_model_from_firmware(self.get_firmware_version())
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: ****
>>>>>>
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** File
>>>>>> "/usr/share/weewx/user/gw1000.py",
>>>>>> line 5217, in get_firmware_version
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** response =
>>>>>> self.send_cmd_with_retries('CMD_READ_FIRMWARE_VERSION')
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: ****
>>>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** File
>>>>>> "/usr/share/weewx/user/gw1000.py",
>>>>>> line 5454, in send_cmd_with_retries
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** raise GWIOError(_msg)
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL weewx.engine: **** user.gw1000.GWIOError: Failed to obtain
>>>>>> response to command 'CMD_READ_FIRMWARE_VERSION' after 3 attempts
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL __main__: Unable to load driver: Failed to obtain response to
>>>>>> command 'CMD_READ_FIRMWARE_VERSION' after 3 attempts
>>>>>> Oct 10 17:37:33 fedora-workstation python3[49897]: weewx[49897]
>>>>>> CRITICAL __main__: **** Waiting 60 seconds then retrying...
>>>>>>
>>>>> --
> 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/74321535-27c1-4909-b229-e4685083a0aen%40googlegroups.com
>
> <https://groups.google.com/d/msgid/weewx-user/74321535-27c1-4909-b229-e4685083a0aen%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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/weewx-user/f531b0ff-b4d3-4c4c-b15e-e3d1ecd03422n%40googlegroups.com.
# WEEWX CONFIGURATION FILE
#
# Copyright (c) 2009-2022 Tom Keffer <[email protected]>
# See the file LICENSE.txt for your rights.
##############################################################################
# This section is for general configuration information.
# Set to 1 for extra debug info, otherwise comment it out or set to zero
debug = 0
# Root directory of the weewx data file hierarchy for this station
WEEWX_ROOT = /
# Whether to log successful operations. May get overridden below.
log_success = True
# Whether to log unsuccessful operations. May get overridden below.
log_failure = True
# Do not modify this. It is used when installing and updating weewx.
version = 4.10.2
# Whether to try indefinitely to load the driver
loop_on_init = 1
##############################################################################
# This section is for information about the station.
[Station]
# Description of the station location
location = "Denton, TX"
# Latitude in decimal degrees. Negative for southern hemisphere
latitude = 33.227786
# Longitude in decimal degrees. Negative for western hemisphere.
longitude = -97.093708
# Altitude of the station, with the unit it is in. This is used only
# if the hardware cannot supply a value.
altitude = 600, foot # Choose 'foot' or 'meter' for unit
# Set to type of station hardware. There must be a corresponding stanza
# in this file, which includes a value for the 'driver' option.
station_type = GW1000
# If you have a website, you may specify an URL
station_url = http://www.chatham.org/weewx
# If you have a website, you may specify an URL. This is required if you
# intend to register your station.
# The start of the rain year (1=January; 10=October, etc.). This is
# downloaded from the station if the hardware supports it.
rain_year_start = 1
# Start of week (0=Monday, 6=Sunday)
week_start = 6
##############################################################################
[GW1000]
# This section is for the Ecowitt Gateway driver.
# How often to poll the API, default is every 20 seconds:
poll_interval = 10
# The driver to use:
driver = user.gw1000
ip_address = 192.168.50.41
port = 45000
##############################################################################
[Simulator]
# This section is for the weewx weather station simulator
# The time (in seconds) between LOOP packets.
loop_interval = 2.5
# The simulator mode can be either 'simulator' or 'generator'.
# Real-time simulator. Sleep between each LOOP packet.
mode = simulator
# Generator. Emit LOOP packets as fast as possible (useful for testing).
#mode = generator
# The start time. Format is YYYY-mm-ddTHH:MM. If not specified, the default
# is to use the present time.
#start = 2011-01-01T00:00
# The driver to use:
driver = weewx.drivers.simulator
##############################################################################
# This section is for uploading data to Internet sites
[StdRESTful]
# Uncomment and change to override logging for uploading services.
# log_success = True
# log_failure = True
[[StationRegistry]]
# To register this weather station with weewx, set this to true,
# then fill out option 'station_url', located in the [Station] section
above.
register_this_station = true
[[AWEKAS]]
# This section is for configuring posts to AWEKAS.
# If you wish to post to AWEKAS, set the option 'enable' to true, then
specify a username
# and password. To guard against parsing errors, put the password in
quotes.
enable = false
username = replace_me
password = replace_me
[[CWOP]]
# This section is for configuring posts to CWOP.
# If you wish to post to CWOP, set the option 'enable' to true,
# then specify the station ID (e.g., CW1234).
enable = false
station = replace_me
# If this is an APRS (radio amateur) station, specify the
# passcode (e.g., 12345). Otherwise, ignore.
passcode = replace_me
[[PWSweather]]
# This section is for configuring posts to PWSweather.com.
# If you wish to post to PWSweather.com, set the option 'enable' to
true, then specify a
# station and password. To guard against parsing errors, put the
password in quotes.
enable = false
station = replace_me
password = replace_me
[[WOW]]
# This section is for configuring posts to WOW.
# If you wish to post to WOW, set the option 'enable' to true, then
specify a station and
# password. To guard against parsing errors, put the password in quotes.
enable = false
station = replace_me
password = replace_me
[[Wunderground]]
# This section is for configuring posts to the Weather Underground.
# If you wish to post to the Weather Underground, set the option
'enable' to true, then
# specify a station (e.g., 'KORHOODR3') and password. To guard against
parsing errors, put
# the password in quotes.
enable = false
station = replace_me
password = replace_me
# If you plan on using wunderfixer, set the following
# to your API key:
api_key = replace_me
# Set the following to True to have weewx use the WU "Rapidfire"
# protocol. Not all hardware can support it. See the User's Guide.
rapidfire = False
##############################################################################
# This section specifies what reports, using which skins, to generate.
[StdReport]
# Where the skins reside, relative to WEEWX_ROOT
SKIN_ROOT = /etc/weewx/skins
# Where the generated reports should go, relative to WEEWX_ROOT
HTML_ROOT = /var/www/html/weewx
# Uncomment and change to override logging for reports
# log_success = True
# log_failure = True
# The database binding indicates which data should be used in reports.
data_binding = wx_binding
# Each of the following subsections defines a report that will be run.
# See the customizing guide to change the units, plot types and line
# colors, modify the fonts, display additional sensor data, and other
# customizations. Many of those changes can be made here by overriding
# parameters, or by modifying templates within the skin itself.
[[SeasonsReport]]
# The SeasonsReport uses the 'Seasons' skin, which contains the
# images, templates and plots for the report.
skin = Seasons
enable = true
[[SmartphoneReport]]
# The SmartphoneReport uses the 'Smartphone' skin, and the images and
# files are placed in a dedicated subdirectory.
skin = Smartphone
enable = false
HTML_ROOT = /var/www/html/weewx/smartphone
[[MobileReport]]
# The MobileReport uses the 'Mobile' skin, and the images and files
# are placed in a dedicated subdirectory.
skin = Mobile
enable = false
HTML_ROOT = /var/www/html/weewx/mobile
[[StandardReport]]
# This is the old "Standard" skin. By default, it is not enabled.
skin = Standard
enable = false
[[FTP]]
# FTP'ing the results to a webserver is treated as just another report,
# albeit one with an unusual report generator!
skin = Ftp
# If you wish to use FTP, set "enable" to "true", then
# fill out the next four lines.
# Use quotes around passwords to guard against parsing errors.
enable = false
user = replace_me
password = replace_me
server = replace_me # The ftp server name, e.g, www.myserver.org
path = replace_me # The destination directory, e.g., /weather
# Set to True for an FTP over TLS (FTPS) connection. Not all servers
# support this.
secure_ftp = False
# To upload files from something other than what HTML_ROOT is set
# to above, specify a different HTML_ROOT here.
#HTML_ROOT = /var/www/html/weewx
# Most FTP servers use port 21
port = 21
# Set to 1 to use passive mode, zero for active mode
passive = 1
[[RSYNC]]
# rsync'ing to a webserver is treated as just another report
skin = Rsync
# If you wish to use rsync, you must configure passwordless ssh using
# public/private key authentication from the user account that weewx
# runs to the user account on the remote machine where the files
# will be copied.
#
# If you wish to use rsync, set "enable" to "true", then
# fill out server, user, and path.
# The server should appear in your .ssh/config file.
# The user is the username used in the identity file.
# The path is the destination directory, such as /var/www/html/weather.
# Be sure that the user has write permissions on the destination!
enable = false
server = replace_me
user = replace_me
path = replace_me
# To upload files from something other than what HTML_ROOT is set
# to above, specify a different HTML_ROOT here.
#HTML_ROOT = /var/www/html/weewx
# Rsync can be configured to remove files from the remote server if
# they don't exist under HTML_ROOT locally. USE WITH CAUTION: if you
# make a mistake in the remote path, you could could unintentionally
# cause unrelated files to be deleted. Set to 1 to enable remote file
# deletion, zero to allow files to accumulate remotely.
delete = 0
# Options in the [[Defaults]] section below will apply to all reports.
# What follows are a few of the more popular options you may want to
# uncomment, then change.
[[Defaults]]
# Which language to use for all reports. Not all skins support all
languages.
# You can override this for individual reports.
lang = en
# Which unit system to use for all reports. Choices are 'us', 'metric',
or 'metricwx'.
# You can override this for individual reports.
unit_system = us
[[[Units]]]
# Option "unit_system" above sets the general unit system, but
overriding specific unit
# groups is possible. These are popular choices. Uncomment and set
as appropriate.
# NB: The unit is always in the singular. I.e., 'mile_per_hour',
# NOT 'miles_per_hour'
[[[[Groups]]]]
# group_altitude = meter # Options are 'foot'
or 'meter'
# group_pressure = mbar # Options are 'inHg',
'mmHg', 'mbar', or 'hPa'
# group_rain = mm # Options are 'inch',
'cm', or 'mm'
# group_rainrate = mm_per_hour # Options are
'inch_per_hour', 'cm_per_hour', or 'mm_per_hour'
# group_temperature = degree_C # Options are
'degree_C', 'degree_F', or 'degree_K'
# The following line is used to keep the above lines indented
properly.
# It can be ignored.
unused = unused
# Uncommenting the following section frequently results in more
# attractive formatting of times and dates, but may not work in
# your locale.
[[[[TimeFormats]]]]
# day = %H:%M
# week = %H:%M on %A
# month = %d-%b-%Y %H:%M
# year = %d-%b-%Y %H:%M
# rainyear = %d-%b-%Y %H:%M
# current = %d-%b-%Y %H:%M
# ephem_day = %H:%M
# ephem_year = %d-%b-%Y %H:%M
# The following line is used to keep the above lines indented
properly.
# It can be ignored.
unused = unused
[[[Labels]]]
# Users frequently change the labels for these observation types
[[[[Generic]]]]
# inHumidity = Inside Humidity
# inTemp = Inside Temperature
# outHumidity = Outside Humidity
# outTemp = Outside Temperature
# extraTemp1 = Temperature1
# extraTemp2 = Temperature2
# extraTemp3 = Temperature3
# The following line is used to keep the above lines indented
properly.
# It can be ignored.
unused = unused
##############################################################################
# This service acts as a filter, converting the unit system coming from
# the hardware to a unit system in the database.
[StdConvert]
# The target_unit affects only the unit system in the database. Once
# chosen it cannot be changed without converting the entire database.
# Modification of target_unit after starting weewx will result in
# corrupt data - the database will contain a mix of US and METRIC data.
#
# The value of target_unit does not affect the unit system for
# reporting - reports can display US, Metric, or any combination of units.
#
# In most cases, target_unit should be left as the default: US
#
# In particular, those migrating from a standard wview installation
# should use US since that is what the wview database contains.
# DO NOT MODIFY THIS VALUE UNLESS YOU KNOW WHAT YOU ARE DOING!
target_unit = US # Options are 'US', 'METRICWX', or 'METRIC'
##############################################################################
# This section can adjust data using calibration expressions.
[StdCalibrate]
[[Corrections]]
# For each type, an arbitrary calibration expression can be given.
# It should be in the units defined in the StdConvert section.
# Example:
foo = foo + 0.2
##############################################################################
# This section is for quality control checks. If units are not specified,
# values must be in the units defined in the StdConvert section.
[StdQC]
[[MinMax]]
barometer = 26, 32.5, inHg
pressure = 24, 34.5, inHg
outTemp = -40, 120, degree_F
inTemp = 10, 120, degree_F
outHumidity = 0, 100
inHumidity = 0, 100
windSpeed = 0, 120, mile_per_hour
rain = 0, 10, inch
##############################################################################
# This section controls the origin of derived values.
[StdWXCalculate]
[[Calculations]]
# How to calculate derived quantities. Possible values are:
# hardware - use the value provided by hardware
# software - use the value calculated by weewx
# prefer_hardware - use value provide by hardware if available,
# otherwise use value calculated by weewx
pressure = prefer_hardware
altimeter = prefer_hardware
appTemp = prefer_hardware
barometer = prefer_hardware
cloudbase = prefer_hardware
dewpoint = prefer_hardware
ET = prefer_hardware
heatindex = prefer_hardware
humidex = prefer_hardware
inDewpoint = prefer_hardware
maxSolarRad = prefer_hardware
rainRate = prefer_hardware
windchill = prefer_hardware
windrun = prefer_hardware
##############################################################################
# For hardware that supports it, this section controls how often the
# onboard clock gets updated.
[StdTimeSynch]
# How often to check the weather station clock for drift (in seconds)
clock_check = 14400
# How much it can drift before we will correct it (in seconds)
max_drift = 5
##############################################################################
# This section is for configuring the archive service.
[StdArchive]
# If the station hardware supports data logging then the archive interval
# will be downloaded from the station. Otherwise, specify it (in seconds).
archive_interval = 300
# If possible, new archive records are downloaded from the station
# hardware. If the hardware does not support this, then new archive
# records will be generated in software.
# Set the following to "software" to force software record generation.
# djc: record_generation = hardware
record_generation = software
# Whether to include LOOP data in hi/low statistics
loop_hilo = True
# Uncomment and change to override logging for archive operations
# log_success = True
# log_failure = True
# The data binding used to save archive records
data_binding = wx_binding
##############################################################################
# This section binds a data store to a database.
[DataBindings]
[[wx_binding]]
# The database must match one of the sections in [Databases].
# This is likely to be the only option you would want to change.
database = archive_sqlite
# The name of the table within the database
table_name = archive
# The manager handles aggregation of data for historical summaries
manager = weewx.manager.DaySummaryManager
# The schema defines the structure of the database.
# It is *only* used when the database is created.
schema = schemas.wview_extended.schema
##############################################################################
# This section defines various databases.
[Databases]
# A SQLite database is simply a single file
[[archive_sqlite]]
database_name = weewx.sdb
database_type = SQLite
# MySQL
[[archive_mysql]]
database_name = weewx
database_type = MySQL
##############################################################################
# This section defines defaults for the different types of databases.
[DatabaseTypes]
# Defaults for SQLite databases
[[SQLite]]
driver = weedb.sqlite
# Directory in which the database files are located
SQLITE_ROOT = /var/lib/weewx
# Defaults for MySQL databases
[[MySQL]]
driver = weedb.mysql
# The host where the database is located
host = localhost
# The user name for logging in to the host
user = weewx
# The password (use quotes to guard against parsing errors)
password = weewx
##############################################################################
# This section configures the internal weewx engine.
[Engine]
# The following section specifies which services should be run and in what
order.
[[Services]]
prep_services = weewx.engine.StdTimeSynch
# djc: data_services = ,
data_services = user.gw1000.GatewayService
process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate,
weewx.engine.StdQC, weewx.wxservices.StdWXCalculate
xtype_services = weewx.wxxtypes.StdWXXTypes,
weewx.wxxtypes.StdPressureCooker, weewx.wxxtypes.StdRainRater,
weewx.wxxtypes.StdDelta
archive_services = weewx.engine.StdArchive
restful_services = weewx.restx.StdStationRegistry,
weewx.restx.StdWunderground, weewx.restx.StdPWSweather, weewx.restx.StdCWOP,
weewx.restx.StdWOW, weewx.restx.StdAWEKAS
report_services = weewx.engine.StdPrint, weewx.engine.StdReport
[Accumulator]
# Start Ecowitt Gateway driver extractors
[[daymaxwind]]
extractor = last
[[lightning_distance]]
extractor = last
[[lightning_strike_count]]
extractor = sum
[[lightningcount]]
extractor = last
[[lightning_last_det_time]]
extractor = last
[[stormRain]]
extractor = last
[[hourRain]]
extractor = last
[[dayRain]]
extractor = last
[[weekRain]]
extractor = last
[[monthRain]]
extractor = last
[[yearRain]]
extractor = last
[[totalRain]]
extractor = last
[[p_rain]]
extractor = sum
[[p_stormRain]]
extractor = last
[[p_dayRain]]
extractor = last
[[p_weekRain]]
extractor = last
[[p_monthRain]]
extractor = last
[[p_yearRain]]
extractor = last
[[t_rain]]
extractor = sum
[[t_stormRain]]
extractor = last
[[t_dayRain]]
extractor = last
[[t_weekRain]]
extractor = last
[[_monthRain]]
extractor = last
[[t_yearRain]]
extractor = last
[[pm2_51_24h_avg]]
extractor = last
[[pm2_52_24h_avg]]
extractor = last
[[pm2_53_24h_avg]]
extractor = last
[[pm2_54_24h_avg]]
extractor = last
[[pm2_55_24h_avg]]
extractor = last
[[pm10_24h_avg]]
extractor = last
[[co2_24h_avg]]
extractor = last
[[wh40_batt]]
extractor = last
[[wh26_batt]]
extractor = last
[[wh25_batt]]
extractor = last
[[wh24_batt]]
extractor = last
[[wh65_batt]]
extractor = last
[[wh31_ch1_batt]]
extractor = last
[[wh31_ch2_batt]]
extractor = last
[[wh31_ch3_batt]]
extractor = last
[[wh31_ch4_batt]]
extractor = last
[[wh31_ch5_batt]]
extractor = last
[[wh31_ch6_batt]]
extractor = last
[[wh31_ch7_batt]]
extractor = last
[[wh31_ch8_batt]]
extractor = last
[[wn34_ch1_batt]]
extractor = last
[[wn34_ch2_batt]]
extractor = last
[[wn34_ch3_batt]]
extractor = last
[[wn34_ch4_batt]]
extractor = last
[[wn34_ch5_batt]]
extractor = last
[[wn34_ch6_batt]]
extractor = last
[[wn34_ch7_batt]]
extractor = last
[[wn34_ch8_batt]]
extractor = last
[[wn35_ch1_batt]]
extractor = last
[[wn35_ch2_batt]]
extractor = last
[[wn35_ch3_batt]]
extractor = last
[[wn35_ch4_batt]]
extractor = last
[[wn35_ch5_batt]]
extractor = last
[[wn35_ch6_batt]]
extractor = last
[[wn35_ch7_batt]]
extractor = last
[[wn35_ch8_batt]]
extractor = last
[[wh41_ch1_batt]]
extractor = last
[[wh41_ch2_batt]]
extractor = last
[[wh41_ch3_batt]]
extractor = last
[[wh41_ch4_batt]]
extractor = last
[[wh45_batt]]
extractor = last
[[wh51_ch1_batt]]
extractor = last
[[wh51_ch2_batt]]
extractor = last
[[wh51_ch3_batt]]
extractor = last
[[wh51_ch4_batt]]
extractor = last
[[wh51_ch5_batt]]
extractor = last
[[wh51_ch6_batt]]
extractor = last
[[wh51_ch7_batt]]
extractor = last
[[wh51_ch8_batt]]
extractor = last
[[wh51_ch9_batt]]
extractor = last
[[wh51_ch10_batt]]
extractor = last
[[wh51_ch11_batt]]
extractor = last
[[wh51_ch12_batt]]
extractor = last
[[wh51_ch13_batt]]
extractor = last
[[wh51_ch14_batt]]
extractor = last
[[wh51_ch15_batt]]
extractor = last
[[wh51_ch16_batt]]
extractor = last
[[wh55_ch1_batt]]
extractor = last
[[wh55_ch2_batt]]
extractor = last
[[wh55_ch3_batt]]
extractor = last
[[wh55_ch4_batt]]
extractor = last
[[wh57_batt]]
extractor = last
[[wh68_batt]]
extractor = last
[[ws80_batt]]
extractor = last
[[ws90_batt]]
extractor = last
[[wh40_sig]]
extractor = last
[[wh26_sig]]
extractor = last
[[wh25_sig]]
extractor = last
[[wh24_sig]]
extractor = last
[[wh65_sig]]
extractor = last
[[wh31_ch1_sig]]
extractor = last
[[wh31_ch2_sig]]
extractor = last
[[wh31_ch3_sig]]
extractor = last
[[wh31_ch4_sig]]
extractor = last
[[wh31_ch5_sig]]
extractor = last
[[wh31_ch6_sig]]
extractor = last
[[wh31_ch7_sig]]
extractor = last
[[wh31_ch8_sig]]
extractor = last
[[wn34_ch1_sig]]
extractor = last
[[wn34_ch2_sig]]
extractor = last
[[wn34_ch3_sig]]
extractor = last
[[wn34_ch4_sig]]
extractor = last
[[wn34_ch5_sig]]
extractor = last
[[wn34_ch6_sig]]
extractor = last
[[wn34_ch7_sig]]
extractor = last
[[wn34_ch8_sig]]
extractor = last
[[wn35_ch1_sig]]
extractor = last
[[wn35_ch2_sig]]
extractor = last
[[wn35_ch3_sig]]
extractor = last
[[wn35_ch4_sig]]
extractor = last
[[wn35_ch5_sig]]
extractor = last
[[wn35_ch6_sig]]
extractor = last
[[wn35_ch7_sig]]
extractor = last
[[wn35_ch8_sig]]
extractor = last
[[wh41_ch1_sig]]
extractor = last
[[wh41_ch2_sig]]
extractor = last
[[wh41_ch3_sig]]
extractor = last
[[wh41_ch4_sig]]
extractor = last
[[wh45_sig]]
extractor = last
[[wh51_ch1_sig]]
extractor = last
[[wh51_ch2_sig]]
extractor = last
[[wh51_ch3_sig]]
extractor = last
[[wh51_ch4_sig]]
extractor = last
[[wh51_ch5_sig]]
extractor = last
[[wh51_ch6_sig]]
extractor = last
[[wh51_ch7_sig]]
extractor = last
[[wh51_ch8_sig]]
extractor = last
[[wh51_ch9_sig]]
extractor = last
[[wh51_ch10_sig]]
extractor = last
[[wh51_ch11_sig]]
extractor = last
[[wh51_ch12_sig]]
extractor = last
[[wh51_ch13_sig]]
extractor = last
[[wh51_ch14_sig]]
extractor = last
[[wh51_ch15_sig]]
extractor = last
[[wh51_ch16_sig]]
extractor = last
[[wh55_ch1_sig]]
extractor = last
[[wh55_ch2_sig]]
extractor = last
[[wh55_ch3_sig]]
extractor = last
[[wh55_ch4_sig]]
extractor = last
[[wh57_sig]]
extractor = last
[[wh68_sig]]
extractor = last
[[ws80_sig]]
extractor = last
[[ws90_sig]]
extractor = last