Whoops - nope, now getting this error from owm.py May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: OWM: Unexpected exception of type <class 'TypeError'>
May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** Traceback (most recent call last): May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** File "/usr/share/weewx/weewx/restx.py", line 378, in run_loop May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** self.process_record(_record, dbmanager) May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** File "/usr/share/weewx/user/owm.py", line 210, in process_record May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** self.post_with_retries(req) May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** File "/usr/share/weewx/weewx/restx.py", line 472, in post_with_retries May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** _response = self.post_request(request, data) May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** File "/usr/share/weewx/weewx/restx.py", line 539, in post_request May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** _response = urllib.request.urlopen(request, data=data_bytes, timeout=self.timeout) May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** File "/usr/lib/python3.5/urllib/request.py", line 163, in urlopen May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** return opener.open(url, data, timeout) May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** File "/usr/lib/python3.5/urllib/request.py", line 464, in open May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** req = meth(req) May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** File "/usr/lib/python3.5/urllib/request.py", line 1183, in do_request_ May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** raise TypeError(msg) May 7 11:55:15 raspberrypi weewx[4010] ERROR weewx.restx: *** TypeError: POST data should be bytes or an iterable of bytes. It cannot be of type str. May 7 11:55:15 raspberrypi weewx[4010] CRITICAL weewx.restx: OWM: Thread terminating. Reason: POST data should be bytes or an iterable of bytes. It cannot be of type str. On Thu, 7 May 2020 at 11:55, Colin Larsen <colin.lar...@gmail.com> wrote: > That seems to have fixed owm - thanks! > > Getting this error on a restart - but no errors during the start itself > > May 7 11:53:05 raspberrypi weewx[3923] INFO weewx.engine: Main loop > exiting. Shutting engine down. > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: Terminating weewx > version 4.0.0 > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** Traceback > (most recent call last): > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** File > "/usr/share/weewx/weewxd", line 154, in main > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** > engine.run() > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** File > "/usr/share/weewx/weewx/engine.py", line 188, in run > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** for > packet in self.console.genLoopPackets(): > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** File > "/usr/share/weewx/weewx/drivers/vantage.py", line 532, in genLoopPackets > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** for > _loop_packet in self.genDavisLoopPackets(200): > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** File > "/usr/share/weewx/weewx/drivers/vantage.py", line 559, in > genDavisLoopPackets > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** > loop_packet > = self._get_packet() > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** File > "/usr/share/weewx/weewx/drivers/vantage.py", line 572, in _get_packet > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** _buffer > = self.port.read(99) > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** File > "/usr/share/weewx/weewx/drivers/vantage.py", line 279, in read > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** _buffer > = self.serial_port.read(chars) > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** File > "/usr/lib/python3/dist-packages/serial/serialposix.py", line 472, in read > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** ready, > _, _ = select.select([self.fd, self.pipe_abort_read_r], [], [], > timeout.time_left()) > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** File > "/usr/share/weewx/weewxd", line 257, in sigTERMhandler > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** raise > Terminate > > May 7 11:53:05 raspberrypi weewx[3923] INFO __main__: **** Terminate > > May 7 11:53:10 raspberrypi weewx[3964]: Stopping weewx weather system: > weewx.. > > May 7 11:53:10 raspberrypi systemd[1]: Stopped LSB: weewx weather system. > > May 7 11:53:11 raspberrypi systemd[1]: Starting LSB: weewx weather > system... > > May 7 11:53:11 raspberrypi weewx[4006] INFO __main__: Initializing weewx > version 4.0.0 > > May 7 11:53:11 raspberrypi weewx[4006] INFO __main__: Using Python 3.5.3 > (default, Sep 27 2018, 17:25:39) #012[GCC 6.3.0 20170516] > > May 7 11:53:11 raspberrypi weewx[4006] INFO __main__: Platform > Linux-4.14.71-v7+-armv7l-with-debian-9.4 > > May 7 11:53:11 raspberrypi weewx[4006] INFO __main__: Locale is > 'en_NZ.UTF-8' > > May 7 11:53:11 raspberrypi weewx[4006] INFO __main__: PID file is > /var/run/weewx.pid > > May 7 11:53:11 raspberrypi weewx[4010] INFO __main__: Using > configuration file /etc/weewx/weewx.conf > > May 7 11:53:11 raspberrypi weewx[4010] INFO weewx.engine: Loading > station type Vantage (weewx.drivers.vantage) > > May 7 11:53:11 raspberrypi weewx[3994]: Starting weewx weather system: > weewx. > > May 7 11:53:11 raspberrypi systemd[1]: Started LSB: weewx weather system. > > May 7 11:53:11 raspberrypi /weewxd: filepile: Using /home/pi/AQIData.txt > with the 'METRIC' unit system > > May 7 11:53:11 raspberrypi /weewxd: filepile: Label map is {} > > May 7 11:53:11 raspberrypi weewx[4010] INFO weewx.engine: StdConvert > target unit is 0x10 > > May 7 11:53:11 raspberrypi weewx[4010] INFO weewx.wxservices: The > following values will be calculated: pressure=prefer_hardware, > barometer=prefer_hardware, altimeter=prefer_hardware, > windchill=prefer_hardware, heatindex=prefer_hardware, > dewpoint=prefer_hardware, inDewpoint=prefer_hardware, > rainRate=prefer_hardware, appTemp=software, maxSolarRad=prefer_hardware, > cloudbase=prefer_hardware, humidex=prefer_hardware, ET=prefer_hardware, > windrun=prefer_hardware > > May 7 11:53:11 raspberrypi weewx[4010] INFO weewx.wxservices: The > following algorithms will be used for calculations: altimeter=aaASOS, > maxSolarRad=RS > > May 7 11:53:11 raspberrypi weewx[4010] INFO weewx.engine: Archive will > use data binding wx_binding > > May 7 11:53:11 raspberrypi weewx[4010] INFO weewx.engine: Record > generation will be attempted in 'software' > > May 7 11:53:11 raspberrypi weewx[4010] INFO weewx.engine: Using archive > interval of 300 seconds (software record generation) > > May 7 11:53:11 raspberrypi weewx[4010] INFO weewx.restx: > StationRegistry: Station will be registered. > > May 7 11:53:11 raspberrypi weewx[4010] INFO weewx.restx: Wunderground: > Posting not enabled. > > May 7 11:53:11 raspberrypi weewx[4010] INFO weewx.restx: PWSweather: > Posting not enabled. > > May 7 11:53:11 raspberrypi weewx[4010] INFO weewx.restx: CWOP: Data for > station ZL2ARL will be posted > > May 7 11:53:11 raspberrypi weewx[4010] INFO weewx.restx: WOW: Posting > not enabled. > > May 7 11:53:11 raspberrypi weewx[4010] INFO weewx.restx: AWEKAS: Posting > not enabled. > > May 7 11:53:12 raspberrypi weewx[4010] INFO user.mqtt: service version > is 0.22 > > May 7 11:53:12 raspberrypi weewx[4010] INFO user.mqtt: binding to loop > > May 7 11:53:12 raspberrypi weewx[4010] INFO user.mqtt: topic is > weather/41south > > May 7 11:53:12 raspberrypi weewx[4010] INFO user.mqtt: desired unit > system is METRIC > > May 7 11:53:12 raspberrypi weewx[4010] INFO user.mqtt: data will be > uploaded to mqtt://192.168.20.121:1883/ > > May 7 11:53:12 raspberrypi /weewxd: restx: Windy: version is 0.4 > > May 7 11:53:12 raspberrypi /weewxd: restx: Windy: Data will be uploaded > to https://stations.windy.com/pws/update > > May 7 11:53:12 raspberrypi weewx[4010] INFO user.owm: service version is > 0.9 > > May 7 11:53:12 raspberrypi weewx[4010] INFO user.owm: Data will be > uploaded for 5e8d2259cca8ce0001f1aabd > > May 7 11:53:12 raspberrypi weewx[4010] INFO __main__: Starting up weewx > version 4.0.0 > > May 7 11:53:12 raspberrypi weewx[4010] INFO weewx.engine: Clock error is > -1.17 seconds (positive is fast) > > May 7 11:53:12 raspberrypi weewx[4010] INFO weewx.engine: Using binding > 'wx_binding' to database 'weewx.sdb' > > May 7 11:53:12 raspberrypi weewx[4010] INFO weewx.manager: Starting > backfill of daily summaries > > May 7 11:53:12 raspberrypi weewx[4010] INFO weewx.engine: Starting main > packet loop. > > On Thu, 7 May 2020 at 11:52, Greg from Oz <ubeau...@gmail.com> wrote: > >> Thanks Tom, >> >> I am converting to python3 and I am know nothing about python at all so >> going through the code manually for me was not an option. I just used the >> 2to3 and if it worked then it was ok if it didn't then I just had to delve >> deeper or contact the author. >> >> I built a 20.04 server Ubuntu and loaded weewx and then put my >> configuration and all my templates etc on it to see what would I would have >> to do if I wanted to go wholly pyhton3. >> >> I have converted all the addons etc I am using but I cannot get the Steel >> series gauges to run with python3 so I have just made the enable true to >> enable false in the weewx.conf >> >> I can live without the gauges. Below is the error: >> >> May 7 09:35:24 jed165 weewx[2390] DEBUG weewx.reportengine: Running >> report 'SteelSeries' >> May 7 09:35:24 jed165 weewx[2390] DEBUG weewx.reportengine: Found >> configuration file /etc/weewx/skins/ss/skin.conf for report 'SteelSeries' >> May 7 09:35:24 jed165 weewx[2390] INFO weewx.reportengine: Copied 0 >> files to /var/www/html/weather/ss >> May 7 09:35:24 jed165 weewx[2390] DEBUG weewx.cheetahgenerator: Using >> search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.S >> tation', 'weewx.cheetahgenerator.Current', >> 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', >> 'weewx.cheetahgenerator.Extras'] >> May 7 09:35:24 jed165 weewx[2390] DEBUG weewx.manager: Daily summary >> version is 2.0 >> May 7 09:35:24 jed165 weewx[2390] ERROR weewx.cheetahgenerator: Generate >> failed with exception '<class 'TypeError'>' >> May 7 09:35:24 jed165 weewx[2390] ERROR weewx.cheetahgenerator: **** >> Ignoring template /etc/weewx/skins/ss/gauge-data.txt.tmpl >> May 7 09:35:24 jed165 weewx[2390] ERROR weewx.cheetahgenerator: **** >> Reason: '>' not supported between instances of 'NoneType' and 'int' >> May 7 09:35:24 jed165 weewx[2390] ERROR weewx.cheetahgenerator: **** >> Traceback (most recent call last): >> May 7 09:35:24 jed165 weewx[2390] ERROR weewx.cheetahgenerator: **** >> File "/usr/share/weewx/weewx/cheetahgenerator.py", line 322, in genera >> te >> May 7 09:35:24 jed165 weewx[2390] ERROR weewx.cheetahgenerator: **** >> unicode_string = compiled_template.respond() >> May 7 09:35:24 jed165 weewx[2390] ERROR weewx.cheetahgenerator: **** >> File "_etc_weewx_skins_ss_gauge_data_txt_tmpl.py", line 339, in respon >> d >> May 7 09:35:24 jed165 weewx[2390] ERROR weewx.cheetahgenerator: **** >> TypeError: '>' not supported between instances of 'NoneType' and 'int' >> >> Other than that all works so far using the simulator driver. I will try >> the fineoffset driver later and see what happens. >> >> >> On Thursday, 7 May 2020 09:26:30 UTC+10, Tom Keffer wrote: >>> >>> The problem with 2to3 is that the results are Python 3 only. >>> >>> The tool python-modernize >>> <https://python-modernize.readthedocs.io/en/latest/> does a little >>> better and its results will run under 2 or 3, but they will also depend on >>> the library 'six'. >>> >>> Drivers and uploaders are especially tricky because they have to do >>> string <--> byte conversions. Those almost always have to be hand coded. >>> >>> In the end, I've found it easiest just to grind through the code >>> manually. >>> >>> -tk >>> >>> On Wed, May 6, 2020 at 4:17 PM Greg from Oz <ubea...@gmail.com> wrote: >>> >>>> I have run a program called 2to3 python converter program on some of >>>> the python2 scripts and it fixed most of the problems and did the >>>> conversion to the python3 syntax. >>>> >>>> example: 2to3 -w /usr/share/weewx/user/owm.py >>>> >>>> >>>> On Wednesday, 6 May 2020 12:31:23 UTC+10, Colin Larsen wrote: >>>>> >>>>> Fixed that one with; sudo python3 -m pip install paho-mqtt >>>>> >>>>> Now I have an error that looks like it is Open Wetaher map? >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: Caught >>>>> unrecoverable exception: >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: **** >>>>> invalid >>>>> syntax (owm.py, line 84) >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: **** >>>>> Traceback >>>>> (most recent call last): >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: **** >>>>> File "/usr/share/weewx/weewxd", line 148, in main >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: **** >>>>> engine = weewx.engine.StdEngine(config_dict) >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: **** >>>>> File "/usr/share/weewx/weewx/engine.py", line 75, in __init__ >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: **** >>>>> self.loadServices(config_dict) >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: **** >>>>> File "/usr/share/weewx/weewx/engine.py", line 138, in loadServices >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: **** >>>>> obj = weeutil.weeutil.get_object(svc)(self,config_dict) >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: **** >>>>> File "/usr/share/weewx/weeutil/weeutil.py", line 1093, in get_object >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: **** >>>>> mod = __import__(module) >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: **** >>>>> File "/usr/share/weewx/user/owm.py", line 84 >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: **** >>>>> except KeyError, e: >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: **** >>>>> ^ >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: **** >>>>> SyntaxError: >>>>> invalid syntax >>>>> >>>>> May 6 14:29:07 raspberrypi weewx[6896] CRITICAL __main__: **** >>>>> Exiting. >>>>> >>>>> On Wed, 6 May 2020 at 14:19, Colin Larsen <colin...@gmail.com> wrote: >>>>> >>>>>> Still going ...... >>>>>> >>>>>> Installed the new mqtt and now get this error >>>>>> >>>>>> May 6 14:16:47 raspberrypi weewx[6432] CRITICAL __main__: Caught >>>>>> unrecoverable exception: >>>>>> >>>>>> May 6 14:16:47 raspberrypi weewx[6432] CRITICAL __main__: **** No >>>>>> module named 'paho' >>>>>> >>>>>> May 6 14:16:47 raspberrypi weewx[6432] CRITICAL __main__: **** >>>>>> Traceback >>>>>> (most recent call last): >>>>>> >>>>>> May 6 14:16:47 raspberrypi weewx[6432] CRITICAL __main__: **** >>>>>> File "/usr/share/weewx/weewxd", line 148, in main >>>>>> >>>>>> May 6 14:16:47 raspberrypi weewx[6432] CRITICAL __main__: **** >>>>>> engine = weewx.engine.StdEngine(config_dict) >>>>>> >>>>>> May 6 14:16:47 raspberrypi weewx[6432] CRITICAL __main__: **** >>>>>> File "/usr/share/weewx/weewx/engine.py", line 75, in __init__ >>>>>> >>>>>> May 6 14:16:47 raspberrypi weewx[6432] CRITICAL __main__: **** >>>>>> self.loadServices(config_dict) >>>>>> >>>>>> May 6 14:16:47 raspberrypi weewx[6432] CRITICAL __main__: **** >>>>>> File "/usr/share/weewx/weewx/engine.py", line 138, in loadServices >>>>>> >>>>>> May 6 14:16:47 raspberrypi weewx[6432] CRITICAL __main__: **** >>>>>> obj = weeutil.weeutil.get_object(svc)(self,config_dict) >>>>>> >>>>>> May 6 14:16:47 raspberrypi weewx[6432] CRITICAL __main__: **** >>>>>> File "/usr/share/weewx/weeutil/weeutil.py", line 1093, in >>>>>> get_object >>>>>> >>>>>> May 6 14:16:47 raspberrypi weewx[6432] CRITICAL __main__: **** >>>>>> mod = __import__(module) >>>>>> >>>>>> May 6 14:16:47 raspberrypi weewx[6432] CRITICAL __main__: **** >>>>>> File "/usr/share/weewx/user/mqtt.py", line 94, in <module> >>>>>> >>>>>> May 6 14:16:47 raspberrypi weewx[6432] CRITICAL __main__: **** >>>>>> import paho.mqtt.client as mqtt >>>>>> >>>>>> May 6 14:16:47 raspberrypi weewx[6432] CRITICAL __main__: **** >>>>>> ImportError: >>>>>> No module named 'paho' >>>>>> >>>>>> May 6 14:16:47 raspberrypi weewx[6432] CRITICAL __main__: **** >>>>>> Exiting. >>>>>> >>>>>> >>>>>> Tried to install Paho and I get ... >>>>>> >>>>>> >>>>>> *pi@raspberrypi*:*/etc/default $* sudo pip install paho-mqtt >>>>>> >>>>>> Requirement already satisfied: paho-mqtt in >>>>>> /usr/local/lib/python2.7/dist-packages >>>>>> >>>>>> >>>>>> So how do I install it for python3 please :) >>>>>> >>>>>> >>>>>> >>>>>> Cheers >>>>>> >>>>>> Colin >>>>>> >>>>>> On Tue, 5 May 2020 at 00:18, Graham Eddy <graha...@gmail.com> wrote: >>>>>> >>>>>>> this (ujson instead of python-cjson, then install mqtt extension) >>>>>>> seems to have worked up to point that weewx.log reports its mqtt client >>>>>>> is >>>>>>> successfully publishing loop data >>>>>>> >>>>>>> sudo python3.7 -m pip install ujson >>>>>>> >>>>>>> >>>>>>> On 4 May 2020, at 8:58 pm, Graham Eddy <graha...@gmail.com> wrote: >>>>>>> >>>>>>> i have only just become interested in mqtt (to make my custom weewx >>>>>>> gauges near realtime). >>>>>>> the link to the MQTT weewx extension mentioned below lists two >>>>>>> prerequisites: paho-mqtt, python-cjson. >>>>>>> paho-mqtt installed fine. >>>>>>> python-cjson fails. >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> 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...@googlegroups.com. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/weewx-user/296D8321-100E-45B1-A47A-2657960A2942%40gmail.com >>>>>>> <https://groups.google.com/d/msgid/weewx-user/296D8321-100E-45B1-A47A-2657960A2942%40gmail.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...@googlegroups.com. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/weewx-user/5edba9a8-8cbb-4ae9-8b86-68b0c5a9cdf7%40googlegroups.com >>>> <https://groups.google.com/d/msgid/weewx-user/5edba9a8-8cbb-4ae9-8b86-68b0c5a9cdf7%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/7aab2ac7-b93f-4c51-893f-d8c4fc508e4f%40googlegroups.com >> <https://groups.google.com/d/msgid/weewx-user/7aab2ac7-b93f-4c51-893f-d8c4fc508e4f%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/CACjxfUuJP1t_wr%3Dmq8R2tyZP6K9Qo1KdZzY63k64YpuL1pXm0w%40mail.gmail.com.