def delete_serial_records(p1_processing=None, serial_db=None, flog=None): try: timestampstr = util.mkLocalTimeString() sql_del_str = "delete from " + const.DB_SERIAL_TAB + " where timestamp < '" + \ str(datetime.datetime.strptime( timestampstr, "%Y-%m-%d %H:%M:%S") -\ datetime.timedelta( days=p1_processing['max_days_db_data_retention']) )+ \ "' and record_verwerkt=1" flog.debug(inspect.stack()[0][3] + ": serial e-buffer delete: sql=" + sql_del_str) serial_db.del_rec(sql_del_str) sql_del_str = "delete from " + const.DB_SERIAL_TAB + " where timestamp < '" + \ str(datetime.datetime.strptime( timestampstr, "%Y-%m-%d %H:%M:%S") -\ datetime.timedelta( days=p1_processing['max_days_db_data_retention'] + 1) ) + "'" flog.debug(inspect.stack()[0][3] + ": serial e-buffer delete: sql=" + sql_del_str) serial_db.del_rec(sql_del_str) except Exception as e: flog.error(inspect.stack()[0][3] + ": delete gefaald. Melding=" + str(e.args[0]))
def writeWpaSupplicantConfig(essid, psk): #print lines try: os.system('/usr/bin/sudo rm '+ WPA_SUPPLICANT_CONFIG_FILE ) # set file rights temporary to write file setWpaSupplicantConfigFileRights() fp = open(WPA_SUPPLICANT_CONFIG_FILE, 'w') fp.write('###############################\n') fp.write('# Gegenereerd door P1 monitor.#\n') fp.write('# op '+util.mkLocalTimeString()+' #\n') fp.write('###############################\n') fp.write('country=NL\n') fp.write('ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev\n') fp.write('update_config=1\n') fp.write('network={\n') fp.write(' scan_ssid=1\n') fp.write(' ssid="' + str(essid) + '"\n') fp.write(' psk="' + psk.decode('utf-8') + '"\n') fp.write('}\n') fp.close() #restartWpaSupplicant() except Exception as e: flog.critical(inspect.stack()[0][3]+": wifi config file schrijf fout, gestopt("+WPA_SUPPLICANT_CONFIG_FILE+") melding:"+str(e.args)) sys.exit(1)
def waitForPuls(): global gpioWaterPuls #if pulsSimulator( probility = 0.005 ) == True: # //TODO uitzetten voor productie if gpioWaterPuls.gpioWaitRead() == True: flog.debug( inspect.stack()[0][3] + ": Start van verwerken van Watermeter pulsen, verwerking is actief." ) rt_status_db.timestamp(90, flog) # set timestamp of puls detected timestamp = mkLocalTimeString() #flog.debug( inspect.stack()[0][3]+": water puls gedetecteerd." ) _id, puls_value_per_liter, _label = config_db.strget(98, flog) # process minute records minuteProcessing(timestamp, puls_value_per_liter) # add the other time periods replaceRecordForAPeriod(timestamp, sqldb.INDEX_HOUR) replaceRecordForAPeriod(timestamp, sqldb.INDEX_DAY) replaceRecordForAPeriod(timestamp, sqldb.INDEX_MONTH) replaceRecordForAPeriod(timestamp, sqldb.INDEX_YEAR) else: try: # warning, the puls must be off to update the gpio pin. gpioWaterPuls.check_pin_from_db() except: pass
def generate_header_string(): str = \ ' ###############################\n\ # Gegenereerd door P1-monitor.#\n\ # op ' + util.mkLocalTimeString() + ' #\n'+\ ' ###############################\n' return str
def write_phase_history_values_to_db(phase_db_rec=None, configdb=None, phasedb=None, flog=None): phase_db_rec['timestamp'] = util.mkLocalTimeString() # only add data when fase info is set to on. if configdb.strget(119, flog)[1] == "1": try: sqlstr = "insert or replace into " + const.DB_FASE_REALTIME_TAB + " (TIMESTAMP, VERBR_L1_KW,VERBR_L2_KW,VERBR_L3_KW,GELVR_L1_KW,GELVR_L2_KW,GELVR_L3_KW,L1_V,L2_V,L3_V,L1_A,L2_A,L3_A) VALUES ('" + \ str( phase_db_rec['timestamp'] ) + "'," + \ str( phase_db_rec['consumption_L1_kW'] ) + "," + \ str( phase_db_rec['consumption_L2_kW'] ) + "," + \ str( phase_db_rec['consumption_L3_kW'] ) + "," + \ str( phase_db_rec['production_L1_kW'] ) + "," + \ str( phase_db_rec['production_L2_kW'] ) + "," + \ str( phase_db_rec['production_L3_kW'] ) + "," + \ str( phase_db_rec['L1_V'] ) + ", " + \ str( phase_db_rec['L2_V'] ) + ", " + \ str( phase_db_rec['L3_V'] ) + ", " + \ str( phase_db_rec['L1_A'] ) + ", " + \ str( phase_db_rec['L2_A'] ) + ", " + \ str( phase_db_rec['L3_A'] ) + ")" sqlstr = " ".join(sqlstr.split()) flog.debug(inspect.stack()[0][3] + ": SQL =" + str(sqlstr)) phasedb.insert_rec(sqlstr) except Exception as e: flog.error(inspect.stack()[0][3] + ": Insert gefaald. Melding=" + str(e.args[0]))
def cleanDb(): timestr=mkLocalTimeString() # minuten records verwijderen sql_del_str = "delete from "+const.DB_HISTORIE_MIN_TAB+" where timestamp < '"+\ str(datetime.strptime(timestr,"%Y-%m-%d %H:%M:%S") - timedelta(days=31))+"'" try: flog.debug(inspect.stack()[0][3]+": sql="+sql_del_str) e_db_history_min.del_rec(sql_del_str) except Exception as e: flog.error(inspect.stack()[0][3]+": verwijderen min. recs,delete gefaald. Melding="+str(e.args[0])) # uur records verwijderen sql_del_str = "delete from "+const.DB_HISTORIE_UUR_TAB+" where timestamp < '"+\ str(datetime.strptime(timestr,"%Y-%m-%d %H:%M:%S") - timedelta(days=1096))+"'" try: flog.debug(inspect.stack()[0][3]+": sql="+sql_del_str) e_db_history_uur.del_rec(sql_del_str) except Exception as e: flog.error(inspect.stack()[0][3]+": verwijderen uur recs,delete gefaald. Melding="+str(e.args[0])) # dagen records verwijderen sql_del_str = "delete from "+const.DB_HISTORIE_DAG_TAB+" where timestamp < '"+\ str(datetime.strptime(timestr,"%Y-%m-%d %H:%M:%S") - timedelta(days=1096))+"'" try: flog.debug(inspect.stack()[0][3]+": sql="+sql_del_str) e_db_history_dag.del_rec(sql_del_str) except Exception as e: flog.error(inspect.stack()[0][3]+": verwijderen dag recs,delete gefaald. Melding="+str(e.args[0]))
def max_kWh_day_value(data_set=None, dbstatus=None, dbserial=None, flog=None ): #flog.setLevel( logger.logging.DEBUG ) timestr=util.mkLocalTimeString() daytime_start_str = timestr[0:10]+" 00:00:00" daytime_end_str = timestr[0:10]+" 23:59:59" try: sqlstr = "select verbr_kwh_181,verbr_kwh_182,gelvr_kwh_281,gelvr_kwh_282 \ from " + const.DB_SERIAL_TAB+" where timestamp = \ (select min(timestamp) from "+const.DB_SERIAL_TAB + \ " where timestamp >= '" + daytime_start_str + "'and timestamp <= '" + daytime_end_str + "')" sqlstr = " ".join(sqlstr.split()) flog.debug(inspect.stack()[0][3]+": sql="+sqlstr) start_van_dag_waarde = dbserial.select_rec( sqlstr ) flog.debug(inspect.stack()[0][3]+": record="+str(start_van_dag_waarde)) dbstatus.strset( util.alwaysPlus(float( data_set['verbrk_kwh_181'] )- float(start_van_dag_waarde[0][0])),8,flog ) dbstatus.strset( util.alwaysPlus(float( data_set['verbrk_kwh_182'] )- float(start_van_dag_waarde[0][1])),9,flog ) dbstatus.strset( util.alwaysPlus(float( data_set['gelvr_kwh_281'] ) - float(start_van_dag_waarde[0][2])),10,flog ) dbstatus.strset( util.alwaysPlus(float( data_set['gelvr_kwh_282'] ) - float(start_van_dag_waarde[0][3])),11,flog ) except Exception as e: flog.error( inspect.stack()[0][3]+": serial e-buffer kwH waarden vorige dag gefaald. Melding="+str(e.args[0]) )
def writeManifestFile(): flog.debug(inspect.stack()[0][3]+": Manifest file " + const.FILE_EXPORT_MANIFEST + " maken.") try: manifestdata = { 'timestamp': util.mkLocalTimeString(), 'record_count': statusdata['record_count'] } fo = open(const.FILE_EXPORT_MANIFEST, "w") fo.write(json.dumps(manifestdata)) fo.close() util.setFile2user(const.FILE_EXPORT_MANIFEST,'p1mon') except Exception as e: flog.error(inspect.stack()[0][3]+": manifest bestand kon niet worden weggeschreven -> "+str(e))
def backup_data_to_disk_by_timestamp( statusdb=None, flog=None, minute_mod=15 ): try: if int(util.mkLocalTimeString()[14:16])%minute_mod != 0: return # do noting, we are not in the mod range normaly 0,15,30,45 minutes file_sec_delta = util.file_delta_timestamp( const.FILE_DB_E_FILENAME ,const.DIR_FILEDISK ) if file_sec_delta > 60 or file_sec_delta == -1: os.system("/p1mon/scripts/P1DbCopy.py --serialcopy2disk --forcecopy") statusdb.timestamp( 41,flog ) except Exception as e: flog.error(inspect.stack()[0][3]+": data back-up fout: "+str(e))
def deleteRecords(): timestamp = mkLocalTimeString() try: sql_del_str = "delete from " + const.DB_POWERPRODUCTION_TAB + \ " where TIMEPERIOD_ID = " + \ str( sqldb.INDEX_MINUTE ) + \ " and POWER_SOURCE_ID = " + \ str( S0_POWERSOURCE ) + \ " and timestamp < '" + str( datetime.strptime( timestamp, "%Y-%m-%d %H:%M:%S") - timedelta(days=31)) + "'" flog.debug(inspect.stack()[0][3] + ": wissen van minuten. sql=" + sql_del_str) power_production_db.excute(sql_del_str) except Exception as e: flog.warning(inspect.stack()[0][3] + ": wissen van oude minuten records gefaald: " + str(e)) try: sql_del_str = "delete from " + const.DB_POWERPRODUCTION_TAB + \ " where TIMEPERIOD_ID = " + \ str( sqldb.INDEX_HOUR ) + \ " and POWER_SOURCE_ID = " + \ str( S0_POWERSOURCE ) + \ " and timestamp < '" + str( datetime.strptime( timestamp, "%Y-%m-%d %H:%M:%S") - timedelta(days=1096)) + "'" flog.debug(inspect.stack()[0][3] + ": wissen van uren. sql=" + sql_del_str) power_production_db.excute(sql_del_str) except Exception as e: flog.warning(inspect.stack()[0][3] + ": wissen van oude minuten records gefaald: " + str(e)) try: sql_del_str = "delete from " + const.DB_POWERPRODUCTION_TAB + \ " where TIMEPERIOD_ID = " + \ str( sqldb.INDEX_DAY ) + \ " and POWER_SOURCE_ID = " + \ str( S0_POWERSOURCE ) + \ " and timestamp < '" + str( datetime.strptime( timestamp, "%Y-%m-%d %H:%M:%S") - timedelta(days=1096)) + "'" flog.debug(inspect.stack()[0][3] + ": wissen van dagen. sql=" + sql_del_str) power_production_db.excute(sql_del_str) except Exception as e: flog.warning(inspect.stack()[0][3] + ": wissen van oude minuten records gefaald: " + str(e))
def insert_db_serial_record(data_set=None, status=None, dbstatus=None, dbserial=None, flog=None): try: timestr = util.mkLocalTimeString() #timestr_min=timestr[0:16]+":00" if status['gas_present_in_serial_data'] == False: #gas_verbr_m3_2421 = 0 data_set['gas_verbr_m3_2421'] = 0 sqlstr ="insert or replace into " + const.DB_SERIAL_TAB + \ " values (\ '" +timestr+"',\ '" +"0"+"',\ '" +str( data_set['verbrk_kwh_181'] )+"', \ '" +str( data_set['verbrk_kwh_182'] )+"', \ '" +str( data_set['gelvr_kwh_281'] )+"', \ '" +str( data_set['gelvr_kwh_282'] )+"', \ '" +str( data_set['tarief_code'] )+"', \ '" +str( data_set['act_verbr_kw_170'] )+"', \ '" +str( data_set['act_gelvr_kw_270'] )+"',\ '" +str( data_set['gas_verbr_m3_2421'] )+"')" sqlstr = " ".join(sqlstr.split()) flog.debug(inspect.stack()[0][3] + ": (2)serial e-buffer insert: sql=" + sqlstr) dbserial.insert_rec(sqlstr) # timestamp telegram processed dbstatus.timestamp(16, flog) # Timestring + Daylight saving. dbstatus.strset(str(util.getUtcTime()), 87, flog) # UTC time status['p1_record_is_ok'] = 1 dbstatus.strset(str(status['p1_record_is_ok']), 46, flog) # P1 data is ok recieved status['timestamp_last_insert'] = util.getUtcTime() # if util.isMod( timestr,15 ) == True: # backupData() except Exception as e: flog.error(inspect.stack()[0][3] + ": Insert gefaald. Melding=" + str(e.args[0]))
def delete_phase_record( p1_processing=None, phase_db=None, flog=None ): try: timestampstr = util.mkLocalTimeString() #if ( int( phase_db_rec['timestamp'][14:16] )%5 ) == 0: # delete every 5 minutes and not every record to limit DB load and fragmentaion. sql_del_str = "delete from " + const.DB_FASE_REALTIME_TAB + " where timestamp < '"+\ str( datetime.datetime.strptime( \ timestampstr, "%Y-%m-%d %H:%M:%S") -\ datetime.timedelta( days=p1_processing['max_days_db_data_retention'] )) + "'" flog.debug( inspect.stack()[0][3] + ": sql=" + sql_del_str ) phase_db.del_rec(sql_del_str) except Exception as e: flog.error( inspect.stack()[0][3] + ": verwijderen fase records ,delete gefaald. Melding=" + str(e.args[0]) )
def update_json_data( jsondata=None, p1data=None ): #convert dutch tarif code to English Dal = Low, Peak = High if p1data['tarief_code'] == 'P': tarief_code = 'HIGH' else: tarief_code = "LOW" # there are only two options (D/P) jsondata[ apiconst.JSON_TS_LCL ] = str(util.mkLocalTimeString()) jsondata[ apiconst.JSON_TS_LCL_UTC ] = util.getUtcTime() jsondata[ apiconst.JSON_API_API_STTS ] = 'production' jsondata[ apiconst.JSON_API_CNSMPTN_KWH_L ] = float( p1data['verbrk_kwh_181'] ) jsondata[ apiconst.JSON_API_CNSMPTN_KWH_H ] = float( p1data['verbrk_kwh_182'] ) jsondata[ apiconst.JSON_API_PRDCTN_KWH_L ] = float( p1data['gelvr_kwh_281'] ) jsondata[ apiconst.JSON_API_PRDCTN_KWH_H ] = float( p1data['gelvr_kwh_282'] ) jsondata[ apiconst.JSON_API_TRFCD ] = str( tarief_code ) jsondata[ apiconst.JSON_API_CNSMPTN_KW ] = float( p1data['act_verbr_kw_170'] ) jsondata[ apiconst.JSON_API_PRDCTN_KW ] = float( p1data['act_gelvr_kw_270'] ) jsondata[ apiconst.JSON_API_CNSMPTN_GAS_M3 ] = float( p1data['gas_verbr_m3_2421'] ) jsondata[ apiconst.JSON_API_SYSTM_ID] = systemid.getSystemId()
def waitForPuls(): global gpioPowerS0Puls #if pulsSimulator( probility = 0.05 ) == True: if gpioPowerS0Puls.gpioWaitRead() == True: flog.debug( inspect.stack()[0][3] + ": Start van verwerken van S0 pulsen, verwerking is actief.") rt_status_db.timestamp(109, flog) # set timestamp of puls detected timestamp = mkLocalTimeString() #flog.debug( inspect.stack()[0][3]+": S0 puls gedetecteerd." ) _id, puls_value_per_kwh, _label = config_db.strget(127, flog) #puls_value_per_kwh = 1 #debug # get HIGH of LOW tariff P or D _id, tariff, _label, _security = rt_status_db.strget(85, flog) #tariff = 'P' #store in buffer database and proces. #timestamp_buffer_list.append( [timestamp, puls_value_per_kwh,tariff ]) # process minute records minuteProcessing(timestamp, tariff, puls_value_per_kwh) # add the other time periods replaceRecordForAPeriod(timestamp, sqldb.INDEX_HOUR) replaceRecordForAPeriod(timestamp, sqldb.INDEX_DAY) replaceRecordForAPeriod(timestamp, sqldb.INDEX_MONTH) replaceRecordForAPeriod(timestamp, sqldb.INDEX_YEAR) else: try: # warning, the puls must be off to update the gpio pin. gpioPowerS0Puls.check_pin_from_db() except: pass
def add_single_line_to_buffer(self, line=None, timestamp=True): if timestamp == True: self.line_buffer.append(line + " " + util.mkLocalTimeString()) else: self.line_buffer.append(line)
def add_record_to_buffer(self, record=None): timestamp = util.mkLocalTimeString() self.line_buffer.append(record['interface'] + " " + timestamp) self.line_buffer.append(record['ip'] + " " + timestamp)
def kWupdateStatusDb(self): # 0: current timestamps timestr = util.mkLocalTimeString() daytime_start_str = timestr[0:10] + " 00:00:00" daytime_end_str = timestr[0:10] + " 23:59:59" #daytime_start_str = "2021-01-15 00:00:00" # force update when the day changes #sql = self.__create_sql_timestamp( # db_field='act_verbr_KW_170', # timestart=daytime_start_str, # timestop=daytime_end_str, # value=self.kw_max_min['max_verbr_KW_170'] ) #rec_time = self.dbserial.select_rec( sql ) #print ( rec_time[0][0][0:10], timestr[0:10] ) #if str(rec_time[0][0][0:10]) != timestr[0:10]: # an other day is upon us. # self.flog.info( inspect.stack()[0][3] + ": Dag wissel gevonden vorige datum was " + ) # self._reset_data_set() if len(str(self.kw_max_min['max_verbr_KW_170_timestamp']) ) > 9: # check that the time is set if str(self.kw_max_min['max_verbr_KW_170_timestamp'] [0:10]) != timestr[0:10]: # an other day is upon us. self.flog.info( inspect.stack()[0][3] + ": Dag wissel gevonden vorige datum was " + self.kw_max_min['max_verbr_KW_170_timestamp'][0:10]) self._reset_data_set() #print( self.kw_max_min ) try: sql_str = " select max(act_verbr_KW_170), min(act_verbr_KW_170), max(act_gelvr_KW_270), min(act_gelvr_KW_270) \ from " + const.DB_SERIAL_TAB + " where timestamp >='" \ + daytime_start_str + "' and timestamp <='" + daytime_end_str + "'" sql_str = " ".join(sql_str.split()) self.flog.debug(inspect.stack()[0][3] + ": SQL kw waarden=" + sql_str) rec_kw_waarden = self.dbserial.select_rec(sql_str) if rec_kw_waarden[0][0] > self.kw_max_min['max_verbr_KW_170']: self.kw_max_min['max_verbr_KW_170'] = rec_kw_waarden[0][0] self.kw_max_min['max_verbr_KW_170_change'] = True if rec_kw_waarden[0][1] < self.kw_max_min['min_verbr_KW_170']: self.kw_max_min['min_verbr_KW_170'] = rec_kw_waarden[0][1] self.kw_max_min['min_verbr_KW_170_change'] = True if rec_kw_waarden[0][2] > self.kw_max_min['max_gelvr_KW_270']: self.kw_max_min['max_gelvr_KW_270'] = rec_kw_waarden[0][2] self.kw_max_min['max_gelvr_KW_270_change'] = True if rec_kw_waarden[0][3] < self.kw_max_min['min_gelvr_KW_270']: self.kw_max_min['min_gelvr_KW_270'] = rec_kw_waarden[0][3] self.kw_max_min['min_gelvr_KW_270_change'] = True except Exception as e: self.flog.error(inspect.stack()[0][3] + ": waarde query = " + str(e.args[0])) return # update timestamps and values when needed. try: if self.kw_max_min['max_verbr_KW_170_change'] == True: sql = self.__create_sql_timestamp( db_field='act_verbr_KW_170', timestart=daytime_start_str, timestop=daytime_end_str, value=self.kw_max_min['max_verbr_KW_170']) #print ( sql ) rec_time = self.dbserial.select_rec(sql) # update the status database self.dbstatus.strset(str(self.kw_max_min['max_verbr_KW_170']), 1, self.flog) self.dbstatus.strset(rec_time[0][0], 2, self.flog) self.kw_max_min['max_verbr_KW_170_change'] = False self.kw_max_min['max_verbr_KW_170_timestamp'] = str( rec_time[0][0]) self.flog.info( inspect.stack()[0][3] + ": max_verbr_KW_170 aangepast naar " + str(self.kw_max_min['max_verbr_KW_170']) + " kW. Voor tijdstip " + str(self.kw_max_min['max_verbr_KW_170_timestamp'])) if self.kw_max_min['min_verbr_KW_170_change'] == True: sql = self.__create_sql_timestamp( db_field='act_verbr_KW_170', timestart=daytime_start_str, timestop=daytime_end_str, value=self.kw_max_min['min_verbr_KW_170']) #print ( sql ) rec_time = self.dbserial.select_rec(sql) # update the status database self.dbstatus.strset(str(self.kw_max_min['min_verbr_KW_170']), 113, self.flog) self.dbstatus.strset(rec_time[0][0], 114, self.flog) self.kw_max_min['min_verbr_KW_170_change'] = False self.kw_max_min['min_verbr_KW_170_timestamp'] = str( rec_time[0][0]) self.flog.info(inspect.stack()[0][3] + ": min_verbr_KW_170 aangepast naar " + str(self.kw_max_min['min_verbr_KW_170']) + " kW. Voor tijdstip " + self.kw_max_min['min_verbr_KW_170_timestamp']) if self.kw_max_min['max_gelvr_KW_270_change'] == True: sql = self.__create_sql_timestamp( db_field='act_gelvr_KW_270', timestart=daytime_start_str, timestop=daytime_end_str, value=self.kw_max_min['max_gelvr_KW_270']) #print ( sql ) rec_time = self.dbserial.select_rec(sql) # update the status database self.dbstatus.strset(str(self.kw_max_min['max_gelvr_KW_270']), 3, self.flog) self.dbstatus.strset(rec_time[0][0], 4, self.flog) self.kw_max_min['max_gelvr_KW_270_change'] = False self.kw_max_min['max_gelvr_KW_270_timestamp'] = str( rec_time[0][0]) self.flog.info( inspect.stack()[0][3] + ": max_gelvr_KW_270 aangepast naar " + str(self.kw_max_min['max_gelvr_KW_270']) + " kW. Voor tijdstip " + str(self.kw_max_min['max_gelvr_KW_270_timestamp'])) if self.kw_max_min['min_gelvr_KW_270_change'] == True: sql = self.__create_sql_timestamp( db_field='act_gelvr_KW_270', timestart=daytime_start_str, timestop=daytime_end_str, value=self.kw_max_min['min_gelvr_KW_270']) #print ( sql ) rec_time = self.dbserial.select_rec(sql) # update the status database self.dbstatus.strset(str(self.kw_max_min['min_gelvr_KW_270']), 115, self.flog) self.dbstatus.strset(rec_time[0][0], 116, self.flog) self.kw_max_min['min_gelvr_KW_270_change'] = False self.kw_max_min['min_gelvr_KW_270_timestamp'] = str( rec_time[0][0]) self.flog.info( inspect.stack()[0][3] + ": min_gelvr_KW_270 aangepast.naar " + str(self.kw_max_min['min_gelvr_KW_270']) + " kW. Voor tijdstip " + str(self.kw_max_min['min_gelvr_KW_270_timestamp'])) except Exception as e: self.flog.error(inspect.stack()[0][3] + ": Melding= " + str(e.args[0])) return
from sqldb import configDB, rtStatusDb, powerProductionDB from time import sleep from util import fileExist, setFile2user, mkLocalTimeString from gpio import gpioDigtalInput from random import randrange from utiltimestamp import utiltimestamp from listOfPidByName import listOfPidByName # programme name. prgname = 'P1PowerProductionS0' rt_status_db = rtStatusDb() config_db = configDB() power_production_db = powerProductionDB() gpioPowerS0Puls = gpioDigtalInput() timestamp = mkLocalTimeString() #timestamp_buffer_list = [] prg_is_active = True S0_POWERSOURCE = 1 mp_queue_1 = Queue() QUEUE_CMD_START = "START" def Main(argv): global timestamp my_pid = os.getpid() flog.info("Start van programma met process id " + str(my_pid)) DiskRestore()