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 [email protected] 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 <[email protected]> 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 [email protected]. >> 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/974676b9-472b-45be-9add-e0cc01398a57n%40googlegroups.com.
