@Override
	public boolean importGroup27ReadingCO(JSONObject toImport, String device_serial, String product_id) throws Exception {
		String latitude = __jdbcProperties.getProperty("sql.latitude");
		String longitude = __jdbcProperties.getProperty("sql.longitude");
		String method = __jdbcProperties.getProperty("sql.method");
		String deviceid = device_serial + "_co";
		String current_value = (String)toImport.get("current_value");
		String max_value = (String)toImport.get("max_value");
		String min_value = (String)toImport.get("min_value");
		int currentdata = parsevalue(current_value);
		int maxdata = parsevalue(max_value);
		int mindata = parsevalue(min_value);
		
		String datetime = (String) toImport.get("at");//2014-04-29T03:11:31.118995Z
		Calendar cal = DatatypeConverter.parseDateTime(datetime);
		Date d = cal.getTime();
		
		String tags = null;
		JSONArray tagary = (JSONArray)toImport.get("tags");
		for (int i = 0; i < tagary.size(); i++) {
			if (tags == null) tags = (String) tagary.get(i);
			else tags += ","+(String) tagary.get(i);
		}
			
		Connection c = null;
	        PreparedStatement ps1 = null;
	        PreparedStatement ps2 = null;
	        boolean previousAC = true;
	        
	        if (toImport.isEmpty())
	            return false;

	        try {
	            c = _getConnection();
	            previousAC = c.getAutoCommit();
	            c.setAutoCommit(false);
	            ps1 = c.prepareStatement(__jdbcProperties.getProperty("sql.importCommonReadings"));
	            ps2 = c.prepareStatement(__jdbcProperties.getProperty("sql.importGroup27CoReadings"));

	            ps1.setString(1, deviceid);
	            ps1.setTimestamp(2, new java.sql.Timestamp(d.getTime()), AQMDAOFactory.AQM_CALENDAR);
	            ps1.setDouble(3, Double.parseDouble(latitude));
	            ps1.setDouble(4, Double.parseDouble(longitude));
	            ps1.setString(5, method);
	            
	            ps2.setString(1, product_id);
	            ps2.setString(2, deviceid);
	            ps2.setTimestamp(3, new java.sql.Timestamp(d.getTime()), AQMDAOFactory.AQM_CALENDAR);
	            ps2.setInt(4, currentdata);
	            ps2.setInt(5, maxdata);
	            ps2.setInt(6, mindata);
	            ps2.setString(7, tags);
	            ps2.setString(8, (String) ((JSONObject)toImport.get("unit")).get("label"));
	            ps2.setString(9, (String) ((JSONObject)toImport.get("unit")).get("symbol"));
	            
	            System.out.println("co 1");
	            
	            ps1.executeUpdate();
	            ps1.clearParameters();
	            ps2.executeUpdate();
	            ps2.clearParameters();
	            c.commit();
	            
	            System.out.println("co finish");

	        } catch (SQLException se) {
	            se.printStackTrace();
	            throw new Exception(se);
	        } catch (Throwable t) {
	            t.printStackTrace();
	            throw new Exception(t);
	        } finally {
	            try {
	                if (ps1 != null)
	                    ps1.close();
	                if (ps2 != null)
	                    ps2.close();
	                if (c != null) {
	                    c.rollback();
	                    c.setAutoCommit(previousAC);
	                    c.close();
	                }
	            } catch (SQLException se2) {
	                se2.printStackTrace();
	            }
	        }
		
		return true;
	}