Closer and Closer, lol row = db_manager.getSql(sql_stmt)
Using: SELECT outTemp FROM archive WHERE dateTime BETWEEN 1642744800 AND 1642748400 Is returning a single outTemp. I am not sure how to return multiple rows then iterate through them to check for == chilhour and add them together. I know how to do it in PHP, but not WeeWX... I think once I get that, I'll be there. It would be simpler to put chillHours in the archive then I could just use sum(chillHours) in the sql query, but I'd rather not at this point, to make the xtype more flexible. On Friday, January 21, 2022 at 4:48:30 PM UTC-6 tke...@gmail.com wrote: > Oooh. That's a perfect example! Thanks, John. > > On Fri, Jan 21, 2022 at 2:29 PM 'John Kline' via weewx-user < > weewx...@googlegroups.com> wrote: > >> Another example: >> >> >> https://github.com/chaunceygardiner/weewx-purple/blob/e7f214539b63281d74af9e90810045dd8d1b7b80/bin/user/purple.py#L538 >> >> On Jan 21, 2022, at 2:01 PM, Seth Ratner <lordr...@gmail.com> wrote: >> >> It looks like there is an example in the weewx-xaggs >> <https://github.com/tkeffer/weewx-xaggs> repository. I'm about to dive >> in, but from a cursory look, unlike with the scalar, I'm going to have to >> figure out how to use dbmanager to pull the outtemps from the database then >> iterate through each one, determine which ones are chill hours, and then >> add those together, correct? >> >> On Friday, January 21, 2022 at 3:49:33 PM UTC-6 tke...@gmail.com wrote: >> >>> Let me see if I can come up with something. Give me some time. >>> >>> On Fri, Jan 21, 2022 at 1:37 PM Seth Ratner <lordr...@gmail.com> wrote: >>> >>>> Oh boy... >>>> >>>> I cant find any examples for that. If one exists, it will greatly >>>> reduce the number of questions I have... >>>> >>>> On Friday, January 21, 2022 at 3:24:07 PM UTC-6 tke...@gmail.com wrote: >>>> >>>>> You're getting close! >>>>> >>>>> You're going to have to implement get_aggregate(), as well as >>>>> get_scalar(). >>>>> >>>>> The xtypes framework has no way of taking the calculation for >>>>> get_scalar() and using it to calculate an aggregate. You're going to have >>>>> to do it. The good news is that once you've done it, then the framework >>>>> can use that to calculate a series on its own. This is where we will find >>>>> out how fast the calculation is. >>>>> >>>>> -tk >>>>> >>>>> On Fri, Jan 21, 2022 at 12:51 PM Seth Ratner <lordr...@gmail.com> >>>>> wrote: >>>>> >>>>>> Getting Closer, but still getting errors. >>>>>> >>>>>> I can now see the result in the archive loop (gets sent over MQTT). >>>>>> But with the seasons skin attempts to make a chart with it, I get: >>>>>> >>>>>> Jan 21 14:40:39 Ratner-Orchard weewx[3122] ERROR weewx.reportengine: >>>>>> Caught unrecoverable exception in generator >>>>>> 'weewx.imagegenerator.ImageGenerator' >>>>>> Jan 21 14:40:39 Ratner-Orchard weewx[3122] ERROR weewx.reportengine: >>>>>> **** chillHours >>>>>> Jan 21 14:40:39 Ratner-Orchard weewx[3122] ERROR weewx.reportengine: >>>>>> **** Traceback (most recent call last): >>>>>> Jan 21 14:40:39 Ratner-Orchard weewx[3122] ERROR weewx.reportengine: >>>>>> **** File "/usr/share/weewx/weewx/reportengine.py", line 196, >>>>>> in >>>>>> run >>>>>> Jan 21 14:40:39 Ratner-Orchard weewx[3122] ERROR weewx.reportengine: >>>>>> **** obj.start() >>>>>> Jan 21 14:40:39 Ratner-Orchard weewx[3122] ERROR weewx.reportengine: >>>>>> **** File "/usr/share/weewx/weewx/reportengine.py", line 281, >>>>>> in >>>>>> start >>>>>> Jan 21 14:40:39 Ratner-Orchard weewx[3122] ERROR weewx.reportengine: >>>>>> **** self.run() >>>>>> Jan 21 14:40:39 Ratner-Orchard weewx[3122] ERROR weewx.reportengine: >>>>>> **** File "/usr/share/weewx/weewx/imagegenerator.py", line >>>>>> 41, >>>>>> in run >>>>>> Jan 21 14:40:39 Ratner-Orchard weewx[3122] ERROR weewx.reportengine: >>>>>> **** self.genImages(self.gen_ts) >>>>>> Jan 21 14:40:39 Ratner-Orchard weewx[3122] ERROR weewx.reportengine: >>>>>> **** File "/usr/share/weewx/weewx/imagegenerator.py", line >>>>>> 177, >>>>>> in genImages >>>>>> Jan 21 14:40:39 Ratner-Orchard weewx[3122] ERROR weewx.reportengine: >>>>>> **** start_vec_t, stop_vec_t ,data_vec_t = >>>>>> weewx.xtypes.get_series(var_type, >>>>>> Jan 21 14:40:39 Ratner-Orchard weewx[3122] ERROR weewx.reportengine: >>>>>> **** File "/usr/share/weewx/weewx/xtypes.py", line 94, in >>>>>> get_series >>>>>> Jan 21 14:40:39 Ratner-Orchard weewx[3122] ERROR weewx.reportengine: >>>>>> **** raise weewx.UnknownType(obs_type) >>>>>> Jan 21 14:40:39 Ratner-Orchard weewx[3122] ERROR weewx.reportengine: >>>>>> **** weewx.UnknownType: chillHours >>>>>> Jan 21 14:40:39 Ratner-Orchard weewx[3122] ERROR weewx.reportengine: >>>>>> **** Generator terminated >>>>>> >>>>>> Here's the block I added in skin.conf >>>>>> >>>>>> [[[yearchill]]] >>>>>> plot_type = bar >>>>>> [[[[chillHours]]]] >>>>>> aggregate_type = cumulative >>>>>> aggregate_interval = day >>>>>> >>>>>> >>>>>> On Friday, January 21, 2022 at 2:14:11 PM UTC-6 Seth Ratner wrote: >>>>>> >>>>>>> I'm close, I think, except now I'm getting this every loop or report >>>>>>> generation. >>>>>>> >>>>>>> DEBUG weewx.wxservices: Unknown extensible type 'chillHours' >>>>>>> >>>>>>> There are a couple things I'm unsure of that might be causing this >>>>>>> >>>>>>> - I used the group type group_elapsed because it seemed like the >>>>>>> best fit >>>>>>> - The last line of the python file, modeled after the >>>>>>> VaporPressure.py example, is not part of either class, so I'm not sure >>>>>>> what >>>>>>> runs it. >>>>>>> >>>>>>> Here's the code: >>>>>>> https://github.com/lordratner/weewx_chillHours/blob/main/chill_hours.py >>>>>>> >>>>>>> It's been added to weewx.conf engine section in xtypes, and I've >>>>>>> confirmed the service is loading. >>>>>>> >>>>>>> Thoughts? >>>>>>> >>>>>>> >>>>>>> On Thursday, January 20, 2022 at 8:26:59 PM UTC-6 tke...@gmail.com >>>>>>> wrote: >>>>>>> >>>>>>>> I'd try it as a pure xtype first, and see what kind of performance >>>>>>>> I got. If it's slow, put it in the database. >>>>>>>> >>>>>>>> You can query the database directly, but the advantage of using >>>>>>>> xtypes system to do your queries is that it can automatically optimize >>>>>>>> whether or not to use the daily summaries. >>>>>>>> >>>>>>>> There's a brief section >>>>>>>> <https://github.com/weewx/weewx/wiki/WeeWX-V4-user-defined-types#xtypes-api> >>>>>>>> >>>>>>>> in the wiki about the API. It's pretty self-explanatory, except about >>>>>>>> where >>>>>>>> db_manager comes from. That's an instance of >>>>>>>> weewx.manager.DaySummaryManager. Look in weewx/manager.py for how to >>>>>>>> create >>>>>>>> one. There are some convenient static methods for doing so. >>>>>>>> >>>>>>>> On Thu, Jan 20, 2022 at 6:15 PM Seth Ratner <se...@lordratner.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Thanks Tom >>>>>>>>> >>>>>>>>> Final questions for the night, I promise 🤣😂 >>>>>>>>> >>>>>>>>> Would you put this one the database, or just let WeeWx calculate >>>>>>>>> it using the xtype each time? >>>>>>>>> >>>>>>>>> Second, is there an API or interface or whatever where another >>>>>>>>> application can query WeeWX for some sort of weather data? In this >>>>>>>>> case, >>>>>>>>> I'd like my irrigation software to query WeeWX for the ET, total >>>>>>>>> rain, and >>>>>>>>> chill hours of a given time frame. >>>>>>>>> >>>>>>>>> Or do I just have to read the database directly? >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, Jan 20, 2022, 19:15 Tom Keffer <tke...@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> On Thu, Jan 20, 2022 at 4:01 PM Seth Ratner <lordr...@gmail.com> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Would you add the step from the xType guide of adding chillHours >>>>>>>>>>> to [StdWXCalculate] [[Calculations]]? Or would the "synthetic type" >>>>>>>>>>> concept >>>>>>>>>>> mean it only exists when it is called on. >>>>>>>>>>> >>>>>>>>>>> As I understand it, adding it to [StdWXCalculate] >>>>>>>>>>> [[Calculations]] would add chillHours to the loop, but it would not >>>>>>>>>>> be in >>>>>>>>>>> the archive unless I also added a column for it with the same type >>>>>>>>>>> name. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> It doesn't hurt to add to StdWXCalculate, but it's really only >>>>>>>>>> necessary if you want to add the results to the database. And, >>>>>>>>>> yes, it will only get added to the database if there's a matching >>>>>>>>>> column in >>>>>>>>>> the schema. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> So on my Belchertown skin, where I want total Chill Hours from >>>>>>>>>>> Oct - May displayed, if I add it to the archive WeeWX will use the >>>>>>>>>>> database >>>>>>>>>>> to calculate the total (just adding them together), whereas if I >>>>>>>>>>> don't add >>>>>>>>>>> it to the archive, WeeWX will have to run the (if outTemp < 45 then >>>>>>>>>>> chillHours = archive_interval) for every archive row in that >>>>>>>>>>> timespan, then >>>>>>>>>>> sum that? >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Maybe. For the ImageGenerator that comes with WeeWX, if a type is >>>>>>>>>> not available in the database, it will try to calculate it "on the >>>>>>>>>> fly" >>>>>>>>>> using xtypes. However, I have no idea what the Belchertown skin >>>>>>>>>> does. I >>>>>>>>>> kind of doubt it leverages xtypes. >>>>>>>>>> -tk >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> You received this message because you are subscribed to a topic >>>>>>>>>> in the Google Groups "weewx-user" group. >>>>>>>>>> To unsubscribe from this topic, visit >>>>>>>>>> https://groups.google.com/d/topic/weewx-user/7ysYvSUMOOo/unsubscribe >>>>>>>>>> . >>>>>>>>>> To unsubscribe from this group and all its topics, send an email >>>>>>>>>> to weewx-user+...@googlegroups.com. >>>>>>>>>> To view this discussion on the web visit >>>>>>>>>> https://groups.google.com/d/msgid/weewx-user/CAPq0zEAdDBGTow7i55XfnGPzncQjdmiH%2BSk%3DL9_ZoE85QXKO%3Dw%40mail.gmail.com >>>>>>>>>> >>>>>>>>>> <https://groups.google.com/d/msgid/weewx-user/CAPq0zEAdDBGTow7i55XfnGPzncQjdmiH%2BSk%3DL9_ZoE85QXKO%3Dw%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 weewx-user+...@googlegroups.com. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/weewx-user/CAHTssjOF_Q65XveoboAwRV%2Br5-oNb8curD7LZTTmuD7Y0-EAjQ%40mail.gmail.com >>>>>>>>> >>>>>>>>> <https://groups.google.com/d/msgid/weewx-user/CAHTssjOF_Q65XveoboAwRV%2Br5-oNb8curD7LZTTmuD7Y0-EAjQ%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 weewx-user+...@googlegroups.com. >>>>>> >>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/weewx-user/cb666588-aced-461c-9171-9d48b89e85f5n%40googlegroups.com >>>>>> >>>>>> <https://groups.google.com/d/msgid/weewx-user/cb666588-aced-461c-9171-9d48b89e85f5n%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+...@googlegroups.com. >>>> >>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/weewx-user/8bb5d647-2f69-42b5-b5db-5b4c901e32f5n%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/weewx-user/8bb5d647-2f69-42b5-b5db-5b4c901e32f5n%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+...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/weewx-user/5c169c50-b9aa-4986-b2cc-0d58494b6665n%40googlegroups.com >> >> <https://groups.google.com/d/msgid/weewx-user/5c169c50-b9aa-4986-b2cc-0d58494b6665n%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+...@googlegroups.com. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/weewx-user/A8392819-685E-4BA1-93BD-BEAAF6D888C5%40johnkline.com >> >> <https://groups.google.com/d/msgid/weewx-user/A8392819-685E-4BA1-93BD-BEAAF6D888C5%40johnkline.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 on the web visit https://groups.google.com/d/msgid/weewx-user/d6e37e32-94a3-4220-8bf7-8503a3f23d3cn%40googlegroups.com.