def initial_display(self): print("Initial display process") try: self.TFT.initLCD(self.config.getint("GPIO", "DC"), self.config.getint("GPIO", "RST"), self.config.getint("GPIO", "LED"), ce=1) self.TFT.clear((255, 255, 255)) except Exception, e: Log.new(Log.ERROR, "Initial display process error : " + str(e))
def set_force_on(object_id, value): db_client = helper.get_database_mongo() db_client.relays.update({ '_id': ObjectId(object_id)}, { '$set': { 'force_on': value }}, upsert=False) Log.debug("Set Force on =" + str(value) + " Relay id=" + object_id)
def init_ip(self): try: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(("gmail.com", 80)) self.ip = s.getsockname()[0] s.close() except Exception, e: self.ip = "No Internet connection" Log.new(Log.ERROR, "failed to find ip address") print(e)
def exit_application(): database.set_app_running(False) Log.new(Log.DEBUG, "### Exit application! ###") Relay.clear_relay() print("Exiting....") print("Current App Status = " + str(database.get_app_running())) print("##########################") print("####### Clear relay ######") print("##########################") print("####### Goodbye !!#######") print("##########################")
def switch_checker(self, relay): current_relay_state = relay.get_state() if self.DEBUG: print("Relay state = " + str(current_relay_state)) print("State = " + str(relay.force_on) + " state = " + str(current_relay_state)) if relay.force_on == Relay.FORCE_ON: if current_relay_state == Relay.OFF: Log.debug(relay.name + " has turn on by user") relay.turn_on() else: if current_relay_state == Relay.ON: Log.debug(relay.name + " has turn off by user") relay.turn_off()
def timer_checker(self, relay): # get current time flags = FlagsDay() today = datetime.date.today() day = today.strftime("%a") for timer in relay.time: flags.asByte = timer["day"] time_checker = getattr(flags, day) == 1 and helper.time_in_range( parser.parse(timer["time_on"]).time(), parser.parse(timer["time_off"]).time()) current_relay_state = relay.get_state() if self.DEBUG: print("Relay state = " + str(current_relay_state)) print(relay.name + " checker is " + str(time_checker)) print("State = " + str(relay.force_on) + " state = " + str(current_relay_state)) if time_checker or relay.force_on == Relay.FORCE_ON: if relay.force_on == Relay.FORCE_OFF and current_relay_state == Relay.ON: Log.debug(relay.name + " has turn by Force turn off") print("Force Off") relay.turn_off() elif current_relay_state == Relay.OFF and not relay.force_on == Relay.FORCE_OFF: Log.debug(relay.name + " has turn by timer") relay.turn_on() else: if current_relay_state == Relay.ON: Log.debug(relay.name + " has turnoff by timer") relay.turn_off()
def clear_relay(): Log.new(Log.DEBUG, "Clear relay!") for relay in Relay.get_relay_object_list(): Relay.set_force_on(relay.get_object_id(), Relay.FORCE_DISABLE) relay.turn_off() GPIO.cleanup()
def turn_off(self): if self.gpio is None: print("Error can't not found GPIO") else: GPIO.output(self.gpio, GPIO.LOW) Log.new(Log.DEBUG, "Turn Off! > " + self.name + " < at gpio = " + str(self.gpio))