Hi,

I originally sent this to the author but posting here as well. I am trying 
to use the $daylight tag to display the daylight average of UV and 
Radiation values. It works fine in the current day and yesterday templates, 
but generates an error when I try to use accumulator code for the week, 
month and year templates, and the month and year report templates. I am 
using the NeowWX-Material skin with WeeWX 4.8 on a RPi 4B 4GB running 
Bullseye.

Code:
#from weewx.units import ValueTuple, ValueHelper
#for $dd in $week.days
#set $light=$daylight(timestamp=$dd)
#set $dayradiation=$dd.$light.radiation.sum.raw <-- this is where it fails
#set $dayradiationacc=$dayradiationacc.raw+$dayradiation.raw
#end for
#set $dayradiationavg=$dayradiationacc.raw/$week.days
#set 
$dayradiation_vh=ValueHelper(ValueTuple($dayradiationavg,$unit.unit_type.radiation,'group_radiation'),formatter=$station.formatter)
...
<div class="row">
  <div class="col-3 text-muted font-small">
  $dayradiation_vh <br>
  $Extras.Translations[$Extras.language].avg
  </div>
  <div class="col-6">
    <h4 class='h2-responsive 
'>$week.radiation.energy_integral.kilowatt_hour_per_meter_squared</h4>
  </div>
  <div class="col-3 text-muted font-small hi-text">
    $week.radiation.max <br>
    ($week.radiation.maxtime.format($Extras.Formatting.datetime))
  </div>
</div>

Error:
Jan 25 12:45:28 weather weewx[625144] ERROR weewx.cheetahgenerator: 
Evaluation of template /etc/weewx/skins/neowx-material/week.html.tmpl 
failed with exception '<class 'TypeError'>'
Jan 25 12:45:28 weather weewx[625144] ERROR weewx.cheetahgenerator: **** 
Ignoring template /etc/weewx/skins/neowx-material/week.html.tmpl
Jan 25 12:45:28 weather weewx[625144] ERROR weewx.cheetahgenerator: **** 
Reason: 'ObservationBinder' object is not callable
Jan 25 12:45:28 weather weewx[625144] ERROR weewx.cheetahgenerator: **** 
 Traceback (most recent call last):
Jan 25 12:45:28 weather weewx[625144] ERROR weewx.cheetahgenerator: ****   
 File "/usr/share/weewx/weewx/cheetahgenerator.py", line 348, in generate
Jan 25 12:45:28 weather weewx[625144] ERROR weewx.cheetahgenerator: ****   
   unicode_string = compiled_template.respond()
Jan 25 12:45:28 weather weewx[625144] ERROR weewx.cheetahgenerator: ****   
 File 
"cheetah__etc_weewx_skins_neowx_material_week_html_tmpl_1674650728_0954206_64383.py",
 
line 574, in respond
Jan 25 12:45:28 weather weewx[625144] ERROR weewx.cheetahgenerator: **** 
 TypeError: 'ObservationBinder' object is not callable

Any help, pointers or neater code would be appreciated!
On Saturday, November 5, 2022 at 1:00:05 PM UTC kk44...@gmail.com wrote:

> I updated the $daylight tag. The whole tag is
>
> $daylight(timestamp=None, data_binding=None, days_ago=0, horizon=None, 
> use_center=False).observation.aggregation
>
> Using the option timestamp the $daylight timespan can be used for every 
> day, not only the actual day.This makes it possible to do things like that:
> #for $dd in month.days
> <p>
> $dd.dateTime
> day average: $dd.outTemp.avg,
> average during light day: $daylight(timestamp=$dd).outTemp.avg
> </p>
> #end for
>
> While `$almanac.sunrise` and `$almanac.sunset` calculate sunrise and 
> sunset using the actual temperature and barometer of the calculation time, `
> $daylight` now observes temperature and barometer of the time, the 
> daylight timespan is calculated for if there are database records 
> available. It first calculates approximate sunrise and sunset times for the 
> ICAO standard atmosphere at 15°C and 1013.25 mbar. Then it looks up the 
> real temperature and barometer for both those times. After that it 
> calculates sunrise and sunset again, using the respective temperature and 
> barometer.
>
> That's why `$daylight(timestamp=$X).start` provides a slightly more 
> accurate time for sunrise than `$almanac(timestamp=$X).sunrise` if `$X` 
> is a timestamp somewhere in the past and database records are available for 
> that time. The same applies to `$daylight(timestamp=$X).end` instead of `
> $almanac(almanac_time=$X).sunset` for sunset and  `
> $daylight(timestamp=$X).length` instead of `
> $almanac(almanac_time=$X).sun.visible` for the daylight duration.
>
> But please note that the real purpose of the $daylight tag is not sunrise 
> and sunset but aggregation. 
>
> https://github.com/roe-dl/weewx-GTS
>
>>
>>>>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/4e678828-0575-403b-8e1a-38741a3bcc65n%40googlegroups.com.

Reply via email to