Exemplo n.º 1
0
 def __init__(self):
     self.power = Power()
     self.L1 = Phase()
     self.L2 = Phase()
     self.L3 = Phase()
     self.tariff_1 = Tariff()
     self.tariff_2 = Tariff()
     self.frequency = float('nan')
Exemplo n.º 2
0
 def read_energy(self):
     values = self._from_double(self.read_input_register(801, 40))
     self.tariff_1 = Tariff(
         Energy(values[8], values[0], values[4]),
         Energy(values[8], values[2], values[6])
     )
     self.tariff_2 = Tariff(
         Energy(values[9], values[1], values[5]),
         Energy(values[9], values[3], values[7])
     )
Exemplo n.º 3
0
def test_add():
    e1 = Energy(1, 1, 1)
    e2 = Energy(1, 1, 1)
    t1 = Tariff(e1, e2)
    t2 = Tariff(e1, e2)
    t_total = t1 + t2

    assert t_total.energy_import.apparent == t1.energy_import.apparent + t2.energy_import.apparent
    assert t_total.energy_import.active == t1.energy_import.active + t2.energy_import.active
    assert t_total.energy_import.reactive == t1.energy_import.reactive + t2.energy_import.reactive
    assert t_total.energy_export.apparent == t1.energy_export.apparent + t2.energy_export.apparent
    assert t_total.energy_export.active == t1.energy_export.active + t2.energy_export.active
    assert t_total.energy_export.reactive == t1.energy_export.reactive + t2.energy_export.reactive
Exemplo n.º 4
0
def test_balance():
    e1 = Energy(1000, 1000, 1000)
    e2 = Energy(1000, 1000, 1000)
    balance = Tariff(e1, e2).balance

    assert isinstance(balance, Energy)
    assert balance.apparent == 0
    assert balance.active == 0
    assert balance.reactive == 0
Exemplo n.º 5
0
def test_div():
    e1 = Energy(1000, 1000, 1000)
    e2 = Energy(1000, 1000, 1000)
    p_import, p_export = Tariff(e1, e2) / 7200

    assert isinstance(p_import, Power)
    assert isinstance(p_export, Power)
    assert p_import.apparent == 1000 / 2
    assert p_export.apparent == 1000 / 2
    assert p_import.active == e1.active / 2
    assert p_export.active == e1.active / 2
    assert p_import.reactive == e1.reactive / 2
    assert p_export.reactive == e1.reactive / 2

    p_import, p_export = Tariff(e1, e2) / timedelta(minutes=30)

    assert isinstance(p_import, Power)
    assert isinstance(p_export, Power)
    assert p_import.apparent == 1000 * 2
    assert p_export.apparent == 1000 * 2
    assert p_import.active == e1.active * 2
    assert p_export.active == e1.active * 2
    assert p_import.reactive == e1.reactive * 2
    assert p_export.reactive == e1.reactive * 2