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.


  • cleanStrings If set to true, all underscores (_) in attribute names are replaced by hyphen (-), so that they can be used in expressions.



mosaik = ACCESS({TRANSPORT = 'TCPServer', 
                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:

Initialising mosaik simulator
sim_config = {’Odysseus’: 
	{’connect’: ’’ } 

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:

Connecting mosaik simulator
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.

  • No labels