def read(): local = local_air.read_local_air() local_temp_c = local[0] local_temp_f = local_temp_c*1.8+32 local_hum = local[1] local_press = local[2]/100.0 local_feel_f =apparent_temp(local[0],local[1]) local_temp = local_temp_f local_feel_f = local_temp_f query = "UPDATE status SET temp = {},humidity = {},feel_temp = {},pressure = {} where room = 0".format(local_temp_f,local_hum,local_feel_f,local_press) cursor.execute(query) database.commit()
def run(self): global loc_temp global loc_hum global loc_feel global loc_press global desired_temp comp_on_time = 0 comp_off_time = 0 fan_on_time = 0 fan_off_time = 0 global ac_state global fan_state global comp_state global heat_state global FAN_PIN global COMP_PIN global HEATER_PIN while True: local = local_air.read_local_air() local_temp_c = local[0] # local_temp_c += -2 local_temp_f = local_temp_c*1.8+32 local_hum = local[1] local_press = local[2] local_feel_f =apparent_temp(local[0],local[1]) local_temp = local_temp_f set_temp_f=desired_temp loc_temp = local_temp_f loc_hum = local_hum loc_feel = local_feel_f loc_press = local_press self.event.set() error_temp = local_temp - set_temp_f fuzz_temp = NORMAL if error_temp < COOL_THRESH: fuzz_temp = COOL if error_temp < COLD_THRESH: fuzz_temp = COLD if error_temp > WARM_THRESH: fuzz_temp = WARM if error_temp > HOT_THRESH: fuzz_temp = HOT if fan_state is ON: fan_on_time += 1 if fan_state is OFF: fan_off_time += 1 if comp_state is ON: comp_on_time += 1 if comp_state is OFF: comp_off_time += 1 if fan_state is ON: GPIO.output(FAN_PIN, True) else: GPIO.output(FAN_PIN, False) if comp_state is ON: GPIO.output(COMP_PIN, True) else: GPIO.output(COMP_PIN, False) if set_mode is COOL_MODE: w.setPalette(coolPal) if ac_state is ON: if comp_state is ON: if fuzz_temp is COLD: comp_state = OFF comp_off_time = 0 if fuzz_temp is COOL: comp_state = OFF comp_off_time = 0 fan_state = OFF fan_off_time = 0 ac_state = OFF if comp_state is OFF: if fan_on_time > FAN_ON_TIME_THRESH: if local_temp + 0.5 < fan_start_temp: fan_start_temp = local_temp fan_on_time = 0 if fuzz_temp is COOL or fuzz_temp is COLD: fan_state = OFF fan_off_time = 0 ac_state = OFF else: comp_state = ON comp_on_time = 0 if fuzz_temp is HOT: comp_state = ON comp_on_time = 0 if fuzz_temp is COOL or fuzz_temp is COLD: fan_state = OFF fan_on_time = 0 else: if fuzz_temp is WARM: if comp_off_time < COMP_OFF_TIME_THRESH: ac_state = ON fan_state = ON fan_start_temp = local_temp fan_on_time = 0 else: ac_state = ON fan_state = ON fan_on_time = 0 comp_state = ON comp_on_time = 0 if fuzz_temp is HOT: ac_state = ON fan_state = ON fan_on_time = 0 comp_state = ON comp_on_time = 0 if set_mode is HEAT_MODE: #heater #print(set_mode) w.setPalette(heatPal) if (set_mode is not 2) and (set_mode is not COOL_MODE): w.setPalette(offPal) fan_state = OFF comp_state = OFF ac_state = OFF heat_state = OFF