diff --git a/writefile.py b/writefile.py
index ca438bf80fb25109f84dea868b02636272e0fd69..8c1f606158e3385ac6341b2a6d9d0b3a2603abab 100644
--- a/writefile.py
+++ b/writefile.py
@@ -186,6 +186,15 @@ def writeenumobj(variable, headnode, enumnodedict, enumvaldict, enumvariantdict)
 
 def writemeasurement(measurementobj, headnode, enumnodedict, enumvaldict, enumvariantdict):
     #ToDo: Schauen ob man returns rausnehmen kann
+    """
+    Creates the measurement variables with their properties
+    :param measurementobj: a list of measurementobjects
+    :param headnode: the component to which the varianles belong
+    :param enumnodedict: Dict for the names of the enum nodes from writeenums (used for writeenumobj)
+    :param enumvaldict: Dict for the enumvalues from writenums (used for writeenumobj)
+    :param enumvariantdict: Dict for the name of the enums (used for writeenumobj)
+    :return: a dict for the measurement node names
+    """
     server = open("opcua-server.py", "a")
     writeindent = "    "
     measurementdict = {}
@@ -220,6 +229,15 @@ def writemeasurement(measurementobj, headnode, enumnodedict, enumvaldict, enumva
 
 
 def writeparameter(parameterobj, headnode, enumnodedict, enumvaldict, enumvariantdict):
+    """
+    Creates the parameter values. (Similar to writemeasurement)
+    :param parameterobj: A list of the objparameters
+    :param headnode: The component to which the variables belong
+    :param enumnodedict: Dict for the names of the enum nodes from writeenums (used for writeenumobj)
+    :param enumvaldict: Dict for the enumvalues from writenums (used for writeenumobj)
+    :param enumvariantdict: Dict for the name of the enums (used for writeenumobj)
+    :return: A dict with the node names of the parameters
+    """
     writeindent = "    "
     server = open("opcua-server.py", "a")
     parameterdict = {}
@@ -253,6 +271,12 @@ def writeparameter(parameterobj, headnode, enumnodedict, enumvaldict, enumvarian
 
 
 def writefunction(functionobj, headnode):
+    """
+    Takkes the function objects writes the function body by calling deffunction and adds it to the objecttypes
+    :param functionobj: List of functionobjects
+    :param headnode: component the functions belong to
+    :return: None
+    """
     server = open("opcua-server.py", "a")
     writeindent = "    "
     for i in functionobj:
@@ -273,6 +297,16 @@ def writefunction(functionobj, headnode):
 
 
 def writeobjects(objtype, objname, headnode, count):
+    #ToDo: Implement count or cut it out
+    """
+    Generates the objects of the components.
+    :param objtype: The node of the node with the objecttype
+    :param objname: The name of the object
+    :param headnode: The node the component belongs to.
+    :param count: (Currently not really implemented) but for counting the names up
+                    if an object with the same name is instantiated twice.
+    :return: The name of the newly created objectnode
+    """
     server = open("opcua-server.py", "a")
     writeindent = "    "
     objtypename = (objname.lower()).replace(" ", "") + "var" + str(count)
@@ -282,6 +316,14 @@ def writeobjects(objtype, objname, headnode, count):
 
 
 def writeinterface(objtype, objname, count):
+    """
+    Generates the interface, meaning the highest object layer. (Works similar to writeobjects)
+    :param objtype: The name of the node with the objecttype
+    :param objname: The name of the object
+    :param count: (Currently not really implemented) but for counting the names up
+                    if an object with the same name is instantiated twice.
+    :return: The name of the newly created objectnode
+    """
     server = open("opcua-server.py", "a")
     writeindent = "    "
     objtypename = (objname.lower()).replace(" ","") + "var" + str(count)
@@ -290,11 +332,16 @@ def writeinterface(objtype, objname, count):
 
 
 def writeevents(events, component, eventlist):
+    """
+    Generates the events and event generator for each event and adds the fitting severity.
+    :param events: List of eventdicts
+    :param component: The component the events belong to
+    :param eventlist: Empty dict (filled with the names of the eventgenerator nodes)
+    :return: The eventlist now filled in the format {event name(generated in the code) : eventgenerator node name}
+    """
     server = open("opcua-server.py", "a")
     writeindent = "    "
-    #eventelements = []
     for event in events:
-        #eventelements.append(event["element"])
         eventname = (event["element"].lower()).replace(" ", "") + component + str(event["severity"])
         eventgenname = eventname + "generator"
         eventlist[eventname] = eventgenname
@@ -309,7 +356,6 @@ def writeevents(events, component, eventlist):
             severity = 800
         elif event["severity"] == "critical":
             severity = 1000
-        #print(eventname)
         server.write(writeindent + eventname + " = await server.create_custom_event_type(idx, \"" + str(event["element"]) + " " + str(event["severity"]) + "\", ua.ObjectIds.SystemEventType)\n")
         server.write(writeindent + str(eventlist[eventname]) + " = await server.get_event_generator(" + eventname + ", " + component + ")\n")
         server.write(writeindent + str(eventlist[eventname]) + ".event.Severity = " + str(severity) + "\n")
@@ -317,12 +363,23 @@ def writeevents(events, component, eventlist):
 
 
 def writestreams(streams, component, streamslist, variablelist, jsonmeasurements, jsonparameters):
+    """
+    Generates the streams as events withe event generator, uses standard severity 1.
+    :param streams: List of streamdicts
+    :param component: Component the streams belong to.
+    :param streamslist: Empty dict (filled with streamgenerator node names later on)
+    :param variablelist: List of the variables belonging to the component in Format {name : value}
+    :param jsonmeasurements: List of all measurement elements
+    :param jsonparameters: List of all parameter elements
+    :return streamlist: The streamslist now filled in the format
+                            {streamname(generated in the code) : streamgenerator node name}
+    :return updatestreamsdict: A dict in which the compare variable names for
+                                update streams are saved in format {streamname: variablename}
+    """
     server = open("opcua-server.py", "a")
     writeindent = "    "
-    # eventelements = []
     updatestreamdict = {}
     for stream in streams:
-        # eventelements.append(event["element"])
         streamname = (stream["measurement"].lower()).replace(" ", "") + component
         streamgenname = streamname + "generator"
         streamslist[streamname] = streamgenname
@@ -353,6 +410,10 @@ def writestreams(streams, component, streamslist, variablelist, jsonmeasurements
 
 
 def writendpt1():
+    """
+    Writes the beginning of the while loop which starts the server.
+    :return: None
+    """
     server = open("opcua-server.py", "a")
     server.write("""
     async with server:
@@ -363,6 +424,17 @@ def writendpt1():
 
 
 def triggerevents(generatordict, eventslist, component, variablelist, jsonmeasurements, jsonparameters):
+    """
+    Writes the if cases in which the events get triggered.
+    :param generatordict: Dict with the format
+                            {eventname (generated according to format from writeevents) : eventgeneratorname}
+    :param eventslist: List of eventdicts
+    :param component: Component the events belong to
+    :param variablelist: List of all variabledicts from component in the format {name : value}
+    :param jsonmeasurements: List of all measurements
+    :param jsonparameters: List of all parameters
+    :return: None
+    """
     server = open("opcua-server.py", "a")
     indent = 3
     writeindent = ""
@@ -402,6 +474,19 @@ def triggerevents(generatordict, eventslist, component, variablelist, jsonmeasur
 
 
 def triggerstreams(generatordict, streamslist, component, variablelist, jsonmeasurements, jsonparameters, savevaldict):
+    """
+    Generates the Streams according to their stream type. (Dynamic streams are still missing)
+    :param generatordict: Dict with the format
+                            {streamname (generated according to format from writestreams) : streamgeneratorname}
+    :param streamslist: List of streamdicts
+    :param component: Component the streams belong to
+    :param variablelist: List of all variabledicts from the component in the format {name: value}
+    :param jsonmeasurements: List of all measurements
+    :param jsonparameters: List of all parameters
+    :param savevaldict: Dict with the name of the compare values for update streams.
+                            Format {streamname : comparevaluename}
+    :return: None
+    """
     server = open("opcua-server.py", "a")
     indent = 3
     for stream in streamslist:
@@ -442,6 +527,10 @@ def triggerstreams(generatordict, streamslist, component, variablelist, jsonmeas
 
 
 def writendpt2():
+    """
+    Writes the end of the server with the await asyncio.sleep(1) and the time counter.
+    :return: None
+    """
     server = open("opcua-server.py", "a")
     server.write("""
             await asyncio.sleep(1)