def boost(): content = request.get_json() data = json.loads(content) for job in scheduler.get_jobs(): if job.id == 'boost_id': scheduler.remove_job(job.id) boostEnd = data['boost_end'] if int(boostEnd) > 0: now = datetime.now() boost_control(1) timeFrac = int(boostEnd) / 60 hourFrac, minFrac = divmod(timeFrac, 1) min = int(minFrac * 60) + now.minute hour = int(hourFrac) + now.hour print hour, min scheduler.add_job(stop_boost, 'cron', id = 'boost_id', hour=hour, minute=min, args=[scheduler]) heater = Heater( -1, now.weekday(), 1, 1, 0, 1, 'Boost', ( str(now.hour)+':'+str(now.minute) ), ( str(hour)+':'+str(min) ) ) service.updateHeater(heater) else: boost_control(0) return "OK"
def __init__(self): self.scheduler = BackgroundScheduler() self.db = DatabaseManager( '/home/pi/sfc1/SimpleFurnaceController/Common/database.db') self.sensor = W1ThermSensor() self.heater = Heater() self.checkFrequency() self.checkMinMaxTemperature() self.scheduler.start() self.initSchedulers()
def heater_init(): global pinList # create heater. heaterRelay = 3 fMinAirTemp = float(raw_input('Minimum air temp: ')) fMinWaterTemp = float(raw_input('Minimum water temp: ')) gh_heater = Heater(heaterRelay, fMinAirTemp, fMinWaterTemp) return gh_heater
def test(): H = Heater(20) r1 = Rad(H.get_heat()) r2 = Rad(H.get_heat()) r3 = Rad(H.get_heat()) r4 = Rad(H.get_heat()) r5 = Rad(H.get_heat()) r6 = Rad(H.get_heat()) H.add_rad(r1) H.add_rad(r2) H.add_rad(r3) H.add_rad(r4) H.add_rad(r5) H.add_rad(r6)
def onHeaterSend(): content = request.get_json() data = json.loads(content) # id, day_no, record_enabled, boost_used, heating_used, water_used, heater_type, time_start, time_end): heater = Heater( int(data['id']), int(data['day_no']), int(data['record_enabled']), int(data['boost_used']), int(data['heating_used']), int(data['water_used']), data['heater_type'], data['time_start'], data['time_end']) service.updateHeater(heater) onUpdate() return jsonify({'status' : 'ok'}), 201
def __init__(self, timings=[10], temperatures=[60], timestep=60): # create connection to hardward self.heater = Heater() # define in what intervals the controller should update self.timesteps = timestep #PID parameters self.nTime = 100000000000000000 self.t_d = 10 self.k_pid = 1000 # the malting scheme self.times = [t * 60 for t in timings] self.temps = temperatures self.cook_times = {} self.timer_prev_index = -1 self.start_time = None # remove this self.oldtime = dt.datetime.now()
def selectDB(self): self.connectDB() objectList = [] try: print("DB Selecting...") cur = self.conn.cursor() cur.execute("SELECT * from PI_HEATER ") except (AttributeError, sqlite3.OperationalError): print("DB Error Selecting...") self.connect() cur = self.conn.cursor() cur.execute("SELECT * from PI_HEATER ") rows = cur.fetchall() desc = cur.description # id, day_no, record_enabled, boost_used, heating_used, water_used, heater_type, time_start, time_end): for row in rows: heater = Heater(row[0], row[1], row[8], row[7], row[4], row[3], row[2], row[5], row[6]) objectList.append(heater) self.closeDB() return objectList
def test(): w1 = Window(2) w2 = Window(2) w3 = Window(2) w4 = Window(2) w5 = Window(2) w6 = Window(2) d1 = Door(1.5) d2 = Door(1.5) d3 = Door(1.5) d4 = Door(1.5) d5 = Door(1.5) d6 = Door(1.5) r1 = Room("Kitchen", 12, 10, 8, 10.7, True, d1, w1) r2 = Room("Kitchen", 12, 10, 8, 11.1, True, d2, w2) r3 = Room("Kitchen", 12, 10, 8, 10.3, True, d3, w3) r4 = Room("Kitchen", 12, 10, 8, 10.9, True, d4, w4) r5 = Room("Kitchen", 12, 10, 8, 11.3, True, d5, w5) r6 = Room("Kitchen", 12, 10, 8, 11.7, True, d6, w6) b = Heater([r1, r2, r3]) h = House(True, [r1, r2, r3], b, -25.004, 30.032) h.insulate() h.is_insulated() print(h.get_rooms()) h.set_rooms([r4, r5, r6]) h.add_room("Living room") print(h.get_rooms()) print(h.get_lat()) h.set_lon(12.651) print(h.get_lon()) print(h.get_average_temp()) print(h)
while True: #all this shit gets user inputs for setpoints undert overt and output pin try: setpoint = int( raw_input("What shoudl the setpoint be? ")) # setpoint is setpoint overt = int( raw_input("What would you like the overshoot to be? ") ) # overt is the overshoot value so how far it goes over before shutting off undert = int(raw_input("What would you like the undershoot to be? ") ) # undert is the opposite of over t pin = int(raw_input( "What pin would you like to use? ")) # pin is which pin is it except ValueError, SyntaxError: print "You have entered and invalid character. Only enter numbers." continue break t = read_fint() heater = Heater(pin, t, setpoint, undert, overt) try: while True: t = read_fint() heater.update(t) time.sleep(5) except KeyboardInterrupt: #what to do if I hit ctrl c print "You have ended control" heater.heateroff() GPIO.cleanup() #except: #everhting else #heater.heateroff() #GPIO.cleanup() #EmailTest.error()
bedroom1Rad = Rad(2500) bedroom1Light = Light(98) bedroom1Door = Door(1.5) electricBlanket = ElectricBlanket(5) bedroom1 = Bedroom("Bedroom 1", 12, 12, 8, 12.0, bedroom1Rad, bedroom1Door, bedroom1Light, bedroom1Window, electricBlanket) utilityRoomWindow = Window(3) utilityRoomRad = Rad(1200) utiilityRoomLight = Light(100) utilityRoomDoor = Door(2) dryer = Dryer(300) utiilityRoom = UtilityRoom("Utility Room", 8, 8, 8, 12.0, \ utilityRoomRad, utilityRoomDoor, utiilityRoomLight, utilityRoomWindow, dryer) houseRooms = [livingRoom, kitchen, bedroom1, utiilityRoom] houseRads = [livingRoomRad, kitchenRad, bedroom1Rad, utilityRoomRad] houseLights = [livingRoomLight, kitchenLight, bedroom1Light, utiilityRoomLight] Boiler = Heater(houseRads) Light_Controller = LightController(houseLights) Kitchen_Controller = KitchenController(kitchen) Bedroom_Controller = BedroomController(bedroom1) Utility_Room_Controller = UtilityRoomController(utiilityRoom) Home = House(True, houseRooms, Boiler, "-37.8136", "144.9631") Mon = Monitor(0, 30, Boiler, Light_Controller, Kitchen_Controller, Bedroom_Controller, Utility_Room_Controller) c = Controller(Home, Mon) c.run()
tempSensor2 = '/var/tmp/Px_temp.source' try: tempGetter = TempGetter.TempGetter(tempSensor1) # unten tempGetter2 = TempGetter.TempGetter(tempSensor1) except Exception as ex: print("TempGetter init failed! cannot run! Exit", ex) if tempGetter == 0 or tempGetter2 == 0: sys.exit(4) ##################### # Heater Init ##################### heater = 0 try: heater = Heater.Heater() except Exception as ex: print("Heater init failed! cannot run! Exit", ex) if heater == 0: sys.exit(3) ##################### # Display Init ##################### lcdGraphic = 0 try: if options.virtual: lcdGraphic = LCDGraphic("virtual") else: lcdGraphic = LCDGraphic("real") except Exception as ex:
import RPi.GPIO as GPIO from Utilities import get_logger, log_message from Schedule import Schedule from Heater import Heater from TempSensor import TempSensor from datetime import datetime, timedelta logger = get_logger() ser = serial.Serial("/dev/ttyUSB0", 9600) # change ACM number as found from ls /dev/tty/ACM* GPIO.setmode(GPIO.BOARD) GPIO.setup(11, GPIO.OUT) HEATER = Heater(ser) TEMP_SENSOR = TempSensor(ser) schedule = Schedule('schedule') def main_logic(): try: log_message("The script is started") # wait for setup phase while True: read_ser = ser.readline().decode().strip() if 'Send alive signal' in read_ser: time.sleep(5) break log_message("Heater status is: {}\n".format(HEATER.get_status())) while True:
""" Created on Wed Jan 8 21:42:07 2020 @author: pi """ from queue import Queue from Timer import Timer from Display import Display from Heater import Heater from Encoder import Encoder from Application import Application if __name__ == "__main__": A_PIN = 21 B_PIN = 23 SW_PIN = 22 A_PIN_2 = 0 B_PIN_2 = 2 SW_PIN_2 = 3 display = Display() display.init() timer = Timer() encoder_1 = Encoder(A_PIN, B_PIN, SW_PIN, "encoder_1") encoder_2 = Encoder(A_PIN_2, B_PIN_2, SW_PIN_2, "encoder_2") heater = Heater() application = Application(display, timer, encoder_1, encoder_2, heater) application.init()
@author: Effi @copyright: 2017 organization_name. All rights reserved. @license: license @contact: user_email @deffield updated: Updated ''' from LED import LED from Socket import Socket from datetime import datetime, time from Controller import Controller from Belueftung import Belueftung from Heater import Heater from SensorTemp import SensorTemp lichtData = {time(07, 00): time(19, 00)} #Create objects temp = SensorTemp(274151, '3AU6RMVSYJ0UXQHY', 'VBO2U7I3LHBZNX05') led = LED("LED Saga", lichtData) belueftung = Belueftung("Luefter", '23:59:59', '00:00:20') heater = Heater("Handy Heater", belueftung, temp) belueftung.setHeater(heater) controller = Controller(led, belueftung, heater, temp) controller.BELUEFTUNG.turnOff() controller.HEATER.turnOff() controller.LED.turnOff() controller.start()