Over the last two days I have pushed out updates to common, server-interface, and customer-models. Two important issues are addressed by these changes.
First, issue #766 arose because some broker developers discovered a way to abuse customers by offering attractive tariffs with negative signup payments, and then revoking them to avoid having to sell power below cost. This issue is fixed by refunding negative signup bonuses whenever a customer unsubscribes from such a tariff. This is a bit more draconian than what we discussed earlier, but I believe it's necessary because otherwise brokers could still abuse customers with one more step.
Second, issue #795 addresses the fact that most customer models do not effectively evaluate time-of-use tariffs, because they are not composing appropriate usage profiles for such tariffs. We have added a new model called LiftTruck that models fleets of electric forklift trucks. It composes tariff-specific usage profiles by composing and solving a simple linear program. It advertises itself as THERMAL_STORAGE and offers regulation capacity. The PowerType choice reflect the fact that the abstract behavior of forklift batteries (which are almost universally big lead-acid batteries) is identical to a thermal storage device. It needs a certain amount of energy over a period of time. The energy draw can be manipulated, but cannot go negative.
Our intention is to update at least the cold-storage warehouse model and the EV model with essentially the same LP approach to composing tariff-specific usage profiles.
At this point, I have not deployed these changes. To see them, you need to be operating an updated server source environment. Since there are updates to both common and server-interface, you will need to rebuild (and potentially re-install) everything. I want to wait a week or so before deploying, to allow a few bleeding-edge developers to try this stuff out.
As always, please let me know if you have questions or concerns about these changes.