Ejemplo n.º 1
0
def want_an_address(version):
    """ The Want An Address command, send by the power modules in address mode. """
    if version == POWER_API_8_PORTS:
        return PowerCommand('S', 'WAA', '', '')
    elif version == POWER_API_12_PORTS:
        return PowerCommand('S', 'WAD', '', '')
    else:
        raise ValueError('Unknown power api version')
Ejemplo n.º 2
0
def want_an_address(version):
    """ The Want An Address command, send by the power modules in address mode. """
    if version == POWER_MODULE:
        return PowerCommand('S', 'WAA', '', '')
    elif version == ENERGY_MODULE:
        return PowerCommand('S', 'WAD', '', '')
    elif version == P1_CONCENTRATOR:
        return PowerCommand('S', 'WAD', '', '', module_type='C')
    else:
        raise ValueError('Unknown power api version')
Ejemplo n.º 3
0
def set_day_night(version):
    """ Set the power module in night (0) or day (1) mode.
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_API_8_PORTS:
        return PowerCommand('S', 'SDN', '8b', '')
    elif version == POWER_API_12_PORTS:
        return PowerCommand('S', 'SDN', '12b', '')
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 4
0
def get_frequency(version):
    """ Get the frequency of a power module (in Hz)
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_API_8_PORTS:
        return PowerCommand('G', 'FRE', '', 'f')
    elif version == POWER_API_12_PORTS:
        return PowerCommand('G', 'FRE', '', '12f')
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 5
0
def get_voltage(version):
    """ Get the voltage of a power module (in V)
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_API_8_PORTS:
        return PowerCommand('G', 'VOL', '', 'f')
    elif version == POWER_API_12_PORTS:
        return PowerCommand('G', 'VOL', '', '12f')
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 6
0
def get_power(version):
    """ Get the power of a power module (12x in W)
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_API_8_PORTS:
        return PowerCommand('G', 'POW', '', '8f')
    elif version == POWER_API_12_PORTS:
        return PowerCommand('G', 'POW', '', '12f')
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 7
0
def reset_night_energy(version):
    """ Reset the energy measured during the night by the power module.
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_API_8_PORTS:
        return PowerCommand('S', 'ENI', '9B', '')
    elif version == POWER_API_12_PORTS:
        return PowerCommand('S', 'ENI', 'B12L', '')
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 8
0
def bootloader_write_code(version):
    """ Write code
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_API_8_PORTS:
        return PowerCommand('S', 'BWC', '195B', '')
    elif version == POWER_API_12_PORTS:
        return PowerCommand('S', 'BWC', '132B', '')
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 9
0
def get_feed_status(version):
    """ Get the feed status of the power module (12x 0=low or 1=high)
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_API_8_PORTS:
        return PowerCommand('G', 'FST', '', '8H')
    elif version == POWER_API_12_PORTS:
        return PowerCommand('G', 'FST', '', '12I')
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 10
0
def get_night_energy(version):
    """ Get the energy measured during the night by the power module (12x in Wh)
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_API_8_PORTS:
        return PowerCommand('G', 'ENI', '', '8L')
    elif version == POWER_API_12_PORTS:
        return PowerCommand('G', 'ENI', '', '12L')
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 11
0
def get_version(version):
    # type: (int) -> PowerCommand
    """ Get the current version of the power module firmware """
    if version == P1_CONCENTRATOR:
        return PowerCommand('G',
                            'FVE',
                            '',
                            '4B',
                            module_type=PowerModuleType.C)
    return PowerCommand('G', 'FIV', '', '16s')
Ejemplo n.º 12
0
def get_general_status(version):
    """ Get the general status of a power module.
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_API_8_PORTS:
        return PowerCommand('G', 'GST', '', 'H')
    elif version == POWER_API_12_PORTS:
        return PowerCommand('G', 'GST', '', 'B')
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 13
0
def reset_normal_energy(version):
    """
    Reset the total energy measured by the power module.
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_MODULE:
        return PowerCommand('S', 'ENE', '9B', '')
    elif version == ENERGY_MODULE:
        return PowerCommand('S', 'ENE', 'B12L', '')
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 14
0
def reset_day_energy(version):
    # type: (int) -> PowerCommand
    """
    Reset the energy measured during the day by the power module.
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_MODULE:
        return PowerCommand('S', 'EDA', '9B', '')
    elif version == ENERGY_MODULE:
        return PowerCommand('S', 'EDA', 'B12L', '')
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 15
0
def get_night_energy(version):
    """
    Get the energy measured during the night by the power module (12x in Wh)
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_MODULE:
        return PowerCommand('G', 'ENI', '', '8L')
    elif version == ENERGY_MODULE:
        return PowerCommand('G', 'ENI', '', '12L')
    elif version == P1_CONCENTRATOR:
        return PowerCommand('G', 'c2\x00', '', '112s', module_type='C')
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 16
0
def get_time_on(version):
    """ Get the time the power module is on (in s)
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_API_8_PORTS or version == POWER_API_12_PORTS:
        return PowerCommand('G', 'TON', '', 'L')
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 17
0
def get_feed_counter(version):
    """ Get the feed counter of the power module
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_API_8_PORTS or version == POWER_API_12_PORTS:
        return PowerCommand('G', 'FCO', '', 'H')
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 18
0
def get_normal_energy(version):
    """
    Get the total energy measured by the power module (12x in Wh)
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == ENERGY_MODULE:
        return PowerCommand('G', 'ENE', '', '12L')
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 19
0
def get_day_energy(version):
    # type: (int) -> PowerCommand
    """
    Get the energy measured during the day by the power module (12x in Wh)
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_MODULE:
        return PowerCommand('G', 'EDA', '', '8L')
    elif version == ENERGY_MODULE:
        return PowerCommand('G', 'EDA', '', '12L')
    elif version == P1_CONCENTRATOR:
        return PowerCommand('G',
                            'c1\x00',
                            '',
                            '112s',
                            module_type=PowerModuleType.C)
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 20
0
def get_gas_consumption_p1(version):
    # type: (int) -> PowerCommand
    """ Gets the gas consumption from a P1 concentrator """
    if version == P1_CONCENTRATOR:
        return PowerCommand('G',
                            'cG\x00',
                            '',
                            '112s',
                            module_type=PowerModuleType.C)
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 21
0
def set_sensor_types(version):
    """ Set the sensor types used on the power modules (8x sensor type).
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_API_8_PORTS:
        return PowerCommand('S', 'CSU', '8b', '')
    elif version == POWER_API_12_PORTS:
        raise ValueError(
            "Setting sensor types is not applicable for the 12 port modules.")
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 22
0
def get_received_power(version):
    # type: (int) -> PowerCommand
    """ Gets the reveived power of a P1 concentrator """
    if version == P1_CONCENTRATOR:
        return PowerCommand('G',
                            'PR\x00',
                            '',
                            '72s',
                            module_type=PowerModuleType.C)
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 23
0
def get_tariff_indicator_p1(version):
    # type: (int) -> PowerCommand
    """ Gets the tariff indicator from a P1 concentrator """
    if version == P1_CONCENTRATOR:
        return PowerCommand('G',
                            'ti\x00',
                            '',
                            '32s',
                            module_type=PowerModuleType.C)
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 24
0
def set_current_clamp_factor(version):
    """ Sets the current clamp factor.
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_API_8_PORTS:
        raise ValueError(
            "Setting clamp factor is not applicable for the 8 port modules.")
    elif version == POWER_API_12_PORTS:
        return PowerCommand('S', 'CCF', '12f', '')
    else:
        raise ValueError('Unknown power api version')
Ejemplo n.º 25
0
def get_timestamp_p1(version):
    # type: (int) -> PowerCommand
    """ Gets the timestamp from a P1 concentrator """
    if version == P1_CONCENTRATOR:
        return PowerCommand('G',
                            'TS\x00',
                            '',
                            '104s',
                            module_type=PowerModuleType.C)
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 26
0
def set_current_inverse(version):
    """ Sets the current inverse.
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_API_8_PORTS:
        raise ValueError(
            "Setting current inverse is not applicable for the 8 port modules."
        )
    elif version == POWER_API_12_PORTS:
        return PowerCommand('S', 'SCI', '=12B', '')
    else:
        raise ValueError('Unknown power api version')
Ejemplo n.º 27
0
def get_current_sample_time(version):
    """ Gets a current sample (time - oscilloscope view)
    :param version: power api version
    """
    if version == POWER_API_12_PORTS:
        return PowerCommand('G', 'CST', '2b', '50f')
    elif version == POWER_API_8_PORTS:
        raise ValueError(
            "Getting a current sample (time) is not applicable for the 8 port modules."
        )
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 28
0
def get_current_sample_frequency(version):
    """ Gets a current sample (frequency)
    :param version: power api version
    """
    if version == POWER_API_12_PORTS:
        return PowerCommand('G', 'CSF', '2b', '40f')
    elif version == POWER_API_8_PORTS:
        raise ValueError(
            "Getting a current sample (frequency) is not applicable for the 8 port modules."
        )
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 29
0
def get_injection_tariff_p1(version, type=None):
    # type: (int, Optional[int]) -> PowerCommand
    """ Gets the injection tariff from a P1 concentrator """
    if version == P1_CONCENTRATOR:
        if type not in (1, 2):
            raise ValueError('Unknown tariff type')
        return PowerCommand('G',
                            'i{0}\x00'.format(type),
                            '',
                            '112s',
                            module_type=PowerModuleType.C)
    else:
        raise ValueError("Unknown power api version")
Ejemplo n.º 30
0
def get_sensor_types(version):
    # type: (int) -> PowerCommand
    """
    Get the sensor types used on the power modules (8x sensor type).
    :param version: power api version (POWER_API_8_PORTS or POWER_API_12_PORTS).
    """
    if version == POWER_MODULE:
        return PowerCommand('G', 'CSU', '', '8b')
    elif version == ENERGY_MODULE:
        raise ValueError(
            "Getting sensor types is not applicable for the 12 port modules.")
    else:
        raise ValueError("Unknown power api version")