Class: SmarterMeter::Services::BrighterPlanet
- Inherits:
-
Object
- Object
- SmarterMeter::Services::BrighterPlanet
- Defined in:
- lib/smartermeter/services/brighterplanet.rb
Overview
Allows users to calculate the carbon produced by their energy usage by accessing the Brighter Planet CM1 Electricity API.
More details can be found here: carbon.brighterplanet.com/models/electricity_use
Example:
api = SmarterMeter::Services::BrighterPlanet.new
puts api.calculate_kg_carbon(10.1)
Prints:
0.6460529833458619
Instance Attribute Summary (collapse)
-
- (Object) api_key
The api key required for commericial access to the API.
Instance Method Summary (collapse)
-
- (Float) calculate_kg_carbon(kwh, opts = {})
Calculates the number of kilograms of carbon produced from the given electrical energy usage.
-
- (BrighterPlanet) initialize {|_self| ... }
constructor
Initializes the Brigher Planet CM1 Electricity API.
Constructor Details
- (BrighterPlanet) initialize {|_self| ... }
Initializes the Brigher Planet CM1 Electricity API.
Example:
SmarterMeter::Services::BrighterPlanet.new do |c|
c.api_key = "key"
end
34 35 36 |
# File 'lib/smartermeter/services/brighterplanet.rb', line 34 def initialize yield self if block_given? end |
Instance Attribute Details
- (Object) api_key
The api key required for commericial access to the API. For more detail see: carbon.brighterplanet.com/pricing
23 24 25 |
# File 'lib/smartermeter/services/brighterplanet.rb', line 23 def api_key @api_key end |
Instance Method Details
- (Float) calculate_kg_carbon(kwh, opts = {})
Calculates the number of kilograms of carbon produced from the given electrical energy usage.
Note: this is an estimate and depends on many factors, to improve accuracy include an optional zipcode of where this energy was consumed.
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/smartermeter/services/brighterplanet.rb', line 47 def calculate_kg_carbon(kwh, opts={}) allowed_keys = [:zip_code, :date] non_permitted_keys = opts.keys.reject { |k| allowed_keys.include? k } raise ArgumentError, "opts contains keys not found in #{allowed_keys}" unless non_permitted_keys.empty? params = {:energy => kwh} params.merge!(opts) response = RestClient.get 'http://carbon.brighterplanet.com/electricity_uses.json', :params => params JSON.parse(response.body)["emission"] end |