diff --git a/Dockerfile b/Dockerfile
index 4f4661b8784b39f13615c5ee9b5f4b09a7fcb11f..7cb6f3f7388f17205e805bdb732ae59b5b9744d8 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -2,12 +2,15 @@
 FROM python:3.10
 # install app dependencies
 #python vorpackage
-WORKDIR /app
 
-RUN ./requirements.txt .
+RUN mkdir /soil-opc-ua
+
+WORKDIR /soil-opc-ua
+
+COPY requirements.txt .
 
 RUN pip3 install -r requirements.txt
 
-COPY * /app
+COPY * /soil-opc-ua
 
 CMD ["python", "newmodeljsonparse.py", "robot.json"]
diff --git a/requirements.txt b/requirements.txt
index 867b021efc6a45973bfba201ac6f033f8c3c6613..e817cac94b8002773957c98b74a5800309b1b7c7 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,5 +1,4 @@
-asyncua
+asyncio
 tomli
 toml
 numpy 
-opcua-client
\ No newline at end of file
diff --git a/robottest.py b/robottest.py
index 7b6294b6ec12c3be0f06e952961921f7bf620817..8cd8a02f5c665479dceeab35ee42eb871288c59c 100644
--- a/robottest.py
+++ b/robottest.py
@@ -9,8 +9,11 @@ from asyncua.common import node
 logging.basicConfig(level=logging.INFO)
 _logger = logging.getLogger('asyncua')
 
+
+    
+
 async def main():
-    # setup our server
+    # setup our server()
     server = Server()
     await server.init()
     server.set_endpoint('opc.tcp://0.0.0.0:4840/freeopcua/server/')
@@ -58,6 +61,22 @@ async def main():
     
     ##evtl alle statischen variablen als struct dynamisch mit extra variablen
     myobj = await server.nodes.objects.add_object(idx, "Robot")
+
+    enode = await new_enum(server, idx, "MyEnum", [
+        "titi",
+        "toto",
+        "tutu",
+    ])
+
+    enum_node = await new_enum(server, idx, "EnumerateTest", [ "UNDEFINED", "GOOD", "BAD", ]) 
+    await server.load_data_type_definitions()
+    enumTest = await myobj.add_variable(idx, "my_enumtest", ua.EnumerateTest.UNDEFINED, datatype=enum_node.nodeid)
+    await enumTest.set_modelling_rule(True)
+    
+    #custom_objs = await server.load_data_type_definitions()
+    valnode = await server.nodes.objects.add_variable(idx, "my_enum", ua.MyEnum.toto, datatype=enode.nodeid)
+    
+    #enum = await myobj.add_variable(idx, "my_enum", ua.MyEnum.toto, datatype=enode.nodeid)
     #custom_objs = await server.load_data_type_definitions()
     #pos struct hardcoded
     #var = await myobj.add_variable(idx, "position",ua.Variant(ua.PosStruct('Position', 'Position in Cartesian coordinates given in metre.', [0,0,0], ua.Range(-50, 50), 'm'), ua.VariantType.ExtensionObject))
@@ -84,23 +103,58 @@ async def main():
     
     #tcp als variable mit properties
     vartype = await server.nodes.base_data_type.add_data_type(idx, tcpobject.name, tcpobject.description)
-    
+    #await vartype.write_value_rank(1)
     #if tcpobject.range is not None:
     # rangeprop = await vartype.add_property(idx, "range", ua.Range(-0.5,0.5))
     # await rangeprop.set_modelling_rule(True)
     # #if tcpobject.unit is not None:
     # unitprop = await vartype.add_property(idx, "unit", "metre")
     # await unitprop.set_modelling_rule(True)
-    tcpvar = await myobj.add_variable(idx, "TCP Var" , [0,0,0] , datatype = vartype.nodeid)
+    tcpvar = await myobj.add_variable(idx, "TCP Var" , [0,0,0] , ua.VariantType.Float ,datatype = vartype.nodeid)
+    await tcpvar.set_writable()
+    # await tcpvar.write_value_rank(1)
+    # await tcpvar.write_array_dimensions(2)
     #object bekommt nicht datatypes properties
     await tcpvar.add_property(idx, "range", ua.Range(-0.5,0.5))
     await tcpvar.add_property(idx, "unit", "metre")
+    #def func(variant):
+    #    tcpvar.set_value(ua.Variant(variant, ua.VariantType.Float, is_array = True))
+    testvar = await  myobj.add_variable(idx, "test" , 3)
+    
+    # @uamethod
+    # async def goTo (position):
+    #     await tcpvar.set_value(position)
+
+    # @uamethod
+    # def test (position):
+    #     testvar.set_value(position)
+    #     return position
+
+    async def test(parent, position):
+        await testvar.set_value(ua.Variant(position))
+
+    async def goTo(parent, position):
+        await tcpvar.set_value(ua.Variant(position))
 
+    inargx = ua.Argument()
+    inargx.Name = "Position_neu"
+    inargx.DataType = ua.NodeId(ua.ObjectIds.Float)
+    inargx.ValueRank = 1
+    inargx.ArrayDimensions = [1,1,1]
+    inargx.Description = ua.LocalizedText("bewegt zu neuer position")
+
+    beweg_node = await myobj.add_method(idx, "bewegen", goTo, [ua.VariantType.Float])
+
+    testmethod = await myobj.add_method(idx, "test", test, [ua.VariantType.Int64])
+    
     async with server:
-        print(tcpobject.value)
+        #print(tcpobject.value)
+        print(await tcpvar.get_value())
+        #await tcpvar.set_value([1,1,1])
+        print(await tcpvar.get_value())
         while True:
             await asyncio.sleep(1)
-
+            
 
 if __name__ == '__main__':
     asyncio.run(main())
\ No newline at end of file