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.

Reply via email to