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
>

Reply via email to