Skip to content

Commit

Permalink
Merge branch 'master' into wh3080
Browse files Browse the repository at this point in the history
  • Loading branch information
jpuigsegur committed Dec 31, 2016
2 parents cfc51d8 + b006cb0 commit e49e2d2
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 41 deletions.
77 changes: 43 additions & 34 deletions wfdriver/station/vantagepro2.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,35 +102,46 @@ def run(self, generate_event, send_event, context={}):
bad_CRC = 0
self.logger.debug("CRC OK")
fields = _LoopStruct.unpack(raw)

# print fields

# Pressure
e = generate_event('press')
e.value = fields['Pressure'] + self.pressure_cal
e.code = 'QFF' # Davis sends QFF calculated pressure (same as on console)
send_event(e)
log_txt = "DATA PACKET Press:%.1fmb " % (fields['Pressure'] + self.pressure_cal)

# Inside Temp & Hum sensor
e = generate_event('temp')
e.sensor = 0
e.value = fields['TempIn']
send_event(e)
e = generate_event('hum')
e.sensor = 0
e.value = fields['HumIn']
send_event(e)
log_txt += "TempIn:%.1fC HumIn:%d%% " % (fields['TempIn'], fields['HumIn'])
# Inside Temp sensor
if not fields['TempIn'] is None:
e = generate_event('temp')
e.sensor = 0
e.value = fields['TempIn']
send_event(e)
log_txt += "TempIn:%.1fC " % fields['TempIn']

# Inside Hum sensor
if not fields['HumIn'] is None:
e = generate_event('hum')
e.sensor = 0
e.value = fields['HumIn']
send_event(e)
log_txt += "HumIn:%d%% " % fields['HumIn']

# Outside main Temp & Hum sensor
e = generate_event('temp')
e.sensor = 1
e.value = fields['TempOut']
send_event(e)
e = generate_event('hum')
e.sensor = 1
e.value = fields['HumOut']
send_event(e)
log_txt += "TempOut:%.1fC HumOut:%d%% " % (fields['TempOut'], fields['HumOut'])
# Outside main Temp Hum sensor
if not fields['TempOut'] is None:
e = generate_event('temp')
e.sensor = 1
e.value = fields['TempOut']
send_event(e)
log_txt += "TempOut:%.1fC " % fields['TempOut']

# Outside main Hum sensor
if not fields['HumOut'] is None:
e = generate_event('hum')
e.sensor = 1
e.value = fields['HumOut']
send_event(e)
log_txt += "HumOut:%d%% " % fields['HumOut']

# Rain bucket
e = generate_event('rain')
Expand Down Expand Up @@ -388,16 +399,18 @@ def _post_unpack(self,items):
# Pressure
items['Pressure'] = units.InHgToHPa(items['Pressure'] / 1000.0)
# Temperature
items['TempIn'] = units.FToC(items['TempIn'] / 10.0)
items['TempOut'] = units.FToC(items['TempOut'] / 10.0)
items['ExtraTemp1'] = units.FToC(items['ExtraTemp1'] / 10.0) if items['ExtraTemp1'] != 255 else None
items['ExtraTemp2'] = units.FToC(items['ExtraTemp2'] / 10.0) if items['ExtraTemp2'] != 255 else None
items['ExtraTemp3'] = units.FToC(items['ExtraTemp3'] / 10.0) if items['ExtraTemp3'] != 255 else None
items['ExtraTemp4'] = units.FToC(items['ExtraTemp4'] / 10.0) if items['ExtraTemp4'] != 255 else None
items['ExtraTemp5'] = units.FToC(items['ExtraTemp5'] / 10.0) if items['ExtraTemp5'] != 255 else None
items['ExtraTemp6'] = units.FToC(items['ExtraTemp6'] / 10.0) if items['ExtraTemp6'] != 255 else None
items['ExtraTemp7'] = units.FToC(items['ExtraTemp7'] / 10.0) if items['ExtraTemp7'] != 255 else None
items['TempIn'] = units.FToC(items['TempIn'] / 10.0) if items['TempIn'] != 32767 else None
items['TempOut'] = units.FToC(items['TempOut'] / 10.0) if items['TempOut'] != 32767 else None
items['ExtraTemp1'] = units.FToC(items['ExtraTemp1'] - 90) if items['ExtraTemp1'] != 255 else None
items['ExtraTemp2'] = units.FToC(items['ExtraTemp2'] - 90) if items['ExtraTemp2'] != 255 else None
items['ExtraTemp3'] = units.FToC(items['ExtraTemp3'] - 90) if items['ExtraTemp3'] != 255 else None
items['ExtraTemp4'] = units.FToC(items['ExtraTemp4'] - 90) if items['ExtraTemp4'] != 255 else None
items['ExtraTemp5'] = units.FToC(items['ExtraTemp5'] - 90) if items['ExtraTemp5'] != 255 else None
items['ExtraTemp6'] = units.FToC(items['ExtraTemp6'] - 90) if items['ExtraTemp6'] != 255 else None
items['ExtraTemp7'] = units.FToC(items['ExtraTemp7'] - 90) if items['ExtraTemp7'] != 255 else None
# Humidity
items['HumIn'] = items['HumIn'] if items['HumIn'] != 255 else None
items['HumOut'] = items['HumOut'] if items['HumOut'] != 255 else None
items['ExtraHum1'] = items['ExtraHum1'] if items['ExtraHum1'] != 255 else None
items['ExtraHum2'] = items['ExtraHum2'] if items['ExtraHum2'] != 255 else None
items['ExtraHum3'] = items['ExtraHum3'] if items['ExtraHum3'] != 255 else None
Expand Down Expand Up @@ -464,7 +477,3 @@ def _unpack_storm_date( date ):







4 changes: 3 additions & 1 deletion wfdriver/station/wh1080.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,10 @@ def run(self, generate_event, send_event, context={}):
e.create_child('mean')
e.mean.speed = data['wind_ave']
e.mean.dir = 22.5*(data['wind_dir'])
e.create_child('gust')
e.gust.speed = 0.0
e.gust.dir = 0.0
if data['wind_gust']:
e.create_child('gust')
e.gust.speed = data['wind_gust']
e.gust.dir = 22.5*(data['wind_dir'])
send_event(e)
Expand Down
3 changes: 1 addition & 2 deletions wflogger/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,7 @@ def setup_settings(self, settings_def_file, source_file, target_file):
defs = yaml.load( file(settings_def_file, 'r') )
if source_file is not None:
source = yaml.load( file(source_file, 'r') )
source = None
if source == None:
else:
source = {}
target = {}
try:
Expand Down
4 changes: 2 additions & 2 deletions wfrender/renderer/pwsweather.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,9 +137,9 @@ def render(self, data={}, context={}):
# <float> winddir: in degrees, between 0.0 and 360.0
'winddir' : data['wind_deg'][index] }

# Do not send parameters that are null (None).
# Do not send parameters that are null (None), but don't remove zeroes (0.0)
# from above only dateutc is a mandatory parameter.
params = dict(filter(lambda (p,v): v, [(p,v) for p,v in params.iteritems()]))
params = dict(filter(lambda (p,v): v is not None, [(p,v) for p,v in params.iteritems()]))
self.logger.info("Publishing PWS data: %s " % str(params))
self.publisher.set(**params)
response = self.publisher.publish()
Expand Down
4 changes: 2 additions & 2 deletions wfrender/renderer/wunderground.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,9 @@ def render(self, data={}, context={}):
# <float> windgustdir: in degrees, between 0.0 and 360.0
'windgustdir' : data['gust_deg'][index] }

# Do not send parameters that are null (None).
# Do not send parameters that are null (None), but don't remove zeroes (0.0)
# from above only dateutc is a mandatory parameter.
params = dict(filter(lambda (p,v): v, [(p,v) for p,v in params.iteritems()]))
params = dict(filter(lambda (p,v): v is not None, [(p,v) for p,v in params.iteritems()]))
self.logger.info("Publishing Wunderground data (normal server): %s " % str(params))
self.publisher.set(**params)
response = self.publisher.publish()
Expand Down

0 comments on commit e49e2d2

Please sign in to comment.