Beispiel #1
0
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!")
Beispiel #2
0
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")
Beispiel #3
0
def getStatus(gpios=(PUMP_GPIO, SWEEP_GPIO)):
    return relay.getStatus(gpios)
Beispiel #4
0
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
Beispiel #5
0
def status_relay():
    return relay.getStatus()
Beispiel #6
0
def getStatus(gpios=(PUMP_GPIO, SWEEP_GPIO)):
    return relay.getStatus(gpios)
Beispiel #7
0
#!thermo/bin/python

import relay
import time

relay.turnOnHeating()
time.sleep(1)
relay.turnOffHeating()

print(relay.getStatus())
relay.gpioCleanUp()
Beispiel #8
0
    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)