The mosaik protocol handler can be used to access data from the Smart Grid co-simulation framework mosaik.
To connect odysseus and mosaik, the odysseus query has to run first and after that the simulation in mosaik can be started.
In the mosaik documentation a tutorial can be found which describes the connection between mosaik and odysseus.
Options
- cleanStrings If set to true, all underscores (_) in attribute names are replaced by hyphen (-), so that they can be used in expressions.
Example
PQL
mosaik = ACCESS({TRANSPORT = 'TCPServer', PROTOCOL='Mosaik', SOURCE = 'Mosaik', DATAHANDLER = 'KeyValueObject', WRAPPER = 'GenericPush', OPTIONS =[ ['port', '5555'], ['mosaikPort', '5554'], ['byteorder', 'LITTLE_ENDIAN'] ]}) ///short version: mosaikInput = MOSAIK({source = 'MosaikReceiver', type = 'simapi'}) /// type = 'zeromq'})
Simulator in mosaik
To allow the connection in mosaik a simulator has to be created as follows:
sim_config = {’Odysseus’: {’connect’: ’127.0.0.1:5554’ } } odysseusModel = world.start(’Odysseus’, step_size=60*15) odysseus = odysseusModel.Odysseus.create(1)
To receive data components have to be connected to the simulator in the mosaik scenario definition.
In the mosaik-demo this could be:
connect_many_to_one(world, nodes, odysseus[0], 'P', 'Vm') connect_many_to_one(world, houses, odysseus[0], 'P_out') connect_many_to_one(world, pvs, odysseus[0], 'P')
More details can be found in the mosaik documentation.