Skip to content

Commit 8ab485f

Browse files
committed
Complete Module5
1 parent 5720c1e commit 8ab485f

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

sensor/energy_info.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
from house_info import HouseInfo
2+
from datetime import date
3+
4+
5+
class EnergyData(HouseInfo):
6+
ENERGY_PER_BULB = 0.2
7+
ENERGY_BITS = 0x0F0
8+
9+
def _get_energy(self, rec):
10+
energy = int(rec, base=16)
11+
energy = energy & self.ENERGY_BITS
12+
energy = energy >> 4
13+
return energy
14+
15+
def _convert_data(self, data):
16+
recs = []
17+
for rec in data:
18+
recs.append(self._get_energy(rec))
19+
return recs
20+
21+
def get_data_by_area(self, rec_area=0):
22+
recs = super().get_data_by_area("energy_usage", rec_area)
23+
return self._convert_data(recs)
24+
25+
def get_data_by_date(self, rec_date=date.today()):
26+
recs = super().get_data_by_date("energy_usage", rec_date)
27+
return self._convert_data(recs)
28+
29+
def calculate_energy_usage(self, data):
30+
total_energy = sum([field * self.ENERGY_PER_BULB for field in data])
31+
return total_energy

sensor/sensor_app.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from humidity_info import HumidityData
77
from statistics import mean
88
from particle_count_info import ParticleData
9+
from energy_info import EnergyData
910

1011
##############################
1112
# Do not remove these two lines
@@ -59,3 +60,13 @@
5960
print("\tGood Air Quality Recs: {}".format(concentrations["good"]))
6061
print("\tModerate Air Quality Recs: {}".format(concentrations["moderate"]))
6162
print("\tBad Air Quality Recs: {}".format(concentrations["bad"]))
63+
64+
energy_data = EnergyData(data)
65+
recs = energy_data.get_data_by_area(rec_area=test_area)
66+
print("\nHouse Energy sensor records for area {} = {}".format(test_area, len(recs)))
67+
total_energy = energy_data.calculate_energy_usage(data=recs)
68+
print("\tEnergy Usage: {:2.2} Watts".format(total_energy))
69+
recs = energy_data.get_data_by_date(rec_date=test_date)
70+
print("House Energy sensor records for date: {} = {}".format( test_date.strftime("%m/%d/%y"), len(recs)))
71+
total_energy = energy_data.calculate_energy_usage(data=recs)
72+
print("\tEnergy Usage: {:2.2} Watts".format(total_energy))

0 commit comments

Comments
 (0)