NAME
Device::NeurioTools - More complex methods and tools for accessing data collected by a Neurio sensor module.
VERSION
Version 0.07
SYNOPSIS
This module allows access to more complex and detailed data derived from data
collected by a Neurio sensor. This is done via an extended set of methods:
- new
- connect
- set_flat_rate
- get_flat_rate
- get_flat_cost
- get_kwh
Please note that in order to use this module you will require three parameters
(key, secret, sensor_id) as well as an Energy Aware Neurio sensor installed in
your house.
The module is written entirely in Perl and has been developped on Raspbian Linux.
SAMPLE CODE
use Device::Neurio;
use Device::NeurioTools;
$my_Neurio = Device::Neurio->new($key,$secret,$sensor_id);
$my_Neurio->connect();
$my_NeurioTools = Device::NeurioTools->new($my_Neurio,$debug);
$my_NeurioTools->set_timezone();
$my_NeurioTools->set_flat_rate(0.08);
$start = "2014-06-24T00:00:00".$my_NeurioTools->get_timezone();
$end = "2014-06-24T23:59:59".$my_NeurioTools->get_timezone();
$kwh = $my_NeurioTools->get_kwh($start,"minutes",$end,"5");
undef $my_NeurioTools;
undef $my_Neurio;
EXPORT
All by default.
###################################################################################################
new - the constructor for a NeurioTools object
Creates a new instance of NeurioTools which will be able to fetch data from
a unique Neurio sensor.
my $Neurio = Device::NeurioTools->new($neurio, $debug);
This method accepts the following parameters:
- $neurio : a valid CONNECTED Neurio object
- $debug : enable or disable debug messages (disabled by default - optional)
Returns 1 on success
Returns 0 on failure
DESTROY - the destructor for a NeurioTools object
Destroys a previously created NeuriTools object.
set_flat_rate - set the rate charged by your electicity provider
Defines the rate charged by your electricity provider.
$NeurioTools->set_flat_rate($rate);
This method accepts the following parameters:
- $rate : rate charged per kwh - Required
Returns 1 on success
Returns 0 on failure
set_TwoTier_rate - set the two tier rates charged by your electicity provider
Defines the two tier rates charged by your electricity provider.
The two tiers are defined according to the power consumed.
For example:
- $0.05 for the first 20 kWh per day
- $0.08 for the remaining kWh per day
$NeurioTools->set_TwoTier_rate($rate1,$cutoff,$rate2);
This method accepts the following parameters:
- $rate1 : rate charged per kwh for usage up to the cutoff - Required
- $cutoff : power consumtion point in kWh at which the rate changes - Required
- $rate2 : rate charged per kwh for usage abpve the cutoff - Required
Returns 1 on success
Returns 0 on failure
get_flat_rate - return the flat rate charged by your electicity provider
Returns the value for the flat rate set using 'set_flat_rate()'
$NeurioTools->get_flat_rate();
This method accepts no parameters
Returns rate
get_TwoTier_rate - return the cutoff and two tier rates charged by your electicity provider
Returns the value for the cutoff and two tier rates set using 'set_TwoTier_rate()'
$NeurioTools->get_TwoTier_rate();
This method accepts no parameters
Returns list containing cutoff and rates
set_ISO8601_timezone - set the timezone offset for ISO8601
Sets the timezone offset in ISO8601 format. If no parameter is specified it
sets the system defined timezone offset.
$NeurioTools->set_ISO8601_timezone($offset);
This method accepts the following parameters:
- $offset : specified timezone offset in minutes - Optional
Returns 1 on success
Returns 0 on failure
get_flat_cost - calculate the cost of consumed power for the specified period
Calculates the cost of consumed power over the period specified.
$NeurioTools->get_flat_cost($start,$granularity,$end,$frequency);
This method requires that a 'flat rate' be set using the set_flat_rate() method
This method accepts the following parameters:
- $start : yyyy-mm-ddThh:mm:ssZ - Required
- $granularity : seconds|minutes|hours|days - Required
- $end : yyyy-mm-ddThh:mm:ssZ - Optional
- $frequency : an integer - Optional
Returns the cost on success
Returns 0 on failure
get_TwoTier_cost - calculate the cost of consumed power for the specified period
Calculates the cost of consumed power over the period specified.
$NeurioTools->get_TwoTier_cost($start,$granularity,$end,$frequency);
This method requires that a 'TwoTier rate' be set using the set_TwoTier_rate() method
This method accepts the following parameters:
- $start : yyyy-mm-ddThh:mm:ssZ - Required
- $granularity : seconds|minutes|hours|days - Required
- $end : yyyy-mm-ddThh:mm:ssZ - Optional
- $frequency : an integer - Optional
Returns the cost on success
Returns 0 on failure
get_kwh_consumed - kwh of consumed power for the specified period
Calculates the total kwh of consumed power over the period specified.
$NeurioTools->get_kwh_consumed($start,$granularity,$end,$frequency);
This method accepts the following parameters:
- $start : yyyy-mm-ddThh:mm:ssZ - Required
specified using ISO8601 format
- $granularity : seconds|minutes|hours|days - Required
- $end : yyyy-mm-ddThh:mm:ssZ - Optional
specified using ISO8601 format
- $frequency : an integer - Optional
Returns the kwh on success
Returns 0 on failure
get_kwh_generated - kwh of generated power for the specified period
Calculates the total kwh of generated power over the period specified.
$NeurioTools->get_kwh_generated($start,$granularity,$end,$frequency);
This method accepts the following parameters:
- $start : yyyy-mm-ddThh:mm:ssZ - Required
specified using ISO8601 format
- $granularity : seconds|minutes|hours|days - Required
- $end : yyyy-mm-ddThh:mm:ssZ - Optional
specified using ISO8601 format
- $frequency : an integer - Optional
Returns the kwh on success
Returns 0 on failure
get_energy_consumed - energy consumed for the specified period
Calculates the total energy consumed over the period specified.
$NeurioTools->get_energy_consumed($start,$granularity,$end,$frequency);
This method accepts the following parameters:
- $start : yyyy-mm-ddThh:mm:ssZ - Required
specified using ISO8601 format
- $granularity : seconds|minutes|hours|days - Required
- $end : yyyy-mm-ddThh:mm:ssZ - Optional
specified using ISO8601 format
- $frequency : an integer - Optional
Returns the energy on success
Returns 0 on failure
get_number_of_appliances - return the number of appliances
Returns the number of appliances defined in the system.
$NeurioTools->get_appliance_ID();
This method accepts no parameters:
Returns the number of appliances on success
Returns 0 on failure
get_appliance_ID - return the id for the appliance specified
Returns the appliance ID for the name and label specified.
$NeurioTools->get_appliance_ID($name,$label);
This method accepts the following parameters:
- $name : textual name of appliance - Required
- $label : textual label of appliance - Optional
Returns the appliance ID on success
Returns 0 on failure
get_cycle_ID - return the id for the most recent cycle
Returns the ID for the most recent cycle.
$NeurioTools->get_cycle_ID();
This method accepts no parameters
Returns the cycle ID on success
Returns 0 on failure
get_cycle_group_ID - return the id for the most recent cycle group
Returns the ID for the most recent cycle group.
$NeurioTools->get_cycle_group_ID();
This method accepts no parameters
Returns the cycle group ID on success
Returns 0 on failure
get_edges_ID - return an edges id
Returns and edges ID.
$NeurioTools->get_edges_ID();
This method accepts no parameters
Returns the edges ID on success
Returns 0 on failure
get_power_consumed - power consumed for the specified period
Calculates the total power consumed over the period specified.
$NeurioTools->get_energy_consumed($start,$granularity,$end,$frequency);
This method accepts the following parameters:
- $start : yyyy-mm-ddThh:mm:ssZ - Required
specified using ISO8601 format
- $granularity : seconds|minutes|hours|days - Required
- $end : yyyy-mm-ddThh:mm:ssZ - Optional
specified using ISO8601 format
- $frequency : an integer - Optional
Returns the energy on success
Returns 0 on failure
get_ISO8601_time - convert linux time to the time part of ISO8601
Returns the time part in ISO8601 format of the specified linux time.
$NeurioTools->get_ISO8601_time($time);
This method accepts the following parameters:
- $time : linux time - Required
Returns time part of ISO8601 format on success
Returns 0 on failure
get_ISO8601_date - convert linux time to the date part of ISO8601
Returns the date part in ISO8601 fomrat of the specified linux time.
$NeurioTools->get_ISO8601_date($time);
This method accepts the following parameters:
- $time : linux time - Required
Returns date part of ISO8601 format on success
Returns 0 on failure
get_ISO8601_timezone - return the ISOS8601 timezone offset
Returns the timezone part in ISO8601 format for the current location
from the value specified with set_ISO8601_timezone
$NeurioTools->get_ISO8601_timezone();
This method accepts no parameters
Returns timezone offset
get_ISO8601 - return the entire ISOS8601 formatted date/time/timezone
Returns the entire ISO8601 formatted date/time/timezone based on the time
parameter passed
$NeurioTools->get_ISO8601($time);
This method accepts the following parameters:
- $time : linux time - Required
Returns entire ISO8601 string on success
Returns 0 on failure
AUTHOR
Kedar Warriner, kedar at cpan.org
BUGS
Please report any bugs or feature requests to C<bug-device-NeurioTools at rt.cpan.org>
or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Device-NeurioTools
I will be notified, and then you'll automatically be notified of progress on
your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Device::NeurioTools
You can also look for information at:
RT: CPAN's request tracker
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
ACKNOWLEDGEMENTS
Many thanks to:
The guys at Energy Aware Technologies for creating the Neurio sensor and
developping the API.
Everyone involved with CPAN.
LICENSE AND COPYRIGHT
Copyright 2014 Kedar Warriner <kedar at cpan.org>.
This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.