That would be one way to do it, but at that point, you're probably better off going to a parameterized solution using $getVar().
I encourage you to take a look at Cheetah's documentation <https://cheetahtemplate.org/users_guide/index.html>. It's not great, but it has a lot of useful tricks in it. On Wed, Jul 6, 2022 at 12:15 AM Rainer Lang <[email protected]> wrote: > Great, Tom, thank you - the proposed (1st) solution looks quite smart and > is TESTED NOW - and works as expected. > Looks as if I have to enlarge my Python and Cheetah generator knowledge > significantly. > > The 2nd will be helpful to implement that into my neowx-material skin > which was already parameterized before the Seasons skin was "rejuvenated" > into its new also parameterized coding. > When I have some more time, I'll also be looking into migrating my Seasons > skin ... > > And I take it, that if I want to include more data-bindings, I just > enlarge the $archive_data array by more elements ... (1st solution) > > thanks again > cheers > Rainer > > On 06.07.2022 01:42, Tom Keffer wrote: > > It looks like you are using an older version of Seasons (before it was > parameterized). The variable $archive[1] is the result of evaluating $day, > which makes it an instance of weewx.tags.TimespanBinder, built using > default values in the initializer. At this point, it's too late to ask it > to be built using a custom value for data_binding. > > What to do? You could introduce a new set of timespans, this time > including your custom binding. It would look like (NOT TESTED): > > #set $archive_data = [('day', $day, $day(data_binding='rpi24-binding')), > ('week', $week, $week(data_binding='rpi24-binding')), ('month', $month, > $month(data_binding='rpi24-binding')), ('year', $year, > $year(data_binding='rpi24-binding')), ('rainyear', $rainyear, > $rainyear(data_binding='rpi24-binding'))] > > then use that when necessary: > > <td class="data new_row hilo_$archive[0]"> > <span title="$archive[1].rainRate.maxtime"> > $archive[2].rainRate.max.format(add_label=False)</span> > </td> > > Another approach would be to update to the parameterized version of > Seasons, which does its evaluation of TimespanBinder later, allowing it to > be modified in a more straightforward way: > > <td class="data new_row hilo_$timespan"> > <span title="$getVar('%s.%s' % ($timespan, $x)).maxtime"> > $getVar('%s.%s(data_binding='rpi24-binding')' % ($timespan, > $x)).max.format(add_label=False)</span> > </td> > > -tk > > > On Tue, Jul 5, 2022 at 2:57 PM 'Rainer Lang' via weewx-user < > [email protected]> wrote: > >> After some more digging I have advanced: >> >> my 2nd issue, that the monthly and weekly data is not shown seems to be >> solved: >> while in the imagegenerator the week/month means 7 days back and 30 days >> back from the current date, >> $week and $month seem to mean the calender week and calender month - a >> few tests with fake rain data in the database confirmed that >> >> remains the issue how to show the values from the remote database in the >> High/Low portion of the High/Low table >> >> at http://www.weewx.com/docs/customizing.htm#Using_multiple_bindings >> the example goes: >> >> <table> >> <tr> >> <td class="stats_label">Inside Temperature, Vantage</td> >> <td class="stats_data">$current.inTemp</td> >> </tr> >> <tr> >> <td class="stats_label">Inside Temperature, WMR100</td> >> <td >> class="stats_data">$latest*($data_binding='wmr100_binding')*.inTemp</td> >> </tr> >> </table> >> >> >> this translated into my hilo.inc code >> <tr> >> <td class="label">$obs.label.rain</td> >> #for $archive in $archive_data >> <td class="data new_row hilo_$archive[0]"> >> $archive[1].rain.sum.format(add_label=False)</td> >> #end for >> <td class="units">$unit.label.rain</td> >> </tr> >> <tr> >> <td class="label">$obs.label.rainRate</td> >> #for $archive in $archive_data >> <td class="data new_row hilo_$archive[0]"> >> <span title="$archive[1].rainRate.maxtime"> >> $archive[1].rainRate.max.format(add_label=False)</span> >> </td> >> #end for >> <td class="units">$unit.label.rainRate</td> >> </tr> >> >> should in my understanding then be: >> >> <td class="data new_row hilo_$archive[0]"> >> $archive[1]*($data_binding='rpi24-binding')* >> .rain.sum.format(add_label=False)</td> >> resp. >> >> <td class="data new_row hilo_$archive[0]"> >> <span title="$archive[1].rainRate.maxtime"> >> $archive[1]*($data_binding='rpi24-binding')*. >> rainRate.max.format(add_label=False)</span> >> </td> >> >> where "rpi24-binding" is my database binding of the remote database >> >> however, this produces a Cheetah Syntax error >> >> Jul 5 23:26:15 raspberrypi weewx[31166] ERROR weewx.cheetahgenerator: >> Evaluation of template /etc/weewx/skins/Seasons/index.html.tmpl failed with >> exception '<class 'SyntaxError'>' >> Jul 5 23:26:15 raspberrypi weewx[31166] ERROR weewx.cheetahgenerator: >> **** Ignoring template /etc/weewx/skins/Seasons/index.html.tmpl >> Jul 5 23:26:15 raspberrypi weewx[31166] ERROR weewx.cheetahgenerator: >> **** Reason: keyword can't be an expression (<string>, line 1) >> Jul 5 23:26:15 raspberrypi weewx[31166] ERROR weewx.cheetahgenerator: >> **** Traceback (most recent call last): >> Jul 5 23:26:15 raspberrypi weewx[31166] ERROR weewx.cheetahgenerator: >> **** File "/usr/share/weewx/weewx/cheetahgenerator.py", line 348, in >> generate >> Jul 5 23:26:15 raspberrypi weewx[31166] ERROR weewx.cheetahgenerator: >> **** unicode_string = compiled_template.respond() >> Jul 5 23:26:15 raspberrypi weewx[31166] ERROR weewx.cheetahgenerator: >> **** File >> "cheetah__etc_weewx_skins_Seasons_index_html_tmpl_1657056374_3328836_74907.py", >> line 287, in respond >> Jul 5 23:26:15 raspberrypi weewx[31166] ERROR weewx.cheetahgenerator: >> **** File "/usr/lib/python3/dist-packages/Cheetah/Template.py", line >> 1707, in _handleCheetahInclude >> Jul 5 23:26:15 raspberrypi weewx[31166] ERROR weewx.cheetahgenerator: >> **** self._CHEETAH__cheetahIncludes[_includeID].respond(trans) >> Jul 5 23:26:15 raspberrypi weewx[31166] ERROR weewx.cheetahgenerator: >> **** File >> "cheetah__etc_weewx_skins_Seasons_hilo_inc_1657056374_7626543_30080.py", >> line 1744, in respond >> Jul 5 23:26:15 raspberrypi weewx[31166] ERROR weewx.cheetahgenerator: >> **** File >> "cheetah__etc_weewx_skins_Seasons_hilo_inc_1657056374_7626543_30080.py", >> line 386, in __errorCatcher46 >> Jul 5 23:26:15 raspberrypi weewx[31166] ERROR weewx.cheetahgenerator: >> **** File "<string>", line 1 >> Jul 5 23:26:15 raspberrypi weewx[31166] ERROR weewx.cheetahgenerator: >> **** SyntaxError: keyword can't be an expression >> >> what am I missing ?? - it's definitely the >> *($data_binding='rpi24-binding')* which causes the error - when I remove >> it, no error is shown - but then I don't get my data from the remote >> database ... >> >> >> Am 05.07.2022 um 12:32 schrieb Rainer Lang: >> >> the background which made me run into the issue(s) which I couldn't find >> a solution for yet - >> nothing found in the WiKi either >> >> 2 Ecowitt stations - one has the WS90 and a WH40 rain gauge connected, >> one the rain gauge from the WS69 array >> 2 weewx instances - one receiving the WS90/WH40 data, one receiving the >> WS69 data >> the instances run on different servers, but that was only an additional >> challenge to figure out where to put the data_binding information - maybe >> not yet completely solved - we'll see later >> >> running weewx 4.8.0 - but with my old skin.conf - not (yet) with the >> skin.conf which comes with the 4.8.0 install >> >> I have added the following entries to my skin.conf - and the plots of all >> three are properly shown - as desired >> (for that I repurposed the wsview_extended database field "hail" for the >> WS90 piezo rain) >> >> ####### excerpt skin.conf start ########## >> >> [[[dayrain]]] >> # Make sure the y-axis increment is at least 0.02 for the >> rain plot >> yscale = None, None, 0.02 >> plot_type = bar >> [[[[rain]]]] >> aggregate_type = sum >> aggregate_interval = 3600 >> label = Rain (hourly total) (WH40) >> [[[dayrain2]]] >> # Make sure the y-axis increment is at least 0.02 for the >> rain plot >> yscale = None, None, 0.02 >> plot_type = bar >> fill_color = "#ff4500" >> [[[[hail]]]] #WS90 piezo rain >> aggregate_type = sum >> aggregate_interval = 3600 >> label = Rain (hourly total) (WS90) >> [[[dayrain3]]] >> # Make sure the y-axis increment is at least 0.02 for the >> rain plot >> data_binding = rpi24-binding >> yscale = None, None, 0.02 >> plot_type = bar >> fill_color = "#32cd32" >> [[[[rain]]]] #WH65 rain >> aggregate_type = sum >> aggregate_interval = 3600 >> label = Rain (hourly total) (WS69) >> ############ excerpt skin.conf end ############## >> >> HOWEVER, I couldn't manage to get the data from the external database >> [[[dayrain3]] into the current data table - nor into the High/Low table >> >> *I couldn't figure out how to address the external database field in >> current.inc and in hilo.inc to be shown in the table here.* >> >> Any advise how to manage that highly appreciated ! >> >> >> SECOND ISSUE: into which I ran while experimenting with the hilo.inc file >> to get my values displayed >> >> I found that even though the syntax seems to be correct, I only get the >> current (that's current.inc) data displayed (for "rain" and "hail") >> but *I wouldn't get the weekly and monthly rain sums displayed - only >> the yearly*.😮 - the others simply remain "0.0" >> (it does the same in my other weewx installations too !) >> >> excerpt below - what's wrong here and, also, referring back to the first >> question, how would the code look like for the external database field >> "rain" to be inserted to be displayed in that table ? >> >> ########### excerpt hilo.inc start ########### >> >> #set $archive_data = [('day', $day), ('week', $week), ('month', $month), >> ('year', $year), ('rainyear', $rainyear)] >> >> >> <div id='hilo_widget' class="widget"> >> <div class="widget_title"> >> <a href="statistics.html">High/Low</a> >> <a class="widget_control" >> onclick="toggle_widget('hilo')">♦</a> >> </div> >> >> <div class="widget_contents"> >> <table> >> <tbody> >> .................... >> >> <tr> >> <td class="label">$obs.label.rain</td> >> #for $archive in $archive_data >> <td class="data new_row hilo_$archive[0]"> >> $archive[1].rain.sum.format(add_label=False)</td> >> #end for >> <td class="units">$unit.label.rain</td> >> </tr> >> <tr> >> <td class="label">$obs.label.rainRate</td> >> #for $archive in $archive_data >> <td class="data new_row hilo_$archive[0]"> >> <span title="$archive[1].rainRate.maxtime"> >> $archive[1].rainRate.max.format(add_label=False)</span> >> </td> >> #end for >> <td class="units">$unit.label.rainRate</td> >> </tr> >> <tr> >> <td class="label">$obs.label.piezorain</td> >> #for $archive in $archive_data >> <td class="data new_row hilo_$archive[0]"> >> $archive[1].hail.sum.format(add_label=False)</td> >> #end for >> <td class="units">$unit.label.rain</td> >> </tr> >> <tr> >> <td class="label">$obs.label.piezorainRate</td> >> #for $archive in $archive_data >> <td class="data new_row hilo_$archive[0]"> >> <span title="$archive[1].hailRate.maxtime"> >> $archive[1].hailRate.max.format(add_label=False)</span> >> </td> >> #end for >> <td class="units">$unit.label.rainRate</td> >> </tr> >> ................. >> >> ############ excedrpt hilo.inc end ############# >> >> -- >> 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]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/weewx-user/d083069b-51b0-7201-2e16-3e7f24422410%40gmail.com >> <https://groups.google.com/d/msgid/weewx-user/d083069b-51b0-7201-2e16-3e7f24422410%40gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > 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]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/weewx-user/CAPq0zECE0%3D6G%2BaC%3D%3D-6nEVp0k3V1aP4uD6yq-o0m%2BfFRYNE-Rw%40mail.gmail.com > <https://groups.google.com/d/msgid/weewx-user/CAPq0zECE0%3D6G%2BaC%3D%3D-6nEVp0k3V1aP4uD6yq-o0m%2BfFRYNE-Rw%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > > -- > 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]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/weewx-user/f35c3bd5-9118-9bb0-5d10-55ee64461a03%40gmail.com > <https://groups.google.com/d/msgid/weewx-user/f35c3bd5-9118-9bb0-5d10-55ee64461a03%40gmail.com?utm_medium=email&utm_source=footer> > . > -- 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]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/CAPq0zEBLaTSQO2wsmMZAS%3DMfV7n%2BW1fEDcoezUc%3Dr-y%3DBFZrfA%40mail.gmail.com.
