This very much depends on what, exactly, you're trying to do.
EEG measurements tend to be extremely reliable, but the inferences one may draw on mental state are not necessarily so.
EEG-driven BCI overwhelmingly relies on machine learning to correctly classify signals into a finite number of categories and act upon them. Typically, you'll do something like this:
- Record EEG sessions where people are cued to think of any number of 'triggers' (e.g. turning up the volume of a television set).
- Segment the recording into epochs by drawing a window around the time at which the subject was told to think of the trigger.
- Extract time-insensitive features from the epochs and label them based on the trigger type. (e.g.: something as simple as a rolling-window mean over each sensor).
- Train a supervised classifier (usually a support vector machine) on the feature vectors.
- Use the classifier to decode future brain activity in real time.
Of course, there are many subtleties and machine learning is a vast topic in and of itself. The point here is that your question is too ambiguous to be answered directly.
To reiterate, EEG is reliable, but as with most things, it comes with a number of caveats:
- Scalp-level voltage topographies can vary massively across individuals because of anatomical differences
- EEG is very sensitive to electromagnetic noise
- Non research-grade EEGs (e.g.: EMOTIV EPOC) have few channels, tend to be noisy, and often lose contact
- Cap placement is hard to do reliably outside of the laboratory