In the meanwhile I've tweaked my script a little bit to make it more
robust. Sadly, I have to hardcode the path /var/www/html/weewx set within
weewx.conf as StdReport.HTML_ROOT. I (and gemini) couldn't find any
mechanism to extract that parameter within Cheetah scripting.
Regarding getting access - weewx and nginx run on the same raspberry pi 4,
thus the files are accessible without any problem to all web instances.
<div id="reports">
#import os
#import fnmatch
#set $noaa_dir = os.path.join('/var/www/html/weewx', 'NOAA')
#if os.path.isdir($noaa_dir)
#set $files = os.listdir($noaa_dir)
#set $monthYears = fnmatch.filter($files,
'NOAA-[0-9][0-9][0-9][0-9]-[0-9][0-9].txt')
#set $years = fnmatch.filter($files, 'NOAA-[0-9][0-9][0-9][0-9].txt')
$gettext("Monthly Reports"):
<select name="reports" onchange="openTabularFile(value)">
#for $entry in $monthYears
#set $monthYear = $entry[5:-4]
<option value="$monthYear">$monthYear</option>
#end for
<option selected>- $gettext("select month") -</option>
</select>
<br/>
$gettext("Yearly Reports"):
<select name="reports" onchange="openTabularFile(value)">
#for $entry in $years
#set $year = $entry[5:-4]
<option value="$year">$year</option>
#end for
<option selected>- $gettext("select year") -</option>
</select>
<br/>
#end if
</div>
Regards, Michael
Vince Skahan schrieb am Samstag, 25. Juli 2026 um 19:18:43 UTC+2:
> Is there a reasonable way to seed (so to speak) the new db with
> placeholder info so the existing Seasons has whatever it needs to generate
> the lists of months/years for the historical data ? Seems like a one-time
> thing might be possible perhaps ?
>
> On Saturday, July 25, 2026 at 10:08:11 AM UTC-7 Tom Keffer wrote:
>
>> Good idea. It could be packaged as a search list extension.
>>
>> Of course, that will only get you what is on the computer that is hosting
>> weewx, not what is on the web server.
>>
>> On Sat, Jul 25, 2026 at 9:55 AM 'Michael Waldor' via weewx-user <
>> [email protected]> wrote:
>>
>>> With the help of gemini I could write a small Cheetah script to do what
>>> I need - of course this is only a kind of workaround/proof of concept. But
>>> it works:
>>> <div id="reports">
>>> #import os
>>> #import fnmatch
>>> #set $files = os.listdir('/var/www/html/weewx/NOAA')
>>> #set $months = fnmatch.filter($files,
>>> 'NOAA-[0-9][0-9][0-9][0-9]-[0-9][0-9].txt')
>>> #set $years = fnmatch.filter($files, 'NOAA-[0-9][0-9][0-9][0-9].txt')
>>> $gettext("Monthly Reports"):
>>> <select name="reports" onchange="openTabularFile(value)">
>>> #for $month in $months
>>> #set $monthYear = os.path.splitext($month)[0]
>>> #set $monthYear = $monthYear[5:]
>>> <option value="$monthYear">$monthYear</option>
>>> #end for
>>> <option selected>- $gettext("select month") -</option>
>>> </select>
>>> <br/>
>>> $gettext("Yearly Reports"):
>>> <select name="reports" onchange="openTabularFile(value)">
>>> #for $year in $years
>>> #set $yr = os.path.splitext($year)[0]
>>> #set $yr = $yr[5:]
>>> <option value="$yr">$yr</option>
>>> #end for
>>> <option selected>- $gettext("select year") -</option>
>>> </select>
>>> <br/>
>>> </div>
>>> Anyhow I'm really impressed of the power of Cheetah!
>>>
>>> Tom Keffer schrieb am Samstag, 25. Juli 2026 um 17:34:27 UTC+2:
>>>
>>>> Client-side Javascript cannot read the web server's file system due to
>>>> security sandboxing. I can think of a few ways around that, but none
>>>> is very satisfying.
>>>>
>>>> 1. Turn directory indexing on for the NOAA subdirectory. Then fetch
>>>> the list of files, parse them, and display. This is probably the best
>>>> of
>>>> the alternative approaches. I didn't use this because it requires a
>>>> user to
>>>> modify his/her web server configuration.
>>>> 2. Include some sort of manifest file, such as noaa.json. Retrieve
>>>> that, parse, and display. Problem is that the manifest file has to be
>>>> generated, so you're back to where you started.
>>>> 3. Require a backend framework. You read the manifest from an
>>>> endpoint. Again, this requires users to install infrastructure.
>>>>
>>>> The solution I came up with was the only one that required minimal
>>>> user modifications. If I have missed an idea, I'd love to hear about it!
>>>>
>>>> -tk
>>>>
>>>>
>>>> On Sat, Jul 25, 2026 at 8:20 AM 'Michael Waldor' via weewx-user <
>>>> [email protected]> wrote:
>>>>
>>>>> Thanks for your quick reply. The NOAA files are stored within the HTML
>>>>> area served by nginx, thus should be visible for a web browser. Only the
>>>>> selection is not possible because the variables are set by
>>>>> CheetahGenerator
>>>>> - as to be expected.
>>>>>
>>>>> Thus my best solution will be data migration. The author of the new
>>>>> ecowitt driver even provides an sql script for that purpose. I'll give it
>>>>> a
>>>>> try.
>>>>>
>>>>> Tom Keffer schrieb am Samstag, 25. Juli 2026 um 16:31:56 UTC+2:
>>>>>
>>>>>> Your question is not entirely clear to me, but what I think you're
>>>>>> asking is how do you gain access to the file names from within the
>>>>>> webpage.
>>>>>>
>>>>>> The answer is that you can't. Modern web browsers don't allow free
>>>>>> access to the file system on the client, so you cannot search to see
>>>>>> which
>>>>>> files have been generated.
>>>>>>
>>>>>> Instead, the dropdown list that you see is created at file generation
>>>>>> time. The Cheetah generator keeps track of all files that should be
>>>>>> there
>>>>>> and populates the list with that.
>>>>>>
>>>>>> If at all possible, you would be best off figuring out some way of
>>>>>> migrating your old data to your new weewx.sdb file. Provided the data is
>>>>>> still in the flat format used by the database, this should be possible.
>>>>>> Have you tried using the "weectl database" utility for adding and
>>>>>> removing
>>>>>> columns?
>>>>>>
>>>>>> -tk
>>>>>>
>>>>>> On Sat, Jul 25, 2026 at 5:58 AM 'Michael Waldor' via weewx-user <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Both variables are used within Seasons skin titlebar.inc to populate
>>>>>>> the month resp. year dropdown. Works fine.
>>>>>>>
>>>>>>> But now I've setup a new weatherstation with incompatible weewx.sdb
>>>>>>> DB structure (ecowitt_http_driver). Thus I'm forced to start with an
>>>>>>> empty
>>>>>>> weewx.sdb (because currently I want to avoid to migrate my old data).
>>>>>>> The
>>>>>>> folder /var/www/html/weewx/NOAA still contains all old summaries,
>>>>>>> but I can't access them from Seasons gui, probabely because
>>>>>>> $SummaryByYear
>>>>>>> and $SummaryByMonth are initialized based on the current weewx.sdb.
>>>>>>>
>>>>>>> Is it possible to get access to the (existing) old NOAA files from
>>>>>>> within Seasons titlebar.inc? As a final resort I might hardwire the
>>>>>>> list of
>>>>>>> years within "my" titlebar.inc, but maybe there is a better solution?
>>>>>>>
>>>>>>> Regards, Michael
>>>>>>>
>>>>>>> --
>>>>>>> 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 visit
>>>>>>> https://groups.google.com/d/msgid/weewx-user/37c7eed3-2bbd-4307-81af-ab61e6aca2efn%40googlegroups.com
>>>>>>>
>>>>>>> <https://groups.google.com/d/msgid/weewx-user/37c7eed3-2bbd-4307-81af-ab61e6aca2efn%40googlegroups.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 visit
>>>>> https://groups.google.com/d/msgid/weewx-user/925d0362-f899-4025-88b1-8fcdbb21fd65n%40googlegroups.com
>>>>>
>>>>> <https://groups.google.com/d/msgid/weewx-user/925d0362-f899-4025-88b1-8fcdbb21fd65n%40googlegroups.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 visit
>>> https://groups.google.com/d/msgid/weewx-user/bf43a78e-900e-476b-935d-ce1a5e6608e4n%40googlegroups.com
>>>
>>> <https://groups.google.com/d/msgid/weewx-user/bf43a78e-900e-476b-935d-ce1a5e6608e4n%40googlegroups.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 visit
https://groups.google.com/d/msgid/weewx-user/37b7a2f2-cdcf-446d-9735-64d882ab325fn%40googlegroups.com.