navitron
 
Renewable Energy and Sustainability Forum
Welcome, Guest. Please login or register.

Login with username, password and session length
News: Anyone wishing to register as a new member on the forum is strongly recommended to use a "proper" email address - following recent spam/hack attempts on the forum, all security is set to "high", and "disposable" email addresses like Gmail, Yahoo and Hotmail tend to be viewed with suspicion, and the application rejected if there is any doubt whatsoever
 
Recent Articles: Navitron Partners With Solax to Help Create A More Sustainable Future | Navitron Calls for Increased Carbon Footprint Reduction In Light of Earth Overshoot Day | A plea from The David School - Issue 18
   Home   Help Search Login Register  
Pages: 1 ... 3 4 5 6 [7] 8 9   Go Down
  Print  
Author Topic: Onzo Delivers! - (at last)  (Read 80892 times)
GrahamW
Newbie
*
Offline Offline

Posts: 13


« Reply #90 on: November 10, 2013, 07:55:56 PM »

PS I didn't correct for Summer time!
Logged
GrahamW
Newbie
*
Offline Offline

Posts: 13


« Reply #91 on: November 10, 2013, 08:11:43 PM »

Without wishing to scare the horses, this is a summary of the academic work http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3571813/ I think this qualifies as an interesting problem  Wink
Graham
Logged
is0-mick
Newbie
*
Offline Offline

Posts: 4


« Reply #92 on: November 10, 2013, 08:12:26 PM »

Hi Graham
The stored data seems a bit sporadic.

Here is a spreadsheet / graph of some of the power samples I downloaded direct from the meter's flash. Just like how the upload works.
These are the POWER_REAL_FINE which appear to be spot samples of the W at a given time interval.

http://www12.zippyshare.com/v/5748968/file.html

The data time stamp is also corrected in the data to give an actual time date:

Part of the code I did:

uint ClampCurrentTimestamp = onzo.GetRegister32(netID.sensor, (byte)sensorRegs.timestamp_l);
DateTime BaseTime = DateTime.Now.AddSeconds(-ClampCurrentTimestamp);
for (ushort i = bd.start_block; i < bd.cur_block; i++ )
            {
                byte[] block = onzo.GetBlock(BlockType.POWER_REAL_FINE, i, 1);
                List<sample> mylist = b.DecodeBlock(block, BlockType.POWER_REAL_FINE);
  
                foreach (sample samp in mylist)
                {
                    DateTime timestamp = BaseTime.AddSeconds(samp.Timestamp);
                    writetext.WriteLine("Time {0} , Energy ={1}w ", timestamp.ToString(), samp.Value);
                }
            }
            writetext.Close();



Mick
EDIT:
Forgot to add, we can sample the current power / temperature as often as we want and store it on the pc, for a faster sample rate. eg at 1s resolution.

Mick

« Last Edit: November 10, 2013, 08:14:57 PM by is0-mick » Logged
GrahamW
Newbie
*
Offline Offline

Posts: 13


« Reply #93 on: November 10, 2013, 08:50:35 PM »

Hi Mick, Thanks for the speedy response
I don't think it's just sporadic, I think this is data compression, i.e. don't output a value that doesn't change.

So are there just three types of sample - standard, fine & reactive or are their others? Which type is the data in your spreadsheet?

I guess if the disagggregation isn't going to miss something useful, what's needed is a set of rows of data for a given period, which looks a bit like

<timestamp>, <sample type1>,<sample type2>,.....<sample type n>

I am not clear what the difference is between fine and standard, is it the time granularity? if so what are the grain sizes 'n' secs and 1 sec or something different?

Regards
   Graham
Logged
GrahamW
Newbie
*
Offline Offline

Posts: 13


« Reply #94 on: November 10, 2013, 09:47:52 PM »

This is the data that comes out of the OWL-160
Device
 Time
 GHG_Factor
 Tariff_Cost
 Amps_Raw_Data
 Amps_Raw_Data_Min
 Amps_Raw_Data_Max
 kW_Raw_Data
 kW_Raw_Data_Min
 kW_Raw_Data_Max
 Cost_Raw_Data
 Cost_Raw_Data_Min
 Cost_Raw_Data_Max
 GHG_Raw_Data
 GHG_Raw_Data_Min
 GHG_Raw_Data_Max
Most of it can be ignored!
Logged
is0-mick
Newbie
*
Offline Offline

Posts: 4


« Reply #95 on: November 10, 2013, 11:29:25 PM »


Quote
I don't think it's just sporadic, I think this is data compression, i.e. don't output a value that doesn't change.

Well...I thought that at first, but lots are the same value even thought the time period changes.
for instance:

 01/11/2013 00:04:33 1091
 01/11/2013 00:04:34 1091


 01/11/2013 00:08:33 1107
 01/11/2013 00:08:36 1107

 01/11/2013 00:08:37    1191
 01/11/2013 00:08:40    1191

 01/11/2013 00:08:41    1163
 01/11/2013 00:08:56    1163

So it doesn't really make sense.
The onzo seems to write to 5 data streams at the same time.

   public enum BlockType
    {
        ENERGY_LOW_RES = 1,
        ENERGY_HIGH_RES = 2,
        POWER_REAL_STANDARD = 3,
        POWER_REAL_FINE = 4,
        POWER_REACTIVE_STANDARD = 5
    }

Are the names of them.

Quote
I am not clear what the difference is between fine and standard, is it the time granularity?

Well, more we look into this, the more a mess it seems to be.

Especially when in the original code are gems like:
" MM 2009-02-13 Totally broken format from current hardware\n    quirks like data in big endian, ususable header\n\n "

Power Real Fine seems to be spot wattage readings every 1 sec.
I've not looked at standard yet, so not sure on the time period on that one.

These ones are like the total usage, and counts up from when the onzo started reading. A bit like how your electric meter does.
ENERGY_LOW_RES     every 2048 seconds data is written
ENERGY_HIGH_RES    every 512 seconds data is written

I mean why have a free running counter, then have to subtract that from the current time etc etc? which must all be done at the back end?
Lots of things don't quite make sense, I mean overall it seems quite a good system, until you start digging into it.

Mick



Logged
GrahamW
Newbie
*
Offline Offline

Posts: 13


« Reply #96 on: November 12, 2013, 03:52:47 PM »

Hi Mick
I have had a closer look at your data (4-power_real_fine) using Excel , I still think what is going on is compression, but the pairs of values could be explained by slight coding error in the device and if the power is recorded with a finer granularity than 1 watt, this could happen if you check readings are the different by rounding to nearest integer then comparing, then rounding down the figures for transmission 5.1 & 5.9 round to 5 & 6 but round down to 5 and 5.

On a different subject, there are still some slight differences in value due to the power on or off being at different times within the second being measured, look in your data on the 8th Nov at the readings for the 6th and 7th minute past midnight. This looks like a fridge cycling "on" for 2-8 seconds at a time, the difference between the "on" bar heights is probably the transition effect when it turns on or off, when the granularity is a minute this really screws things up, but with this data it's a much smaller problem.
Graham
Logged
GrahamW
Newbie
*
Offline Offline

Posts: 13


« Reply #97 on: November 12, 2013, 05:04:48 PM »

This has a nice diagram in it about how to use the reactive power measurements
http://homes.cs.washington.edu/~sidhant/docs/ElectriSense_Journal.pdf
Graham
Logged
GrahamW
Newbie
*
Offline Offline

Posts: 13


« Reply #98 on: November 13, 2013, 01:15:17 PM »

Mick,
I have now had a look at your reactive power readings & I have a question, do the timestamps line up the various sets of readings? I have compared data sets 4 Power real fine and 5 power reactive standard for the first 10 minutes of the 8th of November. It doesn't make much sense, I don't understand the gaps in the reactive power readings see snippet below
Date                        Day   Hour  Min    Sec    R-Power
8 November 2013   11   8   0   2   14   121
8 November 2013   11   8   0   2   15   -349
8 November 2013   11   8   0   2   16   -349
8 November 2013   11   8   0   2   17   -281
8 November 2013   11   8   0   2   18   67
8 November 2013   11   8   0   3   36   72
8 November 2013   11   8   0   3   37   174
8 November 2013   11   8   0   3   45   184
8 November 2013   11   8   0   3   46   134
8 November 2013   11   8   0   3   47   170
8 November 2013   11   8   0   8   2   185
8 November 2013   11   8   0   8   3   159

the real power has a spike at 0:2:16 and a plateau from then until 0:3:38 then back to background levels, this plateau does correspond when most of the reactive readings are taken - so maybe it does make sense with a motor turning on for 82 second, the spike would be the peak in-rush current. in which case the background saw-tooth pattern isn't the fridge  Shocked This might make more sense. In fact taking a step back and looking at the first 6 hours of the 8th the approx. 1100 watt spike only happens twice more at 04:20:27 and 05:59:36. This is where knowing what appliances are connected aids interpretation. However it does look like plotting real and reactive power clusters could be useful.

It's useful to understand the background noise, then it can be subtracted leaving a cleaner signal for further interpretation.

Graham
Logged
is0-mick
Newbie
*
Offline Offline

Posts: 4


« Reply #99 on: November 13, 2013, 02:46:09 PM »

I think its en4rab that sent you the reactive reading Smiley

Mick
Logged
GrahamW
Newbie
*
Offline Offline

Posts: 13


« Reply #100 on: November 13, 2013, 04:01:46 PM »

Mick you are right, I now also have the first dumps out of my own meter, so that will keep me quiet for a while
Logged
sandrogalli
Newbie
*
Offline Offline

Posts: 1


« Reply #101 on: February 15, 2014, 02:24:02 PM »

Apologies for revisiting an oldish thread - I found this and am very interested in the later developments. I recently purchased an Onzo and would like to log daily energy usage on a personal server.

@is0-mick, GrahamW - I was wondering if you were willing to share a few tips/scripts?

Many thanks in advance,

San
Logged
GrahamW
Newbie
*
Offline Offline

Posts: 13


« Reply #102 on: February 18, 2014, 02:24:28 PM »

San,
the first thing you need is the dumper program from enrab4, this gets the data from the Onzo and stores it as a text file. Once you have that I can help with a java program that will interpret the text file to draw the graphs and smooth the data
Regards
   Graham
Logged
adico
Newbie
*
Offline Offline

Posts: 1


« Reply #103 on: August 17, 2014, 12:18:48 PM »


It's good that the device measures reactive power, that helps with identifying devices, the owl was much less capable (at least using the data extracted by spreadsheet from the application).

how can you identify them ? only based on reactive power
Logged
GrahamW
Newbie
*
Offline Offline

Posts: 13


« Reply #104 on: August 17, 2014, 08:35:12 PM »

You can't identify based only on reactive power, but that with the power measurement gives a better fingerprint, and can indicate there is a motor or similar device involved. For an effective solution you would need a DB of fingerprints and a program that could disaggregate the power usage to match the fingerprints. It would be possible to build a DB of fingerprints for your own home by turning devices on and off individually (I simplify somewhat!), a general soultion would need a lot of consumers collaborating or the manufacturers to supply fingerprints to an industry standard (if such a thing exists).
Logged
Pages: 1 ... 3 4 5 6 [7] 8 9   Go Up
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2013, Simple Machines
SMFAds for Free Forums
Simple Audio Video Embedder
Valid XHTML 1.0! Valid CSS!