Ejemplo n.º 1
0
def get_setup(config):
    config.cloud_coverage = 0
    area = Area(
        'Grid',
        [
            Area(
                'House 1',
                event_list=[ConfigEvents(12, {'cloud_coverage': 1})],
                children=[
                    Area('H1 PV', strategy=PVPredefinedStrategy(),
                         appliance=PVAppliance()),
                ]
            ),
            Area(
                'House 2',
                event_list=[ConfigEvents(12, {'cloud_coverage': 2})],
                children=[
                    Area('H2 PV', strategy=PVPredefinedStrategy(),
                         appliance=PVAppliance()),

                ]
            ),
            Area('Grid Load', strategy=LoadHoursStrategy(avg_power_W=100000,
                                                         hrs_per_day=24,
                                                         hrs_of_day=list(
                                                             range(0, 24)),
                                                         final_buying_rate=35),
                 appliance=SwitchableAppliance()),
        ],
        config=config
    )
    return area
Ejemplo n.º 2
0
def pv_test66(area_test66):
    p = PVPredefinedStrategy(
        cloud_coverage=ConstSettings.PVSettings.DEFAULT_POWER_PROFILE)
    p.area = area_test66
    p.owner = area_test66
    p.offers.posted = {}
    return p
def pv_test4(area_test3, called):
    p = PVPredefinedStrategy(cloud_coverage=ConstSettings.PVSettings.DEFAULT_POWER_PROFILE)
    p.area = area_test3
    p.owner = area_test3
    p.offers.posted = {
        Offer(id='id', price=20, energy=1, seller='FakeArea'): area_test3.test_market.id
    }
    return p
Ejemplo n.º 4
0
def pv_test3(area_test3):
    p = PVPredefinedStrategy(
        cloud_coverage=ConstSettings.PVSettings.DEFAULT_POWER_PROFILE)
    p.area = area_test3
    p.owner = area_test3
    p.offers.posted = {
        Offer('id', 30, 1, 'FakeArea'): area_test3.test_market.id
    }
    return p
Ejemplo n.º 5
0
def get_setup(config):
    area = Area(
        'Grid',
        [
            Area(
                'House 1',
                [
                    Area('H1 General Load', strategy=LoadHoursStrategy(
                            avg_power_W=500,
                            hrs_per_day=24,
                            hrs_of_day=list(
                                range(0, 24)),
                            final_buying_rate=30.1
                        ),
                         appliance=SwitchableAppliance()),
                    Area('H1 PV', strategy=PVPredefinedStrategy(panel_count=1, fit_to_limit=False,
                                                                energy_rate_decrease_per_update=4,
                                                                cloud_coverage=2),
                         appliance=PVAppliance()),
                ],
                transfer_fee_pct=0,
            ),
        ],
        config=config
    )
    return area
Ejemplo n.º 6
0
def get_setup(config):
    area = Area(
        'Grid',
        [
            Area(
                'House 1',
                [
                    Area('H1 General Load', strategy=LoadHoursStrategy(
                            avg_power_W=500,
                            hrs_per_day=24,
                            hrs_of_day=list(
                                range(0, 24)),
                            initial_buying_rate=5,
                            final_buying_rate=30.1
                        )
                         ),
                    Area('H1 PV', strategy=PVPredefinedStrategy(panel_count=1, fit_to_limit=False,
                                                                energy_rate_decrease_per_update=4,
                                                                cloud_coverage=2)
                         ),
                ],
                grid_fee_percentage=0,
            ),
        ],
        config=config
    )
    return area
Ejemplo n.º 7
0
def get_setup(config):
    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=15,
                                            hrs_of_day=list(range(5, 20))),
                 appliance=SwitchableAppliance()),
            Area('H1 PV1',
                 strategy=PVPredefinedStrategy(panel_count=1, risk=80),
                 appliance=PVAppliance()),
            Area('H1 PV2',
                 strategy=PVPredefinedStrategy(panel_count=1, risk=80),
                 appliance=PVAppliance()),
        ]),
    ],
                config=config)
    return area
Ejemplo n.º 8
0
def test_predefined_pv_constructor_rejects_incorrect_parameters():
    with pytest.raises(D3ADeviceException):
        PVPredefinedStrategy(panel_count=-1)
    with pytest.raises(D3ADeviceException):
        pv = PVPredefinedStrategy(initial_selling_rate=5, final_selling_rate=15)
        pv.event_activate()
    with pytest.raises(D3ADeviceException):
        PVPredefinedStrategy(fit_to_limit=True, energy_rate_decrease_per_update=1)
    with pytest.raises(D3ADeviceException):
        PVPredefinedStrategy(fit_to_limit=False, energy_rate_decrease_per_update=-1)
Ejemplo n.º 9
0
def get_setup(config):
    area = Area(
        'Grid',
        [
            # Area(
            #     'House 1',
            #     [
            #         # Area('H1 General Load',
            #         #      strategy=DefinedLoadStrategy(
            #         #          path=pathlib.Path(pathlib.Path.cwd(),
            #         #                     'src/d3a/resources/LOAD_DATA_1.csv').expanduser()),
            #         #      # max_energy_rate=35),
            #         #      appliance=SwitchableAppliance()),
            #         # Area('H1 Storage1', strategy=StorageStrategy(battery_capacity_kWh=1.2,
            #         #                                              initial_charge=40,
            #         #                                              max_abs_battery_power_kW=1.2),
            #         #      appliance=SwitchableAppliance()),
            #
            #     ]
            # ),
            Area(
                'House 1',
                [
                    Area(
                        'H1 General Load',
                        strategy=LoadHoursStrategy(avg_power_W=500,
                                                   hrs_per_day=18,
                                                   hrs_of_day=list(range(
                                                       5, 23))),
                        # max_energy_rate=35),
                        appliance=SwitchableAppliance()),
                    Area('H1 PV',
                         strategy=PVPredefinedStrategy(
                             panel_count=1, power_profile=1, risk=80),
                         appliance=PVAppliance()),
                    # Area('H1 PV', strategy=PVStrategy(2, 80),
                    #      appliance=PVAppliance()),
                ]),
            # Area('Cell Tower', strategy=CellTowerLoadHoursStrategy(avg_power_W=100,
            #                                                hrs_per_day=24,
            #                                               hrs_of_day=list(range(0, 24)),
            #                                             max_energy_rate=35),
            #  appliance=SwitchableAppliance())
            # Area('Commercial Energy Producer',
            #      strategy=CommercialStrategy(energy_range_wh=(40, 120), energy_price=30),
            #      appliance=SimpleAppliance()
            #      ),
        ],
        config=config)
    return area
Ejemplo n.º 10
0
def get_setup(config):
    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=500,
                                            hrs_per_day=12,
                                            hrs_of_day=list(range(7, 20)))),
            Area('H1 PV',
                 strategy=PVPredefinedStrategy(panel_count=1,
                                               cloud_coverage=2)),
        ]),
    ],
                config=config)
    return area
Ejemplo n.º 11
0
def get_setup(config):
    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=200,
                                            hrs_per_day=15,
                                            hrs_of_day=list(range(5, 20)),
                                            max_energy_rate=15),
                 appliance=SwitchableAppliance()),
            Area('H1 PV',
                 strategy=PVPredefinedStrategy(
                     panel_count=1, risk=50, initial_rate_option=2),
                 appliance=PVAppliance()),
        ]),
    ],
                config=config)
    return area
Ejemplo n.º 12
0
def get_setup(config):
    area = Area(
        'Grid',
        [
            Area(
                'House 1',
                [
                    Area('H1 General Load',
                         strategy=DefinedLoadStrategy(
                             daily_load_profile=os.path.join(d3a_path,
                                                             'resources', 'LOAD_DATA_1.csv'),
                             final_buying_rate=25),
                         ),
                    Area('H1 Storage1', strategy=StorageStrategy(initial_soc=50)
                         ),
                    Area('H1 Storage2', strategy=StorageStrategy(initial_soc=50)
                         ),
                ]
            ),
            Area(
                'House 2',
                [
                    Area('H2 General Load', strategy=LoadHoursStrategy(avg_power_W=200,
                                                                       hrs_per_day=4,
                                                                       hrs_of_day=list(
                                                                           range(12, 16)),
                                                                       final_buying_rate=35)
                         ),
                    Area('H2 PV', strategy=PVPredefinedStrategy(90, 5, cloud_coverage=0),
                         ),

                ]
            ),
            Area('Cell Tower', strategy=LoadHoursStrategy(avg_power_W=100,
                                                          hrs_per_day=24,
                                                          hrs_of_day=list(range(0, 24)),
                                                          final_buying_rate=35)
                 )
            # Area('Commercial Energy Producer',
            #      strategy=CommercialStrategy(energy_range_wh=(40, 120), energy_price=30)
            #      ),
        ],
        config=config
    )
    return area
Ejemplo n.º 13
0
def get_setup(config):
    area = Area('Grid', [
        Area('InfiniteBus',
             strategy=InfiniteBusStrategy(energy_sell_rate=30,
                                          energy_buy_rate=12),
             appliance=SimpleAppliance()),
        Area('House', [
            Area('Load',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=10,
                                            hrs_of_day=list(range(8, 19))),
                 appliance=SwitchableAppliance()),
            Area('PV',
                 strategy=PVPredefinedStrategy(cloud_coverage=0),
                 appliance=PVAppliance()),
        ]),
    ],
                config=config)
    return area
Ejemplo n.º 14
0
def get_setup(config):
    area = Area('Grid', [
        Area('Electrolyzer',
             strategy=ElectrolyzerStrategy(
                 discharge_profile=electrolizer_profile_file,
                 conversion_factor_kg_to_kWh=50,
                 reservoir_capacity_kg=56.0,
                 reservoir_initial_capacity_kg=10,
                 production_rate_kg_h=2.8),
             appliance=SwitchableAppliance()),
        Area('PV',
             strategy=PVPredefinedStrategy(panel_count=1),
             appliance=PVAppliance()),
        Area("Commercial Energy Producer",
             strategy=CommercialStrategy(),
             appliance=SwitchableAppliance()),
    ],
                config=config)
    return area
Ejemplo n.º 15
0
def get_setup(config):
    ConstSettings.IAASettings.MARKET_TYPE = 2
    area = Area('Grid', [
        Area('Market Maker',
             strategy=MarketMakerStrategy(energy_rate=30,
                                          grid_connected=True)),
        Area('House 1', [
            Area('H1 PV',
                 strategy=PVPredefinedStrategy(cloud_coverage=0,
                                               use_market_maker_rate=True)),
            Area('H1 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=100,
                                            hrs_per_day=9,
                                            hrs_of_day=list(range(15, 24)),
                                            final_buying_rate=0,
                                            use_market_maker_rate=True)),
        ]),
    ],
                config=config)
    return area
Ejemplo n.º 16
0
def get_setup(config):
    config.read_market_maker_rate(market_maker_rate)
    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=500,
                                            hrs_per_day=24,
                                            hrs_of_day=list(range(0, 24)),
                                            max_energy_rate=30.1),
                 appliance=SwitchableAppliance()),
            Area('H1 PV',
                 strategy=PVPredefinedStrategy(
                     panel_count=1,
                     initial_rate_option=2,
                     energy_rate_decrease_per_update=4,
                     energy_rate_decrease_option=2,
                     cloud_coverage=2),
                 appliance=PVAppliance()),
        ]),
    ],
                config=config)
    return area
Ejemplo n.º 17
0
def get_setup(config):
    area = Area('Grid', [
        Area('House 1', [
            Area('H1 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=200,
                                            hrs_per_day=6,
                                            hrs_of_day=list(range(12, 18)),
                                            max_energy_rate=35),
                 appliance=SwitchableAppliance()),
            Area('H1 Storage1',
                 strategy=StorageStrategy(initial_capacity_kWh=0.6),
                 appliance=SwitchableAppliance()),
            Area('H1 Storage2',
                 strategy=StorageStrategy(initial_capacity_kWh=0.6),
                 appliance=SwitchableAppliance()),
        ]),
        Area('House 2', [
            Area('H2 General Load',
                 strategy=LoadHoursStrategy(avg_power_W=200,
                                            hrs_per_day=4,
                                            hrs_of_day=list(range(12, 16)),
                                            max_energy_rate=35),
                 appliance=SwitchableAppliance()),
            Area('H2 PV', strategy=PVStrategy(4, 80), appliance=PVAppliance()),
            Area('H2 PVPredefined',
                 strategy=PVPredefinedStrategy(cloud_coverage=1),
                 appliance=PVAppliance())
        ]),
        Area('Cell Tower',
             strategy=CellTowerLoadHoursStrategy(avg_power_W=100,
                                                 hrs_per_day=24,
                                                 hrs_of_day=list(range(0, 24)),
                                                 max_energy_rate=35),
             appliance=SwitchableAppliance())
    ],
                config=config)
    return area
Ejemplo n.º 18
0
def get_setup(config):
    area = Area(
        'Grid',
        children=[
            Area(
                'House 1',
                children=[
                    Area(
                        'H2 PV',
                        strategy=PVPredefinedStrategy(panel_count=1,
                                                      initial_selling_rate=80,
                                                      cloud_coverage=0),
                        event_list=[StrategyEvents(14, {'cloud_coverage': 2})])
                ]),
            Area(
                'Grid Load',
                strategy=LoadHoursStrategy(avg_power_W=10000,
                                           hrs_per_day=24,
                                           hrs_of_day=list(range(0, 24)),
                                           final_buying_rate=35),
            )
        ],
        config=config)
    return area
Ejemplo n.º 19
0
def pv_test_cloudy(area_test7):
    p = PVPredefinedStrategy(cloud_coverage=1)
    p.area = area_test7
    p.owner = area_test7
    p.area.config.slot_length = duration(minutes=20)
    return p
Ejemplo n.º 20
0
def pv_test_cloudy(area_test7):
    p = PVPredefinedStrategy(cloud_coverage=1)
    p.area = area_test7
    p.owner = area_test7
    return p
Ejemplo n.º 21
0
def pv_test_partial(area_test7):
    p = PVPredefinedStrategy(cloud_coverage=2)
    p.area = area_test7
    p.owner = area_test7
    return p
Ejemplo n.º 22
0
def pv_test_sunny(area_test3):
    p = PVPredefinedStrategy(cloud_coverage=0)
    p.area = area_test3
    p.owner = area_test3
    return p
Ejemplo n.º 23
0
def pv_test5(area_test3, called):
    p = PVPredefinedStrategy(cloud_coverage=0)
    p.area = area_test3
    p.owner = area_test3
    p.offers.posted = {'id': area_test3.test_market}
    return p
Ejemplo n.º 24
0
def pv_test1(area_test1):
    p = PVPredefinedStrategy(cloud_coverage=ConstSettings.PVSettings.DEFAULT_POWER_PROFILE)
    p.area = area_test1
    p.owner = area_test1
    return p