Пример #1
0
    def read_phases(self):
        values = self._from_float(self.read_input_register(1, 30))

        # Note: PAC reports phase powers as NaN, if all phases aren't connected.
        #       However, the total power read with PAC.read_power() is seems valid even then.
        self.L1 = Phase(values[0], values[6], values[9], values[12])
        self.L2 = Phase(values[1], values[7], values[10], values[13])
        self.L3 = Phase(values[2], values[8], values[11], values[14])
Пример #2
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')
Пример #3
0
def test_add():
    L1 = Phase(230, 1, 2, 1)
    L2 = Phase(230, 1, 2, 1)
    L3 = Phase(230, 1, 2, 1)
    L_total = L1 + L2 + L3

    assert isinstance(L_total, Phase)
    assert L_total.voltage == 230
    assert L_total.current == 3
    assert isinstance(L_total.power, Power)
    assert L_total.power.apparent == 3 * 2
    assert L_total.power.active == 3
Пример #4
0
def test_sub():
    L1 = Phase(230, 1, 2, 1)
    L2 = Phase(230, 1, 2, 1)
    L3 = Phase(230, 1, 2, 1)
    L_total = L1 - L2 - L3

    assert isinstance(L_total, Phase)
    assert L_total.voltage == 230
    assert L_total.current == -1
    assert isinstance(L_total.power, Power)
    assert L_total.power.apparent == -2
    assert L_total.power.active == -1
Пример #5
0
def test_power_calc():
    L1 = Phase(230, 1)
    assert isinstance(L1.power, Power)
    assert L1.power.apparent == 230
    assert isnan(L1.power.active)
    assert isnan(L1.power.reactive)