I ran that query or similar on my mariadb... took forever.
Would it not be simpler to have an table called archive_day_bom_minmax and
have a weewx service write to that table at 9am each day?


On Thu, 20 Mar 2025 at 18:31, Mike B. <ozcze...@gmail.com> wrote:

> Hi All,
>
> I am trying to capture a new observation: "Highest Nighttime Min
> Temperature". I am using this logic "The running min, a value the Bureau Of
> Meteorology uses to highlight the lowest temperature between 6pm and 9am"
>
> I have a query against archive table (MariaDb)
>
> SELECT      (x.night + INTERVAL 1 DAY) AS night,
>             UNIX_TIMESTAMP(x.night),
>             x.lowestNightTemp
> FROM        (
>             SELECT      CAST(FROM_UNIXTIME(dateTime) AS DATE) - INTERVAL 9
> HOUR AS night,
>                         MAX((a.outTemp-32)*(5/9)) AS highestNightTemp,
>                         MIN((a.outTemp-32)*(5/9)) AS lowestNightTemp,
>                         DATE_ADD(DATE_SUB(CAST(FROM_UNIXTIME(dateTime) AS
> DATE), INTERVAL 1 DAY), INTERVAL 18 HOUR) AS DayBefore,
>                         DATE_ADD(CAST(FROM_UNIXTIME(dateTime) AS DATE),
> INTERVAL 9 HOUR) AS Day
>             FROM        archive AS a
>             WHERE       a.dateTime BETWEEN
>                         UNIX_TIMESTAMP(DATE_ADD(DATE_SUB(CAST
> (FROM_UNIXTIME(dateTime) AS DATE), INTERVAL 1 DAY), INTERVAL 18 HOUR))
>                         AND
>                         UNIX_TIMESTAMP(DATE_ADD(CAST(FROM_UNIXTIME(
> dateTime) AS DATE), INTERVAL 9 HOUR))
>             GROUP BY    night
>             ) AS x
> ORDER BY    x.lowestNightTemp DESC LIMIT 1
>
> The above query seems to work, as it returns the Highest lowest
> Temperature between 6pm and 9am.
>
> I am trying to work out how to integrate this into the weewx process. I
> want to:
> * Run a service or something once a day (say midnight) and then for each
> "day" (defined as 6pm to 9am) store the summary
> * If I run rebuild daily summaries  (weectl database) ideally this process
> should also run
> * Add result to records to have something like:
>       "Highest Minimum overnight Temperature    29.111 C      23 Mar 2025"
>
> I created a service "class NighttimeTempTracker(StdService)" and added it
> to "data_services"...but it runs for each ARCHIVE PERIOD
> (weewx.NEW_ARCHIVE_RECORD)
> and cannot span multiple days.
>
> I am out of ideas in which ways I can achieve the above via weewx process.
> Any help, pointers, sample code or projects would be highly appreciated.
>
> Thanks
>
> Mike
>
>
> --
> 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 weewx-user+unsubscr...@googlegroups.com.
> To view this discussion visit
> https://groups.google.com/d/msgid/weewx-user/31513f26-63d1-4e47-a903-9c584ba64a7cn%40googlegroups.com
> <https://groups.google.com/d/msgid/weewx-user/31513f26-63d1-4e47-a903-9c584ba64a7cn%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 weewx-user+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/weewx-user/CANcmcPWze5%3D7mQuHjmNqqMPmkJfxqrjwUDW%2BkmJd-z41nsY0Cw%40mail.gmail.com.

Reply via email to