public JsonSettings() {
        String jsonData = "";
        try {
            //TODO Find a better way to store the settings file
            FileInputStream settingsStream = new FileInputStream("/tmp/settings.json");
            try (java.util.Scanner s = new java.util.Scanner(settingsStream)) {
                jsonData = s.useDelimiter("\\A").hasNext() ? s.next() : "";
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        Gson gson = new Gson();
        Settings settings = gson.fromJson(jsonData, Settings.class);

        String tmpIP = settings.getHubConnectDetails().getAddress();
        if (tmpIP.startsWith("dchub://")) {
            IP = tmpIP.replace("dchub://", "");
        } else{
            IP = tmpIP;
        }
        port = settings.getHubConnectDetails().getPort().intValue();
        username = settings.getUserDetails().getUsername();
        password = settings.getUserDetails().getPassword();
        description = settings.getUserDetails().getDescription();
        email = settings.getUserDetails().getEmail();
        supportedFeatures = settings.getSupportedFeatures();
    }