Class: PVOutput::Statistic

Inherits:
Object
  • Object
show all
Defined in:
lib/pvoutput-api/statistic.rb

Constant Summary collapse

API_URL =
"http://pvoutput.org/service/r2/getstatistic.jsp"

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(statistics) ⇒ Statistic

Returns a new instance of Statistic.



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/pvoutput-api/statistic.rb', line 32

def initialize(statistics)
  @energy_generated = statistics[:energy_generated]
  @energy_exported = statistics[:energy_exported]
  @average_generation = statistics[:average_generation]
  @minimum_generation = statistics[:minimum_generation]
  @maximum_generation = statistics[:maximum_generation]
  @average_efficiency = statistics[:average_efficiency]
  @outputs = statistics[:outputs]
  @actual_date_from = statistics[:actual_date_from]
  @actual_date_to = statistics[:actual_date_to]
  @record_efficiency = statistics[:record_efficiency]
  @record_date = statistics[:record_date]
  @energy_consumed = statistics[:energy_consumed]
  @peak_energy_import = statistics[:peak_energy_import]
  @off_peak_energy_import = statistics[:off_peak_energy_import]
  @shoulder_energy_import = statistics[:shoulder_energy_import]
  @high_shoulder_energy_import =statistics[:high_shoulder_energy_import]
  @average_consumption = statistics[:average_consumption]
  @minimum_consumption = statistics[:minimum_consumption]
  @maximum_consumption = statistics[:maximum_consumption]
  @credit_amount = statistics[:credit_amount]
  @debit_amount = statistics[:debit_amount]
end

Instance Attribute Details

#actual_date_fromObject (readonly)

yyyymmdd 2015-06-2420100901



15
16
17
# File 'lib/pvoutput-api/statistic.rb', line 15

def actual_date_from
  @actual_date_from
end

#actual_date_toObject (readonly)

yyyymmdd 2015-06-2420100927



16
17
18
# File 'lib/pvoutput-api/statistic.rb', line 16

def actual_date_to
  @actual_date_to
end

#average_consumptionObject (readonly)

number watt hours 1392



24
25
26
# File 'lib/pvoutput-api/statistic.rb', line 24

def average_consumption
  @average_consumption
end

#average_efficiencyObject (readonly)

number kWh/kW 3.358



13
14
15
# File 'lib/pvoutput-api/statistic.rb', line 13

def average_efficiency
  @average_efficiency
end

#average_generationObject (readonly)

number watt hours 8226



10
11
12
# File 'lib/pvoutput-api/statistic.rb', line 10

def average_generation
  @average_generation
end

#credit_amountObject (readonly)

decimal currency 37.29



27
28
29
# File 'lib/pvoutput-api/statistic.rb', line 27

def credit_amount
  @credit_amount
end

#debit_amountObject (readonly)

decimal currency 37.29



28
29
30
# File 'lib/pvoutput-api/statistic.rb', line 28

def debit_amount
  @debit_amount
end

#energy_consumedObject (readonly)

number watt hours 10800



19
20
21
# File 'lib/pvoutput-api/statistic.rb', line 19

def energy_consumed
  @energy_consumed
end

#energy_exportedObject (readonly)

number watt hours 246800



9
10
11
# File 'lib/pvoutput-api/statistic.rb', line 9

def energy_exported
  @energy_exported
end

#energy_generatedObject (readonly)

number watt hours 246800



8
9
10
# File 'lib/pvoutput-api/statistic.rb', line 8

def energy_generated
  @energy_generated
end

#high_shoulder_energy_importObject (readonly)

number watt hours 800



23
24
25
# File 'lib/pvoutput-api/statistic.rb', line 23

def high_shoulder_energy_import
  @high_shoulder_energy_import
end

#maximum_consumptionObject (readonly)

number watt hours 2890



26
27
28
# File 'lib/pvoutput-api/statistic.rb', line 26

def maximum_consumption
  @maximum_consumption
end

#maximum_generationObject (readonly)

number watt hours 11400



12
13
14
# File 'lib/pvoutput-api/statistic.rb', line 12

def maximum_generation
  @maximum_generation
end

#minimum_consumptionObject (readonly)

number watt hours 10



25
26
27
# File 'lib/pvoutput-api/statistic.rb', line 25

def minimum_consumption
  @minimum_consumption
end

#minimum_generationObject (readonly)

number watt hours 2000



11
12
13
# File 'lib/pvoutput-api/statistic.rb', line 11

def minimum_generation
  @minimum_generation
end

#off_peak_energy_importObject (readonly)

number watt hours 1000



21
22
23
# File 'lib/pvoutput-api/statistic.rb', line 21

def off_peak_energy_import
  @off_peak_energy_import
end

#outputsObject (readonly)

number - 27



14
15
16
# File 'lib/pvoutput-api/statistic.rb', line 14

def outputs
  @outputs
end

#peak_energy_importObject (readonly)

number watt hours 5000



20
21
22
# File 'lib/pvoutput-api/statistic.rb', line 20

def peak_energy_import
  @peak_energy_import
end

#record_dateObject (readonly)

yyyymmdd 2015-06-2420100916



18
19
20
# File 'lib/pvoutput-api/statistic.rb', line 18

def record_date
  @record_date
end

#record_efficiencyObject (readonly)

number kWh/kW 4.653



17
18
19
# File 'lib/pvoutput-api/statistic.rb', line 17

def record_efficiency
  @record_efficiency
end

#shoulder_energy_importObject (readonly)

number watt hours 4000



22
23
24
# File 'lib/pvoutput-api/statistic.rb', line 22

def shoulder_energy_import
  @shoulder_energy_import
end

Class Method Details

.fetch(date_from, date_to, auth_details) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/pvoutput-api/statistic.rb', line 56

def self.fetch (date_from, date_to, auth_details)

  # hit api and return csv data in array
  data = RestClient.get(API_URL, {:params => {:sid => auth_details.system_id, :key => auth_details.api_key, :df => date_from, :dt => date_to, :c => '1', :crdr => '1'}})
  results = CSV.new(data).to_a

  # array to hash
  statistics = { energy_generated: results[0][0],
                 energy_exported: results[0][1],
                 average_generation: results[0][2],
                 minimum_generation: results[0][3],
                 maximum_generation: results[0][4],
                 average_efficiency: results[0][5],
                 outputs: results[0][6],
                 actual_date_from: results[0][7],
                 actual_date_to: results[0][8],
                 record_efficiency: results[0][9],
                 record_date: results[0][10],
                 energy_consumed: results[0][11],
                 peak_energy_import: results[0][12],
                 off_peak_energy_import: results[0][13],
                 shoulder_energy_import: results[0][14],
                 high_shoulder_energy_import: results[0][15],
                 average_consumption: results[0][16],
                 minimum_consumption: results[0][17],
                 maximum_consumption: results[0][18],
                 credit_amount: results[0][19],
                 debit_amount: results[0][20]}
  new(statistics)
end