As you are no doubt aware by now tracking down python errors that occur in a template (as distinct from python errors in a SLE or the WeeWX code base) can be a real pain as we can't reconcile the line number given in the error message with any source code. The following line tells us the error is in some in-line python code in the gauge-data.txt.tmpl template:
May 7 09:35:24 jed165 weewx[2390] ERROR weewx.cheetahgenerator: **** File "_etc_weewx_skins_ss_gauge_data_txt_tmpl.py", line 339, in respond If the error was in an SLE or the WeeWX code base we would have a nicely named (and known) .py (eg mySLE.py or cheetahgenerator.py) file rather than the cryptic name above. We can't use the line number from _etc_weewx_skins_ss_gauge_data_txt_tmpl.py as it is a temporary file created by Cheetah that we have no access to. The only thing we can use is the error message text, in your case: May 7 09:35:24 jed165 weewx[2390] ERROR weewx.cheetahgenerator: **** TypeError: '>' not supported between instances of 'NoneType' and 'int' That message tells us a few things. We know that we have an error in an expression involving '>' (greater than). As it turns out > appears in the template only twice, at lines 69 and 277: #if $h > 0 and #if $hour.rain.sum.raw > $hourlyrainTH We also know the left hand side is equating to None (the cause of the error) and the right hand side of the comparison is equating to an integer. If we look at line 69 if $h was None that would throw the error we are getting (0 in considered an int). $h is calculated at the line 68 and indirectly involves lines 66 and 67: #set $dp_K = $current.dewpoint.degree_C.raw + 273.16 #set $e = 6.11 * math.exp(5417.7530 * ((1/273.16) - 1/$dp_K)) #set $h = 0.5555 * ($e - 10.0) We know $dp_K is not None; if it was we would get and error on line 66 where $dp_K is calculated (None + 273.16). Therefore we know $h cannot be None. So line 69 is not the source of the error. If we look at line 277 to get the error we are seeing $hour.rain.sum.raw would need to be None and $hourlyrainTH would need to be an int. $hourlyrainTH is initialised to 0 at line 274, so $hourlyrainTH could be well be an int. Could $hour.rain.sum.raw be None, quite possible if there is no rain data (as distinct from there being data but it is 0) for a full hour sometime today. So it looks like we have found the problem line. How to fix it? Given the purpose of that piece of that piece of code is to find the hour of the highest rainfall today we can just put another conditional in there so we skip hours with no rainfall data, eg (not tested): #for $hour in $day.hours #if $hour.rain.sum.raw is not None and $hour.rain.sum.raw > $hourlyrainTH #set $hourlyrainTH = $hour.rain.sum.raw Now if $hour.rain.sum.raw is None the first conditional will cause execution to skip the rest of the if statement avoiding the problematic '>'. Apologies this was somewhat long winded, but I thought it a perfect opportunity to highlight one of the (few) techniques for tracking down in-line python errors in templates. Gary On Thursday, 7 May 2020 09:52:07 UTC+10, Greg from Oz wrote: > > 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' > -- 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/e55448f6-5be8-4b78-922c-7d5aed7d30d3%40googlegroups.com.
