Merge pull request #181 from ayyoob/das-ext

Fixed issues raised in the comments
merge-requests/1/head
Milan Perera 9 years ago committed by GitHub
commit cac0c3e401

@ -107,14 +107,14 @@ var jagg = jagg || (function () {
var getThemeFile = function (path) {
var p, index, theme = getUserTheme();
if(theme.tenant_theme) {
if (theme.tenant_theme) {
p = getTenantThemePath() + path;
index = p.indexOf("?");
if(new File(p.substring(0, index == -1 ? p.length : index)).isExists()) {
if (new File(p.substring(0, index == -1 ? p.length : index)).isExists()) {
return p;
}
}
if(theme.subtheme) {
if (theme.subtheme) {
p = getThemePath() + "subthemes/" + theme.subtheme + "/" + path;
index = p.indexOf("?");
if(new File(p.substring(0, index == -1 ? p.length : index)).isExists()) {

@ -18,7 +18,8 @@
package org.wso2.carbon.andes.extensions.device.mgt.mqtt.authorization;
import org.apache.log4j.Logger;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.dna.mqtt.moquette.server.IAuthorizer;
import org.wso2.andes.configuration.enums.MQTTAuthoriztionPermissionLevel;
import org.wso2.andes.mqtt.MQTTAuthorizationSubject;
@ -36,7 +37,8 @@ import java.util.List;
* This is just a simple authorization model. For dynamic topics use an implementation based on IAuthorizer
*/
public class DeviceAccessBasedMQTTAuthorizer implements IAuthorizer {
private static final Logger logger = Logger.getLogger(DeviceAccessBasedMQTTAuthorizer.class);
private static Log logger = LogFactory.getLog(DeviceAccessBasedMQTTAuthorizer.class);
private static final String CONNECTION_PERMISSION = "/permission/admin/device-mgt/user";
private static final String ADMIN_PERMISSION = "/permission/admin/device-mgt/admin";
private static final String SCOPE_IDENTIFIER = "scope";

@ -104,10 +104,10 @@ public class ConnectedCupServiceImpl implements ConnectedCupService {
return Response.ok().entity(sensorDatas).build();
} catch (AnalyticsException e) {
String errorMsg = "Error on retrieving stats on table " + sensorTableName + " with query " + query;
log.error(errorMsg);
log.error(errorMsg, e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).entity(errorMsg).build();
} catch (DeviceAccessAuthorizationException e) {
log.error(e.getErrorMessage());
log.error(e.getErrorMessage(), e);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()).build();
}
}
@ -154,6 +154,7 @@ public class ConnectedCupServiceImpl implements ConnectedCupService {
device.setEnrolmentInfo(enrolmentInfo);
return APIUtil.getDeviceManagementService().enrollDevice(device);
} catch (DeviceManagementException e) {
log.error("Failed to enroll device with device name :" + name, e);
return false;
}
}

@ -19,21 +19,16 @@ package org.coffeeking.connectedcup.plugin.exception;
public class ConnectedCupDeviceMgtPluginException extends Exception {
private String errorMessage;
public ConnectedCupDeviceMgtPluginException(String msg, Exception nestedEx) {
super(msg, nestedEx);
setErrorMessage(msg);
}
public ConnectedCupDeviceMgtPluginException(String message, Throwable cause) {
super(message, cause);
setErrorMessage(message);
}
public ConnectedCupDeviceMgtPluginException(String msg) {
super(msg);
setErrorMessage(msg);
}
public ConnectedCupDeviceMgtPluginException() {
@ -44,12 +39,4 @@ public class ConnectedCupDeviceMgtPluginException extends Exception {
super(cause);
}
public String getErrorMessage() {
return errorMessage;
}
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
}

@ -38,8 +38,8 @@ public class ConnectedCupUtils {
public static String getDeviceProperty(List<Device.Property> deviceProperties, String propertyKey) {
String deviceProperty = "";
for(Device.Property property :deviceProperties){
if(propertyKey.equals(property.getName())){
for (Device.Property property : deviceProperties) {
if (propertyKey.equals(property.getName())) {
deviceProperty = property.getValue();
}
}

@ -230,9 +230,7 @@ function drawGraph_connectedcup(from, to) {
drawTemperatureLineGraph(JSON.parse(data));
}
};
invokerUtil.get(backendApiUrl, successCallback, function (message) {
console.log(message);
});
invokerUtil.get(backendApiUrl, successCallback, function (message) {});
var coffeeLevelApiUrl = $('#connectedcup-div-chart').data('backend-api-url') + '/sensors/coffeelevel'
+ '?from=' + from + '&to=' + to;

@ -1,169 +0,0 @@
#!/usr/bin/env python
"""
/**
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
**/
"""
import time
#import RPi.GPIO as GPIO
import paho.mqtt.client as mqtt
import iotUtils
global mqttClient
mqttClient = mqtt.Client()
global TOPIC_TO_PUBLISH_STREAM1
global TOPIC_TO_PUBLISH_STREAM2
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# The callback for when the client receives a CONNACK response from the server.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def on_connect(mqttClient, userdata, flags, rc):
print("MQTT_LISTENER: Connected with result code " + str(rc))
# Subscribing in on_connect() means that if we lose the connection and
# reconnect then subscriptions will be renewed.
print ("MQTT_LISTENER: Subscribing with topic " + SUBSCRIBE_FOR_LOCKER_COMMAND)
mqttClient.subscribe(SUBSCRIBE_FOR_LOCKER_COMMAND)
print ("MQTT_LISTENER: Subscribing with topic " + SUBSCRIBE_FOR_FAN_COMMAND)
mqttClient.subscribe(SUBSCRIBE_FOR_FAN_COMMAND)
print ("MQTT_LISTENER: Subscribing with topic " + SUBSCRIBE_FOR_BULB_COMMAND)
mqttClient.subscribe(SUBSCRIBE_FOR_BULB_COMMAND)
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# The callback for when a PUBLISH message is received from the server.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def on_message(mqttClient, userdata, msg):
print("MQTT_LISTENER: " + msg.topic + " " + str(msg.payload))
if msg.topic == SUBSCRIBE_FOR_LOCKER_COMMAND:
request = str(msg.payload)
resource = ""
state = request.upper()
if state == "LOCK":
# GPIO.output(iotUtils.DOOR_LOCKER_2_PORT, GPIO.HIGH)
# GPIO.output(iotUtils.DOOR_LOCKER_1_PORT, GPIO.HIGH)
# GPIO.output(iotUtils.LOCK_STATE_OFF_NOTIFY_PORT, GPIO.HIGH)
# GPIO.output(iotUtils.LOCK_STATE_ON_NOTIFY_PORT, GPIO.LOW)
#mqttClient.publish(TOPIC_TO_PUBLISH, "Locker:LOCKED")
print "Door is locked"
elif state == "UNLOCK":
# GPIO.output(iotUtils.DOOR_LOCKER_2_PORT, GPIO.LOW)
# GPIO.output(iotUtils.DOOR_LOCKER_1_PORT, GPIO.LOW)
# GPIO.output(iotUtils.LOCK_STATE_OFF_NOTIFY_PORT, GPIO.LOW)
# GPIO.output(iotUtils.LOCK_STATE_ON_NOTIFY_PORT, GPIO.HIGH)
#mqttClient.publish(TOPIC_TO_PUBLISH, "Locker:UNLOCKED")
print "Door is unlocked"
else:
print "MQTT message in the wrong format"
print "MQTT_LISTENER: Resource- " + resource
elif msg.topic == SUBSCRIBE_FOR_FAN_COMMAND:
request = str(msg.payload)
resource = ""
state = request.upper()
if state == "ON":
# GPIO.output(iotUtils.DOOR_LOCKER_2_PORT, GPIO.HIGH)
# GPIO.output(iotUtils.DOOR_LOCKER_1_PORT, GPIO.HIGH)
# GPIO.output(iotUtils.LOCK_STATE_OFF_NOTIFY_PORT, GPIO.HIGH)
# GPIO.output(iotUtils.LOCK_STATE_ON_NOTIFY_PORT, GPIO.LOW)
#mqttClient.publish(TOPIC_TO_PUBLISH, "Locker:LOCKED")
print "Fan is locked"
elif state == "OFF":
# GPIO.output(iotUtils.DOOR_LOCKER_2_PORT, GPIO.LOW)
# GPIO.output(iotUtils.DOOR_LOCKER_1_PORT, GPIO.LOW)
# GPIO.output(iotUtils.LOCK_STATE_OFF_NOTIFY_PORT, GPIO.LOW)
# GPIO.output(iotUtils.LOCK_STATE_ON_NOTIFY_PORT, GPIO.HIGH)
#mqttClient.publish(TOPIC_TO_PUBLISH, "Locker:UNLOCKED")
print "Fan is off"
else:
print "MQTT message in the wrong format"
print "MQTT_LISTENER: Resource- " + resource
elif msg.topic == SUBSCRIBE_FOR_BULB_COMMAND:
request = str(msg.payload)
print "bulb is to blow"
resource = ""
print request
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# The callback for when a PUBLISH message to the server when door is open or close
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def on_publish(mqttClient, topic, msg):
mqttClient.publish(topic, msg)
def sendLockerStatus(msg):
global mqttClient
on_publish(mqttClient, msg)
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# The Main method of the server script
# This method is invoked from DoorLockerAgent.py on a new thread
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def main():
MQTT_ENDPOINT = iotUtils.MQTT_EP.split(":")
MQTT_IP = MQTT_ENDPOINT[1].replace('//', '')
MQTT_PORT = int(MQTT_ENDPOINT[2])
DEV_OWNER = iotUtils.DEVICE_OWNER
DEV_ID = iotUtils.DEVICE_ID
DEV_TYPE =iotUtils.DEVICE_TYPE
TANENT_DOMAIN = iotUtils.SERVER_NAME
global SUBSCRIBE_FOR_LOCKER_COMMAND
SUBSCRIBE_FOR_LOCKER_COMMAND = TANENT_DOMAIN + "/" + DEV_TYPE + "/" + DEV_ID + "/command"
global SUBSCRIBE_FOR_FAN_COMMAND
SUBSCRIBE_FOR_FAN_COMMAND = TANENT_DOMAIN + "/" + DEV_TYPE + "/" + DEV_ID + "/fan/command"
global SUBSCRIBE_FOR_BULB_COMMAND
SUBSCRIBE_FOR_BULB_COMMAND = TANENT_DOMAIN + "/" + DEV_TYPE + "/" + DEV_ID + "/bulb/command"
global TOPIC_TO_PUBLISH_STREAM1
TOPIC_TO_PUBLISH_STREAM1 = TANENT_DOMAIN + "/" + DEV_TYPE + "/" + DEV_ID + "/smartLock"
global TOPIC_TO_PUBLISH_STREAM2
TOPIC_TO_PUBLISH_STREAM2 = TANENT_DOMAIN + "/" + DEV_TYPE + "/" + DEV_ID + "/smartFan"
print ("MQTT_LISTENER: MQTT_ENDPOINT is " + str(MQTT_ENDPOINT))
print ("MQTT_LISTENER: MQTT_TOPIC is " + SUBSCRIBE_FOR_LOCKER_COMMAND)
global mqttClient
mqttClient.username_pw_set(iotUtils.AUTH_TOKEN, password = "")
mqttClient.on_connect = on_connect
mqttClient.on_message = on_message
while True:
try:
mqttClient.connect(MQTT_IP, MQTT_PORT, 60)
print "MQTT_LISTENER: " + time.asctime(), "Connected to MQTT Broker - %s:%s" % (MQTT_IP, MQTT_PORT)
# Blocking call that processes network traffic, dispatches callbacks and
# handles reconnecting.
# Other loop*() functions are available that give a threaded interface and a
# manual interface.
mqttClient.loop_forever()
except (KeyboardInterrupt, Exception) as e:
print "MQTT_LISTENER: Exception in MQTTServerThread (either KeyboardInterrupt or Other)"
print ("MQTT_LISTENER: " + str(e))
mqttClient.disconnect()
print "MQTT_LISTENER: " + time.asctime(), "Connection to Broker closed - %s:%s" % (MQTT_IP, MQTT_PORT)
print '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
pass
if __name__ == '__main__':
main()
Loading…
Cancel
Save