I'm not an expert on this, but Googling around, this error seems to be caused by servers passing too weak a DH key to the client. Client libraries now require longer keys in order to guard against a certain type of attack. There are two possible fixes:
1. Upgrade the server. This is the preferred approach. 2. Disable the need for longer keys. To do this, go into /etc/ssl/openssl.cnf and change the line CipherString = DEFAULT@SECLEVEL=2 to CipherString = DEFAULT@SECLEVEL=1 Option #1 is much better. Option #2 *will compromise the security of your connection*. But, again, I am not an expert on this. Use at your own risk. On Fri, Jan 29, 2021 at 5:22 AM Remy LAVABRE <[email protected]> wrote: > Hi, > I have a problem to with the FTP option : > > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > ftpgenerator: (0): caught exception '<class 'ssl.SSLError'>': [SSL: > DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1056) > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** Traceback (most recent call last): > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/reportengine.py", line 331, in run > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** n = ftp_data.run() > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weeutil/ftpupload.py", line 128, in run > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** ftp_server.login(self.user, self.password) > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/lib/python3.7/ftplib.py", line 749, in login > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** self.auth() > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/lib/python3.7/ftplib.py", line 761, in auth > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** server_hostname=self.host) > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/lib/python3.7/ssl.py", line 412, in wrap_socket > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** session=session > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/lib/python3.7/ssl.py", line 853, in _create > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** self.do_handshake() > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/lib/python3.7/ssl.py", line 1117, in do_handshake > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** self._sslobj.do_handshake() > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** ssl.SSLError: [SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1056) > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > ftpgenerator: (1): caught exception '<class 'ssl.SSLError'>': [SSL: > DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1056) > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** Traceback (most recent call last): > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/reportengine.py", line 331, in run > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** n = ftp_data.run() > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weeutil/ftpupload.py", line 128, in run > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** ftp_server.login(self.user, self.password) > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/lib/python3.7/ftplib.py", line 749, in login > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** self.auth() > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/lib/python3.7/ftplib.py", line 761, in auth > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** server_hostname=self.host) > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/lib/python3.7/ssl.py", line 412, in wrap_socket > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** session=session > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/lib/python3.7/ssl.py", line 853, in _create > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** self.do_handshake() > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/lib/python3.7/ssl.py", line 1117, in do_handshake > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** self._sslobj.do_handshake() > Jan 29 14:17:42 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** ssl.SSLError: [SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1056) > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > ftpgenerator: (2): caught exception '<class 'ssl.SSLError'>': [SSL: > DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1056) > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** Traceback (most recent call last): > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weewx/reportengine.py", line 331, in run > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** n = ftp_data.run() > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/share/weewx/weeutil/ftpupload.py", line 128, in run > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** ftp_server.login(self.user, self.password) > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/lib/python3.7/ftplib.py", line 749, in login > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** self.auth() > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/lib/python3.7/ftplib.py", line 761, in auth > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** server_hostname=self.host) > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/lib/python3.7/ssl.py", line 412, in wrap_socket > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** session=session > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/lib/python3.7/ssl.py", line 853, in _create > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** self.do_handshake() > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** File "/usr/lib/python3.7/ssl.py", line 1117, in do_handshake > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** self._sslobj.do_handshake() > Jan 29 14:17:43 RPiMeteo weewx[1429] ERROR weewx.reportengine: > **** ssl.SSLError: [SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1056) > ftpgenerator: (0): caught exception '<class 'ssl.SSLError'>': [SSL: > DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1056)Jan 29 14:20:24 RPiMeteo > weewx[1429] INFO weewx.manager: Added record 2021 > > Do you know what is the problem (and its solution...° ? Thank-you > > *Rémy LAVABRE* > > > > Le ven. 29 janv. 2021 à 01:37, Tom Keffer <[email protected]> a écrit : > >> I believe you are being affected by a bug in the Python libraries that >> happens if you use a Pure-FTP server. >> >> In weewx.conf, try adding option reuse_ssl and set it to true. So, your >> [[FTP]] section will look something like this: >> >> [[FTP]] >> enable = true >> user = xxxxxxxxxxxxxxxx >> password = "xxxxxxxxxxxx" >> server = www.billandcorena.com # The ftp server name, e.g, >> www.myserver.org >> path = /public_html/weather/weewx # The destination directory, >> e.g., /weather >> secure_ftp = true >> port = 21 >> passive = 1 >> reuse_ssl = True # <-- Add this line >> >> NB: This will only work for Python v3.6 or greater. >> >> -tk >> >> On Thu, Jan 28, 2021 at 4:14 PM <[email protected]> wrote: >> >>> >>> >>> Again >>> >>> debug set at 2 >>> >>> >>> >>> pi@raspberrypi:~ $ sudo tail -f /var/log/syslog Jan 28 17:06:56 >>> raspberrypi weewx[11629] INFO weewx.engine: Using binding 'wx_binding' to >>> database 'weewx.sdb' >>> >>> Jan 28 17:06:56 raspberrypi weewx[11629] INFO weewx.manager: Starting >>> backfill of daily summaries Jan 28 17:06:56 raspberrypi weewx[11629] DEBUG >>> weewx.drivers.vantage: Getting archive packets since 2021-01-28 17:05:00 >>> MST (1611878700) Jan 28 17:06:57 raspberrypi weewx[11629] DEBUG >>> weewx.drivers.vantage: Gentle wake up of console successful Jan 28 17:06:58 >>> raspberrypi weewx[11629] DEBUG weewx.drivers.vantage: Retrieving 21 >>> page(s); starting index= 0 Jan 28 17:06:58 raspberrypi weewx[11629] DEBUG >>> weewx.drivers.vantage: Empty record page 0; index 0 Jan 28 17:06:58 >>> raspberrypi weewx[11629] INFO weewx.engine: Starting main packet loop. >>> >>> Jan 28 17:06:59 raspberrypi weewx[11629] DEBUG weewx.drivers.vantage: >>> Gentle wake up of console successful Jan 28 17:06:59 raspberrypi >>> weewx[11629] DEBUG weewx.drivers.vantage: Requesting 200 LOOP packets. >>> >>> Jan 28 17:07:00 raspberrypi weewx[11629] DEBUG weewx.drivers.vantage: >>> Gentle wake up of console successful Jan 28 17:10:14 raspberrypi >>> weewx[11629] INFO weewx.manager: Added record 2021-01-28 17:10:00 MST >>> (1611879000) to database 'weewx.sdb' >>> >>> Jan 28 17:10:14 raspberrypi weewx[11629] INFO weewx.manager: Added >>> record 2021-01-28 17:10:00 MST (1611879000) to daily summary in 'weewx.sdb' >>> >>> Jan 28 17:10:14 raspberrypi weewx[11629] DEBUG weewx.reportengine: >>> Running reports for latest time in the database. >>> >>> Jan 28 17:10:14 raspberrypi weewx[11629] DEBUG weewx.drivers.vantage: >>> Requesting 200 LOOP packets. >>> >>> Jan 28 17:10:14 raspberrypi weewx[11629] DEBUG weewx.reportengine: >>> Running report 'SeasonsReport' >>> >>> Jan 28 17:10:14 raspberrypi weewx[11629] DEBUG weewx.reportengine: Found >>> configuration file /etc/weewx/skins/Seasons/skin.conf for report >>> 'SeasonsReport' >>> >>> Jan 28 17:10:15 raspberrypi weewx[11629] DEBUG weewx.cheetahgenerator: >>> Using search list ['weewx.cheetahgenerator.Almanac', >>> 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', >>> 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', >>> 'weewx.cheetahgenerator.Extras'] Jan 28 17:10:15 raspberrypi weewx[11629] >>> DEBUG weewx.manager: Daily summary version is 3.0 Jan 28 17:10:16 >>> raspberrypi weewx[11629] INFO weewx.cheetahgenerator: Generated 8 files for >>> report SeasonsReport in 1.85 seconds Jan 28 17:10:17 raspberrypi >>> weewx[11629] DEBUG weewx.manager: Daily summary version is 3.0 Jan 28 >>> 17:10:17 raspberrypi weewx[11629] INFO weewx.imagegenerator: Generated 15 >>> images for report SeasonsReport in 0.65 seconds Jan 28 17:10:17 raspberrypi >>> weewx[11629] DEBUG weewx.drivers.vantage: Retry #0 failed Jan 28 17:10:17 >>> raspberrypi weewx[11629] INFO weewx.reportengine: Copied 5 files to >>> /var/www/html/weewx Jan 28 17:10:17 raspberrypi weewx[11629] DEBUG >>> weewx.reportengine: Running report 'SmartphoneReport' >>> >>> Jan 28 17:10:17 raspberrypi weewx[11629] DEBUG weewx.reportengine: Found >>> configuration file /etc/weewx/skins/Smartphone/skin.conf for report >>> 'SmartphoneReport' >>> >>> Jan 28 17:10:17 raspberrypi weewx[11629] DEBUG weewx.cheetahgenerator: >>> Using search list ['weewx.cheetahgenerator.Almanac', >>> 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', >>> 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', >>> 'weewx.cheetahgenerator.Extras'] Jan 28 17:10:17 raspberrypi weewx[11629] >>> DEBUG weewx.manager: Daily summary version is 3.0 Jan 28 17:10:17 >>> raspberrypi weewx[11629] INFO weewx.cheetahgenerator: Generated 6 files for >>> report SmartphoneReport in 0.17 seconds Jan 28 17:10:17 raspberrypi >>> weewx[11629] DEBUG weewx.manager: Daily summary version is 3.0 Jan 28 >>> 17:10:18 raspberrypi weewx[11629] INFO weewx.imagegenerator: Generated 6 >>> images for report SmartphoneReport in 0.23 seconds Jan 28 17:10:18 >>> raspberrypi weewx[11629] INFO weewx.reportengine: Copied 6 files to >>> /var/www/html/weewx/smartphone Jan 28 17:10:18 raspberrypi weewx[11629] >>> DEBUG weewx.reportengine: Running report 'MobileReport' >>> >>> Jan 28 17:10:18 raspberrypi weewx[11629] DEBUG weewx.reportengine: Found >>> configuration file /etc/weewx/skins/Mobile/skin.conf for report >>> 'MobileReport' >>> >>> Jan 28 17:10:18 raspberrypi weewx[11629] DEBUG weewx.cheetahgenerator: >>> Using search list ['weewx.cheetahgenerator.Almanac', >>> 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', >>> 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', >>> 'weewx.cheetahgenerator.Extras'] Jan 28 17:10:18 raspberrypi weewx[11629] >>> DEBUG weewx.manager: Daily summary version is 3.0 Jan 28 17:10:18 >>> raspberrypi weewx[11629] INFO weewx.cheetahgenerator: Generated 1 files for >>> report MobileReport in 0.06 seconds Jan 28 17:10:18 raspberrypi >>> weewx[11629] DEBUG weewx.manager: Daily summary version is 3.0 Jan 28 >>> 17:10:18 raspberrypi weewx[11629] INFO weewx.imagegenerator: Generated 4 >>> images for report MobileReport in 0.17 seconds Jan 28 17:10:18 raspberrypi >>> weewx[11629] INFO weewx.reportengine: Copied 2 files to >>> /var/www/html/weewx/mobile Jan 28 17:10:18 raspberrypi weewx[11629] DEBUG >>> weewx.reportengine: Report 'StandardReport' not enabled. Skipping. >>> >>> Jan 28 17:10:18 raspberrypi weewx[11629] DEBUG weewx.reportengine: >>> Running report 'Belchertown' >>> >>> Jan 28 17:10:18 raspberrypi weewx[11629] DEBUG weewx.reportengine: Found >>> configuration file /etc/weewx/skins/Belchertown/skin.conf for report >>> 'Belchertown' >>> >>> Jan 28 17:10:18 raspberrypi weewx[11629] DEBUG weewx.cheetahgenerator: >>> Using search list ['weewx.cheetahgenerator.Almanac', >>> 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', >>> 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', >>> 'weewx.cheetahgenerator.Extras', 'user.belchertown.getData'] Jan 28 >>> 17:10:18 raspberrypi weewx[11629] DEBUG weewx.manager: Daily summary >>> version is 3.0 Jan 28 17:10:18 raspberrypi weewx[11629] INFO >>> user.belchertown: version 1.2 Jan 28 17:10:18 raspberrypi weewx[11629] >>> ERROR user.belchertown: Error getting AQI from Aeris weather. The error >>> was:#012list index out of range#012The response from the Aeris AQI server >>> was:#012[{'success': True, 'error': {'code': 'warn_no_data', 'description': >>> 'Valid request. No results available based on your query parameters.'}, >>> 'response': []}]#012The URL being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 17:10:18 raspberrypi weewx[11629] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 17:10:19 raspberrypi weewx[11629] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 17:10:19 raspberrypi weewx[11629] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 17:10:20 raspberrypi weewx[11629] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 17:10:20 raspberrypi weewx[11629] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 17:10:20 raspberrypi weewx[11629] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 17:10:20 raspberrypi weewx[11629] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 17:10:20 raspberrypi weewx[11629] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 17:10:20 raspberrypi weewx[11629] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 17:10:21 raspberrypi weewx[11629] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 17:10:22 raspberrypi weewx[11629] ERROR weewx.drivers.vantage: >>> ip-read error: timed out Jan 28 17:10:22 raspberrypi weewx[11629] DEBUG >>> weewx.drivers.vantage: Retry #1 failed Jan 28 17:10:22 raspberrypi >>> weewx[11629] INFO weewx.cheetahgenerator: Generated 11 files for report >>> Belchertown in 3.84 seconds Jan 28 17:10:22 raspberrypi weewx[11629] INFO >>> weewx.reportengine: Copied 37 files to /var/www/html/weewx/belchertown Jan >>> 28 17:10:22 raspberrypi weewx[11629] DEBUG weewx.manager: Daily summary >>> version is 3.0 Jan 28 17:10:22 raspberrypi weewx[11629] DEBUG >>> weewx.drivers.vantage: Gentle wake up of console successful Jan 28 17:10:23 >>> raspberrypi weewx[11629] DEBUG weewx.reportengine: Running report 'FTP' >>> >>> Jan 28 17:10:23 raspberrypi weewx[11629] DEBUG weewx.reportengine: Found >>> configuration file /etc/weewx/skins/Ftp/skin.conf for report 'FTP' >>> >>> Jan 28 17:10:23 raspberrypi weewx[11629] DEBUG weeutil.ftpupload: >>> Attempting secure connection to www.billandcorena.com Jan 28 17:10:24 >>> raspberrypi weewx[11629] DEBUG weeutil.ftpupload: Secure data connection to >>> www.billandcorena.com Jan 28 17:10:24 raspberrypi weewx[11629] ERROR >>> weeutil.ftpupload: Failed uploading /var/www/html/weewx/weekbarometer.png >>> to server www.billandcorena.com. Reason: '[Errno 0] Error' >>> >>> Jan 28 17:10:24 raspberrypi weewx[11629] ERROR weewx.reportengine: >>> ftpgenerator: (0): caught exception '<class 'OSError'>': [Errno 0] Error >>> >>> Jan 28 17:10:24 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** Traceback (most recent call last): >>> >>> Jan 28 17:10:24 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** File >>> "/usr/share/weewx/weewx/reportengine.py", line 331, in run >>> >>> Jan 28 17:10:24 raspberrypi weewx[11629] ERROR weewx.reportengine: >>> **** n = ftp_data.run() >>> >>> Jan 28 17:10:24 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** File >>> "/usr/share/weewx/weeutil/ftpupload.py", line 163, in run >>> >>> Jan 28 17:10:24 raspberrypi weewx[11629] ERROR weewx.reportengine: >>> **** ftp_server.storbinary(stor_cmd, fd) >>> >>> Jan 28 17:10:24 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** File "/usr/lib/python3.7/ftplib.py", >>> line 514, in storbinary >>> >>> Jan 28 17:10:24 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** conn.unwrap() >>> >>> Jan 28 17:10:24 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** File "/usr/lib/python3.7/ssl.py", line >>> 1094, in unwrap >>> >>> Jan 28 17:10:24 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** s = self._sslobj.shutdown() >>> >>> Jan 28 17:10:24 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** OSError: [Errno 0] Error >>> >>> Jan 28 17:10:24 raspberrypi weewx[11629] DEBUG weeutil.ftpupload: >>> Attempting secure connection to www.billandcorena.com Jan 28 17:10:25 >>> raspberrypi weewx[11629] DEBUG weeutil.ftpupload: Secure data connection to >>> www.billandcorena.com Jan 28 17:10:26 raspberrypi weewx[11629] ERROR >>> weeutil.ftpupload: Failed uploading /var/www/html/weewx/weekbarometer.png >>> to server www.billandcorena.com. Reason: '[Errno 0] Error' >>> >>> Jan 28 17:10:26 raspberrypi weewx[11629] ERROR weewx.reportengine: >>> ftpgenerator: (1): caught exception '<class 'OSError'>': [Errno 0] Error >>> >>> Jan 28 17:10:26 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** Traceback (most recent call last): >>> >>> Jan 28 17:10:26 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** File >>> "/usr/share/weewx/weewx/reportengine.py", line 331, in run >>> >>> Jan 28 17:10:26 raspberrypi weewx[11629] ERROR weewx.reportengine: >>> **** n = ftp_data.run() >>> >>> Jan 28 17:10:26 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** File >>> "/usr/share/weewx/weeutil/ftpupload.py", line 163, in run >>> >>> Jan 28 17:10:26 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** ftp_server.storbinary(stor_cmd, fd) >>> >>> Jan 28 17:10:26 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** File "/usr/lib/python3.7/ftplib.py", >>> line 514, in storbinary >>> >>> Jan 28 17:10:26 raspberrypi weewx[11629] ERROR weewx.reportengine: >>> **** conn.unwrap() >>> >>> Jan 28 17:10:26 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** File "/usr/lib/python3.7/ssl.py", line >>> 1094, in unwrap >>> >>> Jan 28 17:10:26 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** s = self._sslobj.shutdown() >>> >>> Jan 28 17:10:26 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** OSError: [Errno 0] Error >>> >>> Jan 28 17:10:26 raspberrypi weewx[11629] DEBUG weeutil.ftpupload: >>> Attempting secure connection to www.billandcorena.com Jan 28 17:10:26 >>> raspberrypi weewx[11629] DEBUG weeutil.ftpupload: Secure data connection to >>> www.billandcorena.com Jan 28 17:10:27 raspberrypi weewx[11629] ERROR >>> weeutil.ftpupload: Failed uploading /var/www/html/weewx/weekbarometer.png >>> to server www.billandcorena.com. Reason: '[Errno 0] Error' >>> >>> Jan 28 17:10:27 raspberrypi weewx[11629] ERROR weewx.reportengine: >>> ftpgenerator: (2): caught exception '<class 'OSError'>': [Errno 0] Error >>> >>> Jan 28 17:10:27 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** Traceback (most recent call last): >>> >>> Jan 28 17:10:27 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** File >>> "/usr/share/weewx/weewx/reportengine.py", line 331, in run >>> >>> Jan 28 17:10:27 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** n = ftp_data.run() >>> >>> Jan 28 17:10:27 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** File >>> "/usr/share/weewx/weeutil/ftpupload.py", line 163, in run >>> >>> Jan 28 17:10:27 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** ftp_server.storbinary(stor_cmd, fd) >>> >>> Jan 28 17:10:27 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** File "/usr/lib/python3.7/ftplib.py", >>> line 514, in storbinary >>> >>> Jan 28 17:10:27 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** conn.unwrap() >>> >>> Jan 28 17:10:27 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** File "/usr/lib/python3.7/ssl.py", line >>> 1094, in unwrap >>> >>> Jan 28 17:10:27 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** s = self._sslobj.shutdown() >>> >>> Jan 28 17:10:27 raspberrypi weewx[11629] ERROR >>> weewx.reportengine: **** OSError: [Errno 0] Error >>> >>> Jan 28 17:10:27 raspberrypi weewx[11629] ERROR weewx.reportengine: >>> ftpgenerator: Upload failed Jan 28 17:10:27 raspberrypi weewx[11629] DEBUG >>> weewx.reportengine: >>> >>> Report 'RSYNC' not enabled. Skipping. >>> >>> >>> >>> >>> >>> *From:* [email protected] <[email protected]> *On >>> Behalf Of *Tom Keffer >>> *Sent:* Thursday, January 28, 2021 4:55 PM >>> *To:* weewx-user <[email protected]> >>> *Subject:* Re: [weewx-user] FTP >>> >>> >>> >>> It was in another note, but please use debug=2. This will give >>> additional information about the FTP session. >>> >>> >>> >>> >>> >>> >>> >>> On Thu, Jan 28, 2021 at 3:46 PM <[email protected]> wrote: >>> >>> Here is the log from start >>> >>> >>> >>> >>> >>> i@raspberrypi:~ $ sudo tail -f /var/log/syslog Jan 28 16:35:20 >>> raspberrypi weewx[11404] INFO weewx.restx: Wunderground: Posting not >>> enabled. >>> >>> Jan 28 16:35:20 raspberrypi weewx[11404] INFO weewx.restx: PWSweather: >>> Posting not enabled. >>> >>> Jan 28 16:35:20 raspberrypi weewx[11404] INFO weewx.restx: CWOP: Posting >>> not enabled. >>> >>> Jan 28 16:35:20 raspberrypi weewx[11404] INFO weewx.restx: WOW: Posting >>> not enabled. >>> >>> Jan 28 16:35:20 raspberrypi weewx[11404] INFO weewx.restx: AWEKAS: >>> Posting not enabled. >>> >>> Jan 28 16:35:20 raspberrypi weewx[11404] INFO __main__: Starting up >>> weewx version 4.3.0 Jan 28 16:35:21 raspberrypi weewx[11404] INFO >>> weewx.engine: Clock error is 3.34 seconds (positive is fast) Jan 28 >>> 16:35:21 raspberrypi weewx[11404] INFO weewx.engine: Using binding >>> 'wx_binding' to database 'weewx.sdb' >>> >>> Jan 28 16:35:21 raspberrypi weewx[11404] INFO weewx.manager: Starting >>> backfill of daily summaries Jan 28 16:35:23 raspberrypi weewx[11404] INFO >>> weewx.engine: Starting main packet loop. >>> >>> Jan 28 16:40:14 raspberrypi weewx[11404] INFO weewx.manager: Added >>> record 2021-01-28 16:40:00 MST (1611877200) to database 'weewx.sdb' >>> >>> Jan 28 16:40:14 raspberrypi weewx[11404] INFO weewx.manager: Added >>> record 2021-01-28 16:40:00 MST (1611877200) to daily summary in 'weewx.sdb' >>> >>> Jan 28 16:40:16 raspberrypi weewx[11404] INFO weewx.cheetahgenerator: >>> Generated 8 files for report SeasonsReport in 1.81 seconds Jan 28 16:40:17 >>> raspberrypi weewx[11404] INFO weewx.imagegenerator: Generated 15 images for >>> report SeasonsReport in 0.66 seconds Jan 28 16:40:17 raspberrypi >>> weewx[11404] INFO weewx.reportengine: Copied 5 files to /var/www/html/weewx >>> Jan 28 16:40:17 raspberrypi weewx[11404] INFO weewx.cheetahgenerator: >>> Generated 6 files for report SmartphoneReport in 0.16 seconds Jan 28 >>> 16:40:17 raspberrypi weewx[11404] INFO weewx.imagegenerator: Generated 6 >>> images for report SmartphoneReport in 0.24 seconds Jan 28 16:40:17 >>> raspberrypi weewx[11404] INFO weewx.reportengine: Copied 6 files to >>> /var/www/html/weewx/smartphone Jan 28 16:40:18 raspberrypi weewx[11404] >>> INFO weewx.cheetahgenerator: Generated 1 files for report MobileReport in >>> 0.05 seconds Jan 28 16:40:18 raspberrypi weewx[11404] INFO >>> weewx.imagegenerator: Generated 4 images for report MobileReport in 0.16 >>> seconds Jan 28 16:40:18 raspberrypi weewx[11404] INFO weewx.reportengine: >>> Copied 2 files to /var/www/html/weewx/mobile Jan 28 16:40:18 raspberrypi >>> weewx[11404] INFO user.belchertown: version 1.2 Jan 28 16:40:18 raspberrypi >>> weewx[11404] ERROR user.belchertown: Error getting AQI from Aeris weather. >>> The error was:#012list index out of range#012The response from the Aeris >>> AQI server was:#012[{'success': True, 'error': {'code': 'warn_no_data', >>> 'description': 'Valid request. No results available based on your query >>> parameters.'}, 'response': []}]#012The URL being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 16:40:18 raspberrypi weewx[11404] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 16:40:18 raspberrypi weewx[11404] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 16:40:19 raspberrypi weewx[11404] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 16:40:20 raspberrypi weewx[11404] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 16:40:20 raspberrypi weewx[11404] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 16:40:20 raspberrypi weewx[11404] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 16:40:20 raspberrypi weewx[11404] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 16:40:20 raspberrypi weewx[11404] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 16:40:20 raspberrypi weewx[11404] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 16:40:20 raspberrypi weewx[11404] ERROR user.belchertown: Error >>> getting AQI from Aeris weather. The error was:#012list index out of >>> range#012The response from the Aeris AQI server was:#012[{'success': True, >>> 'error': {'code': 'warn_no_data', 'description': 'Valid request. No results >>> available based on your query parameters.'}, 'response': []}]#012The URL >>> being used is:#012 >>> https://api.aerisapi.com/airquality/closest?p=42.8375,-103.0094&format=json&radius=50mi&limit=1&client_id=dgmFzs4Y5jdGxm1G8Nf1p&client_secret=yCSHitr5LudLyWDSzTBKYBNBclSZk844wym6LHeT >>> >>> Jan 28 16:40:22 raspberrypi weewx[11404] INFO weewx.cheetahgenerator: >>> Generated 11 files for report Belchertown in 3.83 seconds Jan 28 16:40:22 >>> raspberrypi weewx[11404] INFO weewx.reportengine: Copied 37 files to >>> /var/www/html/weewx/belchertown Jan 28 16:40:24 raspberrypi weewx[11404] >>> ERROR weeutil.ftpupload: Failed uploading >>> /var/www/html/weewx/weekbarometer.png to server www.billandcorena.com. >>> Reason: '[Errno 0] Error' >>> >>> Jan 28 16:40:24 raspberrypi weewx[11404] ERROR weewx.reportengine: >>> ftpgenerator: (0): caught exception '<class 'OSError'>': [Errno 0] Error >>> >>> Jan 28 16:40:24 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** Traceback (most recent call last): >>> >>> Jan 28 16:40:24 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** File >>> "/usr/share/weewx/weewx/reportengine.py", line 331, in run >>> >>> Jan 28 16:40:24 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** n = ftp_data.run() >>> >>> Jan 28 16:40:24 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** File >>> "/usr/share/weewx/weeutil/ftpupload.py", line 163, in run >>> >>> Jan 28 16:40:24 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** ftp_server.storbinary(stor_cmd, fd) >>> >>> Jan 28 16:40:24 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** File "/usr/lib/python3.7/ftplib.py", >>> line 514, in storbinary >>> >>> Jan 28 16:40:24 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** conn.unwrap() >>> >>> Jan 28 16:40:24 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** File "/usr/lib/python3.7/ssl.py", line >>> 1094, in unwrap >>> >>> Jan 28 16:40:24 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** s = self._sslobj.shutdown() >>> >>> Jan 28 16:40:24 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** OSError: [Errno 0] Error >>> >>> Jan 28 16:40:25 raspberrypi weewx[11404] ERROR weeutil.ftpupload: Failed >>> uploading /var/www/html/weewx/weekbarometer.png to server >>> www.billandcorena.com. Reason: '[Errno 0] Error' >>> >>> Jan 28 16:40:25 raspberrypi weewx[11404] ERROR weewx.reportengine: >>> ftpgenerator: (1): caught exception '<class 'OSError'>': [Errno 0] Error >>> >>> Jan 28 16:40:25 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** Traceback (most recent call last): >>> >>> Jan 28 16:40:25 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** File >>> "/usr/share/weewx/weewx/reportengine.py", line 331, in run >>> >>> Jan 28 16:40:25 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** n = ftp_data.run() >>> >>> Jan 28 16:40:25 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** File >>> "/usr/share/weewx/weeutil/ftpupload.py", line 163, in run >>> >>> Jan 28 16:40:25 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** ftp_server.storbinary(stor_cmd, fd) >>> >>> Jan 28 16:40:25 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** File "/usr/lib/python3.7/ftplib.py", >>> line 514, in storbinary >>> >>> Jan 28 16:40:25 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** conn.unwrap() >>> >>> Jan 28 16:40:25 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** File "/usr/lib/python3.7/ssl.py", line >>> 1094, in unwrap >>> >>> Jan 28 16:40:25 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** s = self._sslobj.shutdown() >>> >>> Jan 28 16:40:25 raspberrypi weewx[11404] ERROR >>> weewx.reportengine: **** OSError: [Errno 0] Error >>> >>> Jan 28 16:40:26 raspberrypi weewx[11404] ERROR weeutil.ftpupload: Failed >>> uploading /var/www/html/weewx/weekbarometer.png to server >>> www.billandcorena.com. Reason: '[Errno 0] Error' >>> >>> >>> >>> >>> >>> *From:* [email protected] <[email protected]> *On >>> Behalf Of *Tom Keffer >>> *Sent:* Thursday, January 28, 2021 3:44 PM >>> *To:* weewx-user <[email protected]> >>> *Subject:* Re: [weewx-user] FTP >>> >>> >>> >>> It is very difficult to read your log trace because of the formatting, >>> and you did not supply much of the log. >>> >>> >>> >>> One possible problem: are you sure you want >>> >>> >>> >>> path = /public_html/weather/weewx >>> >>> >>> >>> This will be the *destination* directory on www.billandcorena.com. Is >>> that your intention? >>> >>> >>> >>> If that's not the problem, then we will need to see more of the log. See >>> the wiki article *Help! Posting to weewx-user >>> <https://github.com/weewx/weewx/wiki/Help!-Posting-to-weewx-user>* for >>> how to get a good log. >>> >>> >>> >>> >>> >>> >>> >>> On Thu, Jan 28, 2021 at 1:53 PM billandcorena ahrens < >>> [email protected]> wrote: >>> >>> enable = true >>> >>> user = xxxxxxxxxxxxxxxx >>> >>> password = "xxxxxxxxxxxx" >>> >>> server = www.billandcorena.com # The ftp server name, e.g, >>> www.myserver.org >>> >>> path = /public_html/weather/weewx # The destination >>> directory, e.g., /weather >>> >>> >>> >>> # Set to True for an FTP over TLS (FTPS) connection. Not all >>> servers >>> >>> # support this. >>> >>> secure_ftp = true >>> >>> >>> >>> # 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 >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> Jan 28 14:30:22 raspberrypi weewx[10448] INFO weewx.reportengine: >>> >>> Copied 37 files to /var/www/html/weewx/belchertown Jan 28 14:30:24 >>> raspberrypi weewx[10448] ERROR weeutil.ftpupload: Failed uploading >>> /var/www/html/weewx/weekbarometer.png to server www.billandcorena.com. >>> Reason: '[Errno 0] Error' Jan 28 14:30:24 raspberrypi weewx[10448] ERROR >>> weewx.reportengine: ftpgenerator: (0): >>> >>> caught exception '<class 'OSError'>': [Errno 0] Error Jan 28 14:30:24 >>> >>> raspberrypi weewx[10448] ERROR weewx.reportengine: **** >>> >>> Traceback (most recent call last): Jan 28 14:30:24 raspberrypi >>> >>> weewx[10448] ERROR weewx.reportengine: **** File >>> >>> "/usr/share/weewx/weewx/reportengine.py", line 331, in run Jan 28 >>> >>> 14:30:24 raspberrypi weewx[10448] ERROR weewx.reportengine: >>> >>> **** n = ftp_data.run() Jan 28 14:30:24 raspberrypi weewx[10448] >>> >>> ERROR weewx.reportengine: **** File >>> >>> "/usr/share/weewx/weeutil/ftpupload.py", line 163, in run Jan 28 >>> >>> 14:30:24 raspberrypi weewx[10448] ERROR weewx.reportengine: >>> >>> **** ftp_server.storbinary(stor_cmd, fd) Jan 28 14:30:24 >>> >>> raspberrypi weewx[10448] ERROR weewx.reportengine: **** File >>> >>> "/usr/lib/python3.7/ftplib.py", line 514, in storbinary Jan 28 14:30:24 >>> >>> raspberrypi weewx[10448] ERROR weewx.reportengine: **** >>> >>> conn.unwrap() Jan 28 14:30:24 raspberrypi weewx[10448] ERROR >>> >>> weewx.reportengine: **** File "/usr/lib/python3.7/ssl.py", >>> >>> line 1094, in unwrap Jan 28 14:30:24 raspberrypi weewx[10448] ERROR >>> >>> weewx.reportengine: **** s = self._sslobj.shutdown() Jan >>> >>> 28 14:30:24 raspberrypi weewx[10448] ERROR weewx.reportengine: >>> >>> **** OSError: [Errno 0] Error Jan 28 14:30:25 raspberrypi weewx[10448] >>> ERROR weeutil.ftpupload: Failed uploading >>> /var/www/html/weewx/weekbarometer.png to server www.billandcorena.com. >>> Reason: '[Errno 0] Error' >>> >>> >>> >>> -- >>> 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/1b5288f3-accd-466f-856a-16d3bf6739dfn%40googlegroups.com >>> <https://groups.google.com/d/msgid/weewx-user/1b5288f3-accd-466f-856a-16d3bf6739dfn%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "weewx-user" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/weewx-user/NufBr8qeEhc/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/weewx-user/CAPq0zEBkb%2BQfJNjcO4m%2BU7KfmiuBKfKYbAukYcrcZFHNTVQGwA%40mail.gmail.com >>> <https://groups.google.com/d/msgid/weewx-user/CAPq0zEBkb%2BQfJNjcO4m%2BU7KfmiuBKfKYbAukYcrcZFHNTVQGwA%40mail.gmail.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/00b501d6f5cf%24c5f520e0%2451df62a0%24%40billandcorena.com >>> <https://groups.google.com/d/msgid/weewx-user/00b501d6f5cf%24c5f520e0%2451df62a0%24%40billandcorena.com?utm_medium=email&utm_source=footer> >>> . >>> >>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "weewx-user" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/weewx-user/NufBr8qeEhc/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/weewx-user/CAPq0zEDT66LAcMSjL%3DqSoqHHMWNjaDt9_etSiktCsh39Eb9quA%40mail.gmail.com >>> <https://groups.google.com/d/msgid/weewx-user/CAPq0zEDT66LAcMSjL%3DqSoqHHMWNjaDt9_etSiktCsh39Eb9quA%40mail.gmail.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/00c901d6f5d3%24b83fc5a0%2428bf50e0%24%40billandcorena.com >>> <https://groups.google.com/d/msgid/weewx-user/00c901d6f5d3%24b83fc5a0%2428bf50e0%24%40billandcorena.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/CAPq0zECh9R6Zfo1-MUNzYmAdzjj73U24CPv_FC7B_Bb675jaoQ%40mail.gmail.com >> <https://groups.google.com/d/msgid/weewx-user/CAPq0zECh9R6Zfo1-MUNzYmAdzjj73U24CPv_FC7B_Bb675jaoQ%40mail.gmail.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/CADhm9Ye9ZGgJWLAUMu0_630cADv1bHu1hNbqeLh2DtDnVWzorg%40mail.gmail.com > <https://groups.google.com/d/msgid/weewx-user/CADhm9Ye9ZGgJWLAUMu0_630cADv1bHu1hNbqeLh2DtDnVWzorg%40mail.gmail.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/CAPq0zEC%2BzqbikGzKWpa0%2ByxTL%3Dx2AF7or1An6QWDbE4GfxZjCA%40mail.gmail.com.
