Beispiel #1
0
def main(argv: List[str]):
    run_using_positional_cli_args(update, argv)
Beispiel #2
0
def main(argv: List[str]):
    run_using_positional_cli_args(read_legacy, argv)
Beispiel #3
0
    if subbat == 1:
        total_power -= sum(min(p, 0) for p in storage_powers)
    else:
        total_power -= sum(storage_powers)

    get_inverter_value_store(1).set(
        InverterState(counter=total_energy,
                      power=min(0, total_power),
                      currents=total_currents))


def update_solar_edge_cli(ipaddress: str, slave_id0: str, slave_id1: str,
                          slave_id2: str, slave_id3: str, batwrsame: int,
                          extprodakt: int, zweiterspeicher: int, subbat: int):
    log.debug("Beginning update")
    with ModbusClient(ipaddress) as client:
        update_solar_edge(
            client,
            list(
                map(
                    int,
                    filter(lambda id: id.isnumeric(),
                           [slave_id0, slave_id1, slave_id2, slave_id3]))),
            batwrsame, extprodakt, zweiterspeicher, subbat)
    log.debug("Update completed successfully")


if __name__ == '__main__':
    setup_logging_stdout()
    run_using_positional_cli_args(update_solar_edge_cli)
Beispiel #4
0
        # x-Achse)
        def energy_function(seconds):
            return .5 * gradient * seconds**2 + power_low * seconds

        energy_total = energy_function(seconds_since_previous)
        log.MainLogger().debug("simcount Gesamtenergie im Zeitintervall: " +
                               str(energy_total))
        if power_low < 0 < power_high:
            # Berechnung der Fläche im vierten Quadranten -> Export
            power_zero_seconds = -power_low / gradient
            energy_exported = energy_function(power_zero_seconds)
            log.MainLogger().debug(
                "simcount exportierte Energie im Zeitintervall: " +
                str(energy_exported))
            # Betragsmäßige Gesamtfläche: oberhalb der x-Achse = Import, unterhalb der x-Achse: Export
            return energy_total - energy_exported, energy_exported * -1
        return (energy_total, 0) if energy_total >= 0 else (0, -energy_total)
    except Exception as e:
        process_error(e)


def run_cli(power_present: int, prefix: str):
    SimCountLegacy().sim_count(power_present=power_present, prefix=prefix)


if __name__ == "__main__":
    try:
        run_using_positional_cli_args(run_cli)
    except Exception as e:
        process_error(e)
Beispiel #5
0
def main(argv: List[str]):
    run_using_positional_cli_args(
        {
            "bat": read_legacy_bat,
            "inverter": read_legacy_inverter
        }, argv)