def setStateToSQL(self): """проверяет положение в базе данных и выставляет его""" zapros = "SELECT `state` FROM `kotel_dout` WHERE `dout`="+str(self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros) row = dbconnect.cursor.fetchone() dbconnect.close() self.status = int(row[0]) GPIO.output(self.pin, self.status)
def getStateToSQL(self): """выставляет сигнал в базе данных в соотвествии с текущем состоянием""" zapros = "UPDATE `kotel_dout` SET `state`=%s WHERE `dout`=%s" data = (self.status, self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros, data) dbconnect.connect.commit() dbconnect.close() return True
def getDinToSQL(self, din): """вычитывание состояния сигнала из файла и помешение его в базу данных""" state = self.getDin(din) zapros = "UPDATE `ds2408` SET `din" + str(din) + "`=%s WHERE `id`=%s" data = (state, self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros, data) dbconnect.connect.commit() dbconnect.close() return True
def __init__(self, id): self.id = id #id опции zapros = "SELECT `title` FROM `kotel_addOptions` WHERE `id`=" + str( self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros) row = dbconnect.cursor.fetchone() dbconnect.close() self.title = row[0] #коментарий опции self.state = 0
def getStateToSQL(self) : """взять температуру с датчика и положить в базу данных""" state = self.getState() zapros = "UPDATE `temperatur` SET `temperatur`=%s WHERE `id`=%s" data = (state, self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros, data) dbconnect.connect.commit() dbconnect.close() return state
def getSQL(self): """высчитать опцию из базы данных""" zapros = "SELECT `state` FROM `kotel_addOptions` WHERE `id`=" + str( self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros) row = dbconnect.cursor.fetchone() dbconnect.close() self.state = row[0] return self.state
def getStateToSQL(self): """Определяет положение сигнала и записывает его в базу данных""" status = self.getState() zapros = "UPDATE `kotel_din` SET `state`=%s WHERE `din`=%s" data = (status, self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros, data) dbconnect.connect.commit() dbconnect.close() return True
def __init__(self, id) : self.id = id #id датчика в базе данных zapros = "SELECT `address`, `title` FROM `temperatur` WHERE `id`="+str(self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros) row = dbconnect.cursor.fetchone() dbconnect.close() self.addres = "/mnt/1wire/"+row[0]+"/temperature" #адрес датчика self.title = row[1] #коментарий к датчику self.state = 9999 #первоначальное состояние
def setSQL(self, state): """записать значение в базу данных(использовать для аварийных случаев)""" zapros = "UPDATE `kotel_addOptions` SET `state`=%s WHERE `id`=%s" data = (state, self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros, data) dbconnect.connect.commit() dbconnect.close() self.state = state return True
def setDoutStateToSQL(self, dout): """проверяет положение в базе данных и выставляет его""" zapros = "SELECT `dout" + str( dout) + "` FROM `ds2408` WHERE `id`=" + str(self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros) row = dbconnect.cursor.fetchone() dbconnect.close() state = int(row[0]) return self.setDout(dout, state)
def __init__(self, id): self.id = id #id сигнала zapros = "SELECT `pin`, `title` FROM `kotel_din` WHERE `din`="+str(self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros) row = dbconnect.cursor.fetchone() dbconnect.close() self.pin = int(row[0]) #пин на малине self.title = row[1] #описание сигнала GPIO.setup(self.pin, GPIO.IN) #инициализация GPIO self.status = 0 #первоначальное положение
def __init__(self, id): self.id = id #id сигнала zapros = "SELECT `pin`, `title`, `state` FROM `kotel_dout` WHERE `dout`="+str(self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros) row = dbconnect.cursor.fetchone() dbconnect.close() self.pin = int(row[0]) #пин на малине self.title = row[1] #описание сигнала self.status = int(row[2]) #состояние из базы данных GPIO.setup(self.pin, GPIO.OUT) #инициализация GPIO
def setDoutStateAndSQL(self, dout, state): """выставляет сигнал в базе данных и выставление выходного сигнала""" if self.setDout(dout, state): zapros = "UPDATE `ds2408` SET `dout" + str( dout) + "`=%s WHERE `id`=%s" data = (state, self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros, data) dbconnect.connect.commit() dbconnect.close() return True else: zapros = "UPDATE `ds2408` SET `dout" + str( dout) + "`=%s WHERE `id`=%s" data = (2, self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros, data) dbconnect.connect.commit() dbconnect.close() return False
def checkConnect(self): """функция для проверки доступности устройства и записи об этом в базу данных""" address = self.address + "address" try: file = open(address, "r", encoding="utf-8") st = file.read() file.close() connect = 1 except: connect = 0 zapros = "UPDATE `ds2408` SET `connect`=%s WHERE `id`=%s" data = (connect, self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros, data) dbconnect.connect.commit() dbconnect.close() self.connect = connect return connect
def addLog(message, type="INFO", title="событие котла"): date = datetime.datetime.now() zapros = "INSERT INTO `kotel_log` (`id`, `type`, `date`, `message`, `title`) VALUES (%(id)s, %(type)s, %(date)s, %(message)s, %(title)s)" dbconnect = mySQLconfig.SqlConnect() id = dbconnect.cursor.lastrowid data = { 'id': id, 'type': type, 'date': date, 'message': message, 'title': title } dbconnect.cursor.execute(zapros, data) dbconnect.connect.commit() dbconnect.close() if type == 'ERROR': sms = smsSend.SMSSend() sms.send(message) return True
def __init__(self, id): self.id = id #id устройства zapros = "SELECT `address`, `title` FROM `ds2408` WHERE `id`=" + str( self.id) dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros) row = dbconnect.cursor.fetchone() dbconnect.close() self.address = "/mnt/1wire/" + row[ 0] + "/" #адрес файлов устройства в системе self.title = row[1] #коментарий к устройству self.dinNumber = {1: 4, 2: 3, 3: 1, 4: 2} #словарь адресов Din self.doutNumber = {1: 5, 2: 7, 3: 6} #словарь адресов Dout self.din = { 1: 2, 2: 2, 3: 2, 4: 2 } #первоначальное состояние сигналов Din self.dout = {1: 2, 2: 2, 3: 2} #первоначальное состояние сигналов Dout self.connect = 2 #первоначальное состояние связи с устройством
def getSQL(self): """вычитывает из базы данных таймауты и возврашает True если хоть один из них идет прямо сейчас""" zapros = "SELECT `from`, `before` FROM `kotel_timeout`" dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros) row = dbconnect.cursor.fetchone() self.timeOut = [] while row is not None: self.timeOut.append({'from': row[0], 'before': row[1]}) row = dbconnect.cursor.fetchone() dbconnect.close() dtime = datetime.datetime.now() timeNow = dtime.hour * 60 * 60 + dtime.minute * 60 + dtime.second now = False for values in self.timeOut: if values['from'].seconds < timeNow and values[ 'before'].seconds > timeNow: now = True if now == True: self.now = now return True else: self.now = now return False
import sys, mysql.connector sys.path.append('/srv/py/config') import mySQLconfig sys.path.append('/srv/py/moduls/modulLib') import kotelLog zapros = 'SELECT COUNT(`id`) FROM `kotel_log`' dbconnect = mySQLconfig.SqlConnect() dbconnect.cursor.execute(zapros) size = dbconnect.cursor.fetchone() if int(size[0]) > 1000: delZapros = 'DELETE FROM `kotel_log` order by `id` asc limit ' + str( size[0]) + ' - 1000;' dbconnect.cursor.execute(delZapros) dbconnect.close() log = kotelLog.Log log.addLog('Лог почишен, оставленна последняя 1000 записей')