After a couple of hours of trial and error, I may have solved this in 2
ways:
1. Using the $current tag like below works.
#for $obs in $Extras.station_observations
"$obs": "#echo getattr($current, $obs) #",
#end for
2. Within an SLE
station_observations = self.generator.skin_dict['Extras'][
'station_observations']
binding = self.generator.config_dict['StdReport'].get('data_binding'
, 'wx_binding')
manager = self.generator.db_binder.get_manager(binding)
currentStamp = manager.lastGoodStamp()
current = weewx.tags.CurrentObj(db_lookup, None, currentStamp, self.
generator.formatter, self.generator.converter)
for obs in self.generator.skin_dict['Extras']['station_observations'
]:
obs_output = getattr(current, obs)
Then add obs_output to the SLE return and use in the tmpl.
Option 2 allows me to be a little more flexible (like adding in DarkSky
visibility API data if obs == "visibility" for example, or a custom rain
and rainRate concat output). Hopefully I'm not re-inventing the wheel too
much here.
On Monday, April 22, 2019 at 12:58:00 PM UTC-4, Pat wrote:
>
> I'm trying to see if it's possible to get the $current value from a
> dynamic list. Take this example:
>
> skin.conf contains:
>
> station_observations = "barometer", "visibility", "cloudbase",
> "dewpoint", "humidity", "rain", "UV", "radiation"
>
>
> Within a skin tmpl file, I have this:
>
> #for $obs in $Extras.station_observations
> "$obs": "$current.$obs",
> #end for
>
>
> It returns this:
>
> "barometer": "<weewx.tags.CurrentObj object at 0x7f140ec75350>.barometer",
> "visibility": "<weewx.tags.CurrentObj object at 0x7f140ec75790>.visibility",
> "cloudbase": "<weewx.tags.CurrentObj object at 0x7f140ec75350>.cloudbase",
> "dewpoint": "<weewx.tags.CurrentObj object at 0x7f140ec75790>.dewpoint",
> "humidity": "<weewx.tags.CurrentObj object at 0x7f140ec75350>.humidity",
> "rain": "<weewx.tags.CurrentObj object at 0x7f140ec75790>.rain",
> "UV": "<weewx.tags.CurrentObj object at 0x7f140ec75350>.UV",
> "radiation": "<weewx.tags.CurrentObj object at 0x7f140ec75790>.radiation",
>
>
> Not the expected output. Is it possible to have this type of dynamic
> lookup with $current?
>
> Thanks
>