diff --git a/common/src/main/java/de/tudresden/inf/st/sensorsharing/common/Constants.java b/common/src/main/java/de/tudresden/inf/st/sensorsharing/common/Constants.java
index 1223da4a445810dfebd42c8d9180eb41aa836996..20e96aea40bd2cc267a0bc20ee7498060303ab6a 100644
--- a/common/src/main/java/de/tudresden/inf/st/sensorsharing/common/Constants.java
+++ b/common/src/main/java/de/tudresden/inf/st/sensorsharing/common/Constants.java
@@ -25,6 +25,9 @@ public class Constants {
     public static final String SUB_KEY_COUNTER = "hear_counter";
     public static final String KEY_COUNTER = BASE_KEY + SUB_KEY_COUNTER;
 
+    public static final String SUB_KEY_COLOR = "color";
+    public static final String KEY_COLOR = BASE_KEY + SUB_KEY_COLOR;
+
     public static final String SUB_KEY_NAME = "name";
     public static final String KEY_NAME = BASE_KEY + SUB_KEY_NAME;
 
diff --git a/mobile/src/main/java/de/tudresden/inf/st/sensorsharing/MainActivity.java b/mobile/src/main/java/de/tudresden/inf/st/sensorsharing/MainActivity.java
index bccc03559f8e600d7023e1c4a9a770177d7c4040..cd0464fd00861dae1341748bc4631b7effdf2264 100644
--- a/mobile/src/main/java/de/tudresden/inf/st/sensorsharing/MainActivity.java
+++ b/mobile/src/main/java/de/tudresden/inf/st/sensorsharing/MainActivity.java
@@ -75,6 +75,7 @@ import static de.tudresden.inf.st.sensorsharing.common.Constants.BASE_KEY_LENGTH
 import static de.tudresden.inf.st.sensorsharing.common.Constants.MQTT_CHARSET;
 import static de.tudresden.inf.st.sensorsharing.common.Constants.SUB_KEY_AMBIENT_PRESSURE;
 import static de.tudresden.inf.st.sensorsharing.common.Constants.SUB_KEY_BRIGHTNESS;
+import static de.tudresden.inf.st.sensorsharing.common.Constants.SUB_KEY_COLOR;
 import static de.tudresden.inf.st.sensorsharing.common.Constants.SUB_KEY_COUNTER;
 import static de.tudresden.inf.st.sensorsharing.common.Constants.SUB_KEY_HEART_RATE;
 import static de.tudresden.inf.st.sensorsharing.common.Constants.SUB_KEY_LINEAR_ACCELERATION;
@@ -82,6 +83,7 @@ import static de.tudresden.inf.st.sensorsharing.common.Constants.SUB_KEY_NAME;
 import static de.tudresden.inf.st.sensorsharing.common.Constants.SUB_KEY_ROTATION_VECTOR;
 import static de.tudresden.inf.st.sensorsharing.settings.AppSettings.SETTINGS_MQTT_SERVER;
 import static java.lang.Math.atan2;
+import static java.lang.Math.floor;
 //bbq
 
 import android.support.v4.app.Fragment;
@@ -138,6 +140,8 @@ public class MainActivity extends AppCompatActivity implements
     private AppSettings settings;
     MadgwickAHRS filter;
     Button mqtt_button;
+    ToggleButton color_button;
+    private boolean isChecked_colorControl;
 
     private EditText valueServerURI;
     // fragments variable
@@ -269,6 +273,13 @@ public class MainActivity extends AppCompatActivity implements
                 connectMqtt(view);
             }
         });
+        color_button = findViewById(R.id.color_control_button);
+        color_button.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
+                    isChecked_colorControl =b;
+            }
+        });
         setupLightsController();
         setupSendUpdatesCheckbox();
         setupLightsController();
@@ -718,6 +729,7 @@ public class MainActivity extends AppCompatActivity implements
 
     @Override
     public void onMessageReceived(@NonNull final MessageEvent messageEvent) {
+        final String openhab_topic = "oh2/out/iris1_item/state";
         String path = messageEvent.getPath();
         if (path == null) return;
         if (path.startsWith(BASE_KEY)) {
@@ -728,6 +740,26 @@ public class MainActivity extends AppCompatActivity implements
             final byte[] bytesToSendViaMqtt = messageEvent.getData();
 
             switch (path.substring(BASE_KEY_LENGTH)) {
+                case SUB_KEY_COLOR:
+                    float mColor = ByteBuffer.wrap(messageEvent.getData()).getFloat();
+                    String updateColor = Float.toString(mColor);
+                    TextView color = findViewById(R.id.label_openhab_button);
+                    if(isChecked_colorControl){
+                        sendMqttUpdates.put(openhab_topic, isChecked_colorControl);
+                        if(mColor == 1){
+                            color.setTextColor(Color.RED);
+                            sendUpdate(openhab_topic,"255,0,0");
+
+                        }else if(mColor==2){
+                            color.setTextColor(Color.BLUE);
+                            sendUpdate(openhab_topic,"0,0,255");
+                        }else if(mColor == 3){
+                            color.setTextColor(Color.GREEN);
+                            sendUpdate(openhab_topic,"0,255,0");
+                        }else {color.setTextColor(Color.GRAY);
+                            sendUpdate(openhab_topic,"0,0,0");}
+                    }
+
                 case SUB_KEY_COUNTER:
                     float mCounter = ByteBuffer.wrap(messageEvent.getData()).getFloat();
                     updatedValue = Float.toString(mCounter);
diff --git a/mobile/src/main/res/layout/fragment_third.xml b/mobile/src/main/res/layout/fragment_third.xml
index 5d141c00baa2d313e7512e0f83eaad11ae39e966..0f1c93ec0259d8b24a6ef29d3d3eb4cd802dc310 100644
--- a/mobile/src/main/res/layout/fragment_third.xml
+++ b/mobile/src/main/res/layout/fragment_third.xml
@@ -214,6 +214,7 @@
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toBottomOf="@id/checkbox_openhab_light_1" />
         <ToggleButton
+            android:id="@+id/color_control_button"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             app:layout_constraintLeft_toRightOf="@+id/label_openhab_button"
diff --git a/wear/src/main/java/de/tudresden/inf/st/sensorsharing/MainActivity.java b/wear/src/main/java/de/tudresden/inf/st/sensorsharing/MainActivity.java
index a634e2185cf4165f9aa1cceb357c2490b21b15e8..8bae6d2bafa19e3b194546df28e28cdaf775a7ff 100644
--- a/wear/src/main/java/de/tudresden/inf/st/sensorsharing/MainActivity.java
+++ b/wear/src/main/java/de/tudresden/inf/st/sensorsharing/MainActivity.java
@@ -8,10 +8,14 @@ import android.hardware.SensorManager;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
+import android.support.wear.widget.BoxInsetLayout;
 import android.support.wearable.activity.WearableActivity;
+import android.util.AttributeSet;
 import android.util.Log;
+import android.view.KeyEvent;
 import android.view.View;
 import android.widget.TextView;
+import android.view.ViewGroup;
 
 import com.google.android.gms.tasks.OnSuccessListener;
 import com.google.android.gms.tasks.Task;
@@ -21,11 +25,15 @@ import com.google.android.gms.wearable.Wearable;
 
 import java.nio.ByteBuffer;
 import java.util.List;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.widget.Toast;
 
 import de.tudresden.inf.st.sensorsharing.common.Utils;
 
 import static de.tudresden.inf.st.sensorsharing.common.Constants.KEY_AMBIENT_PRESSURE;
 import static de.tudresden.inf.st.sensorsharing.common.Constants.KEY_BRIGHTNESS;
+import static de.tudresden.inf.st.sensorsharing.common.Constants.KEY_COLOR;
 import static de.tudresden.inf.st.sensorsharing.common.Constants.KEY_COUNTER;
 import static de.tudresden.inf.st.sensorsharing.common.Constants.KEY_HEART_RATE;
 import static de.tudresden.inf.st.sensorsharing.common.Constants.KEY_LINEAR_ACCELERATION;
@@ -61,12 +69,16 @@ public class MainActivity extends WearableActivity implements SensorEventListene
     private float mPressureValues;
     private Sensor mCounter;
     private float mCounterValues;
+    private long mShakeTime = 0;
+    private static final int SHAKE_WAIT_TIME_MS = 250;
+    private static final float SHAKE_THRESHOLD = 3.25f;
+    private static int num = 0;
 
+    private float mColor;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
-
         // setup sensor manager and light sensor
         mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
         if (mSensorManager == null) {
@@ -84,9 +96,9 @@ public class MainActivity extends WearableActivity implements SensorEventListene
         Log.i(TAG, "Avail: able sensors: " + sb.toString());
 
         // initialize sensors
-
         mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
-        mLinearAcceleration = mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION);
+        mLinearAcceleration = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+        //mLinearAcceleration = mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION);
         mHeartRate = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);
         mPressure = mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);
         mCounter = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
@@ -125,24 +137,19 @@ public class MainActivity extends WearableActivity implements SensorEventListene
         setAmbientEnabled();
     }
 
+
     @Override
     public void onSensorChanged(SensorEvent sensorEvent) {
         TextView textView;
-
         switch(sensorEvent.sensor.getType()) {
-
             case Sensor.TYPE_PRESSURE:
                 mPressureValues =sensorEvent.values[0];
-                System.out.print("PRESSURE: "+sensorEvent.values[0]);
                 break;
-
             case Sensor.TYPE_STEP_COUNTER:
                 mCounterValues = sensorEvent.values[0];
-                System.out.print("Counter: "+sensorEvent.values[0]);
                 break;
             case Sensor.TYPE_HEART_RATE:
                 mHeartRateVaules = sensorEvent.values[0];
-                System.out.println("HeartRateValue:" + mHeartRateVaules);
                 break;
             case Sensor.TYPE_LIGHT:
                 mLightValue = sensorEvent.values[0];
@@ -156,6 +163,10 @@ public class MainActivity extends WearableActivity implements SensorEventListene
                 mLinearAccelerationValues = sensorEvent.values;
                 textView = findViewById(R.id.acceleration_value);
                 textView.setText(Utils.formatArray3(mLinearAccelerationValues));
+                detectShake(sensorEvent);
+                if (num >3){
+                    num = 0;
+                }
                 break;
             case Sensor.TYPE_GAME_ROTATION_VECTOR:
             case Sensor.TYPE_GEOMAGNETIC_ROTATION_VECTOR:
@@ -166,6 +177,51 @@ public class MainActivity extends WearableActivity implements SensorEventListene
         }
     }
 
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        switch (keyCode){
+            case KeyEvent.KEYCODE_NAVIGATE_NEXT:
+                System.out.println("key down");
+            case KeyEvent.KEYCODE_NAVIGATE_PREVIOUS:
+                System.out.println("key up ");
+        }
+        return super.onKeyDown(keyCode, event);
+    }
+
+    private void detectShake(SensorEvent event) {
+        //BoxInsetLayout layout = (BoxInsetLayout) findViewById(R.id.wear_layout);
+        long now = System.currentTimeMillis();
+        if((now - mShakeTime) > SHAKE_WAIT_TIME_MS) {
+            mShakeTime = now;
+            float x = event.values[0];
+            float y = event.values[1];
+            float z = event.values[2];
+            if((Math.abs(x)>13||Math.abs(y)>13||Math.abs(z)>13)){
+                num+=1;
+                System.out.println("shake shake");
+                View mContainerview = (BoxInsetLayout) findViewById(R.id.container);
+                if (num == 1){
+                    mContainerview.setBackgroundColor(Color.RED);
+                    mColor = 1;
+                    sendCurrentValueToAllConnectedNodes();
+                }else if (num == 2){
+                    mContainerview.setBackgroundColor(Color.BLUE);
+                    mColor =2;
+                    sendCurrentValueToAllConnectedNodes();
+                }else if (num == 3){
+                    mContainerview.setBackgroundColor(Color.GREEN);
+                    mColor = 3;
+                    sendCurrentValueToAllConnectedNodes();
+                }else if (num == 4){
+                    mColor = 4;
+                    mContainerview.setBackgroundColor(Color.BLACK);
+                    sendCurrentValueToAllConnectedNodes();
+                }
+            }
+        }
+    }
+
+
     private void sendCurrentValueToAllConnectedNodes() {
         Task<List<Node>> nodesTask = Wearable.getNodeClient(this).getConnectedNodes();
         final MessageClient messageClient = Wearable.getMessageClient(this);
@@ -178,6 +234,7 @@ public class MainActivity extends WearableActivity implements SensorEventListene
                 final byte[] heartRateData = ByteBuffer.allocate(4).putFloat(mHeartRateVaules).array();
                 final byte[] pressure = ByteBuffer.allocate(4).putFloat(mPressureValues).array();
                 final byte[] counter = ByteBuffer.allocate(4).putFloat(mCounterValues).array();
+                final byte[] color = ByteBuffer.allocate(4).putFloat(mColor).array();
 
 
                 for (Node node : nodes) {
@@ -190,8 +247,9 @@ public class MainActivity extends WearableActivity implements SensorEventListene
                     messageClient.sendMessage(node.getId(), KEY_LINEAR_ACCELERATION, accelerationData);
                     messageClient.sendMessage(node.getId(), KEY_ROTATION_VECTOR, rotationData);
                     messageClient.sendMessage(node.getId(), KEY_HEART_RATE, heartRateData);
-                    messageClient.sendMessage(node.getId(),KEY_COUNTER,counter);
+                    messageClient.sendMessage(node.getId(), KEY_COUNTER, counter);
                     messageClient.sendMessage(node.getId(), KEY_AMBIENT_PRESSURE, pressure);
+                    messageClient.sendMessage(node.getId(), KEY_COLOR, color);
                 }
             }
         });
@@ -210,8 +268,7 @@ public class MainActivity extends WearableActivity implements SensorEventListene
         mSensorManager.registerListener(this, mRotationVector, SensorManager.SENSOR_DELAY_NORMAL);
         mSensorManager.registerListener(this, mHeartRate,SensorManager.SENSOR_DELAY_FASTEST);
         mSensorManager.registerListener(this, mPressure, SensorManager.SENSOR_DELAY_NORMAL);
-        mSensorManager.registerListener(this,mCounter, SensorManager.SENSOR_DELAY_NORMAL);
-
+        mSensorManager.registerListener(this, mCounter, SensorManager.SENSOR_DELAY_NORMAL);
     }
 
     @Override
diff --git a/wear/src/main/res/layout/activity_main.xml b/wear/src/main/res/layout/activity_main.xml
index 32ed4def35f2aaa85f0aee51bd91c5cfd324d9fe..a5b633c9041402816690bea20c0a898941aec0db 100644
--- a/wear/src/main/res/layout/activity_main.xml
+++ b/wear/src/main/res/layout/activity_main.xml
@@ -7,6 +7,7 @@
     android:layout_height="match_parent"
     android:background="@color/black"
     android:padding="@dimen/box_inset_layout_padding"
+    android:id="@+id/container"
     tools:ignore="MissingPrefix"
     tools:context="de.tudresden.inf.st.sensorsharing.MainActivity"
     tools:deviceIds="wear">