# Some utility functions. def get_color_for_temp(temp_current): # i can't think in degrees celsius to save my life temp_cold = 5 temp_comfort = 27 temp_hot = 46 temp_range = temp_hot - temp_cold if temp_current >= temp_hot: return (80, 0, 0) elif temp_current <= temp_cold: return (0, 0, 80) else: return get_color_in_range(temp_cold, temp_hot, temp_current) def get_color_in_range(minimum, maximum, value): max_color_val = 30 minimum, maximum = float(minimum), float(maximum) ratio = 2 * (value - minimum) / (maximum - minimum) b = int(max(0, max_color_val * (1 - ratio))) r = int(max(0, max_color_val * (ratio - 1))) g = max_color_val - b - r return (r, g, b) def photocell_value(input): return input.value * 330 // (2 ** 16)