Пример #1
0
	def on(self, ip):
        if self.state == 0:
            if plugs.send(self.ip, generateCMD("on"))["system"]["set_relay_state"]["err_code"] == 0:
                print(cTime.nowf() + " - ACTION: HeatPad On")
                self.state = 1 
                return 0
            else:
                print(cTime.nowf() + " - ALERT: Failed to turn on HeatPad", file=sys.stderr)
Пример #2
0
 def off(self, ip):
     if self.state == 1:
         currRuntime = plugs.send(self.ip, commands["info"])["system"]["get_sysinfo"]["children"][self.location]["on_time"]
         if plugs.send(self.ip, generateCMD("off"))["system"]["set_relay_state"]["err_code"] == 0:
             print(cTime.nowf() + " - ACTION: HeatPad Off")
             self.state = 0
             self.pastRuntime += int(currRuntime)
             return 0
         else:
             print(cTime.nowf() + " - ALERT: Failed to turn off HeatPad", file=sys.stderr)
Пример #3
0
 def on(self, ip):
     if self.state == 0:
         if plugs.send(self.ip, commands["on"]
                       )["system"]["set_relay_state"]["err_code"] == 0:
             print(cTime.nowf() + " - ACTION: Lights On")
             self.state = 1
             return 0
         else:
             print(cTime.nowf() + " - ALERT: Failed to turn lights on",
                   file=sys.stderr)
Пример #4
0
 def off(self, ip):
     if self.state == 1:
         currRuntime = plugs.send(
             self.ip, commands["info"])["system"]["get_sysinfo"]["on_time"]
         if plugs.send(self.ip, commands["off"]
                       )["system"]["set_relay_state"]["err_code"] == 0:
             print(cTime.nowf() + " - ACTION: Lights Off")
             self.state = 0
             self.pastRuntime += int(currRuntime)
             return 0
         else:
             print(cTime.nowf() + " - ALERT: Failed to turn lights off",
                   file=sys.stderr)
Пример #5
0
	def __init__(self, ip, plugID):
		self.ip = ip
		self.id = plugID

		plugJSON = plugs.send(self.ip, commands["info"])["system"]["get_sysinfo"]

		self.location = None
		for i in plugJSON["children"]:
			if i["id"] == plugID:
				self.location = i
				break

		if self.location == None
			print(cTime.nowf() + " - ALERT: id number " + self.id + " not found on device" + ip, file=sys.stderr)
			exit()

		self.state = plugJSON["children"][self.location]["state"]
Пример #6
0
def processesNotif(avgTemp):
    global queueNotification

    currentTime = cTime.nowf()

    # If between quiet hours
    if cTime.between(currentTime,
                     [runTime[0], tempGraceTime[0]]) or cTime.between(
                         currentTime, [runTime[1], tempGraceTime[1]]):
        return

    else:
        if queueNotification == "high":
            printHigh(avgTemp)
            queueNotification = None
        elif queueNotification == "low":
            printLow(avgTemp)
            queueNotification = None
        elif queueNotification == "return":
            printReturn(avgTemp)
            queueNotification = None
Пример #7
0
 def close(self):
     if self.state != self.states[0]:
         self.chgState(self.states[0])
         print(cTime.nowf() + " - ACTION: Servo " + self.name + " Closed")
Пример #8
0
 def open(self):
     if self.state != self.states[1]:
         self.chgState(self.states[1])
         print(cTime.nowf() + " - ACTION: Servo " + self.name + " Open")
Пример #9
0
 def off(self, silent=False):
     if self.state() == 1:
         self.pi.write(self.pin, 0)
         if not silent:
             print(cTime.nowf() + " - ACTION: Fan Off")
Пример #10
0
 def on(self, silent=False):
     if self.state() == 0:
         self.pi.write(self.pin, 1)
         if not silent:
             print(cTime.nowf() + " - ACTION: Fan On")
Пример #11
0
                array.append(self.data[i]["RH"])

        return min(array), max(array)


if __name__ == "__main__":
    import pigpio as gpio
    import cTime

    DHTList = [  # (Name, Model, Pin)
        ("left", "AM2320", 6, True), ("right", "AM2320", 23, True),
        ("light", "DHT11", 22, False)
    ]

    pi = gpio.pi()
    currentTime = cTime.nowf()

    pi.set_mode(5, gpio.OUTPUT)
    pi.write(5, 1)

    DHTSensors = DHT(pi, DHTList)

    DHTData = DHTSensors.getData()

    minTemp, maxTemp, avgTemp = DHTSensors.getTempSummary(ignore=["light"])
    minRH, maxRH = DHTSensors.getRHSummary()

    print("Current Time: {}".format(currentTime))
    print("Tempretures are: {:3.2f}, {:3.2f}, Light: {:3.2f}".format(
        DHTData["left"]["temp"], DHTData["right"]["temp"],
        DHTData["light"]["temp"]))
Пример #12
0
def init():
    global lastCheckL, lastCheckM, cycle
    global pi, DHTSensors, fan, light, servos, mSensor, notify, logFileDHT, logFileM, heatpad

    print("Initializing...")

    # create pigpio instance
    pi = gpio.pi()

    # init Notify
    notify = Notify()

    # open logFiles
    file_exists = os.path.isfile(DHT_LOG)
    logFileDHT = open(DHT_LOG, "a+", buffering=1)
    if not file_exists:
        logFileDHT.write(
            "time, tempLeft, tempRight, tempLight, avgTemp, RHLeft, RHRight, RHLight\n"
        )

    file_exists = os.path.isfile(MOISTURE_LOG)
    logFileM = open(MOISTURE_LOG, "a+", buffering=1)
    if not file_exists:
        logFileM.write(
            "time, potLeft, rawLeft, potMid, rawMid, potRight, rawRight\n")

    # init Sensors
    pi.set_mode(5, gpio.OUTPUT)
    pi.write(5, 1)
    DHTSensors = DHTC(pi, DHT)

    # init Fan
    fan = fanC(pi, FAN_PIN)

    # init ADC for moisture sensor
    mSensor = ADS1115C(pi, 0x48, INSTALLED_MOISTURE_SENSORS)
    mData = mSensor.readAll()
    logSoilData(cTime.nowf(), mData)
    #ADS1115C.checkData(mData, notify, SOIL_THRESH)
    lastCheckM = cTime.now()

    # init Servos
    servos = servosC(pi, SERVOS, fan)

    # init Smartplug
    light = smartplugC(PLUG_ADDR)
    lastCheckL = cTime.now()

    heatpad = smartstripC(HEATPAD_ADDR, HEATPAD_ID)

    # init State
    lastState = -1
    if cTime.between(cTime.nowf(), runTime):
        cycle = 1
        light.set(ON)
    else:
        cycle = 0
        light.set(OFF)

    fan.set(OFF)
    servos.all(OFF)
Пример #13
0
def printLow(avgTemp):
    msg = cTime.nowf(
    ) + " - ALERT: TEMP VALUES BELOW E LEVELS: {:.2f}°F".format(avgTemp)
    sendNotification(msg, outfile=sys.stderr)
Пример #14
0
def printReturn(avgTemp):
    msg = cTime.nowf(
    ) + " - INFO: TEMP VALUES HAVE RETURNED TO NORMAL: {:.2f}°F".format(
        avgTemp)
    sendNotification(msg)