Meant to link the relevant section 
<http://weewx.com/docs/usersguide.htm#StdCalibrate> from the Users Guide 
<http://weewx.com/docs/usersguide.htm> but forgot. It does not say it in so 
many words but you can anything that can 'evaluated' in a single line. Most 
folks tend to think of simple formulae involving one or more variables but 
the single line version of the python if..then..else statement lets you 
bring in conditional evaluation as well.

If you are interested in the python behind [StdCalibrate] then anything 
that you can do in the python eval() 
<https://docs.python.org/2/library/functions.html#eval> function can be 
used. The available variables are observation field names in the loop 
packet or archive record being processed, eg: outTemp, outHumidity, rain etc

Gary

On Thursday, 28 March 2019 11:15:28 UTC+10, [email protected] wrote:
>
> That's exactly what I was looking for.
>
> I want to set outTemp, but otherwise exactly what I need. I didn't know 
> that I could put an if statement there. Can I use other python code there 
> to be able to look up the time? Is this in the documentation someplace?
>
> I'll try it out now.
>
> On Wednesday, March 27, 2019 at 6:03:35 PM UTC-7, gjr80 wrote:
>>
>> Hi,
>>
>> You could put an entry in [StdCalibrate] in weewx.conf to set outTemp or 
>> extraTemp1 to whatever you want. Something like:
>>
>> [StdCalibrate]
>>     [[Corrections]]
>>         extraTemp1 = extraTemp1 if outTemp > extraTemp1 + 6 else outTemp
>>
>> or you could flip the equation around and change outTemp. Another 
>> approach would be to put your composite temperature in another field such 
>> as extraTemp2:
>>
>> [StdCalibrate]
>>     [[Corrections]]
>>         extraTemp2 = extraTemp1 if outTemp > extraTemp1 + 6 else outTemp
>>
>> The 2nd approach will preserve you outTemp or extraTemp1 data and should 
>> see extraTemp2 saved to the database. 
>>
>> Note that the above is untested and the '6' assumes you are using US 
>> customary units in your database - if not then 6 needs to be converted to C.
>>
>> Also, depending on your requirements you could achieve a similar result 
>> with some in line python code in your template. This would work fine for 
>> displaying current data but will not give you the aggregates that you get 
>> from having the composite data in the database. You could easily work in 
>> your time based requirements as well (pseudo code  - if 17 < hour < 19 
>> display extraTemp1 else display outTemp). You could even use a combination 
>> of [StdCalibrate] and some python inline code to get the best of both 
>> worlds.
>>
>> Gary
>>
>> On Thursday, 28 March 2019 10:28:29 UTC+10, [email protected] wrote:
>>>
>>> Hi,
>>>
>>> I have been using Weewx v3.5.0 for a few years now. I have an Accurite 
>>> weather station with the thermometer, rain gauge and anemometer in a single 
>>> unit. In order to get the rain gauge and anemometer to give useful 
>>> readings, I mounted it on the roof where it's away from all the trees. It's 
>>> the best location for wind and rain, but it sucks for the temperature much 
>>> of the time. I have a white roof and the temp up there is often 10degF 
>>> warmer than ambient.
>>>
>>> To get around that, I built my own wifi thermometer and put it in a much 
>>> better location. Details of the build here 
>>> <https://hackaday.io/project/101680-solar-powered-wifi-temperature-sensor-for-weewx>
>>> . 
>>>
>>> The new thermometer gives more accurate readings almost all the time. 
>>> However, a few minutes in the late afternoon, I get direct sunshine on it 
>>> and the temp spikes. It can spike by 20 degrees sometimes and is screwing 
>>> with my long term high temp data. It's worst this time of year, before the 
>>> oak trees leaf out and block the afternoon sun.
>>>
>>> I'm recording the Accurite data in extraTemp1 and my thermometer in 
>>> outTemp. I want to write some code to put the extraTemp1 value in outTemp 
>>> if outTemp is more than 6 degF higher than extraTemp1. Ideally I'd only do 
>>> this between 5-7pm local time, but doing it all the time would be ok. The 
>>> problem I'm having is finding a good place to do the comparison. The 
>>> service that reads outTemp doesn't have the extraTemp1 value. The code that 
>>> reads the Accurite data and stuffs it into extraTemp1 doesn't have the 
>>> outTemp data. Does anyone have a suggestion on where to do this comparison?
>>>
>>> I've tried fixing it up after the fact with a SQL query. It works, but 
>>> I'd like to do it in real time rather than go back and fix the data later.
>>>
>>

-- 
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.

Reply via email to