Your program has an infinite loop. You'll need to yield either with sleep or by pulling an event. Here is a simple solution.
repeat
energy = toMRf(cube.getEnergyStored())
energyMax = toMRf(cube.getMaxEnergyStored())
energyJ = toJ(cube.getEnergyStored())
energyMaxJ = toJ(cube.getMaxEnergyStored())
label(1, 1, "%.2f MRf / %.2f MJ (Energia Acumulada)", colors.red, energy, energyJ )
label(1, 3, "%.2f MRf / %.2f MJ (Capacidade da bateria)", colors.lime, energyMax, energyMaxJ)
until event.pull(1) == "interrupted" -- # change 1 to something smaller to refresh faster