Files
smartmeter/app/models/battery.rb
Aart van Halteren 849ce0ea1c fixed battery
2022-01-10 20:45:05 +01:00

42 lines
925 B
Ruby

class Battery
attr_accessor :battery_kwh, :battery_max_kwh
def initialize(battery_capacity=10.0)
@battery_kwh = 0.0
@battery_max_kwh = battery_capacity
end
def reset
@battery_kwh = 0.0
end
def charge(kwh)
return 0.0 if kwh.nil?
if battery_kwh + kwh <= battery_max_kwh
@battery_kwh += kwh.to_f
#p "Battery is now at %s kwh" % battery_kwh
return kwh
else
old_kwh = battery_kwh
@battery_kwh = battery_max_kwh
#p "Battery is now at %s kwh" % battery_kwh
return (battery_max_kwh-old_kwh)
end
end
def discharge(kwh)
return 0.0 if kwh.nil?
if battery_kwh > kwh.to_f
@battery_kwh -= kwh.to_f
#p "Battery is now at %s kwh" % battery_kwh
return kwh
else
old_kwh = battery_kwh
@battery_kwh = 0.0
#p "Battery is now at %s kwh" % battery_kwh
return old_kwh
end
end
end