Release v1.0.4

Nov 14, 2010 at 8:16 PM
Edited Nov 15, 2010 at 2:56 PM

This release will focus on the Owl energy monitor ( I've just got a USB receiver for this and coupled with the Sdk/api dll means that MonitorWang will be able to capture the data stream. Remember, any data stream captured by MonitorWang can be visualised in Geckoboard via the built in Geckoboard Data Services Activity, so visualising your energy usage (linechart, geck-o-meter) will be a doddle. I'll also be making improvements around plugin initialisation and publisher infrastructure, more details to follow.

Nov 15, 2010 at 2:25 PM

If you have an Owl energy monitor this may be the only thing you use MonitorWang for - However I don't want to tie you to SqlServer - it's very likely that you don't have access to SqlServer! Therefore as part of this release I'm going to overhaul the publisher system and formalise the code that is used to read MonitorWang data (currently we only store data in SqlServer).

I'll be adding an internal subscription mechanism to the publishers - each publisher can subscribe to results about specific health checks. By default a publisher would publish all results but if you need finer control over what it will publish then you can subscribe to the friendly name of each health check you are interested in publishing data for. How does this help? Well - I would also provide a new publisher, a tab separated file publisher and by default the result data for the "OwlEnergy Health Check" will only be published via this publisher (it would be very easy to reconfigure it to publish to Sql).

As I also mentioned I will be formalising the data reader side of things into "data providers" and these can do the reverse, register with a central "reader" component to advertise what Health Check data they can supply. Where data is read (eg: the Geckoboard Data Service Activity) it will ask the central reader component to supply data for the specific Health Check which will then forward the request to the registered component. I'll provide a tab separated file reader data provider component to compliment the publisher so breaking the SqlServer dependency. With this model I hope to be able to offer a richer set of publisher/providers in the future (I did start on a RavenDb implementation a while back but shelved it, I might dust it off as I want to have a play with RavenDb).


Nov 24, 2010 at 12:06 PM

Update - after unsuccessfully trying to use an old Owl .net dll to access the live data feed from the USB Connect device I gave up. It appears that the latest versions of the USB Connect have revamped software which installs a windows service that is continually storing the data from the device into a SQLite database. This data (row) is one entry per minute and contains amps min/ave/max and kw min/ave/max - so I have decided to change the focus of this to connecting MonitorWang to this data and pumping it out as a native Geckoboard feed in various widget friendly formats; eg: create an Owl Data Service Activity that you can display the Owl energy database data as...

As a line chart - graph your average amps/kw usage over 24 hours.

A Geck-O-Meter widget - display the Min, Ave, Max amps or kw for all time

Other I haven't thought of yet...

I am still toying with an Owl "Health Check" - this would start tracking data in the Owl database and publish this should it breach a threshold you set. It idea is that you would get an alert if the average kw climbed too high; set the threshold at say 5kw and if a reading came in above that value it would be published. An off-shoot of this is to develop conditional publishing - a publisher could be set to only publish data from specific HealthChecks or exclude specific HealthChecks.


Dec 7, 2010 at 6:03 PM
Edited Dec 7, 2010 at 6:11 PM

Update - I'm almost there with v1.0.4 (codename "PowerWang") - it's a massive release and incorporates quite a few new features.

Owl Energy Monitor - I've got a Health Check that scans the Owl SQLite database and copies the average kW use per minute to the MonitorWang database - which means it can be plugged into the Geckoboard Data Service Activity and then visualised on your Geckoboard. There is a page of documentation dedicated to the Owl Energy Health Check so you shouldn't be short of help setting it up.

Support for SQLite databases. MonitorWang can now use SQLite to store all its data.

If you enable either the SqlServer or SQLite publisher they will automatically try to create the AgentData table as part of their startup process. This means no more  scripts to run to create/update the database - this will automatically be done for you if there is any further schema changes.

Result Publisher Filters - I've used Castle Interception to provide a way for you to hook a "filter"  (as many as you want) to all publishers/checks or a specific publisher/check combination. A filter can decide whether to publish the result or abort it. I'll document this fully shortly but I have included a "SuccessFilter" that publishes the result based on the result itself - eg: the filter can be configured to publish only successes, failures or both. Take a look at this to understand how it works - basically inherit from a base class filter and implement the "ShouldPublish" method - this method has access to the HealthCheck result being published and just needs to return "true" to allow it to be published or "false" to stop it.

IDataProvider - I have created an interface to allow different implementations to retrieve the data required for the Geckoboard Data Services. So if you "publish" to SQLite you would need to retrieve the data from this SQLite database when you use the Geckoboard Data Service (previously it was hard coded to SqlServer). You can simply swap between the two database stores as the source of data with a single configuration change.