Hi gents Is there anything I can do for the error I posted above that only seems to happen on Weewx service stop?
Thanks Colin On Fri, 8 May 2020, 11:00 gjr80, <[email protected]> wrote: > Good, I have submitted a PR for the change to the repo owner. > > Gary > > On Thursday, 7 May 2020 17:32:49 UTC+10, Greg from Oz wrote: >> >> Hi Gary, >> >> I add the highlighted text you suggested into line 277 >> of gauge-data.txt.tmpl >> so it in now like this: >> #if $hour.rain.sum.raw is not None and $hour.rain.sum.raw > $hourlyrainTH >> and I had no errors and the gauges have now appeared. >> >> So it works. I don't think I could have worked that one out by myself. >> >> Hopefully this will help someone else as well. I will let you know if >> anything else happens but so far so good. >> >> Thanks >> >> >> >> On Thursday, 7 May 2020 17:03:06 UTC+10, gjr80 wrote: >>> >>> 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/9055c81f-e90c-4fd2-9bfa-04350f04f2f2%40googlegroups.com > <https://groups.google.com/d/msgid/weewx-user/9055c81f-e90c-4fd2-9bfa-04350f04f2f2%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/CACjxfUvY%2B%3Dut%3DP0KpuZPBKwZgrH8QmsSxo3s2g%2Bu83AQZuyCjw%40mail.gmail.com.
