diff --git a/src/emonhub_interfacer.py b/src/emonhub_interfacer.py index c9e2433a..3089b2d3 100644 --- a/src/emonhub_interfacer.py +++ b/src/emonhub_interfacer.py @@ -83,11 +83,34 @@ def __init__(self, name): # create a stop self.stop = False + # Read RaspberryPi serial number if applicable + pi_serial = False + try: + f = open('/proc/cpuinfo','r') + for line in f: + if line[0:6]=='Serial': + length=len(line) + pi_serial = line[11:length-1] + f.close() + except: + pi_serial = False + + if pi_serial: + pi_serial_short = "" + zero_flag = 1 + for i in range(0,len(pi_serial)): + if pi_serial[i]!='0': + zero_flag = 0 + if not zero_flag: + pi_serial_short += pi_serial[i] + self._settings['serial_num'] = pi_serial_short.upper()+"_" + else: + self._settings['serial_num'] = "" + self.first_msg = {} self.last_msg = {} self.missed = {} self.rx_msg = {} - @log_exceptions_from_class_method def run(self): @@ -142,7 +165,7 @@ def add(self, cargo): f = [] try: f.append(cargo.timestamp) - f.append(cargo.nodeid) + f.append(str(self._settings['serial_num'])+str(cargo.nodeid)) # FIXME replace with f.extend(cargo.realdata) for i in cargo.realdata: f.append(i) @@ -429,7 +452,7 @@ def _process_rx(self, cargo): nodename = False if node in ehc.nodelist and 'nodename' in ehc.nodelist[node]: nodename = ehc.nodelist[node]['nodename'] - rxc.nodename = nodename + rxc.nodename = str(self._settings['serial_num'])+str(nodename) if not rxc: return False