Already done! https://github.com/matthewwall/weewx-influx/pull/27
Thanks for testing it. On Sun, Jan 24, 2021 at 8:20 PM Tom Corbett <giantkingsq...@gmail.com> wrote: > This seems to have fixed my issues. Has been diligently putting data in > every minute for over a week now. What's the protocol for adding a pull > request to Matthew's github so that other Python 3 users don't have this > issue? It was your change, but happy to do the pull request if it helps > others. > > Tom > > On Thursday, January 14, 2021 at 4:17:34 PM UTC+11 Tom Corbett wrote: > >> Thanks very much. I have replaced the existing influx.py with your >> version and restarted weewx. It is putting data into the InfluxDb, so >> fingers crossed it keeps doing so. >> >> Cheers, >> >> Tom >> >> On Thursday, January 14, 2021 at 2:20:46 PM UTC+11 tke...@gmail.com >> wrote: >> >>> Normally, I don't deal with the influx driver, but Matthew is swamped so >>> I took a look. >>> >>> I believe the problem is that the driver was not completely ported to >>> Python 3. The HTTP response needs to be converted from a byte array to a >>> string before performing the find() operation. >>> >>> Try this version of influx.py >>> <https://raw.githubusercontent.com/tkeffer/weewx-influx/master/bin/user/influx.py> >>> . >>> >>> -tk >>> >>> >>> >>> On Wed, Jan 13, 2021 at 5:52 PM Tom Corbett <giantki...@gmail.com> >>> wrote: >>> >>>> >>>> Hi All, >>>> >>>> I'm new to weewx and python in general so have been plugging away for >>>> a couple of weeks getting everything setup and working. >>>> >>>> My hardware is an ecowitt WH9200 and I'm using weewx 4.2 on FreeBSD >>>> which I setup using the py-setup method. I am capturing the data using the >>>> weewx-interceptor in listen mode. This all seems to be flowing fine into >>>> the sqlite DB. >>>> >>>> I then have the weewx-influx extension sending data to an InfluxDB >>>> every minute. This will work fine for several hours; ~ 11 hours being the >>>> current record, but will crash with the following in the logs: My take on >>>> that is that for some reason a string is being sent to Influx rather than >>>> an integer or boolean, however I could be seeing the symptom rather than >>>> the cause. >>>> >>>> To investigate I checked the record in the sqlite DB immediately after >>>> the last one in the InfluxDB, ie the one that caused the crash, and could >>>> see nothing that looked different to all the previous one. IE, I couldn't >>>> see any strings in the record. >>>> >>>> Any help would be appreciated in tracking this down. I'm a bit >>>> perplexed as to why it runs happily for hours then has a coniption. >>>> >>>> Thanks, >>>> >>>> Tom >>>> >>>> Here's the relevent section of weewx.conf, nothing too interesting >>>> AFAIK. >>>> >>>> [[Influx]] >>>> database = weewx_hades_test >>>> host = 192.168.178.25 >>>> unit_system = METRICWX >>>> >>>> Logs: >>>> >>>> Jan 14 10:54:45 28spots kernel: Jan 14 10:54:45 28spots weewx[964] >>>> ERROR weewx.restx: Influx: Unexpected exception of type <class 'TypeError'> >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** Traceback (most recent call last): >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** File "/usr/home/weewx/bin/weewx/restx.py", >>>> line 475, in post_with_retries >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** _response = self.post_request(request, data) >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** File "/usr/home/weewx/bin/user/influx.py", >>>> line 498, in post_request >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** return super(InfluxThread, >>>> self).post_request(request, payload) >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** File "/usr/home/weewx/bin/weewx/restx.py", >>>> line 537, in post_request >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** _response = urllib.request.urlopen(request, >>>> data=data_bytes, timeout=self.timeout) >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** File >>>> "/usr/local/lib/python3.7/urllib/request.py", line 222, in urlopen >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** return opener.open(url, data, timeout) >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** File >>>> "/usr/local/lib/python3.7/urllib/request.py", line 531, in open >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** response = meth(req, response) >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** File >>>> "/usr/local/lib/python3.7/urllib/request.py", line 641, in >>>> http_response >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** 'http', request, response, code, msg, hdrs) >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** File >>>> "/usr/local/lib/python3.7/urllib/request.py", line 569, in error >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** return self._call_chain(*args) >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** File >>>> "/usr/local/lib/python3.7/urllib/request.py", line 503, in _call_chain >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** result = func(*args) >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** File >>>> "/usr/local/lib/python3.7/urllib/request.py", line 649, in >>>> http_error_default >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** raise HTTPError(req.full_url, code, msg, >>>> hdrs, fp) >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** urllib.error.HTTPError: HTTP Error 500: Internal >>>> Server Error >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** During handling of the above exception, another >>>> exception occurred: >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** Traceback (most recent call last): >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** File "/usr/home/weewx/bin/weewx/restx.py", >>>> line 381, in run_loop >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** self.process_record(_record, dbmanager) >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** File "/usr/home/weewx/bin/weewx/restx.py", >>>> line 446, in process_record >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** self.post_with_retries(_request, data) >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** File "/usr/home/weewx/bin/weewx/restx.py", >>>> line 496, in post_with_retries >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** self.handle_exception(e, _count + 1) >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** File "/usr/home/weewx/bin/user/influx.py", >>>> line 486, in handle_exception >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** if payload and payload.find("error") >=0: >>>> >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> ERROR weewx.restx: *** TypeError: argument should be integer or bytes-like >>>> object, not 'str' >>>> Jan 14 10:54:47 28spots kernel: Jan 14 10:54:47 28spots weewx[964] >>>> CRITICAL weewx.restx: Influx: Thread terminating. Reason: argument should >>>> be integer or bytes-like object, not 'str' >>>> >>>> >>>> -- >>>> 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 on the web visit >>>> https://groups.google.com/d/msgid/weewx-user/d556f993-de2b-4016-b7f8-b396ab32b327n%40googlegroups.com >>>> <https://groups.google.com/d/msgid/weewx-user/d556f993-de2b-4016-b7f8-b396ab32b327n%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 on the web visit > https://groups.google.com/d/msgid/weewx-user/0a55d6f7-e173-4538-910a-338bc08caeaan%40googlegroups.com > <https://groups.google.com/d/msgid/weewx-user/0a55d6f7-e173-4538-910a-338bc08caeaan%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 on the web visit https://groups.google.com/d/msgid/weewx-user/CAPq0zEAk3Aw4vazHWf6OQgmH9Jh%3Do%2BK-CCm4Wevr-0TbJzyFbw%40mail.gmail.com.