X-Git-Url: https://git.realraum.at/?p=svn42.git;a=blobdiff_plain;f=sensorvalues-to-json-zmq.py;h=d6bc31e912c84fd0a889638e5f80321a1892bd36;hp=bf71013550feb00a1c33ba51447a88cc05223f3d;hb=e2120a0b5c7264a9a741519b52f829d6ade95865;hpb=84480e7b26adcb41f503de7e3b04e6c399cd39ef diff --git a/sensorvalues-to-json-zmq.py b/sensorvalues-to-json-zmq.py index bf71013..d6bc31e 100755 --- a/sensorvalues-to-json-zmq.py +++ b/sensorvalues-to-json-zmq.py @@ -40,7 +40,7 @@ class UWSConfig: self.config_parser.add_section('json') self.config_parser.set('json','write_path',"/dev/shm/wget/r3sensors.json") self.config_parser.set('json','moveto_path',"/dev/shm/www/r3sensors.json") - self.config_parser.set('json','backup_path',"/home/guests/realraum.wirdorange.org/public_html/r3sensors.json.bak") + self.config_parser.set('json','backup_path',"/home/guests/realraum.wirdorange.org/r3sensors.json.bak") self.config_parser.set('json','backup_every',"50") self.config_parser.set('json','limit_list_len',"10000") self.config_parser.set('json','updateinterval',"30") @@ -169,7 +169,7 @@ reset_these_structnames_ = {} def addEventToTempLastValueStore(structname, msgdata): global latest_values_ - sensorindex = msgdata["Sensorindex"] if "Sensorindex" in msgdata else 0 + sensorindex = int(msgdata["Sensorindex"]) if "Sensorindex" in msgdata else 0 if not structname in latest_values_: latest_values_[structname]=[] if not structname in sensor_cols_num_ or sensor_cols_num_[structname] < sensorindex +1: @@ -198,7 +198,7 @@ def addEventToTempLastValueStore(structname, msgdata): def cleanTempLastValueOfMovementValues(): global latest_values_ for k in reset_these_structnames_.keys(): - latest_values_[k] = [0] * sensor_cols_num_[structname] + latest_values_[k] = [0] * sensor_cols_num_[k] def expandSensorStoreLists(structname, newlength): @@ -208,11 +208,12 @@ def expandSensorStoreLists(structname, newlength): #remove old headings so we can add them again below try: if sensor_store_[structname][0][0] == time_column_name_: - sensor_store_[structname][0].pop(0) + sensor_store_[structname].pop(0) except: pass #expand all previous value lists - sensor_store_[structname] = map(lambda l: l + ([0] * (newlength +1 - len(l))) , sensor_store_[structname]) + newlength_including_time = newlength +1 + sensor_store_[structname] = map(lambda l: l[:newlength_including_time] + ([0] * (newlength_including_time - len(l))) , sensor_store_[structname]) def addEventsToStore(): @@ -224,9 +225,15 @@ def addEventsToStore(): #if missing, add Header List [Time, 0, 1, 2] if len(sensor_store_[structname]) == 0 or len(sensor_store_[structname][0]) < 2 or sensor_store_[structname][0][0] != time_column_name_: - sensor_store_[structname].insert(0,[time_column_name_] + list(map(str,range(0,sensor_cols_num_[structname])))) + sensor_store_[structname].insert(0,[time_column_name_] + list(map(lambda n: "Sensor %d"%n,range(0,sensor_cols_num_[structname])))) # add values + try: + # if latest values are identical, just update timestamp + if sensor_store_[structname][-1][1:] == latest_values_[structname] and sensor_store_[structname][-1][1:] == sensor_store_[structname][-2][1:]: + sensor_store_[structname].pop() + except: + pass sensor_store_[structname].append([ts] + latest_values_[structname]) #cap list lenght @@ -303,6 +310,7 @@ if __name__ == "__main__": addEventsToStore() cleanTempLastValueOfMovementValues() + logging.debug("post-cleanMovement lastdata:"+str(latest_values_)) backup_counter += 1 # save sensor_store_ to json for apache