Ok, some more thoughts. Delete the content between the {}, no * opertaions 
in there so the error is not in there. Then work through the 'chunks' of  
python in the template commenting out/deleting (keeping the template open 
in an editor and using control-Z/undo is a great timesaver) each one in 
turn until you find the culprit, eg; comment/delete the appttemp 
calculations, then the humidex. 

Another thought, run weewx directly 
<http://weewx.com/docs/usersguide.htm#Running_directly> and have a look at 
what is coming out for each obs in the archive record (archive records are 
identified with a REC and appear each archive interval). Look for any obs 
used in the template that have None values. That might give you a clue.

windDir (and the gust equivalent) are often a source of 'Nones' but in this 
case I don't think any are used in a multiplication operation. But that is 
the sort of thinking you need.

I note your list has no Nones, but that is not what is used in the 
template; the template uses the data in weewx, there is a subtle 
difference. that is why we need to focus on what weewx 'sees' or 'has'.

Gary

On Friday, 20 January 2017 08:41:33 UTC+10, Robert Mantel wrote:
>
> Hey Gary, thanks for the reply.  Yes I tried doing some troubleshooting by 
> commenting out specific lines, especially the math.exp ones, but when I do 
> cheetah just complains it can't find variable "x" whatever one I have 
> commented out.  But maybe your technique will yield more info.  Here is the 
> label map I'm using in fileparse:
>
> tempf = outTemp
>         humidity = outHumidity
>         inches = pressure
>         dewptf = dewpoint
>         windspdavg = windSpeed
>         winddiravg = windDir
>         rainin = rainRate
>         timestamp = dateTime
>         windgustmph = windGust
>         windgustdir = windGustDir
>
> The values on the left come from a cron job I run every minute that does a 
> jsonp query to my phant server which acts as my weather station data dump. 
>  The timestamp comes from the phant server and my cron job code converts it 
> to epoch and the query itself grabs the EST version of the timestamp. 
>  While writing this I'm wondering if I should be using UTC?  Anyways, my 
> station is inside right now so no wind is being produced but I anticipated 
> that the gauges would be able to deal with this condition, otherwise it 
> would be complaining all the time about wind and rain and such.  Here is a 
> dump of my fileparse data file (the one that weewx imports), As you can see 
> there are no null values:
>
> soc=255.9961
> rainin=0.1100
> voltage=5.1188
> humidity=35.0000
> windspeedmph=0.0000
> kilopascals=98.6170
> winddir_avg2m=90
> rainmm=2.7940
> windspeedmps=0.0000
> hpa=986.1700
> tempc=21.6800
> windgustmph=0.0000
> tempf=71.0240
> inches=29.1216
> timestamp=1484865589
> windspdmps_avg2m=0.0000
> windspeedkmph=0.0000
> winddir=90
> dewptf=42.0318
> dewptc=5.5732
> altm=235.6895
> altf=773.2595
> dailyrainin=0.6160
> windgustdir=0
>
> Obviously I'm not mapping all these to weewx as of yet.  I'm hoping you 
> can shed some light on this one.  
>
> On Thursday, 19 January 2017 16:44:52 UTC-5, gjr80 wrote:
>>
>> Hi,
>>
>> Welcome to the joys of troubleshooting a Cheetah template! The best 
>> Cheetah errors to have are those that crash in your non-template python 
>> code as that way you tend to get a meaningfull error trace, if the crash 
>> occurs in the in-template python code they can be very hard (well tedious) 
>> to track down. As you have no doubt found out the line number quoted in the 
>> error trace is usesless, it refers to a temporary file we have no access 
>> to. The best clue is the actual error message itself. in this case there is 
>> a multiplication operation occuring that is using an integer and the value 
>> None which gives the TypeError. What you need to do is carefully look at 
>> each multiplication operation in the template (there are 33 but some can be 
>> ruled out depending on your settings) and see if any of them could possibly 
>> be using a variable that is None. You have what sounds like a unique setup, 
>> I would look at what obs your setup is providing weewx and through omission 
>> could any of the common obs be None? This could cause some variable in the 
>> template to be None (which does not trigger the error) but later on that 
>> variable is used in an equation that does trigger the error. As you can see 
>> it can get complex. One technique I use is what I call the 'method of 
>> halves': 
>>
>>    1. make a backup of the template as this is destructive
>>    2. open the template
>>    3. delete the bottom half of the template
>>    4. save the template 
>>    5. let weewx do a report cycle(no need to start/stop, just let weewx 
>>    continue to run, you could be here a while)
>>    6. did the error go away?
>>       - yes - the error is in the bottom half of the template, repeat 
>>       but this time only delete half of what you last deleted
>>    - no - the error is the top half of the template, delete half of what 
>>       is left and repeat
>>    
>> As I said it can be tedious, also if you have a template with lots of 
>> embedded python you need to be careful where you slice. Anyway I think you 
>> should get the idea.
>>
>> Assuming you track down the issue do let us know what the cause was, that 
>> way we can harden the gauge-data.txt template.
>>
>> Good luck
>>
>> Gary
>>
>> On Thursday, 19 January 2017 23:44:51 UTC+10, Robert Mantel wrote:
>>>
>>> I have a brand new Raspberry Pi running the latest version of weewx.  I 
>>> have it working with the default skin and also the Bootstrap skin with no 
>>> issues.  I'm using fileparse.py to grab data from a text file that gets 
>>> generated from a python script that does a jsonp query to my phant server 
>>> that is archiving the raw data from my particle photon weather hardware. 
>>>  Like probably everyone else I came across the SS gauges and love the look 
>>> and feel of them so proceeded with the install and followed the 
>>> instructions, modifying the gauges.js file and movnig all the appropriate 
>>> files into my weewx install.  The gauges are reproduced perfectly, but no 
>>> data is being input and I get the following error in syslog:
>>>
>>>
>>> Jan 19 08:27:04 raspberrypi weewx[23078]: manager: added record 
>>> 2017-01-19 08:26:00 EST (1484832360) to database 'weewx.sdb'
>>> Jan 19 08:27:04 raspberrypi weewx[23078]: manager: added record 
>>> 2017-01-19 08:26:00 EST (1484832360) to daily summary in 'weewx.sdb'
>>> Jan 19 08:27:04 raspberrypi weewx[23078]: reportengine: copied 0 files 
>>> to /var/www/html/weewx
>>> Jan 19 08:27:04 raspberrypi weewx[23078]: cheetahgenerator: Generate 
>>> failed with exception '<type 'exceptions.TypeError'>'
>>> Jan 19 08:27:04 raspberrypi weewx[23078]: cheetahgenerator: **** 
>>> Ignoring template /etc/weewx/skins/ss/gauge-data.txt.tmpl
>>> Jan 19 08:27:04 raspberrypi weewx[23078]: cheetahgenerator: **** Reason: 
>>> unsupported operand type(s) for *: 'NoneType' and 'int'
>>> Jan 19 08:27:04 raspberrypi weewx[23078]: ****  Traceback (most recent 
>>> call last):
>>> Jan 19 08:27:04 raspberrypi weewx[23078]: ****    File 
>>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 315, in generate
>>> Jan 19 08:27:04 raspberrypi weewx[23078]: ****      print >> _file, text
>>> Jan 19 08:27:04 raspberrypi weewx[23078]: ****    File 
>>> "/usr/lib/python2.7/dist-packages/Cheetah/Template.py", line 1005, in 
>>> __str__
>>> Jan 19 08:27:04 raspberrypi weewx[23078]: ****      rc = getattr(self, 
>>> mainMethName)()
>>> Jan 19 08:27:04 raspberrypi weewx[23078]: ****    File 
>>> "cheetah__etc_weewx_skins_ss_gauge_data_txt_tmpl_1484791504_04_19193.py", 
>>> line 326, in respond
>>> Jan 19 08:27:04 raspberrypi weewx[23078]: ****  TypeError: unsupported 
>>> operand type(s) for *: 'NoneType' and 'int'
>>>
>>>
>>> I'm wracking my brain trying to find in the gauge-data.txt.tmpl file 
>>> what could be causing the operand error and obviously it's a bogus variable 
>>> in one of the math functions.  So I suspect that there is some missing data 
>>> that I'm not supplying it?  Also of note, when I set up weewx I chose 
>>> metricwx for the display units, but the database is using US units.  Is 
>>> this my problem?  Should I have stuck with US display units as well when I 
>>> did the initial install?
>>>
>>

-- 
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].
For more options, visit https://groups.google.com/d/optout.

Reply via email to