Skip to content

Commit 89dff51

Browse files
committed
added watering and fixes
1 parent 2fe76cb commit 89dff51

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

app/resources/parser.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,30 +30,37 @@ def check_t_rule(register, night_value, day_value):
3030
}
3131

3232
LIGHT_RULES_MAP = {
33-
1: (is_in_range, (200, 350)),
33+
1: (is_in_range, (350, 500)),
3434
2: (is_in_range, (200, 350)),
3535
3: (is_in_range, (75, 200)),
3636
4: (is_in_range, (25, 75)),
3737
}
3838

39+
WATERING_RULES_MAP = {
40+
1: (is_in_range, (70, 100)),
41+
2: (is_in_range, (40, 70)),
42+
3: (is_in_range, (10, 40)),
43+
}
44+
3945

4046
def parse_values(string):
4147
values = string.split('-')
4248
return [int(value) for value in values]
4349

4450

45-
# asumimos register: nombre_planta, humedad, luz, temperatura
4651
def apply_rules(register, plant_name):
4752
plant_data = df[df['Botanical_Name'] == plant_name]
4853
h_value = plant_data['H'].values[0]
4954
l_value = plant_data['L'].values[0]
5055
t_value = plant_data['T'].values[0]
56+
w_value = plant_data['W'].values[0]
5157

5258
parameters = []
5359

5460
t_values = parse_values(t_value)
5561
h_values = parse_values(h_value)
5662
l_values = parse_values(l_value)
63+
w_values = parse_values(w_value)
5764

5865
is_temperature_deviated = all(
5966
not apply_temperature_rule(t_value, register.temperature)
@@ -62,6 +69,13 @@ def apply_rules(register, plant_name):
6269
if is_temperature_deviated:
6370
parameters.append('temperature')
6471

72+
is_watering_deviated = all(
73+
not apply_watering_rule(w_value, register.watering)
74+
for w_value in w_values
75+
)
76+
if is_watering_deviated:
77+
parameters.append('watering')
78+
6579
is_light_deviated = all(
6680
not apply_light_rule(l_value, register.light)
6781
for l_value in l_values
@@ -84,6 +98,11 @@ def apply_temperature_rule(rule, register):
8498
return rule_function(register, *rule_values)
8599

86100

101+
def apply_watering_rule(rule, register):
102+
rule_function, rule_values = WATERING_RULES_MAP.get(rule, None)
103+
return rule_function(register, *rule_values)
104+
105+
87106
def apply_light_rule(rule, register):
88107
rule_function, rule_values = LIGHT_RULES_MAP.get(rule, None)
89108
return rule_function(register, *rule_values)

app/service/rabbitmq/consumer.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ def check_package(self, measurement_from_rabbit):
5454

5555
def send_notification(self, id_user, message):
5656
logger.info(f"[ ID_USER: {id_user} ]")
57-
logger.info("TO DO - For Step #2 & Step #4 from Ticket HAN-14")
5857

5958
def apply_rules(self, measurement):
6059
# TODO: FIND PLANT TYPE NAME GIVEN PLANT TYPE
@@ -63,8 +62,6 @@ def apply_rules(self, measurement):
6362
raise DeviatedParametersError(deviated_parameters)
6463

6564
def save_measurement(self, measurement_from_rabbit, device_plant):
66-
logger.info("TO DO - Step #5 from Ticket HAN-14")
67-
6865
measurement_from_db = Measurement(
6966
id_plant=device_plant.id_plant,
7067
plant_type=device_plant.plant_type,
@@ -119,8 +116,6 @@ def __callback(self, body):
119116
logger.warn(LoggerMessages.DEVIATING_PARAMETERS)
120117
logger.debug(LoggerMessages.ERROR_DETAILS.format(err, body))
121118

122-
# TO DO - Ticket HAN-17 & Step #4 from Ticket HAN-14
123-
# parameters = err.parameters # List of deviating parameters.
124119
self.send_notification(device_plant.id_user, err)
125120

126121
if device_plant is not None and measurement is not None:

0 commit comments

Comments
 (0)