diff --git a/Simulator 2.x/simulator_flow.json b/Simulator 2.x/simulator_flow.json
index b37f8bb..1173470 100644
--- a/Simulator 2.x/simulator_flow.json	
+++ b/Simulator 2.x/simulator_flow.json	
@@ -265,8 +265,9 @@
         "type": "function",
         "z": "c5821ca1.ee2da",
         "name": "Senden der Flow-Daten",
-        "func": "const ComponentId = env.get(\"Component-ID\");\n\nconst actualPower = parseInt(flow.get(\"pv\").toFixed(0));\nconst actualPowerkW = actualPower / 1000;\n\nvar statusColor = \"green\";\nvar statusShape = \"dot\";\nif(actualPower > -100)\n    statusColor= \"red\";\n\nnode.status({\n        fill: statusColor,\n        shape: statusShape,\n        text:actualPowerkW.toFixed(1)+\"kW\"\n    });\n\nreturn [\n    [\n        {\n            topic: \"openWB/set/pv/\" + ComponentId + \"/get/power\",\n            payload: actualPower\n        },\n        {\n            topic: \"openWB/set/pv/\" + ComponentId + \"/get/exported\",\n            payload: parseInt(flow.get(\"PV_Zähler\").toFixed(0))\n        }\n    ]\n]",
+        "func": "const ComponentId = env.get(\"Component-ID\");\n\nconst actualPower = parseInt(flow.get(\"pv\").toFixed(0));\nconst actualPowerkW = actualPower / 1000;\n\nvar statusColor = \"green\";\nvar statusShape = \"dot\";\nif(actualPower > -100)\n    statusColor= \"red\";\n\nnode.status({\n        fill: statusColor,\n        shape: statusShape,\n        text:actualPowerkW.toFixed(1)+\"kW\"\n    });\n\nreturn [\n    [\n        {\n            topic: \"openWB/mqtt/pv/\" + ComponentId + \"/get/power\",\n            payload: actualPower\n        },\n        {\n            topic: \"openWB/mqtt/pv/\" + ComponentId + \"/get/exported\",\n            payload: parseInt(flow.get(\"PV_Zähler\").toFixed(0))\n        }\n    ]\n]",
         "outputs": 1,
+        "timeout": "",
         "noerr": 0,
         "initialize": "// Code added here will be run once\n// whenever the node is deployed.\nnode.status({\n        fill: \"yellow\",\n        shape: \"ring\",\n        text: \"starting...\"\n    });\n",
         "finalize": "",
@@ -800,8 +801,9 @@
         "type": "function",
         "z": "2dd5cf5c.4ae26",
         "name": "Senden der Flow-Daten",
-        "func": "const ComponentId = env.get(\"Component-ID\");\n\nconst actualPower = parseInt(flow.get(\"bat\").toFixed(0));\nconst actualPowerkW = actualPower / 1000;\n\nconst maxCapacity = flow.get(\"maxCapacity\");\nconst actualCapacity = flow.get(\"actualCapacity\");\nvar actualSoc = actualCapacity / maxCapacity * 100;\nactualSoc = parseInt(actualSoc.toFixed(0));\n\nvar statusColor = \"yellow\";\nvar statusShape = \"ring\";\nif(actualPower < 0)\n    statusColor = \"red\";\nif(actualPower > 0)\n    statusColor = \"green\";\nif(actualSoc > 0)\n    statusShape = \"dot\";\n\nnode.status({\n        fill:  statusColor,\n        shape: statusShape,\n        text:  actualPowerkW.toFixed(1)+\"kW \" + actualSoc + \"%\"\n    });\n\nreturn [\n    [\n        {\n            topic: \"openWB/set/bat/\" + ComponentId + \"/get/imported\",\n            payload: parseFloat(flow.get(\"WhImported\").toFixed(3))\n        },\n        {\n            topic: \"openWB/set/bat/\" + ComponentId + \"/get/exported\",\n            payload: parseFloat(flow.get(\"WhExported\").toFixed(3))\n        },\n        {\n            topic: \"openWB/set/bat/\" + ComponentId + \"/get/power\",\n            payload: actualPower\n        },\n        {\n            topic: \"openWB/set/bat/\" + ComponentId + \"/get/soc\",\n            payload: actualSoc\n        }\n    ]\n]",
+        "func": "const ComponentId = env.get(\"Component-ID\");\n\nconst actualPower = parseInt(flow.get(\"bat\").toFixed(0));\nconst actualPowerkW = actualPower / 1000;\n\nconst maxCapacity = flow.get(\"maxCapacity\");\nconst actualCapacity = flow.get(\"actualCapacity\");\nvar actualSoc = actualCapacity / maxCapacity * 100;\nactualSoc = parseInt(actualSoc.toFixed(0));\n\nvar statusColor = \"yellow\";\nvar statusShape = \"ring\";\nif(actualPower < 0)\n    statusColor = \"red\";\nif(actualPower > 0)\n    statusColor = \"green\";\nif(actualSoc > 0)\n    statusShape = \"dot\";\n\nnode.status({\n        fill:  statusColor,\n        shape: statusShape,\n        text:  actualPowerkW.toFixed(1)+\"kW \" + actualSoc + \"%\"\n    });\n\nreturn [\n    [\n        {\n            topic: \"openWB/mqtt/bat/\" + ComponentId + \"/get/imported\",\n            payload: parseFloat(flow.get(\"WhImported\").toFixed(3))\n        },\n        {\n            topic: \"openWB/mqtt/bat/\" + ComponentId + \"/get/exported\",\n            payload: parseFloat(flow.get(\"WhExported\").toFixed(3))\n        },\n        {\n            topic: \"openWB/mqtt/bat/\" + ComponentId + \"/get/power\",\n            payload: actualPower\n        },\n        {\n            topic: \"openWB/mqtt/bat/\" + ComponentId + \"/get/soc\",\n            payload: actualSoc\n        }\n    ]\n]",
         "outputs": 1,
+        "timeout": "",
         "noerr": 0,
         "initialize": "",
         "finalize": "",
@@ -1135,7 +1137,7 @@
         "type": "function",
         "z": "2dd5cf5c.4ae26",
         "name": "Map to Power Range",
-        "func": "const range = flow.get(\"maxPower\");\nconst dynamicPower = flow.get(\"dynamicMaxPower\");\nconst actualCapacity = flow.get(\"actualCapacity\");\nconst maxCapacity = flow.get(\"maxCapacity\");\n\nmsg.payload = msg.payload * (2*range) - range;\nif( actualCapacity == 0 ){\n    msg.payload = Math.max(msg.payload,0);\n} else if( actualCapacity == maxCapacity ){\n    msg.payload = Math.min(msg.payload,0);\n}\nif( dynamicPower != null ){\n    if (Math.abs(msg.payload) > dynamicPower){\n        msg.payload = dynamicPower;\n    }\n}\nreturn msg;",
+        "func": "const range = flow.get(\"maxPower\");\nconst dynamicPower = flow.get(\"dynamicMaxPower\");\nconst actualCapacity = flow.get(\"actualCapacity\");\nconst maxCapacity = flow.get(\"maxCapacity\");\n\nmsg.payload = msg.payload * (2*range) - range;\nif( actualCapacity == 0 ){\n    msg.payload = Math.max(msg.payload,0);\n} else if( actualCapacity == maxCapacity ){\n    msg.payload = Math.min(msg.payload,0);\n}\nif( dynamicPower != null ){\n    msg.payload = Math.min(msg.payload, dynamicPower);\n}\nreturn msg;",
         "outputs": 1,
         "timeout": "",
         "noerr": 0,
@@ -1825,8 +1827,9 @@
         "type": "function",
         "z": "da060938.c8ff48",
         "name": "Senden der Flow-Daten",
-        "func": "const ComponentId = env.get(\"Component-ID\");\n\nconst actualPower = parseInt(flow.get(\"evu\").toFixed(0));\nconst actualPowerkW = actualPower / 1000;\nconst actualCurrent = flow.get(\"evu_current\");\nconst voltageL1 = flow.get(\"spannungL1\");\nconst voltageL2 = flow.get(\"spannungL2\");\nconst voltageL3 = flow.get(\"spannungL3\");\nconst powerFactorL1 = flow.get(\"leistungsfaktorL1\");\nconst powerFactorL2 = flow.get(\"leistungsfaktorL2\");\nconst powerFactorL3 = flow.get(\"leistungsfaktorL3\");\n\nvar statusColor = \"green\";\nvar statusShape = \"dot\";\nif(actualPower > 0)\n    statusColor= \"red\";\n\nnode.status({\n        fill: statusColor,\n        shape: statusShape,\n        text:actualPowerkW.toFixed(1)+\"kW, \"+flow.get(\"evu_current\")\n    });\n\nreturn [\n    [\n        {\n            topic: \"openWB/set/counter/\" + ComponentId + \"/get/imported\",\n            payload: parseFloat(flow.get(\"WhImported\").toFixed(3))\n        },\n        {\n            topic: \"openWB/set/counter/\" + ComponentId + \"/get/exported\",\n            payload: parseFloat(flow.get(\"WhExported\").toFixed(3))\n        },\n        {\n            topic: \"openWB/set/counter/\" + ComponentId + \"/get/power\",\n            payload: parseInt(flow.get(\"evu\").toFixed(0))\n        },\n        {\n            topic: \"openWB/set/counter/\" + ComponentId + \"/get/currents\",\n            payload: actualCurrent\n        },\n        {\n            topic: \"openWB/set/counter/\" + ComponentId + \"/get/voltages\",\n            payload: [voltageL1, voltageL2, voltageL3]\n        },\n        {\n            topic: \"openWB/set/counter/\" + ComponentId + \"/get/powers\",\n            payload: [voltageL1 * actualCurrent[0] * powerFactorL1, voltageL2 * actualCurrent[1] * powerFactorL2, voltageL3 * actualCurrent[2] * powerFactorL3]\n        },\n        {\n            topic: \"openWB/set/counter/\" + ComponentId + \"/get/power_factors\",\n            payload: [powerFactorL1, powerFactorL2, powerFactorL3]\n        },\n        {\n            topic: \"openWB/set/counter/\" + ComponentId + \"/get/frequency\",\n            payload: parseFloat(flow.get(\"frequency\"))\n        }\n   ]\n]",
+        "func": "const ComponentId = env.get(\"Component-ID\");\n\nconst actualPower = parseInt(flow.get(\"evu\").toFixed(0));\nconst actualPowerkW = actualPower / 1000;\nconst actualCurrent = flow.get(\"evu_current\");\nconst voltageL1 = flow.get(\"spannungL1\");\nconst voltageL2 = flow.get(\"spannungL2\");\nconst voltageL3 = flow.get(\"spannungL3\");\nconst powerFactorL1 = flow.get(\"leistungsfaktorL1\");\nconst powerFactorL2 = flow.get(\"leistungsfaktorL2\");\nconst powerFactorL3 = flow.get(\"leistungsfaktorL3\");\n\nvar statusColor = \"green\";\nvar statusShape = \"dot\";\nif(actualPower > 0)\n    statusColor= \"red\";\n\nnode.status({\n        fill: statusColor,\n        shape: statusShape,\n        text:actualPowerkW.toFixed(1)+\"kW, \"+flow.get(\"evu_current\")\n    });\n\nreturn [\n    [\n        {\n            topic: \"openWB/mqtt/counter/\" + ComponentId + \"/get/imported\",\n            payload: parseFloat(flow.get(\"WhImported\").toFixed(3))\n        },\n        {\n            topic: \"openWB/mqtt/counter/\" + ComponentId + \"/get/exported\",\n            payload: parseFloat(flow.get(\"WhExported\").toFixed(3))\n        },\n        {\n            topic: \"openWB/mqtt/counter/\" + ComponentId + \"/get/power\",\n            payload: parseInt(flow.get(\"evu\").toFixed(0))\n        },\n        {\n            topic: \"openWB/mqtt/counter/\" + ComponentId + \"/get/currents\",\n            payload: actualCurrent\n        },\n        {\n            topic: \"openWB/mqtt/counter/\" + ComponentId + \"/get/voltages\",\n            payload: [voltageL1, voltageL2, voltageL3]\n        },\n        {\n            topic: \"openWB/mqtt/counter/\" + ComponentId + \"/get/powers\",\n            payload: [voltageL1 * actualCurrent[0] * powerFactorL1, voltageL2 * actualCurrent[1] * powerFactorL2, voltageL3 * actualCurrent[2] * powerFactorL3]\n        },\n        {\n            topic: \"openWB/mqtt/counter/\" + ComponentId + \"/get/power_factors\",\n            payload: [powerFactorL1, powerFactorL2, powerFactorL3]\n        },\n        {\n            topic: \"openWB/mqtt/counter/\" + ComponentId + \"/get/frequency\",\n            payload: parseFloat(flow.get(\"frequency\"))\n        }\n   ]\n]",
         "outputs": 1,
+        "timeout": "",
         "noerr": 0,
         "initialize": "",
         "finalize": "",
@@ -3332,8 +3335,9 @@
         "type": "function",
         "z": "5c4ac285.afe6e4",
         "name": "Senden der Flow-Daten",
-        "func": "const LPNumber = env.get(\"Component-ID\");\n\nvar chargestat = 0;\nif( flow.get(\"Lp_Strom1\") > 0 || flow.get(\"Lp_Strom2\") > 0 || flow.get(\"Lp_Strom3\") > 0 ){\n    chargestat = 1;\n}\n\nvar statusColor = \"red\";\nvar statusShape = \"ring\";\nif (flow.get(\"Lp_Stecker\") == 1){\n    statusColor = \"green\"\n    if (chargestat == 1){\n        statusShape = \"dot\";\n    }\n}\n\nconst actualPower = parseInt(flow.get(\"Lp_Ladeleistung\").toFixed(0));\nconst actualPowerkW = actualPower / 1000;\nconst phasesInUse = flow.get(\"Lp_Phasen\");\nconst phasesToUse = flow.get(\"Lp_Phasenumschaltung\");\nconst phasesEVmax = flow.get(\"Lp_EV_Phasen\");\nconst currentL1 = flow.get(\"Lp_Strom1\");\nconst currentL2 = flow.get(\"Lp_Strom2\");\nconst currentL3 = flow.get(\"Lp_Strom3\");\nconst volatageL1 = flow.get(\"Lp_Spannung1\");\nconst volatageL2 = flow.get(\"Lp_Spannung2\");\nconst volatageL3 = flow.get(\"Lp_Spannung3\");\nconst powerFactorL1 = flow.get(\"Lp_Leistungsfaktor1\");\nconst powerFactorL2 = flow.get(\"Lp_Leistungsfaktor2\");\nconst powerFactorL3 = flow.get(\"Lp_Leistungsfaktor3\");\n\nnode.status({\n        fill: statusColor,\n        shape: statusShape,\n        text:actualPowerkW.toFixed(1)+\"kW \"+phasesInUse+\"P(\"+phasesEVmax+\"/\"+phasesToUse+\")\"\n    });\n\nreturn [\n    [\n        {\n            topic: \"openWB/set/chargepoint/\" + LPNumber + \"/get/currents\",\n            payload: [currentL1, currentL2, currentL3]\n        },\n        {\n            topic: \"openWB/set/chargepoint/\" + LPNumber + \"/get/voltages\",\n            payload: [volatageL1, volatageL2, volatageL3]\n        },\n        {\n            topic: \"openWB/set/chargepoint/\" + LPNumber + \"/get/power\",\n            payload: actualPower\n        },\n        {\n            topic: \"openWB/set/chargepoint/\" + LPNumber + \"/get/powers\",\n            payload: [volatageL1 * currentL1 * powerFactorL1, volatageL2 * currentL2 * powerFactorL2, volatageL3 * currentL3 * powerFactorL3]\n        },\n        {\n            topic: \"openWB/set/chargepoint/\" + LPNumber + \"/get/power_factors\",\n            payload: [powerFactorL1, powerFactorL2, powerFactorL3]\n        },\n        {\n            topic: \"openWB/set/chargepoint/\" + LPNumber + \"/get/frequency\",\n            payload: flow.get(\"Lp_Netzfrequenz\")\n        },\n        {\n            topic: \"openWB/set/chargepoint/\" + LPNumber + \"/get/imported\",\n            payload: parseFloat(flow.get(\"Lp_Zähler_laden\").toFixed(3))\n        },\n        {\n            topic: \"openWB/set/chargepoint/\" + LPNumber + \"/get/exported\",\n            payload: parseFloat(flow.get(\"Lp_Zähler_entladen\").toFixed(3))\n        },\n        {\n            topic: \"openWB/set/chargepoint/\" + LPNumber + \"/get/plug_state\",\n            payload: flow.get(\"Lp_Stecker\")\n        },\n        {\n            topic: \"openWB/set/chargepoint/\" + LPNumber + \"/get/charge_state\",\n            payload: chargestat\n        },\n        {\n            topic: \"openWB/set/chargepoint/\" + LPNumber + \"/get/phases_in_use\",\n            payload: phasesInUse\n        }\n    ]\n]\n",
+        "func": "const LPNumber = env.get(\"Component-ID\");\n\nvar chargestat = 0;\nif( flow.get(\"Lp_Strom1\") > 0 || flow.get(\"Lp_Strom2\") > 0 || flow.get(\"Lp_Strom3\") > 0 ){\n    chargestat = 1;\n}\n\nvar statusColor = \"red\";\nvar statusShape = \"ring\";\nif (flow.get(\"Lp_Stecker\") == 1){\n    statusColor = \"green\"\n    if (chargestat == 1){\n        statusShape = \"dot\";\n    }\n}\n\nconst actualPower = parseInt(flow.get(\"Lp_Ladeleistung\").toFixed(0));\nconst actualPowerkW = actualPower / 1000;\nconst phasesInUse = flow.get(\"Lp_Phasen\");\nconst phasesToUse = flow.get(\"Lp_Phasenumschaltung\");\nconst phasesEVmax = flow.get(\"Lp_EV_Phasen\");\nconst currentL1 = flow.get(\"Lp_Strom1\");\nconst currentL2 = flow.get(\"Lp_Strom2\");\nconst currentL3 = flow.get(\"Lp_Strom3\");\nconst volatageL1 = flow.get(\"Lp_Spannung1\");\nconst volatageL2 = flow.get(\"Lp_Spannung2\");\nconst volatageL3 = flow.get(\"Lp_Spannung3\");\nconst powerFactorL1 = flow.get(\"Lp_Leistungsfaktor1\");\nconst powerFactorL2 = flow.get(\"Lp_Leistungsfaktor2\");\nconst powerFactorL3 = flow.get(\"Lp_Leistungsfaktor3\");\n\nnode.status({\n        fill: statusColor,\n        shape: statusShape,\n        text:actualPowerkW.toFixed(1)+\"kW \"+phasesInUse+\"P(\"+phasesEVmax+\"/\"+phasesToUse+\")\"\n    });\n\nreturn [\n    [\n        {\n            topic: \"openWB/mqtt/chargepoint/\" + LPNumber + \"/get/currents\",\n            payload: [currentL1, currentL2, currentL3]\n        },\n        {\n            topic: \"openWB/mqtt/chargepoint/\" + LPNumber + \"/get/evse_current\",\n            payload: Math.max(0, currentL1 - 1)\n        },\n        {\n            topic: \"openWB/mqtt/chargepoint/\" + LPNumber + \"/get/voltages\",\n            payload: [volatageL1, volatageL2, volatageL3]\n        },\n        {\n            topic: \"openWB/mqtt/chargepoint/\" + LPNumber + \"/get/power\",\n            payload: actualPower\n        },\n        {\n            topic: \"openWB/mqtt/chargepoint/\" + LPNumber + \"/get/powers\",\n            payload: [volatageL1 * currentL1 * powerFactorL1, volatageL2 * currentL2 * powerFactorL2, volatageL3 * currentL3 * powerFactorL3]\n        },\n        {\n            topic: \"openWB/mqtt/chargepoint/\" + LPNumber + \"/get/power_factors\",\n            payload: [powerFactorL1, powerFactorL2, powerFactorL3]\n        },\n        {\n            topic: \"openWB/mqtt/chargepoint/\" + LPNumber + \"/get/frequency\",\n            payload: flow.get(\"Lp_Netzfrequenz\")\n        },\n        {\n            topic: \"openWB/mqtt/chargepoint/\" + LPNumber + \"/get/imported\",\n            payload: parseFloat(flow.get(\"Lp_Zähler_laden\").toFixed(3))\n        },\n        {\n            topic: \"openWB/mqtt/chargepoint/\" + LPNumber + \"/get/exported\",\n            payload: parseFloat(flow.get(\"Lp_Zähler_entladen\").toFixed(3))\n        },\n        {\n            topic: \"openWB/mqtt/chargepoint/\" + LPNumber + \"/get/plug_state\",\n            payload: flow.get(\"Lp_Stecker\")\n        },\n        {\n            topic: \"openWB/mqtt/chargepoint/\" + LPNumber + \"/get/charge_state\",\n            payload: chargestat\n        },\n        {\n            topic: \"openWB/mqtt/chargepoint/\" + LPNumber + \"/get/phases_in_use\",\n            payload: phasesInUse\n        }\n    ]\n]\n",
         "outputs": 1,
+        "timeout": "",
         "noerr": 0,
         "initialize": "",
         "finalize": "",
@@ -3774,6 +3778,7 @@
         "name": "",
         "func": "const phasesEVmax = flow.get(\"Lp_EV_Phasen\");\nconst phasesLPmax = flow.get(\"Lp_Phasenumschaltung\");\nvar phasesInUse = phasesEVmax;\nif(phasesEVmax > phasesLPmax){\n    phasesInUse = phasesLPmax;\n}\n\nvar phaseCurrents = [0,0,0];\n\nphaseCurrents[0] = msg.payload;\nif( phasesInUse > 1 )\n    phaseCurrents[1] = msg.payload;\nif( phasesInUse > 2 )\n    phaseCurrents[2] = msg.payload;\n\nflow.set(\"Lp_Strom1\", phaseCurrents[0]);\nflow.set(\"Lp_Strom2\", phaseCurrents[1]);\nflow.set(\"Lp_Strom3\", phaseCurrents[2]);\nflow.set(\"Lp_Phasen\", phasesInUse);\n\nreturn msg;\n",
         "outputs": 1,
+        "timeout": "",
         "noerr": 0,
         "initialize": "",
         "finalize": "",
@@ -4587,14 +4592,14 @@
         "z": "92165c72.a5f948",
         "g": "3e039a5092696f5f",
         "name": "",
-        "topic": "openWB/chargepoint/+/set/current",
+        "topic": "openWB/mqtt/chargepoint/+/set/current",
         "qos": "0",
         "datatype": "json",
         "broker": "5c48b79a.d6b918",
         "nl": false,
         "rap": false,
         "inputs": 0,
-        "x": 180,
+        "x": 200,
         "y": 60,
         "wires": [
             [
@@ -5935,14 +5940,14 @@
         "z": "92165c72.a5f948",
         "g": "3e039a5092696f5f",
         "name": "",
-        "topic": "openWB/chargepoint/+/set/phases_to_use",
+        "topic": "openWB/mqtt/chargepoint/+/set/phases_to_use",
         "qos": "0",
         "datatype": "json",
         "broker": "5c48b79a.d6b918",
         "nl": false,
         "rap": false,
         "inputs": 0,
-        "x": 200,
+        "x": 220,
         "y": 120,
         "wires": [
             [
@@ -7446,14 +7451,14 @@
         "z": "92165c72.a5f948",
         "g": "3e039a5092696f5f",
         "name": "",
-        "topic": "openWB/bat/+/set/power_limit",
+        "topic": "openWB/mqtt/bat/+/set/power_limit",
         "qos": "0",
         "datatype": "json",
         "broker": "5c48b79a.d6b918",
         "nl": false,
         "rap": false,
         "inputs": 0,
-        "x": 160,
+        "x": 170,
         "y": 180,
         "wires": [
             [
