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 <arendheng...@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+unsubscr...@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/CAPq0zECV5jNa1kzzWPJ7-Zku3bTL1o4zZJK2QZ%2BzZ4TUwQtJYg%40mail.gmail.com.

Reply via email to