It's the Weather Underground that should be embarrassed, not you. They quietly changed their api from requiring a password to requiring the api key, but they did so inconsistently. For example, for my WU station, the api key doesn't work --- I must use the password. Go figure.
But, this is just the reason why your installation no longer raises an exception. It does not explain why ssl.CertificateError does not exist. Can you double check that you are using Python 3? *Look at the log*. Do not rely on what the shell runs. When WeeWX starts up, you'll see something like: Nov 3 04:13:29 nuc weewx[141723] INFO __main__: Initializing weewx version 4.2.0 Nov 3 04:13:29 nuc weewx[141723] INFO __main__: Using Python 3.5.9 (default, Sep 7 2020, 07:45:24) #012[GCC 9.3.0] Nov 3 04:13:29 nuc weewx[141723] INFO __main__: Platform Linux-5.4.0-52-generic-x86_64-with-debian-bullseye-sid Nov 3 04:13:29 nuc weewx[141723] INFO __main__: Locale is 'en_US.UTF-8' Nov 3 04:13:29 nuc weewx[141723] INFO __main__: Using configuration file /home/weewx/weewx.conf Nov 3 04:13:29 nuc weewx[141723] INFO __main__: Debug is 1 Nov 3 04:13:29 nuc weewx[141723] DEBUG __main__: Initializing engine It's the two highlighted lines that we want. -tk On Mon, Nov 2, 2020 at 5:31 PM Kirk Lombardy <[email protected]> wrote: > Oh how embarrassing this is. I found what my problem was. I was entering > my login password that I use to access my account. I stumbled upon a > webpage that says to enter your key as your password for wunderground and > not your access password. All is working fine now. > > The weewx config file and the instruction manual must state this for > future reference to avoid confusion. > > Thanks again for your help. > > Kirk > > On Mon, Nov 2, 2020 at 5:16 PM Tom Keffer <[email protected]> wrote: > >> Two things: >> >> 1. You have at least 8 different instances of WeeWX running (that I can >> count). Kill them all, then start just one instance. >> >> 2. While WeeWX does not use ssl.CertificateError, some other library >> function must be. Early versions of Python 2.7 did not include the class >> CertificateError. >> >> Fix problem #1 first. Then, if you still get the CertificateError, either >> upgrade your copy of Python 2.7, or use Python 3. >> >> -tk >> >> On Mon, Nov 2, 2020 at 11:11 AM Kirk <[email protected]> wrote: >> >>> My set-up does not allow my data to upload to the Weather Underground >>> using weewx. I had no problem uploading the data using wuhu. Below are >>> the messages I get about Certificate Error. >>> >>> What do I need to do to fix this problem? The wunderground web pages >>> says my system is connected. >>> >>> Here are my logs: >>> >>> Nov 1 10:04:45 localhost weewx[2191] INFO weewx.restx: Wunderground: >>> Posting not enabled. >>> Nov 1 12:03:28 localhost weewx[19483] INFO weewx.restx: >>> Wunderground-RF: Data for station KOHMENTO21 will be posted >>> Nov 1 12:07:32 localhost weewx[19483] ERROR weewx.restx: >>> Wunderground-RF: Unexpected exception of type <type >>> 'exceptions.AttributeError'> >>> Nov 1 12:07:32 localhost weewx[19483] CRITICAL weewx.restx: >>> Wunderground-RF: Thread terminating. Reason: 'module' object has no >>> attribute 'CertificateError' >>> Nov 1 14:14:29 localhost weewx[5403] INFO weewx.restx: >>> Wunderground-PWS: Data for station KOHMENTO21 will be posted >>> Nov 1 14:15:30 localhost weewx[5403] ERROR weewx.restx: >>> Wunderground-PWS: Unexpected exception of type <type >>> 'exceptions.AttributeError'> >>> Nov 1 14:15:30 localhost weewx[5403] CRITICAL weewx.restx: >>> Wunderground-PWS: Thread terminating. Reason: 'module' object has no >>> attribute 'CertificateError' >>> Nov 1 17:14:54 localhost weewx[31561] INFO weewx.restx: >>> Wunderground-PWS: Data for station KOHMENTO21 will be posted >>> Nov 1 17:24:09 localhost weewx[332] INFO weewx.restx: Wunderground-RF: >>> Data for station KOHMENTO21 will be posted >>> Nov 1 17:42:14 localhost weewx[3190] INFO weewx.restx: Wunderground-RF: >>> Data for station KOHMENTO21 will be posted >>> Nov 1 17:58:43 localhost weewx[5611] INFO weewx.restx: Wunderground-RF: >>> Data for station KOHMENTO21 will be posted >>> Nov 1 18:00:48 localhost weewx[5611] ERROR weewx.restx: >>> Wunderground-RF: Unexpected exception of type <type >>> 'exceptions.AttributeError'> >>> Nov 1 18:00:48 localhost weewx[5611] CRITICAL weewx.restx: >>> Wunderground-RF: Thread terminating. Reason: 'module' object has no >>> attribute 'CertificateError' >>> Nov 1 18:38:56 localhost weewx[11313] INFO weewx.restx: >>> Wunderground-RF: Data for station KOHMENTO21 will be posted >>> Nov 1 18:40:58 localhost weewx[11313] ERROR weewx.restx: >>> Wunderground-RF: Unexpected exception of type <type >>> 'exceptions.AttributeError'> >>> Nov 1 18:40:58 localhost weewx[11313] CRITICAL weewx.restx: >>> Wunderground-RF: Thread terminating. Reason: 'module' object has no >>> attribute 'CertificateError' >>> Nov 2 05:28:42 localhost weewx[6039] INFO weewx.restx: Wunderground-RF: >>> Data for station KOHMENTO21 will be posted >>> Nov 2 05:40:46 localhost weewx[6039] ERROR weewx.restx: >>> Wunderground-RF: Unexpected exception of type <type >>> 'exceptions.AttributeError'> >>> Nov 2 05:40:46 localhost weewx[6039] CRITICAL weewx.restx: >>> Wunderground-RF: Thread terminating. Reason: 'module' object has no >>> attribute 'CertificateError' >>> Nov 2 05:56:17 localhost weewx[9951] INFO weewx.restx: Wunderground-RF: >>> Data for station KOHMENTO21 will be posted >>> Nov 2 05:57:19 localhost weewx[9951] ERROR weewx.restx: >>> Wunderground-RF: Unexpected exception of type <type >>> 'exceptions.AttributeError'> >>> Nov 2 05:57:19 localhost weewx[9951] CRITICAL weewx.restx: >>> Wunderground-RF: Thread terminating. Reason: 'module' object has no >>> attribute 'CertificateError' >>> Nov 2 06:24:16 localhost weewx[13780] INFO weewx.restx: >>> Wunderground-RF: Data for station KOHMENTO98 will be posted >>> Nov 2 06:25:17 localhost weewx[13780] ERROR weewx.restx: >>> Wunderground-RF: Unexpected exception of type <type >>> 'exceptions.AttributeError'> >>> Nov 2 06:25:17 localhost weewx[13780] CRITICAL weewx.restx: >>> Wunderground-RF: Thread terminating. Reason: 'module' object has no >>> attribute 'CertificateError' >>> Nov 2 06:39:05 localhost weewx[15816] INFO weewx.restx: >>> Wunderground-RF: Data for station KOHMENTO21 will be posted >>> Nov 2 06:40:07 localhost weewx[15816] ERROR weewx.restx: >>> Wunderground-RF: Unexpected exception of type <type >>> 'exceptions.AttributeError'> >>> Nov 2 06:40:07 localhost weewx[15816] CRITICAL weewx.restx: >>> Wunderground-RF: Thread terminating. Reason: 'module' object has no >>> attribute 'CertificateError' >>> Nov 2 07:45:52 localhost weewx[25096] INFO weewx.restx: >>> Wunderground-RF: Data for station kohmento21 will be posted >>> Nov 2 07:46:53 localhost weewx[25096] ERROR weewx.restx: >>> Wunderground-RF: Unexpected exception of type <type >>> 'exceptions.AttributeError'> >>> Nov 2 07:46:53 localhost weewx[25096] CRITICAL weewx.restx: >>> Wunderground-RF: Thread terminating. Reason: 'module' object has no >>> attribute 'CertificateError' >>> >>> >>> Here is my config file from weewx.cfg: >>> >>> [[Wunderground]] >>> # This section is for configuring posts to the Weather >>> Underground. >>> >>> # If you wish to do this, set the option 'enable' to true, >>> # and specify a station (e.g., 'KORHOODR3') and password. >>> # To guard against parsing errors, put the password in quotes. >>> enable = true >>> station = kohmento21 >>> password = "WXmen99$" >>> >>> log_success = True >>> log_failure = True >>> >>> # If you plan on using wunderfixer, set the following >>> # to your API key: >>> api_key = replace_me >>> >>> # Set the following to True to have weewx use the WU "Rapidfire" >>> # protocol. Not all hardware can support it. See the User's >>> Guide. >>> rapidfire = True >>> >>> >>> ############################################################################## >>> >>> Kirk >>> >>> -- >>> 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/64370e78-e957-4a49-bc16-fbe57801ee3bn%40googlegroups.com >>> <https://groups.google.com/d/msgid/weewx-user/64370e78-e957-4a49-bc16-fbe57801ee3bn%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "weewx-user" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/weewx-user/CAPq0zEBOBApriFCHUD9WRuS1QatYWMVi31_wsiKo%2BP6qP2P6Yw%40mail.gmail.com >> <https://groups.google.com/d/msgid/weewx-user/CAPq0zEBOBApriFCHUD9WRuS1QatYWMVi31_wsiKo%2BP6qP2P6Yw%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/CALF0z9yw7SQGqtfp1akvYwQod-8696oo7Bo60ARiZMATv5EuKg%40mail.gmail.com > <https://groups.google.com/d/msgid/weewx-user/CALF0z9yw7SQGqtfp1akvYwQod-8696oo7Bo60ARiZMATv5EuKg%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/CAPq0zEDATqT9pONSdx-Q6XyNBFBxccv14fwbPovHKFWYf0hWOg%40mail.gmail.com.
