Frank also this in weewx.conf
#station_type = Simulator
station_type = PiWeather
#############################################################################
[PiWeather]
loop_interval = 2.5
driver = user.piweather
############################################################################
Neville
On Friday, March 3, 2017 at 11:02:36 AM UTC+10, Neville Davis wrote:
>
> Frank
>
> I use the following has been faultless for months on Pi3 with data from
> i2C and other sensors
>
> #
> # $Revision: 1 $
> # $Author: Nickolas McColl $
> # $Date: 2014-08-16 $
> # Initial information from above author further edits by Nev Davis
> # Latest edit 12 Dec 2016 by Nev Davis reconfigured to place in user dir
>
> """Raspberry Pi driver for the weewx weather system"""
>
> from __future__ import with_statement
> import math
> import time
> import weewx.units
> import weedb
> import weeutil.weeutil
> import weewx.drivers
> import weewx.wxformulas
>
> DRIVER_NAME = 'PiWeather'
> DRIVER_VERSION = "1.8"
>
> def loader(config_dict, engine):
> return PiWeatherDriver(**config_dict[DRIVER_NAME])
>
> def confeditor_loader():
> return PiWeatherConfEditor()
>
> class PiWeatherDriver(weewx.drivers.AbstractDevice):
>
> def __init__(self, **stn_dict):
> self.loop_interval = float(stn_dict.get('loop_interval',2.5))
>
> def genLoopPackets(self):
> while True:
> start_time = time.time()
>
> # Create Loop packet
> f = open('/var/ramdisk/wxdata.csv')
> input = f.readline()
> f.close()
>
> data = input.split(',')
> if len(data) == 13: # data line is complete, process
> for i in range(1, (len(data))):
> try:
> data[i] = float(data[i])
> except ValueError:
> data[i] = None
>
> raw_time =time.strptime(data[0], "%Y-%m-%d %H:%M:%S")
>
> _packet = {'dateTime': int(time.mktime(raw_time)),
> 'usUnits' : weewx.METRIC,
> 'outTemp' : data[1],
> 'outHumidity' : data[2],
> 'pressure' : data[6],
> 'extraTemp1' : data[7],
> 'windSpeed' : data[3], #use 3 second average
> 'windGust' : data[4], #use 3 second average
> 'windDir' : data[5],
> 'radiation' :data[11],
> 'inTemp' : data[8],
> 'inHumidity' : data[9],
> 'UV' : data[10],
> 'farsSpeed' : data[12]
> #'referenceVoltage' : data[12]
> #'UV' : data[11]
> }
> _packet['dewpoint'] =
> weewx.wxformulas.dewpointC(_packet['outTemp'], _packet['outHumidity'])
> #_packet['barometer'] =
> weewx.wxformulas.sealevel_pressure_Metric(_packet['pressure'],
> self.altitude, _packet['outTemp'])
> #_packet['altimeter'] =
> weewx.wxformulas.altimeter_pressure_Metric(_packet['pressure'],
> self.altitude)
> _packet['heatdeg'] =
> weewx.wxformulas.heating_degrees(_packet['outTemp'], 18.333)
> _packet['cooldeg'] =
> weewx.wxformulas.cooling_degrees(_packet['outTemp'], 18.333)
> _packet['heatindex'] =
> weewx.wxformulas.heatindexC(_packet['outTemp'], _packet['outHumidity'])
>
> yield _packet
>
> sleep_time = (start_time - time.time()) + self.loop_interval
> #sleep_time = self.loop_interval
> if sleep_time > 0:
> time.sleep(sleep_time)
>
> class PiWeatherConfEditor(weewx.drivers.AbstractConfEditor):
> @property
> def default_stanza(self):
> return
>
>
> Neville
>
> On Thursday, March 2, 2017 at 8:53:45 AM UTC+10, mwall wrote:
>>
>>
>>
>> On Wednesday, March 1, 2017 at 2:32:28 PM UTC-5, Frank Johnson wrote:
>>>
>>> ok now im confused (big time) here is my log file and looks like it
>>> should work so what is it looking for...
>>>
>>
>> frank,
>>
>> the code i posted is not tested, and in fact is not correct. this is
>> closer:
>>
>> with open(filename) as f:
>> line = f.readline()
>> values = line.split(',')
>> record['inTemp'] = float(values[0])
>> record['inHumidity'] = float(values[1])
>> record['barometer'] = float(values[2])
>>
>> but there is no error-checking, and you still need to check
>> record['usUnits'] to see whether you need to do any unit conversions.
>>
>> m
>>
>
--
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.