Negotiation-based task scheduling and storage control algorithm to minimize user's electric bills under dynamic prices