1 //******************************************************************
3 // Copyright 2015 Samsung Electronics All Rights Reserved.
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
21 /// @file EntityHandlerHue.java
23 package oic.plugin.hue;
25 import java.util.EnumSet;
26 import java.util.List;
28 import org.iotivity.base.EntityHandlerResult;
29 import org.iotivity.base.OcException;
30 import org.iotivity.base.OcPlatform;
31 import org.iotivity.base.OcRepresentation;
32 import org.iotivity.base.OcResourceRequest;
33 import org.iotivity.base.OcResourceResponse;
34 import org.iotivity.base.RequestHandlerFlag;
35 import org.iotivity.base.RequestType;
37 import android.util.Log;
39 import com.philips.lighting.hue.sdk.PHHueSDK;
40 import com.philips.lighting.model.PHBridge;
41 import com.philips.lighting.model.PHLight;
42 import com.philips.lighting.model.PHLightState;
44 public class EntityHandlerHue implements OcPlatform.EntityHandler {
46 final private static String TAG = "EntityHandler";
48 public EntityHandlerResult handleEntity(OcResourceRequest resourcerequest) {
49 Log.e(TAG, "Entity Handler callback.");
51 System.out.println("IN Server CPP entity Handler");
52 System.out.println("Hue bulb");
53 // OcResourceResponse response = new OcResourceResponse();
54 // int result = 1; // EH_ERROR
55 if (resourcerequest != null
56 && resourcerequest.getResourceUri().equals("/a/huebulb")) {
57 RequestType requestType = resourcerequest.getRequestType();
58 EnumSet<RequestHandlerFlag> handlerFlagSet = resourcerequest
59 .getRequestHandlerFlagSet();
61 if(handlerFlagSet.contains(RequestHandlerFlag.INIT))
63 Log.e(TAG, "requestFlag : Init");
65 if(handlerFlagSet.contains(RequestHandlerFlag.REQUEST))
67 OcResourceResponse response = new OcResourceResponse();
68 OcRepresentation representation = new OcRepresentation();
69 response.setRequestHandle(resourcerequest
71 response.setResourceHandle(resourcerequest
72 .getResourceHandle());
73 switch (requestType) {
75 PHBridge bridge = PHHueSDK.getInstance()
77 List<PHLight> myLights = bridge.getResourceCache()
79 for (PHLight light : myLights) {
80 PHLightState lightState = new PHLightState();
81 lightState = light.getLastKnownLightState();
82 if (lightState.isOn()) {
83 Activator.myLight.m_power = "on";
84 } else if (!lightState.isOn()) {
85 Activator.myLight.m_power = "off";
87 Activator.myLight.m_color = lightState.getHue();
88 Activator.myLight.m_brightness = lightState
93 PHBridge mbridge = PHHueSDK.getInstance()
95 List<PHLight> mmyLights = mbridge
96 .getResourceCache().getAllLights();
97 for (PHLight light : mmyLights) {
98 PHLightState lightState = new PHLightState();
100 String str = resourcerequest
101 .getResourceRepresentation()
103 if (str.equals("on")) {
104 lightState.setOn(true);
105 Activator.myLight.m_power = "on";
106 } else if (str.equals("off")) {
107 lightState.setOn(false);
108 Activator.myLight.m_power = "off";
110 int setHueValue = resourcerequest
111 .getResourceRepresentation()
113 lightState.setHue(setHueValue);
114 Activator.myLight.m_color = resourcerequest
115 .getResourceRepresentation()
117 } catch (OcException e) {
118 // TODO Auto-generated catch block
119 Log.e(TAG, e.getMessage());
121 mbridge.updateLightState(light, lightState);
127 response.setErrorCode(200);
128 // representation.setUri("/a/huebulb");
130 representation.setValue("name",
131 Activator.myLight.m_name);
132 representation.setValue("power",
133 Activator.myLight.m_power);
134 representation.setValue("brightness",
135 Activator.myLight.m_brightness);
136 representation.setValue("color",
137 Activator.myLight.m_color);
138 } catch (OcException e) {
139 // TODO Auto-generated catch block
140 Log.e(TAG, e.getMessage());
142 response.setResourceRepresentation(representation);
144 OcPlatform.sendResponse(response);
145 } catch (OcException e) {
146 // TODO Auto-generated catch block
148 return EntityHandlerResult.ERROR;
151 if(handlerFlagSet.contains(RequestHandlerFlag.OBSERVER))
153 Log.e(TAG, "requestFlag : Observer");
155 return EntityHandlerResult.OK;
157 return EntityHandlerResult.ERROR;