Class: SolarEdge::Inverter

Inherits:
Object
  • Object
show all
Defined in:
lib/solar_edge/inverter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(site, name, manufacturer, model, serial_number) ⇒ Inverter

Returns a new instance of Inverter.



5
6
7
# File 'lib/solar_edge/inverter.rb', line 5

def initialize(site, name, manufacturer, model, serial_number)
  @site, @name, @manufacturer, @model, @serial_number = site, name, manufacturer, model, serial_number
end

Instance Attribute Details

#manufacturerObject (readonly)

Returns the value of attribute manufacturer.



3
4
5
# File 'lib/solar_edge/inverter.rb', line 3

def manufacturer
  @manufacturer
end

#modelObject (readonly)

Returns the value of attribute model.



3
4
5
# File 'lib/solar_edge/inverter.rb', line 3

def model
  @model
end

#nameObject (readonly)

Returns the value of attribute name.



3
4
5
# File 'lib/solar_edge/inverter.rb', line 3

def name
  @name
end

#serial_numberObject (readonly)

Returns the value of attribute serial_number.



3
4
5
# File 'lib/solar_edge/inverter.rb', line 3

def serial_number
  @serial_number
end

Instance Method Details

#data(start_time: @site.time_zone.now.beginning_of_day, end_time: @site.time_zone.now) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/solar_edge/inverter.rb', line 9

def data(start_time: @site.time_zone.now.beginning_of_day, end_time: @site.time_zone.now)
  params = {}
  params[:startTime] = start_time.in_time_zone(@site.time_zone).strftime('%Y-%m-%d %H:%M:%S')
  params[:endTime] = end_time.in_time_zone(@site.time_zone).strftime('%Y-%m-%d %H:%M:%S')

  @site.instance_variable_get(:@client).send(:query,
    "/equipment/#{@site.id}/#{serial_number}/data", params)['data']['telemetries'].map do |value|
    {
        timestamp: @site.time_zone.parse(value['date']),
        total_active_power: value['totalActivePower'],
        dc_voltage: value['dcVoltage'],
        ground_fault_resistance: value['groundFaultResistance'],
        total_energy: value['totalEnergy'],
        temperature: value['temperature'],
        inverter_mode: value['inverterMode'].to_sym
    }
  end
end

#inspectObject



28
29
30
# File 'lib/solar_edge/inverter.rb', line 28

def inspect
  "#<SolarEdge::Inverter:#{serial_number} #{manufacturer} #{model} - #{name}>"
end