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.

Reply via email to