Beispiel #1
0
def edit_device():
    deviceId = select_configured_device()
    params = {}
    params['deviceId'] = deviceId
    params['name'] = raw_input("\nEnter the new \"name\" of the device: ")
    response = guh.send_command("Devices.EditDevice", params)
    guh.print_device_error_code(response['params']['deviceError'])
Beispiel #2
0
def set_plugin_configuration():
    pluginId = select_configurable_plugin()
    plugin = get_plugin(pluginId)
    paramTypes = plugin['paramTypes']
    params = {}
    params['pluginId'] = pluginId
    params['configuration'] = parameters.read_params(paramTypes)
    response = guh.send_command("Devices.SetPluginConfiguration", params)
    guh.print_device_error_code(response['params']['deviceError'])
Beispiel #3
0
def add_configured_device(deviceClassId):
    deviceClass = get_deviceClass(deviceClassId)
    params = {}
    params['deviceClassId'] = deviceClassId
    params['name'] = raw_input("\nEnter the \"name\" of the device: ")
    deviceParams = parameters.read_params(deviceClass['paramTypes'])
    if deviceParams:
        params['deviceParams'] = deviceParams
    print "\nAdding device with params:", guh.print_json_format(params)
    response = guh.send_command("Devices.AddConfiguredDevice", params)
    guh.print_device_error_code(response['params']['deviceError'])
Beispiel #4
0
def execute_action():
    deviceId = devices.select_configured_device()
    if deviceId == None:
        return None
    device = devices.get_device(deviceId)
    actionType = select_actionType(device['deviceClassId'])
    #print guh.print_json_format(actionType)
    if actionType == None:
        print "\n    This device has no actions"
        return None
    actionTypeId = actionType['id']
    params = {}
    params['actionTypeId'] = actionTypeId
    params['deviceId'] = deviceId
    actionType = get_actionType(actionTypeId)
    actionParams = parameters.read_params(actionType['paramTypes'])
    params['params'] = actionParams
    response = guh.send_command("Actions.ExecuteAction", params)
    if response:
        guh.print_device_error_code(response['params']['deviceError'])
Beispiel #5
0
def remove_configured_device():
    deviceId = select_configured_device()
    if not deviceId:
        return None
    print "Removing device with DeviceId%s" % deviceId
    params = {}
    params['deviceId'] = deviceId
    response = guh.send_command("Devices.RemoveConfiguredDevice", params)

    if response['params']['deviceError'] == 'DeviceErrorDeviceInRule':
        selectionString = "This device is used in a rule. How do you want to remove the device from the rules?"
        removePolicys = [
            "Remove the device from the rules", "Delete all offending rules"
        ]
        selection = guh.get_selection(selectionString, removePolicys)

        if removePolicys[selection] == "Remove the device from the rules":
            params['removePolicy'] = "RemovePolicyUpdate"
        else:
            params['removePolicy'] = "RemovePolicyCascade"

        response = guh.send_command("Devices.RemoveConfiguredDevice", params)

    guh.print_device_error_code(response['params']['deviceError'])
Beispiel #6
0
def add_discovered_device(deviceClassId, deviceDescriptorId):
    deviceClass = get_deviceClass(deviceClassId)
    if deviceClass['setupMethod'] == "SetupMethodJustAdd":
        params = {}
        params['deviceClassId'] = deviceClassId
        params['deviceDescriptorId'] = deviceDescriptorId
        params['name'] = raw_input("\nEnter the \"name\" of the device: ")
        response = guh.send_command("Devices.AddConfiguredDevice", params)
        if not response['status'] != "success":
            guh.print_device_error_code(response['params']['deviceError'])
        else:
            print "Device added successfully. Device ID: %s\n" % response[
                'params']['deviceId']
    elif deviceClass['setupMethod'] == "SetupMethodPushButton":
        params = {}
        params['deviceClassId'] = deviceClassId
        params['deviceDescriptorId'] = deviceDescriptorId
        params['name'] = raw_input("\nEnter the \"name\" of the device: ")
        response = guh.send_command("Devices.PairDevice", params)
        #guh.print_json_format(response)
        if not response['status'] == "success":
            print "Pairing failed: %s", response['params']['deviceError']
            return
        print "\nPairing device %s\n\n%s\n\n" % (
            deviceClass['name'], response['params']['displayMessage'])
        if response['params']['setupMethod'] == "SetupMethodPushButton":
            raw_input("\nPress \"enter\" to confirm\n")
        params = {}
        params['pairingTransactionId'] = response['params'][
            'pairingTransactionId']
        response = guh.send_command("Devices.ConfirmPairing", params)
        guh.print_device_error_code(response['params']['deviceError'])
    elif deviceClass['setupMethod'] == "SetupMethodDisplayPin":
        params = {}
        params['deviceClassId'] = deviceClassId
        params['deviceDescriptorId'] = deviceDescriptorId
        params['name'] = raw_input("\nEnter the \"name\" of the device: ")
        response = guh.send_command("Devices.PairDevice", params)
        #guh.print_json_format(response)
        if not response['status'] == "success":
            print "Pairing failed: %s", response['params']['deviceError']
            return
        print "\nPairing device %s\n\n%s\n\n" % (
            deviceClass['name'], response['params']['displayMessage'])
        if response['params']['setupMethod'] == "SetupMethodDisplayPin":
            pin = raw_input("Pin: ")
        params = {}
        params['secret'] = pin
        params['pairingTransactionId'] = response['params'][
            'pairingTransactionId']
        response = guh.send_command("Devices.ConfirmPairing", params)
        guh.print_device_error_code(response['params']['deviceError'])
Beispiel #7
0
def reconfigure_device():
    deviceId = select_configured_device()
    device = get_device(deviceId)
    if not device:
        return None
    deviceClass = get_deviceClass(device['deviceClassId'])
    if not deviceClass:
        return None
    deviceParamTypes = deviceClass['paramTypes']
    currentDeviceParams = device['params']
    createMethod = select_createMethod(
        "Please select how do you want to edit this device",
        deviceClass['createMethods'])
    print " --> Using create method \"%s\"\n" % (createMethod)
    params = {}
    if createMethod == "CreateMethodUser":
        newDeviceParams = parameters.edit_params(currentDeviceParams,
                                                 deviceParamTypes)
        params['deviceId'] = deviceId
        params['deviceParams'] = newDeviceParams
        response = guh.send_command("Devices.ReconfigureDevice", params)
        guh.print_device_error_code(response['params']['deviceError'])
    elif createMethod == "CreateMethodDiscovery":
        deviceDescriptorId = discover_device(device['deviceClassId'])
        if not deviceDescriptorId:
            return None
        print "using descriptorId %s" % (deviceDescriptorId)
        params['deviceId'] = deviceId
        params['deviceDescriptorId'] = deviceDescriptorId
        response = guh.send_command("Devices.ReconfigureDevice", params)
        guh.print_device_error_code(response['params']['deviceError'])
    elif createMethod == "CreateMethodAuto":
        newDeviceParams = parameters.edit_params(currentDeviceParams,
                                                 deviceParamTypes)
        params['deviceId'] = deviceId
        params['deviceParams'] = newDeviceParams
        response = guh.send_command("Devices.ReconfigureDevice", params)
        guh.print_device_error_code(response['params']['deviceError'])