[vz-dev] RFC: virtual consumer

Justin Otherguy justin at justinotherguy.org
Fri Nov 4 12:19:06 CET 2011

Hi there,

at present the list of publicly available channels in our beautiful online demo does not include a smart meter. On one side that sounds a bit silly for a public demo of a smart metering platform. Then again I do not intend to publish my own smart metering data as that would definitely be silly for a smart metering project that has its focus on privacy.

Here's the solution - introducing: the virtual consumer.

The core idea is pretty simple:
thinking of what you can learn about a household when you see its load profile you come to the conclusion that the profile can be approximated with a state machine consisting of a number of individual devices. A typical fridge, for example, has two load states: 
- "compressor running"
  depending on size and age of the fridge the typical power consumption would be somewhere between 25 and 60 watts
- "compressor not running"
  in this state consumption would be at a few watts for the control part of the fridge
The duty cycle would be somewhere between 25 and 70%, depending on the age of the device, room temperature, content (filling the fridge with 30 bottles of warm beer and the christmas turkey will keep it a bit busier for a while)
example parameters:
- device type: fridge
- power low: 5 watts
- power high: 50 watts
- duty cycle min: 40%
- duty cycle max: 55%
- cycle time: 35 mins.
(some variation parameters could be introduced as well - we'll leave that alone for the moment)

a typical lamp would have two states (...); an example for a kitchen lamp
- power low: 0 watts
- power high: 27 watts
- minimum run time: 2 hrs.
- maximum run time: 4 hrs.

a (bad bad) bathroom lamp (has a transformer and the switch is on the low voltage side):
- power low: 2 watts
- power high: 33 watts
- minimum run time: 0.1 hrs.
- maximum run time: 2 hrs.

a tv set:
- power low: 4 watts
- power high: 120 watts
- minimum run time: 1 hr.
- maximum run time: 4 hrs.

I think you get the idea.

Based on the current time and on the previous status of each device the new status (ie: total power) can be calculated. I thought of "virtual consumer" to work as a stand alone program that offers its readings either directly into the vz middleware (http client mode) or to via a "optical readout on a serial to lan converter simulation" (tcp socket mode) speaking D0. The latter is pretty much what the D0 smart meters look like when using vzlogger with d0 in lan mode.

The configuration would preferably be in JSON ("if your only tool is a hammer, every problem looks like a nail...").

The output of such a virtual consumer could then be fed into volkszaehler.org and be made public. I think even using a few different device types and devices only, the output should already look pretty realistic. 

Please feel free to suggest device types (the ones above should all fit into a simple "two state" class) and devices.

Regards, J.

More information about the volkszaehler-dev mailing list