def __retrieveResponse( data ): returnData = {} for deviceKey in data.keys(): deviceObj = GardenModels.getDevice( identifier = deviceKey) logger.debug( "DeviceObj: " + deviceObj.identifier ) for dataTypeKey in data[ deviceKey ]: dataTypeObj = GardenModels.getDataType( identifier = dataTypeKey ) logger.debug( "DataTypeObj: " + dataTypeObj.identifier ) returnData[ deviceObj.identifier ] = {} responseObj= GardenModels.getResponse( device = deviceObj, datatype = dataTypeObj) if responseObj == None: return False logger.debug( "Response Object: " + str( responseObj.identifier ) ) returnData[ responseObj.device.identifier ][ responseObj.datatype.identifier ] = \ responseObj.value #endfor returnDataString = DataFormat.formatJsonResponse( returnData ) logger.debug("Response: " + returnDataString ) return returnDataString
def getData( request ): logger.info("GET PROCESSOR REQUESET"); response = {} dataCount = 0 for device in request: logger.debug("Device: " + device) response[ device ] = {} for datatype in request[ device ]: logger.debug("DataType: " + datatype ) response[ device ][ datatype ] = {} data = GardenModels.getDataRange( int(request[ device ][ datatype ]['points']), device = device, datatype = datatype ) dataCount = dataCount + len(data) logger.debug("Data Returned: " + str(data)) for datapoint in data: dataAge = int( ( datapoint.created.replace(tzinfo=None) - datetime.datetime(1970,1,1)).total_seconds() ) if 'time' in request[ device ][ datatype ] : if dataAge < ( int( time.time() ) - request[ device ][ datatype ]['time' ] ) : logger.debug(int( time.time() ) - dataAge ) dataCount = dataCount - 1 continue response[ device ][ datatype ][ datapoint.identifier ] = { 'value' : datapoint.value, 'created' : int( ( datapoint.created.replace(tzinfo=None) - datetime.datetime(1970,1,1)).total_seconds() ) } #endfor #endfor logger.info("Returning: " + str(dataCount) + " Points of Data") return DataFormat.formatJsonResponse( response )