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 weewx-user+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to