Oooh. That's a perfect example! Thanks, John.

On Fri, Jan 21, 2022 at 2:29 PM 'John Kline' via weewx-user <
[email protected]> 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 <[email protected]> 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 [email protected] 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 <[email protected]> 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 [email protected] 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 <[email protected]>
>>>> 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 [email protected]
>>>>>> 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 <[email protected]>
>>>>>>> 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 <[email protected]> wrote:
>>>>>>>>
>>>>>>>>> On Thu, Jan 20, 2022 at 4:01 PM Seth Ratner <[email protected]>
>>>>>>>>> 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 [email protected].
>>>>>>>>> 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 [email protected].
>>>>>>>> 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 [email protected].
>>>>>
>>>> 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 [email protected].
>>>
>> 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 [email protected].
> 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 [email protected].
> 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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/CAPq0zECv3roTZJjMN-Rn6q6dnigf66%2ByqbO15Uw8UFwqr3KT6w%40mail.gmail.com.

Reply via email to