Skip to main content

Adaptor to use demod simulators in mosaik.

Project description

Demod mosaik adapter

This repository contains adapter classes for all demod classes into mosaik.

This works with mosaik versions 2 and 3.

demod

Demod is a Python library for assembling bottom-up domestic energy demand models.

github read the docs

mosaik

Mosaik’s main goal is to use existing simulators in a common context in order to perform a coordinated simulation of a given (Smart Grid) scenario.

read the docs

Usage

demo.py show usage example inside a mosaik simulation script.

Adapting a new simulator

If you want to adapt a new demod simulator, you can follow this instruction.

  1. Import the abstract adapter. If the demod simulator simulates various households, use the Household module. For a single value simulated (ex. climate), use The SingleValue module.
from mosaikdemod.adaptors import AbstractHouseholdsModule
from mosaikdemod.adaptors import AbstractSingleValueModule
  1. import demod library
import demod
  1. Inherit from the abstract module
class ComponentSimulator(AbstractHouseholdsModule):
  1. Specify the attributes of the simulator that can be accessed
    attributes_dict = {
        'attr_name_in_mosaik': 'get_demod_getter',
        'other__attr': 'get_smth_else',
        ...
    }
  1. Specify the inputs of the simulator that can be accessed
    step_inputs_dict = {
        'attr_name_in_mosaik': 'step_input_demod',
        'other_input': 'input_other',
        ...
    }
  1. Override the __init__() method
    def __init__(
        self,
        simulated_component='CompName',  # Name of what is simulated used for mosaik instances
        default_simulator=demod.simulators.example_simulators.ExampleSimulator,  # The simulator class you want to simulate
        step_size=60  # The mosaik step size (depend on your definition)
    ):
        super().__init__(simulated_component, default_simulator, step_size)
  1. Import your simulator to your mosaik scenario script.
# Define the Simulator
sim_config = {
    ...
    'CompNameSimulator': {
        'python': 'python_file_of_the_sim:ComponentSimulator',
    },
    ...
}

# Instantiate the simulator
sim = world.start('CompNameSimulator')


# Instantiate the households with parameters
component = actsim.HouseholdsGroupCompName(
    inputs_params={  # demod init params of sim
        'n_households': n_households,
        'start_datetime': START_DATETIME,
        ...
    }
)
# OR instantiate a  SingleValue simulator (remove HouseholdsGroup)
component = actsim.CompName(
    inputs_params={  # demod init params of sim
        'start_datetime': START_DATETIME,
        ...
    }
)
  1. Connect the simulators. You can connect a whole household group to another one if you use 2 demod components. Or you can also connect all the households individually by calling the children method
# Connect 2 demod components
# comp1 passes attr to comp2
world.connect(component1, component2, 'attr_name_in_mosaik')

# Connect 2 demod components with single value
# component_single_value passes attr to comp2
world.connect(component_single_value, component2, 'attr_name_in_mosaik')

# Connect a single household using the children
world.connect(component.children[42], other_mosaik_comp, 'attr_name_in_mosaik')

Examples

Some examples can be found in simulator_mosaik_modular.py.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mosaikdemod-0.1.post1.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

mosaikdemod-0.1.post1-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file mosaikdemod-0.1.post1.tar.gz.

File metadata

  • Download URL: mosaikdemod-0.1.post1.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for mosaikdemod-0.1.post1.tar.gz
Algorithm Hash digest
SHA256 12da3d6ef0753dbca3317de49cfbe3bb9d212c9d3b6ea1e397abaa469914766f
MD5 c54a476dd5b4f00d6859a57d4c2b0dd4
BLAKE2b-256 4595755869e2e357d4eab8f926cc21441fa7d07542f1af45a64767bd1efdb552

See more details on using hashes here.

Provenance

File details

Details for the file mosaikdemod-0.1.post1-py3-none-any.whl.

File metadata

  • Download URL: mosaikdemod-0.1.post1-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for mosaikdemod-0.1.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 f6863bd997a7aef30710b6bf6a32ca1cc7488df45550755e32a875a1a85b788c
MD5 75342f3ddac5bb60142f502a3b3ec9c1
BLAKE2b-256 ec815bb9589e9c208efcd69085ed27e93da4077d1e6888fdcedfe17aa72945c6

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page