Non-intrusive load monitoring (NILM) is the process of disaggregating total electricity consumption measured by a smart meter into individual appliances' contributions. In this paper, we present a privacy control strategy that selectively filters appliances' consumption from the smart meter measurements to hinder NILM disaggregation performance. The privacy controller uses charging and discharging operations of an energy storage to achieve desired smart meter measurements. We model the household consumption using both additive and difference factorial hidden Markov models and design a control strategy to minimize privacy leakage measured in terms of Bayesian risk due to maximum a posteriori detection. Due to the high computational complexity of the optimal control strategy, we propose a computationally efficient sub-optimal strategy. We evaluate the proposed approaches using the ECO data set and show their privacy improvements against the Viterbi disaggregation algorithm.