def Projects(): p1 = ProjectInfo(ProjectCodeName="test", ProjectDisplayName="Erster Test", StartDate=TimezoneHelper.GetCurrentDatetime(), EndDate=TimezoneHelper.GetCurrentDatetime(), Enabled=True) p1.save()
def ScheduledTasks(): IntervalOne = TaskInterval(IntervalUnit.MINTUTES, 100) strIntervalOne = TaskIntervalEncoder().encode(IntervalOne) task1 = ScheduledTaskInfo(TaskCodeName="ReadPhotowiderstand", TaskNameDisplay="Photowiderstand", Interval=strIntervalOne, ObjectID=SensorInfoProvider.GetSensorInfo( codeName="photowiderstand").SensorID, ObjectType="Sensor", LastRunTime=None, NextRunTime=TimezoneHelper.GetCurrentDatetime(), Executions=0, DeleteAfterLastRun=False, Enabled=True, IsRunning=False) FilePath = "relativ to file has been execute" task1.save() IntervalTwo = TaskInterval(IntervalUnit.MINTUTES, 15) strIntervalTwo = TaskIntervalEncoder().encode(IntervalTwo) task2 = ScheduledTaskInfo( TaskCodeName="DHT 22 Unten", TaskNameDisplay="DHT 22 Unten (Luftfeuchtigkeit)", Interval=strIntervalTwo, ObjectID=SensorInfoProvider.GetSensorInfo( codeName="DHT22B_h").SensorID, ObjectType="Sensor", LastRunTime=None, NextRunTime=TimezoneHelper.GetCurrentDatetime(), Executions=0, DeleteAfterLastRun=False, Enabled=True, IsRunning=False) task2.save() IntervalThree = TaskInterval(IntervalUnit.MINTUTES, 15) strIntervalThree = TaskIntervalEncoder().encode(IntervalThree) task3 = ScheduledTaskInfo(TaskCodeName="DHT 22 Unten T", TaskNameDisplay="DHT 22 Unten (Temperatur)", Interval=IntervalThree, ObjectID=SensorInfoProvider.GetSensorInfo( codeName="DHT22B_t").SensorID, ObjectType="Sensor", LastRunTime=None, NextRunTime=TimezoneHelper.GetCurrentDatetime(), Executions=0, DeleteAfterLastRun=False, Enabled=True, IsRunning=False) task3.save()
def LogInformation(source: str, description: str): Event = EventLogInfo( EventType=EventType.INFORMATION, EventTime=TimezoneHelper.GetCurrentDatetime(), Source=source, EventDescription=description, UserInfo=UserInfo.objects.filter(UserName="******")[0]) Event.save()
def LogException(Exeption: str, exeption: tuple): Exception = EventLogInfo( EventType=EventType.ERROR, EventTime=TimezoneHelper.GetCurrentDatetime(), Source=str(exeption[0]), EventDescription=str(exeption[1]), UserInfo=UserInfo.objects.filter(UserName="******")[0]) Exception.save()
def Users(): u1 = UserInfo(UserName="******", is_superuser=False, FirstName="", LastName="", email="", Enabled=True, DateCreated=TimezoneHelper.GetCurrentDatetime(), avatar="") u1.save() u2 = UserInfo(UserName="******", is_superuser=False, FirstName="", LastName="", email="*****@*****.**", Enabled=True, DateCreated=TimezoneHelper.GetCurrentDatetime(), avatar="") u2.save()
def Run(self): # muss in async thread umgewandelt werden while self.running: print(self.GetElapsedTime()) time.sleep(self.GetElapsedTime()) TaskList = ScheduledTaskInfoProvider.GetTaskToRun() DateTimeNow = TimezoneHelper.GetCurrentDatetime() print(DateTimeNow) # self.log.write(str(DateTimeNow) + "\r\n") #os.system("execute file"); for task in TaskList: interval = json.loads(task.Interval, object_hook=self.as_interval) task.LastRunTime = DateTimeNow if interval.IntervalUnit == IntervalUnit.MONTH: task.NextRunTime = DateTimeNow + timedelta( days=interval.Amount * 30) if interval.IntervalUnit == IntervalUnit.DAY: task.NextRunTime = DateTimeNow + timedelta( days=interval.Amount) if interval.IntervalUnit == IntervalUnit.HOUR: task.NextRunTime = DateTimeNow + timedelta( hours=interval.Amount) if interval.IntervalUnit == IntervalUnit.MINTUTES: task.NextRunTime = DateTimeNow + timedelta( minutes=interval.Amount) if task.ObjectType == "Sensor": MainSensorReader.WriteSensorValueToDB( sensorId=task.ObjectID) task.Executions += 1 task.save() f = open(dirPath + os.sep + 'endprog.txt', 'r') textLines = f.readlines() if textLines.__len__() > 0 and textLines[0].find("end") != -1: f.close() self.StopLoop() else: f.close()
def LogDBErrorToFile(ErrorMessage: str, ErrorTitle: str = "(Kein Titel)"): """ Wenn im Event-Log ein Fehler beim Zugriff auf die Datenbank geschieht, wird die Funktion verwendet, um den Fehler in einem Logfile zu Protokolieren. """ PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) HeaderHTML = "" if os.path.isfile(PROJECT_ROOT + '\\log\\DB_ErrorLog.log') == False: HeaderHTML = "Datenbank Error-Log\r\n\r\n" log = open(PROJECT_ROOT + '\\log\\DB_ErrorLog.log', 'a') #Datei wird ebenfalls erstellt if HeaderHTML != "": log.write(HeaderHTML) log.write( str(TimezoneHelper.GetCurrentDatetime()) + ": " + ErrorTitle + "\n" + ErrorMessage + "\r\n")
def WriteSensorValueToDB(sensorId: int): sensor = SensorInfoProvider.GetSensorInfo(sensorId=sensorId) valueToSave = 0 if sensor.SensorType == "resistor": valueToSave = PhotoResistor.GetValue(gpio=sensor.GPIO) if sensor.SensorType == "dht22_h": valueToSave = DHT22.GetHumidity(gpio=sensor.GPIO) if sensor.SensorType == "dht22_t": valueToSave = DHT22.GetTemperature(gpio=sensor.GPIO) value = SensorValueInfo( Project=ProjectInfoProvider.GetEnabledProject(), Sensor=sensor, Value=valueToSave, Timestamp=TimezoneHelper.GetCurrentDatetime()) value.save()
def GetElapsedTime(self): DelayedStartTime = TimezoneHelper.GetCurrentDatetime() DelayedStartTime += timedelta(minutes=1) DelayedStartTime -= timedelta(seconds=DelayedStartTime.second) elapsedTime = DelayedStartTime - TimezoneHelper.GetCurrentDatetime() return elapsedTime.total_seconds()