Hi, When the driver is interrogating your GW1000 the GW1000 is responding with some control codes that differ from those documented in the GW1000 API. Could you provide the firmware version of your GW1000 as reported in the WS View app. It would also help to see some of the raw data coming back from the GW1000. Could you run the following commands:
$ PYTHONPATH=/home/weewx/bin python -m user.gw1000 --firmware-version --debug=3 and $ PYTHONPATH=/home/weewx/bin python -m user.gw1000 --live-data --debug=3 The above commands should result in a number of lines of debug output appearing in the WeeWX log. Could you provide a copy of the entire log output resulting from those two commands as well as the console output. Gary On Tuesday, 25 May 2021 at 05:55:03 UTC+10 [email protected] wrote: > Hi Lang, > thank you for answering. So, the configuration file is named > 'piscina.conf' because I am using WeeWX in multi mode, and each station has > its personal configuration file. In the specific case, I'm using the WN30 > sensor for measuring a pole water temperature. Here is the complete log: > May 24 21:44:31 raspberrypi weewx-piscina[2019]: engine: Initializing > weewx version 3.9.2 > May 24 21:44:31 raspberrypi weewx-piscina[2019]: engine: Using Python > 2.7.16 (default, Oct 10 2019, 22:02:15) #012[GCC 8.3.0] > May 24 21:44:31 raspberrypi weewx-piscina[2019]: engine: Platform > Linux-5.4.51+-armv6l-with-debian-10.4 > May 24 21:44:31 raspberrypi weewx-piscina[2019]: engine: Locale is > 'en_GB.UTF-8' > May 24 21:44:31 raspberrypi weewx-piscina[2019]: engine: pid file is > /var/run/weewx-piscina.pid > May 24 21:44:31 raspberrypi weewx-piscina[2023]: engine: Using > configuration file /etc/weewx/piscina.conf > May 24 21:44:31 raspberrypi weewx-piscina[2023]: engine: Debug is 1 > May 24 21:44:31 raspberrypi weewx-piscina[2023]: engine: Initializing > engine > May 24 21:44:31 raspberrypi weewx-piscina[2023]: engine: Loading station > type GW1000 (user.gw1000) > May 24 21:44:34 raspberrypi weewx-piscina[2023]: gw1000: Failed to obtain > response to attempt 1 to send command 'CMD_READ_STATION_MAC': timed out > May 24 21:44:44 raspberrypi weewx-piscina[2023]: gw1000: field map is > {'co2': 'co2', 'co2_24h_avg': 'co2_24h_avg', 'dateTime': 'datetime', > 'daymaxwind': 'daymaxwind', 'dayRain': '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', 'hourRain': 'rainhour', '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': > 'rainmonth', 'outHumidity': 'outhumid', 'outTemp': 'outtemp', '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': 'rain', > 'rainRate': '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': 'rainevent', > 'totalRain': 'raintotals', 'UV': 'uvi', 'uvradiation': 'uv', 'weekRain': > 'rainweek', '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', 'wh35_ch1_batt': 'wh35_ch1_batt', > 'wh35_ch1_sig': 'wh35_ch1_sig', 'wh35_ch2_batt': 'wh35_ch2_batt', > 'wh35_ch2_sig': 'wh35_ch2_sig', 'wh35_ch3_batt': 'wh35_ch3_batt', > 'wh35_ch3_sig': 'wh35_ch3_sig', 'wh35_ch4_batt': 'wh35_ch4_batt', > 'wh35_ch4_sig': 'wh35_ch4_sig', 'wh35_ch5_batt': 'wh35_ch5_batt', > 'wh35_ch5_sig': 'wh35_ch5_sig', 'wh35_ch6_batt': 'wh35_ch6_batt', > 'wh35_ch6_sig': 'wh35_ch6_sig', 'wh35_ch7_batt': 'wh35_ch7_batt', > 'wh35_ch7_sig': 'wh35_ch7_sig', 'wh35_ch8_batt': 'wh35_ch8_batt', > 'wh35_ch8_sig': 'wh35_ch8_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', 'ws80_batt': 'ws80_batt', 'ws80_sig': 'ws80_sig', > 'yearRain': 'rainyear'} > May 24 21:44:44 raspberrypi weewx-piscina[2023]: gw1000: driver version is > 0.3.1 > May 24 21:44:44 raspberrypi weewx-piscina[2023]: gw1000: GW1000 address is > 192.168.0.25:45000 > May 24 21:44:44 raspberrypi weewx-piscina[2023]: gw1000: poll interval is > 20 seconds > May 24 21:44:44 raspberrypi weewx-piscina[2023]: gw1000: max tries is 3, > retry wait time is 10 seconds > May 24 21:44:44 raspberrypi weewx-piscina[2023]: gw1000: broadcast address > is 255.255.255.255:46000, socket timeout is 2 seconds > May 24 21:44:44 raspberrypi weewx-piscina[2023]: engine: Loading service > weewx.engine.StdTimeSynch > May 24 21:44:44 raspberrypi weewx-piscina[2023]: engine: Finished loading > service weewx.engine.StdTimeSynch > May 24 21:44:44 raspberrypi weewx-piscina[2023]: engine: Loading service > weewx.engine.StdConvert > May 24 21:44:44 raspberrypi weewx-piscina[2023]: engine: StdConvert target > unit is 0x10 > May 24 21:44:44 raspberrypi weewx-piscina[2023]: engine: Finished loading > service weewx.engine.StdConvert > May 24 21:44:44 raspberrypi weewx-piscina[2023]: engine: Loading service > weewx.engine.StdCalibrate > May 24 21:44:44 raspberrypi weewx-piscina[2023]: engine: Finished loading > service weewx.engine.StdCalibrate > May 24 21:44:44 raspberrypi weewx-piscina[2023]: engine: Loading service > weewx.engine.StdQC > May 24 21:44:44 raspberrypi weewx-piscina[2023]: engine: Finished loading > service weewx.engine.StdQC > May 24 21:44:44 raspberrypi weewx-piscina[2023]: engine: Loading service > weewx.wxservices.StdWXCalculate > May 24 21:44:44 raspberrypi weewx-piscina[2023]: wxcalculate: The > following values will be calculated: barometer=software, > windchill=prefer_hardware, dewpoint=prefer_hardware, > appTemp=prefer_hardware, rainRate=prefer_hardware, windrun=prefer_hardware, > heatindex=prefer_hardware, maxSolarRad=prefer_hardware, > humidex=prefer_hardware, pressure=prefer_hardware, > inDewpoint=prefer_hardware, ET=prefer_hardware, altimeter=prefer_hardware, > cloudbase=prefer_hardware > May 24 21:44:44 raspberrypi weewx-piscina[2023]: wxcalculate: The > following algorithms will be used for calculations: altimeter=aaNOAA, > maxSolarRad=RS > May 24 21:44:44 raspberrypi weewx-piscina[2023]: engine: Finished loading > service weewx.wxservices.StdWXCalculate > May 24 21:44:44 raspberrypi weewx-piscina[2023]: engine: Loading service > weewx.engine.StdArchive > May 24 21:44:44 raspberrypi weewx-piscina[2023]: engine: Archive will use > data binding wx_binding > May 24 21:44:44 raspberrypi weewx-piscina[2023]: engine: Record generation > will be attempted in 'software' > May 24 21:44:44 raspberrypi weewx-piscina[2023]: engine: Using archive > interval of 300 seconds (software record generation) > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Use LOOP data in > hi/low calculations: 1 > May 24 21:44:45 raspberrypi weewx-piscina[2023]: gw1000: Invalid response > to attempt 1 to send command 'CMD_READ_SENSOR_ID_NEW': Invalid command code > in API response. Expected '60' (0x3C), received '99' (0x63). > May 24 21:44:45 raspberrypi weewx-piscina[2023]: manager: Daily summary > version is 2.0 > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Using binding > 'wx_binding' to database 'piscina.sdb' > May 24 21:44:45 raspberrypi weewx-piscina[2023]: manager: Starting > backfill of daily summaries > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Finished loading > service weewx.engine.StdArchive > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Loading service > weewx.restx.StdStationRegistry > May 24 21:44:45 raspberrypi weewx-piscina[2023]: restx: StationRegistry: > Registration not requested. > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Finished loading > service weewx.restx.StdStationRegistry > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Loading service > weewx.restx.StdWunderground > May 24 21:44:45 raspberrypi weewx-piscina[2023]: restx: Wunderground: > Posting not enabled. > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Finished loading > service weewx.restx.StdWunderground > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Loading service > weewx.restx.StdPWSweather > May 24 21:44:45 raspberrypi weewx-piscina[2023]: restx: PWSweather: > Posting not enabled. > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Finished loading > service weewx.restx.StdPWSweather > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Loading service > weewx.restx.StdCWOP > May 24 21:44:45 raspberrypi weewx-piscina[2023]: restx: CWOP: Posting not > enabled. > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Finished loading > service weewx.restx.StdCWOP > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Loading service > weewx.restx.StdWOW > May 24 21:44:45 raspberrypi weewx-piscina[2023]: restx: WOW: Posting not > enabled. > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Finished loading > service weewx.restx.StdWOW > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Loading service > weewx.restx.StdAWEKAS > May 24 21:44:45 raspberrypi weewx-piscina[2023]: restx: AWEKAS: Posting > not enabled. > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Finished loading > service weewx.restx.StdAWEKAS > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Loading service > weewx.engine.StdPrint > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Finished loading > service weewx.engine.StdPrint > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Loading service > weewx.engine.StdReport > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Finished loading > service weewx.engine.StdReport > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Starting up weewx > version 3.9.2 > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Station does not > support reading the time > May 24 21:44:45 raspberrypi weewx-piscina[2023]: engine: Starting main > packet loop. > May 24 21:44:55 raspberrypi weewx-piscina[2023]: gw1000: Invalid response > to attempt 2 to send command 'CMD_READ_SENSOR_ID_NEW': Invalid command code > in API response. Expected '60' (0x3C), received '99' (0x63). > May 24 21:45:05 raspberrypi weewx-piscina[2023]: gw1000: Invalid response > to attempt 3 to send command 'CMD_READ_SENSOR_ID_NEW': Invalid command code > in API response. Expected '60' (0x3C), received '99' (0x63). > May 24 21:45:05 raspberrypi weewx-piscina[2023]: gw1000: Failed to obtain > response to command 'CMD_READ_SENSOR_ID_NEW' after 3 attempts > May 24 21:45:05 raspberrypi weewx-piscina[2023]: gw1000: IP address > specified in 'weewx.conf', re-discovery was not attempted > May 24 21:45:05 raspberrypi weewx-piscina[2023]: gw1000: Unable to obtain > live sensor data > May 24 21:45:05 raspberrypi weewx-piscina[2023]: gw1000: Next update in 20 > seconds > May 24 21:45:05 raspberrypi weewx-piscina[2023]: engine: Main loop > exiting. Shutting engine down. > May 24 21:45:06 raspberrypi weewx-piscina[2023]: gw1000: Gw1000Collector > thread has been terminated > May 24 21:45:06 raspberrypi weewx-piscina[2023]: engine: Caught > WeeWxIOError: Failed to obtain response to command 'CMD_READ_SENSOR_ID_NEW' > after 3 attempts > May 24 21:45:06 raspberrypi weewx-piscina[2023]: **** Waiting 60 > seconds then retrying... > > And here the configuration file (piscina.conf): > > # WEEWX CONFIGURATION FILE > # > # Copyright (c) 2009-2015 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 = 1 > > # Root directory of the weewx data file hierarchy for this station > WEEWX_ROOT = /home/weewx > > # How long to wait before timing out a socket (FTP, HTTP) connection > socket_timeout = 200 > > # Do not modify this. It is used when installing and updating weewx. > version = 3.9.2 > > loop_on_init = 1 > > > ############################################################################## > > # This section is for information about the station. > > [Station] > > # Description of the station location > location = Termometro acqua piscina > > # Latitude and longitude in decimal degrees > latitude = 41.446295 > longitude = 12.622721 > > # Altitude of the station, with unit it is in. This is downloaded from > # from the station if the hardware supports it. > altitude = 10, meter # Choose 'foot' or 'meter' for unit > > # Set to type of station hardware. There must be a corresponding stanza > # in this file with a 'driver' parameter indicating the driver to be > used. > station_type = GW1000 > > # If you have a website, you may specify an URL > #station_url = http://www.example.com > > # 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 = 0 > > > ############################################################################## > > # This section is for uploading data to Internet sites > > [StdRESTful] > > [[StationRegistry]] > # To register this weather station with weewx, set this to true > register_this_station = false > > [[AWEKAS]] > # This section is for configuring posts to AWEKAS. > > # If you wish to do this, set the option 'enable' to true, > # and 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 do this, set the option 'enable' to true, > # and specify the station ID (e.g., CW1234). > enable = false > station = replace_me > > # If this is an APRS (radio amateur) station, uncomment > # the following and replace with a passcode (e.g., 12345). > #passcode = replace_me (APRS stations only) > > [[PWSweather]] > # This section is for configuring posts to PWSweather.com. > > # If you wish to do this, set the option 'enable' to true, > # and 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 do this, set the option 'enable' to true, > # and 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 do this, set the option 'enable' to true, > # and 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 > > # 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 = skins > > # Where the generated reports should go, relative to WEEWX_ROOT > HTML_ROOT = public_html/piscina > > # 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. > > [[StandardReport]] > # 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. > > # The StandardReport uses the 'Standard' skin, which contains the > # images, templates and plots for the report. > skin = Standard > [[[Units]]] > [[[[Groups]]]] > group_altitude = meter > group_speed2 = km_per_hour2 > group_pressure = mbar > group_rain = mm > group_rainrate = mm_per_hour > group_temperature = degree_C > group_degree_day = degree_C_day > group_speed = km_per_hour > > [[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, uncomment and fill out the next four > lines. > # Use quotes around passwords to guard against parsing errors. > user = xxx > password = xxx > server = xxx > path = xxx > > # 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 = public_html > > # 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 as to the user account on the remote machine where the files > # will be copied. > # > # The server, user, and path determine where files will be sent. > # The server is the server name, such as www.threefools.org > # The user is the username, such as weewx > # The path is the destination directory, such as > /var/www/html/weather > # Be sure that the user has write permissions on the destination! > #server = replace_me > #user = replace_me > #path = replace_me > > # 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 > > > ############################################################################## > > # 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 = METRIC # 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 > outTemp = -40, 120, degree_F > inTemp = 10, 120, degree_F > outHumidity = 0, 100 > inHumidity = 0, 100 > windSpeed = 0, 120, mile_per_hour > pressure = 24, 34.5, inHg > > > ############################################################################## > > # This section controls the origin of derived values. > > [StdWXCalculate] > > ignore_zero_wind = False > > [[Calculations]] > # Derived quantities are calculated by this service. 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 > barometer = prefer_hardware > altimeter = prefer_hardware > windchill = prefer_hardware > heatindex = prefer_hardware > dewpoint = prefer_hardware > inDewpoint = prefer_hardware > rainRate = 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. > record_generation = software > > # Whether to include LOOP data in hi/low statistics > loop_hilo = 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.wxmanager.WXDaySummaryManager > # The schema defines the structure of the database. > # It is *only* used when the database is created. > schema = schemas.wview.schema > > > ############################################################################## > > # This section defines various databases. > > [Databases] > > # A SQLite database is simply a single file > [[archive_sqlite]] > database_type = SQLite > database_name = piscina.sdb > > # MySQL > [[archive_mysql]] > database_type = MySQL > database_name = piscina > > > ############################################################################## > > # 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 = %(WEEWX_ROOT)s/archive > > # 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 for the user name (quotes guard against parsing > errors) > password = weewx > > > ############################################################################## > > # This section configures the internal weewx engine. > > [Engine] > > [[Services]] > # This section specifies the services that should be run. They are > # grouped by type, and the order of services within each group > # determines the order in which the services will be run. > prep_services = weewx.engine.StdTimeSynch > data_services = user.gw1000.Gw1000Service > process_services = weewx.engine.StdConvert, > weewx.engine.StdCalibrate, weewx.engine.StdQC, > weewx.wxservices.StdWXCalculate > 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 > > > ############################################################################## > > # Options for extension 'GW1000' > [Accumulator] > > # Start GW1000 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 > [[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 > [[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 > [[wh35_ch1_batt]] > extractor = last > [[wh35_ch2_batt]] > extractor = last > [[wh35_ch3_batt]] > extractor = last > [[wh35_ch4_batt]] > extractor = last > [[wh35_ch5_batt]] > extractor = last > [[wh35_ch6_batt]] > extractor = last > [[wh35_ch7_batt]] > extractor = last > [[wh35_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 > [[wh40_sig]] > extractor = last > [[wh26_sig]] > extractor = last > [[wh25_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 > [[wh35_ch1_sig]] > extractor = last > [[wh35_ch2_sig]] > extractor = last > [[wh35_ch3_sig]] > extractor = last > [[wh35_ch4_sig]] > extractor = last > [[wh35_ch5_sig]] > extractor = last > [[wh35_ch6_sig]] > extractor = last > [[wh35_ch7_sig]] > extractor = last > [[wh35_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 > > > ############################################################################## > > # Options for extension 'GW1000' > [GW1000] > # This section is for the GW1000 API driver. > > # How often to poll the GW1000 API, default is every 20 seconds: > poll_interval = 20 > > # The driver to use: > driver = user.gw1000 > > > ############################################################################## > > #examples of json > #{"time" : "2019-09-13 15:44:52", "brand" : "OS", "model" : "THGR810", > "id" : 254, "channel" : 1, "battery" : "OK", "temperature_C" : 27.800, > "humidity" : 40} > #{"time" : "2019-09-13 15:45:01", "brand" : "OS", "model" : "THGR810", > "id" : 71, "channel" : 2, "battery" : "OK", "temperature_C" : 27.200, > "humidity" : 46} > > > > > Il giorno lunedì 24 maggio 2021 alle 21:35:59 UTC+2 > [email protected] ha scritto: > >> The WN30 is just an extra temperature sensor and belongs to the WH31 >> extra sensor group - only it measures only temperature and not humidity. >> As it is primarily meant for measuring water temperature, humidity will >> be always 100% and therefore measuring it makes little sense. >> >> But it works just like other WH31 extra T/H sensors. I have one in my >> collection of WH31 sensors and weewx processes it without any problem. >> >> Is there a special reason why your weewx configuration file is named >> piscina.conf and not weewx.conf ? >> Has weewx been told to use piscina.conf instead of weewx.conf (default) >> in the respective files ? >> >> Can you please provide a *complete* syslog starting from the weewx >> launch until it either terminates itself or you do so by issuing the stop >> command !? >> Also, your weewx.conf (piscina.conf) would be helpful (you can/should >> remove passwords and API-keys if you use any there) >> >> If you so far only started the driver, can you just configure weewx as in >> the GW1000 driver description in the weewx.conf file >> (/etc/weewx/weewx.conf), >> and start weewx - and provide the logs and the weewx.conf file !? >> >> Then we can have a better understanding what going on and what's >> potential going wrong here. >> On 24.05.2021 20:36, [email protected] wrote: >> >> Hi everyone, >> I am trying to use WeeWX with a GW1000 hardware (this >> <https://www.froggit.de/product_info.php?info=p410_dp1500-wi-fi-wetterserver-usb-dongle.html>) >> >> that is receiving data from a WN30 temperature sensor (this >> <https://www.froggit.de/product_info.php?language=en&info=p480_dp30-multi-kanal-temperatur-funksensor-mit-wasserfestem-kabelfuehler.html>). >> >> I installed the hardware and connected to the WiFi, and by the smartphone >> app everything seems fine: in fact I can see live data from there. >> Now, I want to use the GW1000 driver >> <https://github.com/gjr80/weewx-gw1000>for reading its data with WeeWX. >> I correctly followed the instruction and installed the driver on WeeWX >> 3.9.2, but I am having some troubles. >> In particular, I am getting the following error: >> gw1000: Invalid response to attempt 1 to send command >> 'CMD_READ_SENSOR_ID_NEW': Invalid command code in API response. Expected >> '60' (0x3C), received '99' (0x63) >> This is what the test-driver returns: >> $ PYTHONPATH=/home/weewx/bin python -m user.gw1000 --test-driver >> Using configuration file /etc/weewx/piscina.conf >> debug level is '1' >> >> IP address to be obtained by discovery >> Port number set to default port number >> >> Interrogating GW1000 at 192.168.0.25:45000 >> >> Traceback (most recent call last): >> File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main >> "__main__", fname, loader, pkg_name) >> File "/usr/lib/python2.7/runpy.py", line 72, in _run_code >> exec code in run_globals >> File "/home/weewx/bin/user/gw1000.py", line 5906, in <module> >> main() >> File "/home/weewx/bin/user/gw1000.py", line 5900, in main >> direct_gw100.process_options() >> File "/home/weewx/bin/user/gw1000.py", line 4833, in process_options >> self.test_driver() >> File "/home/weewx/bin/user/gw1000.py", line 5647, in test_driver >> for pkt in driver.genLoopPackets(): >> File "/home/weewx/bin/user/gw1000.py", line 2057, in genLoopPackets >> raise weewx.WeeWxIOError(e) >> weewx.WeeWxIOError: Failed to obtain response to command >> 'CMD_READ_SENSOR_ID_NEW' after 3 attempts >> >> Any ideas?? >> Thank you! >> >> -- >> 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/2f6e835e-dbcd-4d71-bcee-cf431475ccd4n%40googlegroups.com >> >> <https://groups.google.com/d/msgid/weewx-user/2f6e835e-dbcd-4d71-bcee-cf431475ccd4n%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/b141eb07-95a7-4e6d-bb88-6234bb4c63f2n%40googlegroups.com.
