It's true that there is no "monthly summary" table, but that shouldn't stop you from doing an xtypes extension. I think all that would be necessary is to modify the SQL queries slightly in
weewx-xaggs. For example, to return the all time historical high for a month the query (
line 45)
"SELECT MAX(`max`) FROM {table}_day_{obs_type} "
"WHERE STRFTIME('%m-%d', dateTime,'unixepoch','localtime') = '{month:02d}-{day:02d}';",
becomes
"SELECT MAX(`max`) FROM {table}_day_{obs_type} "
"WHERE STRFTIME('%m', dateTime,'unixepoch','localtime') = '{month:02d}';",
and so on. Call it something like "historical_month_max". That leaves the problem of where does "month" come from. In weewx-xaggs, it comes from the month of the date whose page is being generated. However, you want it for a specific month, not necessarily "today." You can use the optional parameter "option_dict" to set it (requires WeeWX V4.8 or greater). Then your template looks like
#for month in range(1,13)
# <p>The historical high for month $month is $alltime.outTemp.historical_month_max($month)</p>
#end for
Unfortunately, "option_dict" is not documented in the
xtypes wiki. I'll try to get around to that today. Or, perhaps Gary can do it.
I realize this is a rather "stream-of-consciousness" post. Hope I'm making myself clear.
-tk