Thanks, Tom, I "sort of" understand what you are saying but have no idea how to do what you suggest. Sorry but I'm not a programmer. I'm using the same emoncms extension (0.17) as I have been running for 8 years on ubuntu weewx 4.10.2 with no problems (it was running up until 4 days ago) and posting correctly (node 0) to my emoncms server. All of this is done on the same LAN. I tried limiting the data from weewx to emoncms to 2 items to see if that helped anything:
[[EmonCMS]] token = 3bff2182121fbefca8f0xxxxxxxxxxxx prefix = weather server_url = http://192.168.1.174/emoncms/input/post.json [[[inputs]]] [[[[barometer]]]] units = inHg name = barometer_inHg format = %.3f [[[[outTemp]]]] units = degree_F name = outTemp_F format = %.1f Still having problems. I am posting a debug=2 output in the attached file . Thanks. Cheers, Bob On Tuesday, December 31, 2024 at 10:58:55 AM UTC-5 Tom Keffer wrote: > If I'm reading the debug=2 log correctly, it looks like it's trying an > HTTP GET with a JSON structure in the URL itself: > > http://192.168.1.174/emoncms/input/post.json?apikey=XXX&time=1735657200.0&node=0&json={weather_dateTime:1735657200.0,weather_usUnits:1.0, > ...etc... } > > > Those braces should be escaped in the URL. Or, even better, use a POST > statement and put the JSON structure in the request body. > > > It's also possible I'm misinterpreting what's there! > > > -tk > > > On Tue, Dec 31, 2024 at 7:47 AM bgra...@umw.edu <bgra...@umw.edu> wrote: > >> Vince, >> I checked the [[EmonCMS]] stanza within the [StdRESTful] and all seems >> ok. I have attached two files. weewx.log.test.txt is the complete log >> (debug=2) showing an archive period activity. >> weewx.log.emoncms.txt shows a section where it looks as if it's sending >> data to emoncms (192.168.1.174 on the same WAN). I have noted an error >> regarding the Greek "mu" character which it doesn't seem to like. I got >> this before with the Ubuntu weewx (4.10.2) but it posted the data to >> emoncms just the same. Could there be something in weewx 5.1 that is >> refusing the data because of this non-ascii character? >> >> UnicodeEncodeError: 'ascii' codec can't encode character '\xb5' in >> position 904: ordinal not in range(128) >> Dec 31 10:00:15 RPI5 weewxd[2297446]: CRITICAL weewx.restx: EmonCMS: >> Thread terminating. Reason: 'ascii' codec can't encode character '\xb5' in >> position 904: ordinal not in range(128) >> >> Thanks for your help and best wishes for the New Year! >> Cheers, >> Bob >> On Monday, December 30, 2024 at 10:28:30 PM UTC-5 vince wrote: >> >>> Try setting debug=2, restart weewx, and look for log entries with the >>> string "url:" in it which should be logged. >>> >>> Only other thing I can think of is whether you correctly added the >>> [[EmonCMS]] stanza within the [StdRESTful] contents, or possibly have a >>> typo in the url you're trying to post to. Hopefully you've checked that >>> your weewx system can reach the url you posted above in this thread and >>> that the server side answers to begin with. >>> >>> Other than than that, I'm out of ideas on this one. I'm finding the >>> extension code very hard to decipher vs. your log snippet. >>> >>> On Monday, December 30, 2024 at 12:58:40 PM UTC-8 bgra...@umw.edu wrote: >>> >>>> Hi Vince, >>>> Ok, I tried and got errors so something may have changed I need to >>>> correct. >>>> >>>> This was running correctly on weewx 4.10.2 (Ubuntu latest). I >>>> downloaded the zip file and installed the extension with weectl extension >>>> install. >>>> ``` >>>> (weewx-venv) bg@RPI5:~/weewx-data $ weectl extension list >>>> Using configuration file /home/bg/weewx-data/weewx.conf >>>> Extension Name Version Description >>>> MQTTSubscribe 3.0.0-rc08Source WeeWX data from MQTT. >>>> emoncms 0.17 Upload weather data to EmonCMS. >>>> ``` >>>> I copied the following from my old weewx.conf: >>>> ``` >>>> [[EmonCMS]] >>>> url = http://192.168.1.174/emoncms/input/post.json >>>> token = 3bff2182121fbefca8f0c5d0cxxxxxx >>>> prefix = weather >>>> ``` >>>> The following is a section from weewx.log at the 15 minute archival >>>> time: >>>> >>>> ``` >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: INFO weewx.manager: Added record >>>> 2024-12-30 15:30:00 EST (1735590600) to database 'weewx.sdb' >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: INFO weewx.manager: Added record >>>> 2024-12-30 15:30:00 EST (1735590600) to daily summary in 'weewx.sdb' >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: EmonCMS: >>>> Unexpected exception of type <class 'UnicodeEncodeError'> >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** Traceback >>>> (most recent call last): >>>> Dec 30 15:30:15 RPI5 python3[2112056]: Exception in thread EmonCMS: >>>> Dec 30 15:30:15 RPI5 python3[2112056]: Traceback (most recent call >>>> last): >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/usr/lib/python3.11/threading.py", line 1038, in _bootstrap_inner >>>> Dec 30 15:30:15 RPI5 python3[2112056]: self.run() >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/home/bg/weewx-venv/lib/python3.11/site-packages/weewx/restx.py", line >>>> 357, in run >>>> Dec 30 15:30:15 RPI5 python3[2112056]: self.run_loop(_manager) >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/home/bg/weewx-venv/lib/python3.11/site-packages/weewx/restx.py", line >>>> 384, in run_loop >>>> Dec 30 15:30:15 RPI5 python3[2112056]: self.process_record(_record, >>>> dbmanager) >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/home/bg/weewx-data/bin/user/emoncms.py", line 288, in process_record >>>> Dec 30 15:30:15 RPI5 python3[2112056]: self.post_with_retries(req) >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/home/bg/weewx-venv/lib/python3.11/site-packages/weewx/restx.py", line >>>> 482, in post_with_retries >>>> Dec 30 15:30:15 RPI5 python3[2112056]: _response = >>>> self.post_request(request, data) >>>> Dec 30 15:30:15 RPI5 python3[2112056]: >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/home/bg/weewx-venv/lib/python3.11/site-packages/weewx/restx.py", line >>>> 553, in post_request >>>> Dec 30 15:30:15 RPI5 python3[2112056]: _response = >>>> urllib.request.urlopen(request, data=data, timeout=self.timeout) >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** File >>>> "/home/bg/weewx-venv/lib/python3.11/site-packages/weewx/restx.py", line >>>> 384, in run_loop >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> self.process_record(_record, dbmanager) >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** File >>>> "/home/bg/weewx-data/bin/user/emoncms.py", line 288, in process_record >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> self.post_with_retries(req) >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** File >>>> "/home/bg/weewx-venv/lib/python3.11/site-packages/weewx/restx.py", line >>>> 482, in post_with_retries >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> _response = self.post_request(request, data) >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** File >>>> "/home/bg/weewx-venv/lib/python3.11/site-packages/weewx/restx.py", line >>>> 553, in post_request >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> _response = urllib.request.urlopen(request, data=data, >>>> timeout=self.timeout) >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** File >>>> "/usr/lib/python3.11/urllib/request.py", line 216, in urlopen >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** return >>>> opener.open(url, data, timeout) >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** File >>>> "/usr/lib/python3.11/urllib/request.py", line 519, in open >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> response = self._open(req, data) >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> ^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** File >>>> "/usr/lib/python3.11/urllib/request.py", line 536, in _open >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** result >>>> = self._call_chain(self.handle_open, protocol, protocol + >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** File >>>> "/usr/lib/python3.11/urllib/request.py", line 496, in _call_chain >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** result >>>> = func(*args) >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> ^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** File >>>> "/usr/lib/python3.11/urllib/request.py", line 1377, in http_open >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** return >>>> self.do_open(http.client.HTTPConnection, req) >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** File >>>> "/usr/lib/python3.11/urllib/request.py", line 1348, in do_open >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> h.request(req.get_method(), req.selector, req.data, headers, >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** File >>>> "/usr/lib/python3.11/http/client.py", line 1282, in request >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> self._send_request(method, url, body, headers, encode_chunked) >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** File >>>> "/usr/lib/python3.11/http/client.py", line 1293, in _send_request >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> self.putrequest(method, url, **skips) >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** File >>>> "/usr/lib/python3.11/http/client.py", line 1131, in putrequest >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> self._output(self._encode_request(request)) >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** File >>>> "/usr/lib/python3.11/http/client.py", line 1211, in _encode_request >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** return >>>> request.encode('ascii') >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> ^^^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 python3[2112056]: >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/usr/lib/python3.11/urllib/request.py", line 216, in urlopen >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: ERROR weewx.restx: *** >>>> UnicodeEncodeError: 'ascii' codec can't encode character '\xb5' in >>>> position >>>> 926: ordinal not in range(128) >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: CRITICAL weewx.restx: EmonCMS: >>>> Thread terminating. Reason: 'ascii' codec can't encode character '\xb5' in >>>> position 926: ordinal not in range(128) >>>> Dec 30 15:30:15 RPI5 python3[2112056]: return opener.open(url, >>>> data, timeout) >>>> Dec 30 15:30:15 RPI5 python3[2112056]: >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/usr/lib/python3.11/urllib/request.py", line 519, in open >>>> Dec 30 15:30:15 RPI5 python3[2112056]: response = self._open(req, >>>> data) >>>> Dec 30 15:30:15 RPI5 python3[2112056]: >>>> ^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/usr/lib/python3.11/urllib/request.py", line 536, in _open >>>> Dec 30 15:30:15 RPI5 python3[2112056]: result = >>>> self._call_chain(self.handle_open, protocol, protocol + >>>> Dec 30 15:30:15 RPI5 python3[2112056]: >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/usr/lib/python3.11/urllib/request.py", line 496, in _call_chain >>>> Dec 30 15:30:15 RPI5 python3[2112056]: result = func(*args) >>>> Dec 30 15:30:15 RPI5 python3[2112056]: ^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/usr/lib/python3.11/urllib/request.py", line 1377, in http_open >>>> Dec 30 15:30:15 RPI5 python3[2112056]: return >>>> self.do_open(http.client.HTTPConnection, req) >>>> Dec 30 15:30:15 RPI5 python3[2112056]: >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/usr/lib/python3.11/urllib/request.py", line 1348, in do_open >>>> Dec 30 15:30:15 RPI5 python3[2112056]: h.request(req.get_method(), >>>> req.selector, req.data, headers, >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/usr/lib/python3.11/http/client.py", line 1282, in request >>>> Dec 30 15:30:15 RPI5 python3[2112056]: self._send_request(method, >>>> url, body, headers, encode_chunked) >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/usr/lib/python3.11/http/client.py", line 1293, in _send_request >>>> Dec 30 15:30:15 RPI5 python3[2112056]: self.putrequest(method, url, >>>> **skips) >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/usr/lib/python3.11/http/client.py", line 1131, in putrequest >>>> Dec 30 15:30:15 RPI5 python3[2112056]: >>>> self._output(self._encode_request(request)) >>>> Dec 30 15:30:15 RPI5 python3[2112056]: >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 python3[2112056]: File >>>> "/usr/lib/python3.11/http/client.py", line 1211, in _encode_request >>>> Dec 30 15:30:15 RPI5 python3[2112056]: return >>>> request.encode('ascii') >>>> Dec 30 15:30:15 RPI5 python3[2112056]: >>>> ^^^^^^^^^^^^^^^^^^^^^^^ >>>> Dec 30 15:30:15 RPI5 python3[2112056]: UnicodeEncodeError: 'ascii' >>>> codec can't encode character '\xb5' in position 926: ordinal not in >>>> range(128) >>>> Dec 30 15:30:15 RPI5 weewxd[2112056]: INFO weewx.restx: >>>> Wunderground-PWS: Published record 2024-12-30 15:30:00 EST (1735590600) >>>> Dec 30 15:30:16 RPI5 weewxd[2112056]: INFO weewx.restx: PWSWeather: >>>> Published record 2024-12-30 15:30:00 EST (1735590600) >>>> Dec 30 15:30:16 RPI5 weewxd[2112056]: ERROR weewx.cheetahgenerator: >>>> Evaluation of template >>>> /home/bg/weewx-data/skins/Standard/smartphone/radar.html.tmpl failed. >>>> Dec 30 15:30:16 RPI5 weewxd[2112056]: ERROR weewx.cheetahgenerator: >>>> **** Ignoring template >>>> /home/bg/weewx-data/skins/Standard/smartphone/radar.html.tmpl >>>> Dec 30 15:30:16 RPI5 weewxd[2112056]: ERROR weewx.cheetahgenerator: >>>> **** Reason: cannot find 'radar_url' while searching for 'Extras.radar_url' >>>> Dec 30 15:30:16 RPI5 weewxd[2112056]: ERROR weewx.cheetahgenerator: >>>> **** To debug, try inserting '#errorCatcher Echo' at top of template >>>> Dec 30 15:30:16 RPI5 weewxd[2112056]: INFO weewx.cheetahgenerator: >>>> Generated 12 files for report StandardReport in 0.73 seconds >>>> Dec 30 15:30:16 RPI5 weewxd[2112056]: INFO weewx.imagegenerator: >>>> Generated 21 images for report StandardReport in 0.47 seconds >>>> Dec 30 15:30:16 RPI5 weewxd[2112056]: INFO weewx.reportengine: Copied >>>> 14 files to /home/bg/weewx-data/public_html >>>> Dec 30 15:30:16 RPI5 weewxd[2112056]: INFO weewx.cheetahgenerator: >>>> Generated 1 files for report LoopDataReport in 0.03 seconds >>>> Dec 30 15:30:16 RPI5 weewxd[2112056]: INFO weewx.reportengine: Copied 1 >>>> files to /home/bg/weewx-data/public_html/loopdata >>>> Dec 30 15:30:16 RPI5 weewxd[2112056]: INFO weewx.cheetahgenerator: >>>> Generated 1 files for report lastrain in 0.03 seconds >>>> Dec 30 15:30:17 RPI5 weewxd[2112056]: INFO weewx.restx: CWOP: Published >>>> record 2024-12-30 15:30:00 EST (1735590600) >>>> Dec 30 15:30:17 RPI5 weewxd[2112056]: INFO weewx.cheetahgenerator: >>>> Generated 2 files for report wxobs in 0.30 seconds >>>> Dec 30 15:30:17 RPI5 weewxd[2112056]: INFO weewx.reportengine: Copied 6 >>>> files to /home/bg/weewx-data/public_html/wxobs >>>> Dec 30 15:30:17 RPI5 weewxd[2112056]: INFO weewx.cheetahgenerator: >>>> Generated 1 files for report PurpleReport in 0.01 seconds >>>> Dec 30 15:30:17 RPI5 weewxd[2112056]: INFO weewx.imagegenerator: >>>> Generated 2 images for report PurpleReport in 0.03 seconds >>>> Dec 30 15:30:17 RPI5 weewxd[2112056]: INFO weewx.restx: AWEKAS: >>>> Published record 2024-12-30 15:30:00 EST (1735590600) >>>> Dec 30 15:30:23 RPI5 weewxd[2112056]: INFO weewx.restx: WOW: Published >>>> record 2024-12-30 15:30:00 EST (1735590600) >>>> Dec 30 15:30:37 RPI5 weewxd[2112056]: INFO weewx.reportengine: >>>> ftpgenerator: Ftp'd 34 files in 20.35 seconds >>>> Dec 30 15:30:57 RPI5 weewxd[2112056]: ERROR weewx.restx: >>>> StationRegistry: Failed to publish record 2024-12-30 15:30:00 EST >>>> (1735590600): HTTP Error 429: TOO MANY REQUESTS >>>> ``` >>>> Thanks for any suggestions. >>>> Cheers, >>>> Bob >>>> >>>> >>>> On Sunday, December 29, 2024 at 3:21:38 PM UTC-5 vince wrote: >>>> >>>>> Try it and see. >>>>> >>>>> On Sunday, December 29, 2024 at 11:58:42 AM UTC-8 bgra...@umw.edu >>>>> wrote: >>>>> >>>>>> Hello, >>>>>> With the exception of weewx-emoncms, I have moved everything (ubuntu >>>>>> weewx 4.10.1) to an RPI5 running weewx 5.1. Will this extension work on >>>>>> 5.1? It has been working fine 4.10.1 but I want to be sure I can move >>>>>> it. >>>>>> Thanks. >>>>>> Cheers, >>>>>> Bob >>>>>> >>>>> -- >> 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 weewx-user+...@googlegroups.com. >> To view this discussion visit >> https://groups.google.com/d/msgid/weewx-user/0dc773bd-347a-45ad-8a93-29c18e7694dan%40googlegroups.com >> >> <https://groups.google.com/d/msgid/weewx-user/0dc773bd-347a-45ad-8a93-29c18e7694dan%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 weewx-user+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/weewx-user/64e3cfb9-ab54-4f28-a5aa-a5b623669570n%40googlegroups.com.
Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** Traceback (most recent call last): Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** File "/home/bg/weewx-venv/lib/python3.11/site-packages/weewx/restx.py", line 384, in run_loop Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** self.process_record(_record, dbmanager) Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** File "/home/bg/weewx-data/bin/user/emoncms.py", line 288, in process_record Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** self.post_with_retries(req) Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** File "/home/bg/weewx-venv/lib/python3.11/site-packages/weewx/restx.py", line 482, in post_with_retries Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** _response = self.post_request(request, data) Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** File "/home/bg/weewx-venv/lib/python3.11/site-packages/weewx/restx.py", line 553, in post_request Dec 31 13:30:15 RPI5 python3[2348946]: Exception in thread EmonCMS: Dec 31 13:30:15 RPI5 python3[2348946]: Traceback (most recent call last): Dec 31 13:30:15 RPI5 python3[2348946]: File "/usr/lib/python3.11/threading.py", line 1038, in _bootstrap_inner Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** _response = urllib.request.urlopen(request, data=data, timeout=self.timeout) Dec 31 13:30:15 RPI5 python3[2348946]: self.run() Dec 31 13:30:15 RPI5 python3[2348946]: File "/home/bg/weewx-venv/lib/python3.11/site-packages/weewx/restx.py", line 357, in run Dec 31 13:30:15 RPI5 python3[2348946]: self.run_loop(_manager) Dec 31 13:30:15 RPI5 python3[2348946]: File "/home/bg/weewx-venv/lib/python3.11/site-packages/weewx/restx.py", line 384, in run_loop Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 python3[2348946]: self.process_record(_record, dbmanager) Dec 31 13:30:15 RPI5 python3[2348946]: File "/home/bg/weewx-data/bin/user/emoncms.py", line 288, in process_record Dec 31 13:30:15 RPI5 python3[2348946]: self.post_with_retries(req) Dec 31 13:30:15 RPI5 python3[2348946]: File "/home/bg/weewx-venv/lib/python3.11/site-packages/weewx/restx.py", line 482, in post_with_retries Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** File "/usr/lib/python3.11/urllib/request.py", line 216, in urlopen Dec 31 13:30:15 RPI5 python3[2348946]: _response = self.post_request(request, data) Dec 31 13:30:15 RPI5 python3[2348946]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 python3[2348946]: File "/home/bg/weewx-venv/lib/python3.11/site-packages/weewx/restx.py", line 553, in post_request Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** return opener.open(url, data, timeout) Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** File "/usr/lib/python3.11/urllib/request.py", line 519, in open Dec 31 13:30:15 RPI5 python3[2348946]: _response = urllib.request.urlopen(request, data=data, timeout=self.timeout) Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** response = self._open(req, data) Dec 31 13:30:15 RPI5 python3[2348946]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 python3[2348946]: File "/usr/lib/python3.11/urllib/request.py", line 216, in urlopen Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** ^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 python3[2348946]: return opener.open(url, data, timeout) Dec 31 13:30:15 RPI5 python3[2348946]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 python3[2348946]: File "/usr/lib/python3.11/urllib/request.py", line 519, in open Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** File "/usr/lib/python3.11/urllib/request.py", line 536, in _open Dec 31 13:30:15 RPI5 python3[2348946]: response = self._open(req, data) Dec 31 13:30:15 RPI5 python3[2348946]: ^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 python3[2348946]: File "/usr/lib/python3.11/urllib/request.py", line 536, in _open Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** result = self._call_chain(self.handle_open, protocol, protocol + Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 python3[2348946]: result = self._call_chain(self.handle_open, protocol, protocol + Dec 31 13:30:15 RPI5 python3[2348946]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 python3[2348946]: File "/usr/lib/python3.11/urllib/request.py", line 496, in _call_chain Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** File "/usr/lib/python3.11/urllib/request.py", line 496, in _call_chain Dec 31 13:30:15 RPI5 python3[2348946]: result = func(*args) Dec 31 13:30:15 RPI5 python3[2348946]: ^^^^^^^^^^^ Dec 31 13:30:15 RPI5 python3[2348946]: File "/usr/lib/python3.11/urllib/request.py", line 1377, in http_open Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** result = func(*args) Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** ^^^^^^^^^^^ Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** File "/usr/lib/python3.11/urllib/request.py", line 1377, in http_open Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** return self.do_open(http.client.HTTPConnection, req) Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** File "/usr/lib/python3.11/urllib/request.py", line 1348, in do_open Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** h.request(req.get_method(), req.selector, req.data, headers, Dec 31 13:30:15 RPI5 python3[2348946]: return self.do_open(http.client.HTTPConnection, req) Dec 31 13:30:15 RPI5 python3[2348946]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 python3[2348946]: File "/usr/lib/python3.11/urllib/request.py", line 1348, in do_open Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** File "/usr/lib/python3.11/http/client.py", line 1282, in request Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** self._send_request(method, url, body, headers, encode_chunked) Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** File "/usr/lib/python3.11/http/client.py", line 1293, in _send_request Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** self.putrequest(method, url, **skips) Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** File "/usr/lib/python3.11/http/client.py", line 1131, in putrequest Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** self._output(self._encode_request(request)) Dec 31 13:30:15 RPI5 python3[2348946]: h.request(req.get_method(), req.selector, req.data, headers, Dec 31 13:30:15 RPI5 python3[2348946]: File "/usr/lib/python3.11/http/client.py", line 1282, in request Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** File "/usr/lib/python3.11/http/client.py", line 1211, in _encode_request Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** return request.encode('ascii') Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** ^^^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 weewxd[2348946]: ERROR weewx.restx: *** UnicodeEncodeError: 'ascii' codec can't encode character '\xb5' in position 907: ordinal not in range(128) Dec 31 13:30:15 RPI5 weewxd[2348946]: CRITICAL weewx.restx: EmonCMS: Thread terminating. Reason: 'ascii' codec can't encode character '\xb5' in position 907: ordinal not in range(128) Dec 31 13:30:15 RPI5 python3[2348946]: self._send_request(method, url, body, headers, encode_chunked) Dec 31 13:30:15 RPI5 python3[2348946]: File "/usr/lib/python3.11/http/client.py", line 1293, in _send_request Dec 31 13:30:15 RPI5 python3[2348946]: self.putrequest(method, url, **skips) Dec 31 13:30:15 RPI5 python3[2348946]: File "/usr/lib/python3.11/http/client.py", line 1131, in putrequest Dec 31 13:30:15 RPI5 python3[2348946]: self._output(self._encode_request(request)) Dec 31 13:30:15 RPI5 python3[2348946]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 python3[2348946]: File "/usr/lib/python3.11/http/client.py", line 1211, in _encode_request Dec 31 13:30:15 RPI5 python3[2348946]: return request.encode('ascii') Dec 31 13:30:15 RPI5 python3[2348946]: ^^^^^^^^^^^^^^^^^^^^^^^ Dec 31 13:30:15 RPI5 python3[2348946]: UnicodeEncodeError: 'ascii' codec can't encode character '\xb5' in position 907: ordinal not in range(128)