local p = peripheral.wrap("left")
local dir = -1
local step = 2
local last = -1

while true do
local eff = p.getEfficiency()
local err = p.getErrorLevel()

if err > 40 then step = 5
elseif eff > 90 then step = 1
else step = 2 end

if last >= 0 and eff < last then dir = -dir end
last = eff

p.adjustReactivity(dir * step)
print(("eff %.1f err %.1f step %d"):format(eff, err, step))
sleep(1)
end