diff --git a/README.md b/README.md
index 3007d8ba1fbc7e54bd1f23d158372ab2122c58a6..962a53fcc208f92efdc45c7a2220d60757fd4168 100644
--- a/README.md
+++ b/README.md
@@ -44,7 +44,7 @@ Type-Name | Kind | Label | Description | Category
 `flick-type` | Text | Last Flick | Last Flick detected (and its direction) | Motion
 `brightness-type` | Number | Brightness | Brightness (Lux) | Light
 `acceleration-type` | Number | Acceleration | Acceleration in one direction in meters per second. | Motion
-`rotation-type` | Number | Rotation | Rotation around one axis (unitless). | <category>Motion</category>
+`rotation-type` | Number | Rotation | Rotation around one axis (unitless). | Motion
 `activity-type` | String | Activity | Current recognized activity, one of Runnning, Walking, Resting, Unknown. | - 
 `heart-rate-type` | Number | Heart Rate | Heart rate in beats per minute. | -
 `steps-type` | Number | Steps | Steps run today. | -
@@ -67,4 +67,6 @@ Polar M600, Moto 360 | `steps-type` | `steps` | -
 
 ## Data flow
 
+[AndroidSensorSharing repository](https://git-st.inf.tu-dresden.de/OpenLicht/AndroidSensorSharing)
 
+![material/dataflow.svg](material/dataflow.svg)
diff --git a/material/dataflow.svg b/material/dataflow.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7a53c87bc4a7089dfae7adf46518dcd2f9b64beb
--- /dev/null
+++ b/material/dataflow.svg
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
+          'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
+<svg fill-opacity="1" xmlns:xlink="http://www.w3.org/1999/xlink" color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="black" stroke-linecap="square" width="910" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="1" fill="black" stroke-dasharray="none" font-weight="normal" stroke-width="1" viewBox="120 80 910 510" height="510" xmlns="http://www.w3.org/2000/svg" font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" image-rendering="auto"
+><!--Generated by the Batik Graphics2D SVG Generator--><defs id="genericDefs"
+  /><g
+  ><defs id="defs1"
+    ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath1"
+      ><path d="M0 0 L2147483647 0 L2147483647 2147483647 L0 2147483647 L0 0 Z"
+      /></clipPath
+      ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath2"
+      ><path d="M0 0 L0 50 L140 50 L140 0 Z"
+      /></clipPath
+      ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath3"
+      ><path d="M0 0 L0 140 L250 140 L250 0 Z"
+      /></clipPath
+      ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath4"
+      ><path d="M0 0 L0 40 L270 40 L270 0 Z"
+      /></clipPath
+      ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath5"
+      ><path d="M0 0 L0 40 L260 40 L260 0 Z"
+      /></clipPath
+      ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath6"
+      ><path d="M0 0 L0 400 L840 400 L840 0 Z"
+      /></clipPath
+      ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath7"
+      ><path d="M0 0 L0 160 L370 160 L370 0 Z"
+      /></clipPath
+      ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath8"
+      ><path d="M0 0 L0 240 L240 240 L240 0 Z"
+      /></clipPath
+      ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath9"
+      ><path d="M0 0 L0 120 L290 120 L290 0 Z"
+      /></clipPath
+      ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath10"
+      ><path d="M0 0 L0 170 L200 170 L200 0 Z"
+      /></clipPath
+      ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath11"
+      ><path d="M0 0 L0 100 L90 100 L90 0 Z"
+      /></clipPath
+      ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath12"
+      ><path d="M0 0 L0 80 L290 80 L290 0 Z"
+      /></clipPath
+      ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath13"
+      ><path d="M0 0 L0 60 L250 60 L250 0 Z"
+      /></clipPath
+      ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath14"
+      ><path d="M0 0 L0 110 L250 110 L250 0 Z"
+      /></clipPath
+      ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath15"
+      ><path d="M0 0 L0 50 L100 50 L100 0 Z"
+      /></clipPath
+      ><clipPath clipPathUnits="userSpaceOnUse" id="clipPath16"
+      ><path d="M0 0 L0 40 L130 40 L130 0 Z"
+      /></clipPath
+    ></defs
+    ><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(140,450)" stroke-opacity="0" stroke="rgb(255,255,255)"
+    ><rect x="0.5" width="138.5" height="48.5" y="0.5" clip-path="url(#clipPath2)" stroke="none"
+    /></g
+    ><g transform="translate(140,450)"
+    ><rect fill="none" x="0.5" width="138.5" height="48.5" y="0.5" clip-path="url(#clipPath2)"
+      /><text x="11" font-size="14px" y="18.1094" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >Knowledge-Base</text
+      ><text x="46" font-size="14px" y="34.2188" clip-path="url(#clipPath2)" font-family="sans-serif" font-style="italic" stroke="none" xml:space="preserve"
+      >eraser</text
+    ></g
+    ><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(780,160)" stroke-opacity="0" stroke="rgb(255,255,255)"
+    ><rect x="0.5" width="138.5" height="48.5" y="0.5" clip-path="url(#clipPath2)" stroke="none"
+    /></g
+    ><g transform="translate(780,160)"
+    ><rect fill="none" x="0.5" width="138.5" height="48.5" y="0.5" clip-path="url(#clipPath2)"
+      /><text x="20" font-size="14px" y="18.1094" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >OpenHAB-App</text
+      ><text x="32" font-size="14px" y="34.2188" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >or WebGUI</text
+    ></g
+    ><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(720,280)" stroke-opacity="0" stroke="rgb(255,255,255)"
+    ><rect x="0.5" width="248.5" height="138.5" y="0.5" clip-path="url(#clipPath3)" stroke="none"
+    /></g
+    ><g transform="translate(720,280)"
+    ><rect fill="none" x="0.5" width="248.5" height="138.5" y="0.5" clip-path="url(#clipPath3)"
+    /></g
+    ><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(720,280)" stroke-opacity="0" stroke="rgb(255,255,255)"
+    ><rect x="5.5" width="240" height="20.1094" y="21.6094" clip-path="url(#clipPath3)" stroke="none"
+    /></g
+    ><g transform="translate(720,280)"
+    ><rect fill="none" x="5.5" width="240" height="20.1094" y="21.6094" clip-path="url(#clipPath3)"
+    /></g
+    ><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(720,280)" stroke-opacity="0" stroke="rgb(255,255,255)"
+    ><rect x="5.5" width="240" height="20.1094" y="77.9375" clip-path="url(#clipPath3)" stroke="none"
+    /></g
+    ><g transform="translate(720,280)"
+    ><rect fill="none" x="5.5" width="240" height="20.1094" y="77.9375" clip-path="url(#clipPath3)"
+      /><text x="91" font-size="14px" y="18.1094" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >OpenHAB</text
+      ><text x="60" font-size="14px" y="38.2188" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >PolarM600Handler</text
+      ><text x="56" font-size="14px" y="94.5469" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >SamsungS6Handler</text
+    ></g
+    ><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(380,290)" stroke-opacity="0" stroke="rgb(255,255,255)"
+    ><rect x="0.5" width="138.5" height="48.5" y="0.5" clip-path="url(#clipPath2)" stroke="none"
+    /></g
+    ><g transform="translate(380,290)"
+    ><rect fill="none" x="0.5" width="138.5" height="48.5" y="0.5" clip-path="url(#clipPath2)"
+      /><text x="47" font-size="14px" y="18.1094" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >MQTT-</text
+      ><text x="46" font-size="14px" y="34.2188" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >Broker</text
+    ></g
+    ><g fill="rgb(255,165,0)" fill-opacity="0.4902" transform="translate(460,100)" stroke-opacity="0.4902" stroke="rgb(255,165,0)"
+    ><path d="M0.5 0.5 L258.5 0.5 L269 12.5 L269 39 L0.5 39 Z" stroke="none" clip-path="url(#clipPath4)"
+    /></g
+    ><g transform="translate(460,100)"
+    ><path fill="none" d="M0.5 0.5 L258.5 0.5 L269 12.5 L269 39 L0.5 39 Z" clip-path="url(#clipPath4)"
+      /><path fill="none" d="M258.5 0.5 L258.5 12.5 L269 12.5" clip-path="url(#clipPath4)"
+      /><text x="5" font-size="14px" y="18.1094" clip-path="url(#clipPath4)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >Runs AndroidSensorSharing/mobile</text
+    ></g
+    ><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(380,160)" stroke-opacity="0" stroke="rgb(255,255,255)"
+    ><rect x="0.5" width="138.5" height="48.5" y="0.5" clip-path="url(#clipPath2)" stroke="none"
+    /></g
+    ><g transform="translate(380,160)"
+    ><rect fill="none" x="0.5" width="138.5" height="48.5" y="0.5" clip-path="url(#clipPath2)"
+      /><text x="26" font-size="14px" y="18.1094" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >Smartphone</text
+      ><path fill="none" d="M1 24.1094 L139 24.1094" clip-path="url(#clipPath2)"
+      /><text x="5" font-size="14px" y="39.2188" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >e.g. an S6</text
+    ></g
+    ><g fill="rgb(255,165,0)" fill-opacity="0.4902" transform="translate(180,100)" stroke-opacity="0.4902" stroke="rgb(255,165,0)"
+    ><path d="M0.5 0.5 L248.5 0.5 L259 12.5 L259 39 L0.5 39 Z" stroke="none" clip-path="url(#clipPath5)"
+    /></g
+    ><g transform="translate(180,100)"
+    ><path fill="none" d="M0.5 0.5 L248.5 0.5 L259 12.5 L259 39 L0.5 39 Z" clip-path="url(#clipPath5)"
+      /><path fill="none" d="M248.5 0.5 L248.5 12.5 L259 12.5" clip-path="url(#clipPath5)"
+      /><text x="5" font-size="14px" y="18.1094" clip-path="url(#clipPath5)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >Runs AndroidSensorSharing/wear</text
+    ></g
+    ><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(140,160)" stroke-opacity="0" stroke="rgb(255,255,255)"
+    ><rect x="0.5" width="138.5" height="48.5" y="0.5" clip-path="url(#clipPath2)" stroke="none"
+    /></g
+    ><g transform="translate(140,160)"
+    ><rect fill="none" x="0.5" width="138.5" height="48.5" y="0.5" clip-path="url(#clipPath2)"
+      /><text x="30" font-size="14px" y="18.1094" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >Polar M600</text
+    ></g
+    ><g fill="blue" transform="translate(170,170)" stroke="blue"
+    ><path fill="none" d="M751.5 10.5 L820.5 10.5" clip-path="url(#clipPath6)"
+      /><path fill="none" d="M820.5 10.5 L820.5 380.5" clip-path="url(#clipPath6)"
+      /><path fill="none" d="M820.5 380.5 L10.5 380.5" clip-path="url(#clipPath6)"
+      /><path fill="none" d="M10.5 380.5 L10.5 331.5" clip-path="url(#clipPath6)"
+      /><path fill="none" d="M762.2583 17 L751 10.5 L762.2583 4" clip-path="url(#clipPath6)"
+      /><path fill="none" d="M17 342.2583 L10.5 331 L4 342.2583" clip-path="url(#clipPath6)"
+      /><text x="214" font-size="14px" y="375.2188" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >                             REST-API for Machine Learning</text
+    ></g
+    ><g fill="blue" transform="translate(430,330)" stroke="blue"
+    ><path fill="none" d="M350.5 91.5 L350.5 120.5" clip-path="url(#clipPath7)"
+      /><path fill="none" d="M350.5 120.5 L10.5 120.5" clip-path="url(#clipPath7)"
+      /><path fill="none" d="M10.5 120.5 L10.5 10.5" clip-path="url(#clipPath7)"
+      /><path fill="none" d="M344 102.2583 L350.5 91 L357 102.2583" clip-path="url(#clipPath7)"
+      /><text x="113.2197" font-size="14px" y="116" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >subscribed to topic</text
+      ><text x="115.3696" font-size="14px" y="132.1094" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >oh2/in/$item/state</text
+      ><text x="129.5645" font-size="14px" y="148.2188" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >for commands</text
+    ></g
+    ><g fill="blue" transform="translate(200,330)" stroke="blue"
+    ><path fill="none" d="M10.5 170.5 L10.5 200.5" clip-path="url(#clipPath8)"
+      /><path fill="none" d="M10.5 200.5 L220.5 200.5" clip-path="url(#clipPath8)"
+      /><path fill="none" d="M220.5 200.5 L220.5 11.5" clip-path="url(#clipPath8)"
+      /><path fill="none" d="M227 22.2583 L220.5 11 L214 22.2583" clip-path="url(#clipPath8)"
+      /><text x="21.375" font-size="14px" y="196" clip-path="url(#clipPath8)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >publishes changes to topic</text
+      ><text x="62.2368" font-size="14px" y="212.1094" clip-path="url(#clipPath8)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >oh2/in/$item/#</text
+    ></g
+    ><g fill="blue" transform="translate(450,330)" stroke="blue"
+    ><path fill="none" d="M270.5 80.5 L10.5 80.5" clip-path="url(#clipPath9)"
+      /><path fill="none" d="M10.5 80.5 L10.5 11.5" clip-path="url(#clipPath9)"
+      /><path fill="none" d="M17 22.2583 L10.5 11 L4 22.2583" clip-path="url(#clipPath9)"
+      /><text x="46.375" font-size="14px" y="76" clip-path="url(#clipPath9)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >publishes changes to topic</text
+      ><text x="70.2871" font-size="14px" y="92.1094" clip-path="url(#clipPath9)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >oh2/out/$item/state</text
+    ></g
+    ><g fill="blue" transform="translate(200,300)" stroke="blue"
+    ><path fill="none" d="M10.5 149.5 L10.5 10.5" clip-path="url(#clipPath10)"
+      /><path fill="none" d="M10.5 10.5 L180.5 10.5" clip-path="url(#clipPath10)"
+      /><path fill="none" d="M17 138.7417 L10.5 150 L4 138.7417" clip-path="url(#clipPath10)"
+      /><text x="14" font-size="14px" y="71.9453" clip-path="url(#clipPath10)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >subscribed to topic</text
+      ><text x="14" font-size="14px" y="88.0547" clip-path="url(#clipPath10)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >oh2/out/$item/#</text
+    ></g
+    ><g transform="translate(830,200)"
+    ><path fill="none" d="M10.5 11.5 L10.5 80.5" clip-path="url(#clipPath11)"
+      /><path fill="none" d="M4 22.2583 L10.5 11 L17 22.2583" clip-path="url(#clipPath11)"
+      /><path fill="none" d="M4 68.7417 L10.5 80 L17 68.7417" clip-path="url(#clipPath11)"
+      /><text x="14" font-size="14px" y="53.0547" clip-path="url(#clipPath11)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >REST-API</text
+    ></g
+    ><g transform="translate(470,330)"
+    ><path fill="none" d="M269.5 40.5 L10.5 40.5" clip-path="url(#clipPath12)"
+      /><path fill="none" d="M10.5 40.5 L10.5 10.5" clip-path="url(#clipPath12)"
+      /><path fill="none" d="M258.7417 34 L270 40.5 L258.7417 47" clip-path="url(#clipPath12)"
+      /><text x="73.2197" font-size="14px" y="36" clip-path="url(#clipPath12)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >subscribed to topic</text
+      ><text x="70.8545" font-size="14px" y="52.1094" clip-path="url(#clipPath12)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >sensors/samsung/#</text
+    ></g
+    ><g transform="translate(510,290)"
+    ><path fill="none" d="M229.5 20.5 L10.5 20.5" clip-path="url(#clipPath13)"
+      /><path fill="none" d="M218.7417 14 L230 20.5 L218.7417 27" clip-path="url(#clipPath13)"
+      /><text x="53.2197" font-size="14px" y="16" clip-path="url(#clipPath13)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >subscribed to topic</text
+      ><text x="64.7349" font-size="14px" y="32.1094" clip-path="url(#clipPath13)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >sensors/polar/#</text
+    ></g
+    ><g transform="translate(440,200)"
+    ><path fill="none" d="M10.5 89.5 L10.5 10.5" clip-path="url(#clipPath14)"
+      /><path fill="none" d="M17 78.7417 L10.5 90 L4 78.7417" clip-path="url(#clipPath14)"
+      /><text x="14" font-size="14px" y="41.9453" clip-path="url(#clipPath14)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >publishes changes to</text
+      ><text x="14" font-size="14px" y="58.0547" clip-path="url(#clipPath14)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >topic1 = sensors/polar/{...}</text
+      ><text x="14" font-size="14px" y="74.1641" clip-path="url(#clipPath14)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >topic2 = sensors/samsung/{...}</text
+    ></g
+    ><g stroke-dasharray="8,5" stroke-miterlimit="5" transform="translate(440,130)" stroke-linecap="butt"
+    ><path fill="none" d="M10.5 30.5 L80.5 10.5" clip-path="url(#clipPath15)"
+    /></g
+    ><g transform="translate(270,160)"
+    ><path fill="none" d="M109.5 20.5 L10.5 20.5" clip-path="url(#clipPath16)"
+      /><path fill="none" d="M98.7417 14 L110 20.5 L98.7417 27" clip-path="url(#clipPath16)"
+      /><text x="26.0186" font-size="14px" y="16" clip-path="url(#clipPath16)" font-family="sans-serif" stroke="none" xml:space="preserve"
+      >Bluetooth</text
+    ></g
+    ><g stroke-dasharray="8,5" stroke-miterlimit="5" transform="translate(180,130)" stroke-linecap="butt"
+    ><path fill="none" d="M10.5 30.5 L80.5 10.5" clip-path="url(#clipPath15)"
+    /></g
+  ></g
+></svg
+>
diff --git a/material/dataflow.uxf b/material/dataflow.uxf
new file mode 100644
index 0000000000000000000000000000000000000000..32102cab3acb522d86d1c6ab331529fb4e098374
--- /dev/null
+++ b/material/dataflow.uxf
@@ -0,0 +1,271 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<diagram program="umlet" version="14.3.0">
+  <zoom_level>10</zoom_level>
+  <element>
+    <id>UMLClass</id>
+    <coordinates>
+      <x>140</x>
+      <y>160</y>
+      <w>140</w>
+      <h>50</h>
+    </coordinates>
+    <panel_attributes>Polar M600
+</panel_attributes>
+    <additional_attributes/>
+  </element>
+  <element>
+    <id>UMLNote</id>
+    <coordinates>
+      <x>180</x>
+      <y>100</y>
+      <w>260</w>
+      <h>40</h>
+    </coordinates>
+    <panel_attributes>Runs AndroidSensorSharing/wear
+bg=orange</panel_attributes>
+    <additional_attributes/>
+  </element>
+  <element>
+    <id>Relation</id>
+    <coordinates>
+      <x>180</x>
+      <y>130</y>
+      <w>100</w>
+      <h>50</h>
+    </coordinates>
+    <panel_attributes>lt=.</panel_attributes>
+    <additional_attributes>10.0;30.0;80.0;10.0</additional_attributes>
+  </element>
+  <element>
+    <id>UMLClass</id>
+    <coordinates>
+      <x>380</x>
+      <y>160</y>
+      <w>140</w>
+      <h>50</h>
+    </coordinates>
+    <panel_attributes>Smartphone
+-
+e.g. an S6</panel_attributes>
+    <additional_attributes/>
+  </element>
+  <element>
+    <id>Relation</id>
+    <coordinates>
+      <x>270</x>
+      <y>160</y>
+      <w>130</w>
+      <h>40</h>
+    </coordinates>
+    <panel_attributes>lt=&lt;-
+Bluetooth</panel_attributes>
+    <additional_attributes>110.0;20.0;10.0;20.0</additional_attributes>
+  </element>
+  <element>
+    <id>UMLNote</id>
+    <coordinates>
+      <x>460</x>
+      <y>100</y>
+      <w>270</w>
+      <h>40</h>
+    </coordinates>
+    <panel_attributes>Runs AndroidSensorSharing/mobile
+bg=orange</panel_attributes>
+    <additional_attributes/>
+  </element>
+  <element>
+    <id>Relation</id>
+    <coordinates>
+      <x>440</x>
+      <y>130</y>
+      <w>100</w>
+      <h>50</h>
+    </coordinates>
+    <panel_attributes>lt=.</panel_attributes>
+    <additional_attributes>10.0;30.0;80.0;10.0</additional_attributes>
+  </element>
+  <element>
+    <id>UMLClass</id>
+    <coordinates>
+      <x>380</x>
+      <y>290</y>
+      <w>140</w>
+      <h>50</h>
+    </coordinates>
+    <panel_attributes>MQTT-
+Broker</panel_attributes>
+    <additional_attributes/>
+  </element>
+  <element>
+    <id>Relation</id>
+    <coordinates>
+      <x>440</x>
+      <y>200</y>
+      <w>250</w>
+      <h>110</h>
+    </coordinates>
+    <panel_attributes>lt=&lt;-
+publishes changes to
+topic1 = sensors/polar/{...}
+topic2 = sensors/samsung/{...}</panel_attributes>
+    <additional_attributes>10.0;90.0;10.0;10.0</additional_attributes>
+  </element>
+  <element>
+    <id>UMLClass</id>
+    <coordinates>
+      <x>720</x>
+      <y>280</y>
+      <w>250</w>
+      <h>140</h>
+    </coordinates>
+    <panel_attributes>OpenHAB
+{innerclass
+PolarM600Handler
+innerclass}
+
+
+{innerclass
+SamsungS6Handler
+innerclass}</panel_attributes>
+    <additional_attributes/>
+  </element>
+  <element>
+    <id>Relation</id>
+    <coordinates>
+      <x>510</x>
+      <y>290</y>
+      <w>250</w>
+      <h>60</h>
+    </coordinates>
+    <panel_attributes>lt=&lt;-
+subscribed to topic
+sensors/polar/#
+</panel_attributes>
+    <additional_attributes>230.0;20.0;10.0;20.0</additional_attributes>
+  </element>
+  <element>
+    <id>Relation</id>
+    <coordinates>
+      <x>470</x>
+      <y>330</y>
+      <w>290</w>
+      <h>80</h>
+    </coordinates>
+    <panel_attributes>lt=&lt;-
+subscribed to topic
+sensors/samsung/#
+</panel_attributes>
+    <additional_attributes>270.0;40.0;10.0;40.0;10.0;10.0</additional_attributes>
+  </element>
+  <element>
+    <id>UMLClass</id>
+    <coordinates>
+      <x>780</x>
+      <y>160</y>
+      <w>140</w>
+      <h>50</h>
+    </coordinates>
+    <panel_attributes>OpenHAB-App
+or WebGUI</panel_attributes>
+    <additional_attributes/>
+  </element>
+  <element>
+    <id>Relation</id>
+    <coordinates>
+      <x>830</x>
+      <y>200</y>
+      <w>90</w>
+      <h>100</h>
+    </coordinates>
+    <panel_attributes>lt=&lt;-&gt;
+REST-API</panel_attributes>
+    <additional_attributes>10.0;10.0;10.0;80.0</additional_attributes>
+  </element>
+  <element>
+    <id>UMLClass</id>
+    <coordinates>
+      <x>140</x>
+      <y>450</y>
+      <w>140</w>
+      <h>50</h>
+    </coordinates>
+    <panel_attributes>Knowledge-Base
+/eraser/
+</panel_attributes>
+    <additional_attributes/>
+  </element>
+  <element>
+    <id>Relation</id>
+    <coordinates>
+      <x>200</x>
+      <y>300</y>
+      <w>200</w>
+      <h>170</h>
+    </coordinates>
+    <panel_attributes>lt=&lt;-
+fg=blue
+subscribed to topic
+oh2/out/$item/#
+</panel_attributes>
+    <additional_attributes>10.0;150.0;10.0;10.0;180.0;10.0</additional_attributes>
+  </element>
+  <element>
+    <id>Relation</id>
+    <coordinates>
+      <x>450</x>
+      <y>330</y>
+      <w>290</w>
+      <h>120</h>
+    </coordinates>
+    <panel_attributes>lt=-&gt;
+fg=blue
+publishes changes to topic
+oh2/out/$item/state
+</panel_attributes>
+    <additional_attributes>270.0;80.0;10.0;80.0;10.0;10.0</additional_attributes>
+  </element>
+  <element>
+    <id>Relation</id>
+    <coordinates>
+      <x>200</x>
+      <y>330</y>
+      <w>240</w>
+      <h>240</h>
+    </coordinates>
+    <panel_attributes>lt=-&gt;
+fg=blue
+publishes changes to topic
+oh2/in/$item/#
+</panel_attributes>
+    <additional_attributes>10.0;170.0;10.0;200.0;220.0;200.0;220.0;10.0</additional_attributes>
+  </element>
+  <element>
+    <id>Relation</id>
+    <coordinates>
+      <x>430</x>
+      <y>330</y>
+      <w>370</w>
+      <h>160</h>
+    </coordinates>
+    <panel_attributes>lt=&lt;-
+fg=blue
+subscribed to topic
+oh2/in/$item/state
+for commands</panel_attributes>
+    <additional_attributes>350.0;90.0;350.0;120.0;10.0;120.0;10.0;10.0</additional_attributes>
+  </element>
+  <element>
+    <id>Relation</id>
+    <coordinates>
+      <x>170</x>
+      <y>170</y>
+      <w>840</w>
+      <h>400</h>
+    </coordinates>
+    <panel_attributes>lt=&lt;-&gt;
+fg=blue
+r2pos=200,00
+r2=                             REST-API for Machine Learning</panel_attributes>
+    <additional_attributes>750.0;10.0;820.0;10.0;820.0;380.0;10.0;380.0;10.0;330.0</additional_attributes>
+  </element>
+</diagram>