After setting debug=2, this is the result of the still failing attempts to get FTP to connect from weewx:
Restarting weewx after the weewx.conf change and running the report I get this: pi@raspberrypi:/var/log $ sudo /bin/wee_reports /etc/weewx/weewx.conf Generating as of last timestamp in the database. Using configuration file /etc/weewx/weewx.conf *get* '220 Diskstation1005 FTP server ready.\n' *resp* '220 Diskstation1005 FTP server ready.' *cmd* 'USER forrest' *put* 'USER forrest\r\n' *get* '331 Password required for forrest.\n' *resp* '331 Password required for forrest.' *cmd* 'PASS *************' *put* 'PASS *************\r\n' *get* '230 User forrest logged in.\n' *resp* '230 User forrest logged in.' *cmd* 'MKD /web/gsdglobal/Weather_GTB' *put* 'MKD /web/gsdglobal/Weather_GTB\r\n' *get* '550 /web/gsdglobal/Weather_GTB: File exists.\n' *resp* '550 /web/gsdglobal/Weather_GTB: File exists.' *cmd* 'TYPE I' *put* 'TYPE I\r\n' *get* '200 Type set to I.\n' *resp* '200 Type set to I.' *cmd* 'PASV' *put* 'PASV\r\n' *get* '227 Entering Passive Mode (127,0,0,1,218,66)\n' *resp* '227 Entering Passive Mode (127,0,0,1,218,66)' *cmd* 'QUIT' *put* 'QUIT\r\n' *get* '221 Goodbye. You uploaded 0 bytes and downloaded 0 bytes.\n' *resp* '221 Goodbye. You uploaded 0 bytes and downloaded 0 bytes.' *get* '220 Diskstation1005 FTP server ready.\n' *resp* '220 Diskstation1005 FTP server ready.' *cmd* 'USER forrest' *put* 'USER forrest\r\n' *get* '331 Password required for forrest.\n' *resp* '331 Password required for forrest.' *cmd* 'PASS *************' *put* 'PASS *************\r\n' *get* '230 User forrest logged in.\n' *resp* '230 User forrest logged in.' *cmd* 'MKD /web/gsdglobal/Weather_GTB' *put* 'MKD /web/gsdglobal/Weather_GTB\r\n' *get* '550 /web/gsdglobal/Weather_GTB: File exists.\n' *resp* '550 /web/gsdglobal/Weather_GTB: File exists.' *cmd* 'TYPE I' *put* 'TYPE I\r\n' *get* '200 Type set to I.\n' *resp* '200 Type set to I.' *cmd* 'PASV' *put* 'PASV\r\n' *get* '227 Entering Passive Mode (127,0,0,1,218,78)\n' *resp* '227 Entering Passive Mode (127,0,0,1,218,78)' *cmd* 'QUIT' *put* 'QUIT\r\n' *get* '221 Goodbye. You uploaded 0 bytes and downloaded 0 bytes.\n' *resp* '221 Goodbye. You uploaded 0 bytes and downloaded 0 bytes.' *get* '220 Diskstation1005 FTP server ready.\n' *resp* '220 Diskstation1005 FTP server ready.' *cmd* 'USER forrest' *put* 'USER forrest\r\n' *get* '331 Password required for forrest.\n' *resp* '331 Password required for forrest.' *cmd* 'PASS *************' *put* 'PASS *************\r\n' *get* '230 User forrest logged in.\n' *resp* '230 User forrest logged in.' *cmd* 'MKD /web/gsdglobal/Weather_GTB' *put* 'MKD /web/gsdglobal/Weather_GTB\r\n' *get* '550 /web/gsdglobal/Weather_GTB: File exists.\n' *resp* '550 /web/gsdglobal/Weather_GTB: File exists.' *cmd* 'TYPE I' *put* 'TYPE I\r\n' *get* '200 Type set to I.\n' *resp* '200 Type set to I.' *cmd* 'PASV' *put* 'PASV\r\n' *get* '227 Entering Passive Mode (127,0,0,1,218,79)\n' *resp* '227 Entering Passive Mode (127,0,0,1,218,79)' *cmd* 'QUIT' *put* 'QUIT\r\n' *get* '221 Goodbye. You uploaded 0 bytes and downloaded 0 bytes.\n' *resp* '221 Goodbye. You uploaded 0 bytes and downloaded 0 bytes.' pi@raspberrypi:/var/log $ And here is the last 100 lines of the log file after startup: pi@raspberrypi:~ $ journalctl -u weewx | tail -n 100 Dec 10 17:58:02 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.drivers.vantage: Requesting 200 LOOP packets. Dec 10 17:58:03 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.drivers.vantage: Successfully woke up Vantage console Dec 10 18:00:14 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.drivers.vantage: Getting archive packets since 2025-12-10 17:30:00 MST (1765413000) Dec 10 18:00:15 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.drivers.vantage: Successfully woke up Vantage console Dec 10 18:00:15 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.drivers.vantage: Retrieving 1 page(s); starting index= 3 Dec 10 18:00:15 raspberrypi python3[353842]: weewx[353842] INFO weewx.manager: Added record 2025-12-10 18:00:00 MST (1765414800) to database 'weewx.sdb' Dec 10 18:00:15 raspberrypi python3[353842]: weewx[353842] INFO weewx.manager: Added record 2025-12-10 18:00:00 MST (1765414800) to daily summary in 'weewx.sdb' Dec 10 18:00:15 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.drivers.vantage: DMPAFT complete: page timestamp 2025-10-18 11:30:00 MDT (1760808600) less than final timestamp 2025-12-10 18:00:00 MST (1765414800) Dec 10 18:00:15 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.drivers.vantage: Catch up complete. Dec 10 18:00:15 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.reportengine: Running reports for latest time in the database. Dec 10 18:00:15 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.drivers.vantage: Requesting 200 LOOP packets. Dec 10 18:00:15 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.reportengine: Running report 'SeasonsReport' Dec 10 18:00:15 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Seasons/skin.conf for report 'SeasonsReport' Dec 10 18:00:16 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.DisplayOptions', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.Gettext', 'weewx.cheetahgenerator.JSONHelpers', 'weewx.cheetahgenerator.PlotInfo', 'weewx.cheetahgenerator.SkinInfo', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo'] Dec 10 18:00:16 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.manager: Daily summary version is 4.0 Dec 10 18:00:16 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.drivers.vantage: Successfully woke up Vantage console Dec 10 18:00:18 raspberrypi python3[353842]: weewx[353842] INFO weewx.cheetahgenerator: Generated 8 files for report SeasonsReport in 2.25 seconds Dec 10 18:00:18 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.manager: Daily summary version is 4.0 Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] INFO weewx.imagegenerator: Generated 54 images for report SeasonsReport in 4.87 seconds Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] INFO weewx.reportengine: Copied 5 files to /var/www/html/weewx Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.reportengine: Report 'SmartphoneReport' not enabled. Skipping. Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.reportengine: Report 'MobileReport' not enabled. Skipping. Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.reportengine: Report 'StandardReport' not enabled. Skipping. Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.reportengine: Running report 'StackedWindRose' Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/StackedWindRose/skin.conf for report 'StackedWindRose' Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.reportengine: Cannot read localization file /etc/weewx/skins/StackedWindRose/lang/en.conf for report 'StackedWindRose': Config file not found: "/etc/weewx/skins/StackedWindRose/lang/en.conf". Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.reportengine: **** Using defaults instead. Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.manager: Daily summary version is 4.0 Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] INFO user.stackedwindrose: Generated 1 images for StackedWindRose in 0.04 seconds Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.reportengine: Running report 'FTP' Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Ftp/skin.conf for report 'FTP' Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.reportengine: Cannot read localization file /etc/weewx/skins/Ftp/lang/en.conf for report 'FTP': Config file not found: "/etc/weewx/skins/Ftp/lang/en.conf". Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weewx.reportengine: **** Using defaults instead. Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weeutil.ftpupload: Attempting connection to 100.122.175.72 Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weeutil.ftpupload: Connected to 100.122.175.72 Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weeutil.ftpupload: 0 ./yearvolt.png a2a9c2b124013c1fafaaa0bcd25184333bf0f7ef50147f8ae945b6b24b133d82 Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weeutil.ftpupload: Failed uploading /var/www/html/weewx/yearvolt.png to server 100.122.175.72. Reason: '[Errno 111] Connection refused' Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: ftpgenerator: (0): caught exception '<class 'ConnectionRefusedError'>': [Errno 111] Connection refused Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** Traceback (most recent call last): Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 437, in run Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** n = ftp_data.run() Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/share/weewx/weeutil/ftpupload.py", line 220, in run Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** ftp_server.storbinary(stor_cmd, fd) Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/lib/python3.9/ftplib.py", line 491, in storbinary Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** with self.transfercmd(cmd, rest) as conn: Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/lib/python3.9/ftplib.py", line 386, in transfercmd Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** return self.ntransfercmd(cmd, rest)[0] Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/lib/python3.9/ftplib.py", line 347, in ntransfercmd Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** conn = socket.create_connection((host, port), self.timeout, Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/lib/python3.9/socket.py", line 843, in create_connection Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** raise err Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/lib/python3.9/socket.py", line 831, in create_connection Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** sock.connect(sa) Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** ConnectionRefusedError: [Errno 111] Connection refused Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weeutil.ftpupload: Attempting connection to 100.122.175.72 Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weeutil.ftpupload: Connected to 100.122.175.72 Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weeutil.ftpupload: 0 ./yearvolt.png a2a9c2b124013c1fafaaa0bcd25184333bf0f7ef50147f8ae945b6b24b133d82 Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weeutil.ftpupload: Failed uploading /var/www/html/weewx/yearvolt.png to server 100.122.175.72. Reason: '[Errno 111] Connection refused' Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: ftpgenerator: (1): caught exception '<class 'ConnectionRefusedError'>': [Errno 111] Connection refused Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** Traceback (most recent call last): Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 437, in run Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** n = ftp_data.run() Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/share/weewx/weeutil/ftpupload.py", line 220, in run Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** ftp_server.storbinary(stor_cmd, fd) Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/lib/python3.9/ftplib.py", line 491, in storbinary Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** with self.transfercmd(cmd, rest) as conn: Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/lib/python3.9/ftplib.py", line 386, in transfercmd Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** return self.ntransfercmd(cmd, rest)[0] Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/lib/python3.9/ftplib.py", line 347, in ntransfercmd Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** conn = socket.create_connection((host, port), self.timeout, Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/lib/python3.9/socket.py", line 843, in create_connection Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** raise err Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/lib/python3.9/socket.py", line 831, in create_connection Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** sock.connect(sa) Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** ConnectionRefusedError: [Errno 111] Connection refused Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weeutil.ftpupload: Attempting connection to 100.122.175.72 Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weeutil.ftpupload: Connected to 100.122.175.72 Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] DEBUG weeutil.ftpupload: 0 ./yearvolt.png a2a9c2b124013c1fafaaa0bcd25184333bf0f7ef50147f8ae945b6b24b133d82 Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weeutil.ftpupload: Failed uploading /var/www/html/weewx/yearvolt.png to server 100.122.175.72. Reason: '[Errno 111] Connection refused' Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: ftpgenerator: (2): caught exception '<class 'ConnectionRefusedError'>': [Errno 111] Connection refused Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** Traceback (most recent call last): Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 437, in run Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** n = ftp_data.run() Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/share/weewx/weeutil/ftpupload.py", line 220, in run Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** ftp_server.storbinary(stor_cmd, fd) Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/lib/python3.9/ftplib.py", line 491, in storbinary Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** with self.transfercmd(cmd, rest) as conn: Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/lib/python3.9/ftplib.py", line 386, in transfercmd Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** return self.ntransfercmd(cmd, rest)[0] Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/lib/python3.9/ftplib.py", line 347, in ntransfercmd Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** conn = socket.create_connection((host, port), self.timeout, Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/lib/python3.9/socket.py", line 843, in create_connection Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** raise err Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** File "/usr/lib/python3.9/socket.py", line 831, in create_connection Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** sock.connect(sa) Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: **** ConnectionRefusedError: [Errno 111] Connection refused Dec 10 18:00:23 raspberrypi python3[353842]: weewx[353842] ERROR weewx.reportengine: ftpgenerator: Upload failed pi@raspberrypi:~ $ On Wednesday, December 10, 2025 at 2:52:55 PM UTC-7 F Y wrote: > And yes, weewx was stopped and restarted multiple times as I tried a > variety of things to get it to work. Will try the debug=2 to see what that > tells me > > On Wednesday, December 10, 2025 at 2:51:04 PM UTC-7 F Y wrote: > >> Yes, weewx.conf file is updated to the correct server and port >> information. And, as stated, I CAN connect to the server manually with the >> same info over the same port 21, just won't connect with weewx doing the FTP >> >> On Wednesday, December 10, 2025 at 2:13:17 PM UTC-7 vince wrote: >> >>> Connection refused generally means you are trying to connect to a >>> server:port combination that the remote computer isn't listening on. >>> >>> Did you edit weewx.conf to change the 'server' and 'port' settings to >>> match your NAS setup 'and' also restart weewx ? >>> >>> On Wednesday, December 10, 2025 at 12:57:28 PM UTC-8 F Y wrote: >>> >>>> I have an unusual FTP problem. I recently moved my weather server from >>>> online to a locally hosed web server running on a Synology NAS. No matter >>>> what I do, I can not get the FTP transfer to work with the new server on >>>> the Synology NAS. >>>> >>>> I'm running weewx 4.10.x >>>> The conf file has all the correct login information and the NAS is >>>> seemingly set up correctly because I can manually FTP into the NAS and >>>> transfer files with no issue. >>>> >>>> *When weewx used FTP to access the online service over the last 2 >>>> years, everything worked as expected. >>>> >>>> * user and PW are exactly the same if manual or in weewx.conf >>>> >>>> -FTP server = Synology NAS DS718+ >>>> -Using standard FTP, not FTPs or SFTP >>>> -weewx running on Rpi4 (bullseye) >>>> -error from log file is always "ConnectionRefusedError: [Errno 111] >>>> Connection Refused >>>> ftpgenerator: upload failed >>>> >>>> I'd rather not move to weewx v5.x, unless there is no other solution to >>>> my problem >>>> >>>> >>>> >>>> >>>> -- 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 visit https://groups.google.com/d/msgid/weewx-user/a2795362-7921-45f4-8474-a9fd75b513fbn%40googlegroups.com.
