Hah, 17 lines of code, right in the target zone!
Gary
On Friday, 29 March 2019 09:29:34 UTC+10, Thomas Keffer wrote:
>
> If you really want to do this, you would be better off writing a simple
> WeeWX service, rather than trying to squeeze it into StdCalibrate. It's
> really pretty simple. Something like this (NOT TESTED):
>
> *File user/temperature_fix.py:*
>
> import datetime
> import weewx
> from weewx.engine import StdService
>
> def fix_temp(record):
> hour =
> int(datetime.datetime.utcfromtimestamp(record['dateTime']).strftime("%H"))
> if record['outTemp'] > record['extraTemp1] + 4 and 16 < hour < 20:
> record['outTemp'] = record['extraTemp1']
>
> class FixMyTemperature(StdService):
> """Service that switches between temperature sensors"""
>
> def __init__(self, engine, config_dict):
> super(FixMyTemperature, self).__init__(engine, config_dict)
>
> self.bind(weewx.NEW_LOOP_PACKET, self.new_loop_packet)
> self.bind(weewx.NEW_ARCHIVE_RECORD, self.new_archive_record)
>
> def new_loop_packet(self, event):
> fix_temp(event.packet)
>
> def new_archive_record(self, event):
> fix_temp(event.record)
>
> Add this new service to the end of the process_services:
> process_services = weewx.engine.StdConvert,
> weewx.engine.StdCalibrate, weewx.engine.StdQC,
> weewx.wxservices.StdWXCalculate, user.temperature_fix.FixMyTemperature
>
>
> But, do you really want to do this? There is no substitute for a properly
> calibrated and sited instrument.
>
> -tk
>
>
> On Thu, Mar 28, 2019 at 4:09 PM p q <[email protected] <javascript:>>
> wrote:
>
>> What do you mean in-line python in a template? Do you mean change the
>> skin to do the calculation when displaying the data? I'm mostly concerned
>> about having erroneous high temps in my historical data.
>>
>> I agree it's getting complex, but I don't see a better way short of
>> moving my thermometer to a new enclosure.
>>
>> On Thu, Mar 28, 2019 at 4:03 PM gjr80 <[email protected] <javascript:>>
>> wrote:
>>
>>> On Friday, 29 March 2019 08:56:27 UTC+10, [email protected] wrote:
>>>>
>>>> Ok. I made multiple errors and the try/catch was swallowing them. I
>>>> still don't know if I found and fixed them all, but I think I did.
>>>>
>>>> Mistake #1
>>>> I need to add datetime import into the engine python code
>>>>
>>>>
>>> Just remember if you make a change to engine.py then you are opening
>>> yourself up to having your changes overwritten when upgrading. You can
>>> always pickup the date-time requirements with a couple of lines of in-line
>>> python in a template. Also remmeber the zen
>>> <https://www.python.org/dev/peps/pep-0020/#id3>:
>>>
>>> Simple is better than complex.
>>> Complex is better than complicated.
>>>
>>>
>>> I'm guessing your are bordering on the complicated
>>>
>>> Gary
>>>
>>> --
>>> 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] <javascript:>.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>> --
>> Peter Quinn
>> (415)794-2264
>>
>> --
>> 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] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
--
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].
For more options, visit https://groups.google.com/d/optout.