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.

Reply via email to