Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
energy
bmon
Commits
85699e98
Commit
85699e98
authored
Jun 29, 2015
by
Ian Moore
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Changed formulas for storing dollar costs read from ARIS
parent
8337708c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
12 deletions
+14
-12
bmsapp/calcs/aris_web_api.py
bmsapp/calcs/aris_web_api.py
+13
-11
bmsapp/calcs/calcfuncs01.py
bmsapp/calcs/calcfuncs01.py
+1
-1
No files found.
bmsapp/calcs/aris_web_api.py
View file @
85699e98
...
...
@@ -34,7 +34,7 @@ def get_energy_use(building_id,
energy_type_id
,
last_update_ts
=
0
,
energy_parameter
=
'EnergyQuantity'
,
energy_multiplier
=
None
,
energy_multiplier
=
1
,
expected_period_months
=
1
):
"""
Returns building energy usage information via the ARIS Web API
...
...
@@ -63,7 +63,6 @@ def get_energy_use(building_id,
response_data
=
r
.
json
()
except
requests
.
exceptions
.
RequestException
as
e
:
print
e
response_data
=
[]
raise
if
len
(
response_data
)
>
0
:
...
...
@@ -73,14 +72,18 @@ def get_energy_use(building_id,
read_dt
=
parser
.
parse
(
response_row
[
'MeterReadDate'
])
else
:
read_dt
=
datetime
.
strptime
(
response_row
[
'UsageMonthYear'
],
'%m-%Y'
)
+
relativedelta
(
months
=+
1
,
days
=-
1
)
# last_dt = datetime.strptime(response_row['UsageMonthYear'], '%m-%Y') + relativedelta(days=-1)
if
response_row
[
'PreviousReadDate'
]:
last_dt
=
parser
.
parse
(
response_row
[
'PreviousReadDate'
])
if
abs
((
read_dt
-
last_dt
).
days
)
>
(
expected_period_months
*
30
*
1.7
5
):
if
abs
((
read_dt
-
last_dt
).
days
)
>
(
expected_period_months
*
5
2
):
last_dt
=
read_dt
+
relativedelta
(
months
=
(
-
1
*
expected_period_months
))
else
:
last_dt
=
read_dt
+
relativedelta
(
months
=
(
-
1
*
expected_period_months
))
# a better algorithm to deal with the last day of the month would be:
# last_dt = read_dt + relativedelta(days=+1)
# + relativedelta(months=(-1 * expected_period_months))
# + relativedelta(days=-1)
# but, changing this might mess up data from sensors that have already been processed
sensor_dt
=
last_dt
+
(
read_dt
-
last_dt
)
/
2
read_period_hours
=
(
read_dt
-
last_dt
).
total_seconds
()
/
60
/
60
...
...
@@ -100,15 +103,14 @@ def get_energy_use(building_id,
# Convert the energy parameter value into appropriate units for the sensor
if
energy_parameter
==
'EnergyQuantity'
:
if
energy_multiplier
is
None
:
energy_multiplier
=
1
sensor_value
=
energy_parameter_value
/
read_period_hours
*
energy_multiplier
# return hourly energy use
sensor_value
=
energy_parameter_value
*
energy_multiplier
/
read_period_hours
elif
energy_parameter
in
[
'DollarCost'
,
'DemandCost'
]:
# For now, return direct value for cost
# but we may eventually decide to normalize for a standard length read period
sensor_value
=
energy_parameter_value
# return monthly cost. There are 8766 hours in a year, so 730.5 hours on average per month
sensor_value
=
energy_parameter_value
*
energy_multiplier
/
(
read_period_hours
/
730.5
)
else
:
sensor_value
=
energy_parameter_value
# return direct values for demand or anything else
# return values for demand or anything else
sensor_value
=
energy_parameter_value
*
energy_multiplier
# Update the last update date
update_dt
=
parser
.
parse
(
response_row
[
'UpdateDate'
])
...
...
bmsapp/calcs/calcfuncs01.py
View file @
85699e98
...
...
@@ -148,7 +148,7 @@ class CalcReadingFuncs_01(calcreadings.CalcReadingFuncs_base):
building_id
,
energy_type_id
,
energy_parameter
=
'EnergyQuantity'
,
energy_multiplier
=
None
,
energy_multiplier
=
1
,
expected_period_months
=
1
):
"""** No parameters are sensor reading arrays **
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment