def nadziraj(): if (checkTemp() and not getStatus()): try: on() print("VKLOP") db.saveRelayStatus("PEČ", "ON", getT1(), getT2()) except: raise Exception("Napaka v nadziraj -> relay.on()") elif (not checkTemp() and getStatus()): try: off() print("IZKLOP") db.saveRelayStatus("PEČ", "OFF", getT1(), getT2()) except: raise Exception("Napa ka v nadziraj -> relay.off()") else: print("Ni sprememb!")
def webroot(): mainTemp = dht22.getTempHum()[1] mainHum = dht22.getTempHum()[0] relayStatus = relay.getStatus() heatingStatus = thermCursor.execute('SELECT * from thermostat').fetchone() secondSensor = sensorCursor.execute('SELECT * from sensors').fetchone() return render_template( "index.html", main_temperature=mainTemp, main_humidity=mainHum, second_temperature=secondSensor['temperature'], second_humidity=secondSensor['humidity'], relay_status=relayStatus, heating_status="On" if heatingStatus['status'] == 1 else "Off")
def getStatus(gpios=(PUMP_GPIO, SWEEP_GPIO)): return relay.getStatus(gpios)
def _status(): sensor_fail = False # mainTemp = dht22.getTempHum()[1] # mainHum = dht22.getTempHum()[0] relayStatus = relay.getStatus() heatingStatus = thermCursor.execute('SELECT * from thermostat').fetchone() mainSensor = sensorCursor.execute( 'SELECT * from sensors WHERE id=0').fetchone() secondSensor = sensorCursor.execute( 'SELECT * from sensors WHERE id=1').fetchone() thirdSensor = sensorCursor.execute( 'SELECT * from sensors WHERE id=2').fetchone() sensor_last_update = datetime.strptime(secondSensor['last_update'], "%Y-%m-%d %H:%M:%S.%f") if (datetime.now() - sensor_last_update).seconds > 60: sensor_fail = True heating_status = relay.getStatus() currentWeather = thermCursor.execute('Select * from weather').fetchone() if (request.user_agent.browser == "iOSapp"): return jsonify( main_temperature=mainSensor['temperature'], main_humidity=mainSensor['humidity'], relay_status=relayStatus, heating_status=heatingStatus['status'], heating_target_temperature=heatingStatus['target_temp'], second_temperature=secondSensor['temperature'], second_humidity=secondSensor['humidity'], current_weather_temp=currentWeather['current_temperature'], current_weather_summary=currentWeather['current_summary']) else: html = '<div id="updateContainer"> \ <div id="main_temperature">{main_temperature}</div>\ <div id="main_humidity">{main_humidity}</div>\ <div id="relay_status">{relay_status}</div>\ <div id="heating_status">{heating_status}</div>\ <div id="heating_target_temperature">{heating_target_temperature}</div>\ <div id="second_temperature">{second_temperature}</div>\ <div id="second_humidity">{second_humidity}</div>\ <div id="current_weather_temp">{current_weather_temp}</div>\ <div id="current_weather_icon">{current_weather_icon}</div>\ <div id="current_weather_summary">{current_weather_summary}</div>\ <div id="third_temperature">{third_temperature}</div>\ <div id="third_humidity">{third_humidity}</div>\ </div>'.format( main_temperature=mainSensor['temperature'], main_humidity=mainSensor['humidity'], relay_status= "<img src=\"static/img/fire1.png\" width=\"35\" height=\"35\" >" if relayStatus == "ON" else "<img src=\"static/img/cool.jpg\" width=\"35\" height=\"35\">", heating_status="On" if heatingStatus['status'] == 1 else "Off", heating_target_temperature=heatingStatus['target_temp'], second_temperature=secondSensor['temperature'] if sensor_fail == False else "<font color=\"grey\">%s</font>" % secondSensor['temperature'], second_humidity=secondSensor['humidity'], current_weather_temp=currentWeather['current_temperature'], current_weather_icon="<i class=\"wi wi-%s\"></i> " % currentWeather['current_icon'], current_weather_summary=currentWeather['current_summary'], third_temperature=thirdSensor['temperature'], third_humidity=thirdSensor['humidity'], ) return html
def status_relay(): return relay.getStatus()
#!thermo/bin/python import relay import time relay.turnOnHeating() time.sleep(1) relay.turnOffHeating() print(relay.getStatus()) relay.gpioCleanUp()
def run(self): self.thermostatMode = 0 # self.mainTemp = 0 self.sensor_fail = False while True: weather.getCurrentWeather() # self.prevTemp = self.mainTemp # self.mainTemp = dht22.getTempHum()[1] # if self.mainTemp < 0: # self.mainTemp = prevTemp # continue self.update_main_sensor() self.secondSensor = self.sensorCursor.execute( 'SELECT * FROM sensors WHERE id=1').fetchone() self.mainSensor = self.sensorCursor.execute( 'SELECT * FROM sensors WHERE id=0').fetchone() self.secondTemp = self.secondSensor['temperature'] self.mainTemp = self.mainSensor['temperature'] self.relayMode = relay.getStatus() self.status = self.thermCursor.execute( 'SELECT * from thermostat').fetchone() self.thermostatMode = self.status['status'] self.targetTemp = self.status['target_temp'] self.sensor_last_update = datetime.strptime( self.secondSensor['last_update'], "%Y-%m-%d %H:%M:%S.%f") if (datetime.now() - self.sensor_last_update).seconds > 60: self.sensor_fail = True else: self.sensor_fail = False if (self.thermostatMode == 0 and self.relayMode == "ON"): relay.turnOffHeating() print( "Relay is on but heating is turned off....turning off heating" ) if (self.sensor_fail == False): if (self.thermostatMode == 1 and self.relayMode == "OFF" and (self.targetTemp > self.mainTemp and self.targetTemp > self.secondTemp)): relay.turnOnHeating() print("Turning on heating, beacuse:", self.thermostatMode, self.relayMode, self.targetTemp, self.mainTemp, self.secondTemp) if (self.thermostatMode == 1 and self.relayMode == "ON" and (self.targetTemp < self.mainTemp or self.targetTemp < self.secondTemp)): relay.turnOffHeating() print("Turning off heating, beacuse:", self.thermostatMode, self.relayMode, self.targetTemp, self.mainTemp, self.secondTemp) else: if (self.thermostatMode == 1 and self.relayMode == "OFF" and (self.targetTemp > self.mainTemp)): relay.turnOnHeating() print("Turning on heating, beacuse (SECOND failed):", self.thermostatMode, self.relayMode, self.targetTemp, self.mainTemp, self.secondTemp) if (self.thermostatMode == 1 and self.relayMode == "ON" and (self.targetTemp < self.mainTemp)): relay.turnOffHeating() print("Turning off heating, beacuse (SECOND failed):", self.thermostatMode, self.relayMode, self.targetTemp, self.mainTemp, self.secondTemp) if (self.thermostatMode == 0 and self.relayMode == "OFF"): print("Idle") time.sleep(5)