self.config_parser.set('zmq','remote_uri',"tcp://wuzzler.realraum.at:4244")
self.config_parser.set('zmq','sshtunnel',"realraum@wuzzler.realraum.at:22000")
self.config_parser.set('zmq','sshkeyfile',"/home/guests/realraum.wirdorange.org/id_rsa")
- self.config_parser.set('zmq','subscribe',"TempSensorUpdate IlluminationSensorUpdate DustSensorUpdate RelativeHumiditySensorUpdate MovementSensorUpdate PresenceUpdate")
+ self.config_parser.set('zmq','subscribe',"TempSensorUpdate IlluminationSensorUpdate DustSensorUpdate RelativeHumiditySensorUpdate MovementSensorUpdate")
self.config_parser.add_section('debug')
self.config_parser.set('debug','enabled',"False")
self.config_mtime=0
sys.exit(0)
time_column_name_="Time"
-lastest_values_ = {}
+latest_values_ = {}
sensor_store_ = {}
sensor_cols_num_ = {} #stores number of columns for a sensor not counting Time (x-axis) column. AKA the number of data-rows. Equals highest SensorIndex +1
reset_these_structnames_ = {}
def addEventToTempLastValueStore(structname, msgdata):
- global lastest_values_
+ global latest_values_
sensorindex = msgdata["Sensorindex"] if "Sensorindex" in msgdata else 0
- if not structname in lastest_values_:
- lastest_values_[structname]=[]
+ if not structname in latest_values_:
+ latest_values_[structname]=[]
if not structname in sensor_cols_num_ or sensor_cols_num_[structname] < sensorindex +1:
sensor_cols_num_[structname] = sensorindex +1
- if len(lastest_values_[structname]) < sensor_cols_num_[structname]:
- lastest_values_[structname] += [0] * (sensor_cols_num_[structname] - len(lastest_values_[structname]))
+ if len(latest_values_[structname]) < sensor_cols_num_[structname]:
+ latest_values_[structname] += [0] * (sensor_cols_num_[structname] - len(latest_values_[structname]))
expandSensorStoreLists(structname, sensor_cols_num_[structname])
# store Value in temp last value store:
try:
- del dictdata["Sensorindex"]
- del dictdata["Ts"]
+ del msgdata["Sensorindex"]
+ except:
+ pass
+ try:
+ del msgdata["Ts"]
except:
pass
if len(msgdata) > 0:
#store first value that is not Sensorindex or Ts into store
- lastest_values_[structname][sensorindex] = msgdata.values()[0]
+ latest_values_[structname][sensorindex] = msgdata.values()[0]
else:
#if that value does not exist, (i.e. movementevent), count event occurances
- lastest_values_[structname][sensorindex] += 1
+ latest_values_[structname][sensorindex] += 1
reset_these_structnames_[structname] = True
def cleanTempLastValueOfMovementValues():
- global lastest_values_
+ global latest_values_
for k in reset_these_structnames_.keys():
- lastest_values_[k] = [0] * sensor_cols_num_[structname]
+ latest_values_[k] = [0] * sensor_cols_num_[structname]
def expandSensorStoreLists(structname, newlength):
def addEventsToStore():
global sensor_store_
ts = int(time.time())
- for structname in lastest_values_.keys():
+ for structname in latest_values_.keys():
if not structname in sensor_store_:
sensor_store_[structname]=[]
sensor_store_[structname].insert(0,[time_column_name_] + list(map(str,range(0,sensor_cols_num_[structname]))))
# add values
- sensor_store_[structname].append([ts] + lastest_values_[structname])
+ sensor_store_[structname].append([ts] + latest_values_[structname])
#cap list lenght
if uwscfg.json_limit_list_len:
try:
with open(uwscfg.json_moveto_path,"rb") as fh:
- sensor_store = json.loads(fh.read())
+ sensor_store_ = json.loads(fh.read())
except Exception, e:
logging.debug(e)
try:
with open(uwscfg.json_backup_path,"rb") as fh:
- sensor_store = json.loads(fh.read())
+ sensor_store_ = json.loads(fh.read())
except Exception, e:
logging.debug(e)
+
+ for k in set(sensor_store_.keys()).difference(set(uwscfg.zmq_subscribe.split(" "))):
+ del sensor_store_[k] # del old sensordata of sensor we do not subscribe to
+
+ for k in sensor_store_.keys():
+ try:
+ if len(sensor_store_[k][0]) > 1:
+ sensor_cols_num_[k] = len(sensor_store_[k][0]) -1
+ except:
+ pass
+
while True:
try:
#Start zmq connection to publish / forward sensor data
addEventToTempLastValueStore(structname, dictdata)
- logging.debug("lastdata:"+str(lastest_values_))
+ logging.debug("lastdata:"+str(latest_values_))
if int(time.time()) - last_update < int(uwscfg.json_updateinterval):
continue
cleanTempLastValueOfMovementValues()
backup_counter += 1
- # save sensor_store to json for apache
+ # save sensor_store_ to json for apache
with open(uwscfg.json_write_path,"wb") as fh:
fh.truncate()
fh.write(json.dumps(sensor_store_))