Thanks Jimi.  I don't know if it's relevant or not.  I don't know what the 
*get* '550 command is about, but the " /web/gsdglobal/Weather_GTB" is the 
folder location to which the files should be copied (as specified in the 
weewx.conf file).  I also don't know what the response \n' means either.  I 
can confirm, however, that it does not matter whether the folder has any 
files in it or not.  Weewx still fails to put anything in the folder, but I 
am still able to put files there thru manual FTP regardless of whether they 
exist there or not.

On Wednesday, December 10, 2025 at 8:18:52 PM UTC-7 Jimi Lawson wrote:

> *get* '550 /web/gsdglobal/Weather_GTB: File exists.\n'   
> Is this not relevant ? i.e is the server not allowing overwriting of an 
> existing file ?
>
> On Thursday, 11 December 2025 at 03:03:59 UTC F Y wrote:
>
>> I figured that "unusual" ip address would come up.  That is an ip address 
>> of one of the machines in my "tailnet", which is a mesh virtual VPN running 
>> thru "Tailscale" (tailscale.com).  Since many of my machines are behind 
>> CGNAT, this is the only way to keep them connected remotely. 
>>
>>  In answer to your questions:
>>
>>
>>    - 
>>
>>
>>    - Are your weewx system and your NAS on the same LAN ?
>>
>>
>>    - 
>>       -   They are, but they are communicating thru tailscale with their 
>>       mesh ip addresses.  The NAS and the rPi each have their own ip address 
>> in 
>>       the 100.x.x.x segment
>>    - 
>>
>>
>>    - What is the ip address of each ? 
>>
>>
>>    - 
>>       - As stated above, they each have their own address in that 
>>       segment.  It is not reachable by anyone but other machines in my 
>> tailnet 
>>       ... all of which are in the 100.x.x.x segment
>>    - 
>>
>>
>>    - Which ip address have you been connecting to when you run ftp 
>>    manually ?  
>>
>>
>>    - 
>>       - I can connect manually to the 100.122.175.72 address, which is 
>>       the NAS.  Manual communication between rPi and the NAS is problem 
>> free.  
>>    
>> From the wee_report (above the logs) you will also see the connection 
>> made to "Diskstation1005".  This IS the NAS at the 100.122.175.72 address. 
>>  That report indicates a connection since it is able to read the 
>> destination folder and that it exists.  However it then "quit" 's after a 
>> PASV command with a weird loopback address of 127.0.0.1, 218,66 and 78 on 
>> subsequient attempts
>>
>> The "visibility" of the NAS from the rPi is seamless.  There is no DNS 
>> resolution of any sort.  The weewx.conf file lists the FTP server simply 
>> with the 100.x.x.x address.  I can ping the address from the rPi with solid 
>> results
>> On Wednesday, December 10, 2025 at 6:37:06 PM UTC-7 vince wrote:
>>
>>> The address indicated in your logs of 100.122.175.72 is a 'very' unusual 
>>> address.  A quick lookup at 
>>> https://en.wikipedia.org/wiki/Private_network says it's related to 
>>> carrier-grade NAT.
>>>
>>>
>>>    - Are your weewx system and your NAS on the same LAN ?
>>>    - What is the ip address of each ?
>>>    - Which ip address have you been connecting to when you run ftp 
>>>    manually ?
>>>
>>> I wonder if you're doing a DNS lookup perhaps on your weewx system and 
>>> it's resolving to an external NAT'd address (which I would expect to fail) 
>>> rather than to an internal not-NAT'd address which might work.
>>>
>>>
>>> On Wednesday, December 10, 2025 at 5:16:41 PM UTC-8 F Y wrote:
>>>
>>>> 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/fe009460-14dc-4bce-a8e5-882681428752n%40googlegroups.com.

Reply via email to