The get_scalar function is still returning the correct values:
[image: Current conditions.png]
I have put Outside Temperature, Temperature1 and the calculated Lowest 
Temperature in one chart. I really don't understand why the get_series 
calculation is now outputting such high values. Any suggestions are welcome.

[image: daytempdew (1).png]

Op woensdag 6 januari 2021 om 19:24:22 UTC+1 schreef tke...@gmail.com:

> I would guess that the problem is that you are always returning 
> lowestTemperature in Fahrenheit, but your data records are in Celsius.
>
> That part of XTypes has not changed. I don't know why it worked before. 
> Perhaps units were in Fahrenheit before?
>
> -tk
>
> On Wed, Jan 6, 2021 at 10:16 AM Arend <arendh...@gmail.com> wrote:
>
>> Hello Tom,
>>
>> I get strange output as can be seen in the chart below. It apperas the 
>> series isn't calculated/retrieved as it did before the upgrade. I hope this 
>> helps to understand.
>>
>> [image: daytempdew.png]
>>
>> Regards, Arend
>> Op woensdag 6 januari 2021 om 19:12:47 UTC+1 schreef tke...@gmail.com:
>>
>>> It would help if we knew what the problem was. "No longer works" doesn't 
>>> tell us much.
>>>
>>> On Wed, Jan 6, 2021 at 10:00 AM Arend <arendh...@gmail.com> wrote:
>>>
>>>> In addition to the previous: the get_scalar function still seems to be 
>>>> working but the get_series function no longer works.
>>>>
>>>> Op woensdag 6 januari 2021 om 18:33:12 UTC+1 schreef Arend:
>>>>
>>>>> Everything worked fine until I did the upgrade.
>>>>>
>>>>> I guess something has changed in the way XTypes are handled?
>>>>>
>>>>> *This is the code I use in extensions.py:*
>>>>>
>>>>> #
>>>>> #    Copyright (c) 2009-2015 Tom Keffer <tke...@gmail.com>
>>>>> #
>>>>> #    See the file LICENSE.txt for your full rights.
>>>>> #
>>>>>
>>>>> """User extensions module
>>>>>
>>>>> This module is imported from the main executable, so anything put here 
>>>>> will be
>>>>> executed before anything else happens. This makes it a good place to 
>>>>> put user
>>>>> extensions.
>>>>> """
>>>>>
>>>>> import locale
>>>>> # This will use the locale specified by the environment variable 'LANG'
>>>>> # Other options are possible. See:
>>>>> # http://docs.python.org/2/library/locale.html#locale.setlocale
>>>>> locale.setlocale(locale.LC_ALL, '')
>>>>>
>>>>> import user.lowest_temperature
>>>>> import weewx.xtypes
>>>>>
>>>>> weewx.xtypes.xtypes.append(user.lowest_temperature.LowestTemperature())
>>>>>
>>>>>
>>>>> *This is the code in lowest_temperature.py:*
>>>>>
>>>>> import weewx.units
>>>>> import weewx.xtypes
>>>>> from weewx.units import ValueTuple
>>>>>
>>>>> class LowestTemperature(weewx.xtypes.XType):
>>>>>
>>>>>   def get_scalar(self, obs_type, record, dbmanager):
>>>>>     """Determine which sensor has lowest temperature."""
>>>>>     if obs_type != 'lowTemperature':
>>>>>       raise weewx.UnknownType
>>>>>     try:
>>>>>       record_us = weewx.units.to_US(record)
>>>>>       if record_us['outTemp'] == None or record_us['extraTemp1'] == 
>>>>> None:
>>>>>       # if record_us['outTemp'] < 100 or record_us['extraTemp1'] < 100:
>>>>>         raise TypeError("Temperature(s) equal to None")
>>>>>       if record_us['outTemp'] <= record_us['extraTemp1']:
>>>>>         lowTemperature = record_us['outTemp']
>>>>>       else:
>>>>>         lowTemperature = record_us['extraTemp1']
>>>>>       return ValueTuple(lowTemperature, "degree_F", 
>>>>> "group_temperature")
>>>>>     except KeyError:
>>>>>       # Don't have everything we need. Raise an exception.
>>>>>       raise weewx.CannotCalculate(obs_type)
>>>>>   
>>>>>   def get_series(self, obs_type, timespan, db_manager, 
>>>>> aggregate_type=None, aggregate_interval=None):
>>>>>     if obs_type != 'lowTemperature':
>>>>>       raise weewx.UnknownType
>>>>>     start_vec = list()
>>>>>     stop_vec = list()
>>>>>     data_vec = list()
>>>>>     if aggregate_type:
>>>>>       raise weewx.UnknownAggregation(aggregate_type)
>>>>>     for record in db_manager.genSql("SELECT `dateTime`, `interval`, 
>>>>> `usUnits`, `outTemp`, `extraTemp1` FROM `archive` WHERE `dateTime` > 
>>>>> %(start)s AND `dateTime` <= %(stop)s;" % {'start': timespan[0], 'stop': 
>>>>> timespan[1]}):
>>>>>       if (record[2] != 1):
>>>>>         raise weewx.CannotCalculate("units are not US")
>>>>>       if record[3] == None or record[4] == None:
>>>>>       # if record[3] < 100 or record[4] < 100:
>>>>>         raise TypeError("Temperature(s) equal to None") 
>>>>>       start_vec.append(record[0] - record[1] * 60)
>>>>>       stop_vec.append(record[0])
>>>>>       if record[3] <= record[4]:
>>>>>         data_vec.append(record[3])
>>>>>       else:
>>>>>         data_vec.append(record[4])
>>>>>     return (ValueTuple(start_vec, 'unix_epoch', 'group_time'), 
>>>>> ValueTuple(stop_vec, 'unix_epoch', 'group_time'), ValueTuple(data_vec, 
>>>>> "degree_F", "group_temperature"))
>>>>>
>>>>> Do I need to rewrite all code?
>>>>>
>>>>> -- 
>>>> 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/5ac947ed-240d-428b-8a69-c0186359d97cn%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/weewx-user/5ac947ed-240d-428b-8a69-c0186359d97cn%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/1b588685-d1ba-4940-99d7-b830a6b0b700n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/weewx-user/1b588685-d1ba-4940-99d7-b830a6b0b700n%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 on the web visit 
https://groups.google.com/d/msgid/weewx-user/1cb8ca22-53dc-4050-be53-dbd0c48a7933n%40googlegroups.com.

Reply via email to